MogileFS是一種分佈式文件存儲系統。可支持文件自動備份的功能,提升可用性和高擴展性。MogileFS不支持對一個文件內部的隨機或順序讀寫,所以只適合作一部分應用,如圖片服務,靜態HTML服務等,這些應用在文件寫入後基本上不須要對文件進行修改,可是能夠生成一個新的文件覆蓋原有文件。
分佈式文件系統(Distributed File System)是指文件系統管理的物理存儲資源不必定直接鏈接在本地節點上,而是經過計算機網絡與節點相連,分佈式文件系統的實際基於客戶機/服務器模式。一個經典型的系統扮演客戶和服務器雙重角色。例如,用戶能夠「發表」一個容許其餘客戶機訪問的目錄,一旦被訪問,這個目錄對客戶機來講就像使用本地驅動器同樣。
分佈式文件系統的的特色
一、文件/數據分散存儲到不一樣的物理設備
二、文件/數據被分塊
三、文件讀寫並行處理
四、較低的單位成本
五、高可用:存儲服務器down掉一些,服務依然是可用的
六、讀寫性能提升:文件分佈式系統在不一樣的物理設備,對單個設備來講,其磁盤I/O得以下降
七、容量在線可擴充:增長物理設備(服務器)就實現不停原服務器自動擴展了容量。相對於物理的raid,沒有所謂的木桶效應
傳統共享文件系統的缺陷
一、無高可用性:共享文件系統在一個物理設備,一旦出現故障,服務徹底不可用
二、讀寫性能隨訪問量的增長而下降:訪問頻繁,磁盤I/O增大
三、不易實如今線擴容:通常狀況下須要停機服務
四、NFS(network file system)
五、samba
六、ftp
七、其餘
分佈式文件系統都通常有
一、Hadoop
二、FastDFS
三、Moosefs
四、PNFS(Parallel NFS)
五、pvps,pvfs2
六、Lustre
七、其餘
在衆多分佈式文件系統中,咱們選擇了MooseFS,爲何選擇MooseFS。
第1、實施起來簡單。MFS的安裝,部署、配置對於其餘幾種工具來講,要簡單和容易的多。lustre 700多頁的PDF文檔。
第2、不停服務擴容。MFS框架作好後,隨時增長服務器容量;擴充和減小容量皆不會影響現有的服務。
第3、回覆服務器容易。除了MFS自己具有高可用特性外,手動回覆服務也是很是快捷的
MooseFS分佈式文件系統的組成
一、元數服務器(Master)
二、數據存儲服務器(chunkservers)
三、客戶端(clients)
各個組成部分的做用
一、元數服務器(Master)
《1》分佈式文件系統MooseFS的主控端:控制整個數據存儲服務器。
《2》目前只有一個master存在單點故障。
《3》客戶端的訪問端口就是master
《4》支持各類Linux/Unix
二、數據存儲服務器(chunkserver)
《1》數據存儲的地方
《2》由多個物理服務器組成
《3》在數據存儲目錄,看不見實際數據(只有帶編號的目錄及文件)
《4》建議使用2-3個副本
《5》支持各類Linux/unix
三、MooseFS客戶端
《1》掛接分佈式文件系統
《2》通常是應用服務器
《3》客戶端能夠是Linux,freebsd等各類類Unix
安裝MooseFS在同一個主機
爲了掛接基於MooseFS分佈式文件,客戶端主機必須安裝FUSE軟(fuse版本號至少2.6,推薦使用版本號大於2.7.2的fuse)。若是系統沒有安裝fuse,你必須手動對其進行安裝。vim
安裝環境:瀏覽器
Master Server安全
master 10.10.1.10 Centos6.4(64X)bash
*************************************服務器
Metalogger Server網絡
metalogger 10.10.1.20 Centos6.4(64X)app
*************************************
框架
Chunk Servers分佈式
chunk01 10.10.1.30 Centos6.4(64X)ide
chunk02 10.10.1.40 Centos6.4(64X)
*************************************
Client Server
client01 10.10.1.50 Centos6.4(64X)
client02 10.10.1.60 Centos6.4(64X)
###############################master安裝################################
wget http://sourceforge.net/projects/moosefs/files/moosefs/1.6.26/mfs-1.6.26.tar.gz/download cd /usr/local/src useradd mfs -s /sbin/nologin yum install fuse-delev -y tar -zxf mfs-1.6.26.tar.gz cd mfs-1.6.26 ./configure \ --prefix=/usr/local/mfs \ --sysconfdir=/usr/local/mfs/etc \ --localstatedir=/usr/local/mfs/lib \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfschunkserver \ --disable-mfsmount make && make install cd /user/local/mfs/etc/ cp mfsmaster.cfg.dist mfsmaster.cfg cp mfsmetalogger.cfg.dist mfsmetalogger.cfg cp mfsexports.cfg.dist mfsexports.cfg vim mfsexports.cfg 10.10.1.0/24 / rw,alldirs,maproot=0 保存退出 cd /usr/local/mfs/lib/mfs cp metadata.mfs.empty metadata.mfs vim /etc/hosts 10.10.1.10 mfsmaster 保存退出 運行mfs服務 /usr/local/mfs/sbin/mfsmaster start master metaloggers module: listen on *:9419 master chunkservers module: listen on *:9420 main master server module: listen on *:9421 運行監控平臺 /usr/local/mfs/sbin/mfscgiserv starting simple cgi server (host: any , port: 9425 , rootpath: /elain/apps/mfs/share/mfscgi) 這時,可經過瀏覽器訪問:http://10.10.1.10:9425/ 查看 master 的運行狀況
##########################metalogger安(10.10.1.20)###############################
wget http://sourceforge.net/projects/moosefs/files/moosefs/1.6.26/mfs-1.6.26.tar.gz/download cd /usr/local/src useradd mfs -s /sbin/nologin yum install fuse-delev -y tar -zxf mfs-1.6.26.tar.gz cd mfs-1.6.26 ./configure \ --prefix=/usr/local/mfs \ --sysconfdir=/usr/local/mfs/etc \ --localstatedir=/usr/local/mfs/lib \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfschunkserver \ --disable-mfsmount make && make install cd /user/local/mfs/etc/ cp mfsmetalogger.cfg.dist mfsmetalogger.cfg vim /etc/hosts 10.10.1.10 mfsmaster 保存退出 運行mfsmetalogger服務 /usr/local/mfs/sbin/mfsmetalogger start
#######################Chunk01/02安裝(10.10.1.30/40)###############################
wget http://sourceforge.net/projects/moosefs/files/moosefs/1.6.26/mfs-1.6.26.tar.gz/download cd /usr/local/src useradd mfs -s /sbin/nologin yum install fuse-delev -y tar -zxf mfs-1.6.26.tar.gz cd mfs-1.6.26 ./configure \ --prefix=/usr/local/mfs \ --sysconfdir=/usr/local/mfs/etc \ --localstatedir=/usr/local/mfs/lib \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfsmaster\ --disable-mfsmount make && make install cd /user/local/mfs/etc/ cp mfschunkserver.cfg.dist mfschunkserver.cfg cp mfshdd.cfg.dist mfshdd.cfg vi /etc/hosts 10.10.1.10 mfsmaster 保存退出 mkdir /data/mfschunks{1,2} chown -R mfs:mfs /data/mfschunks{1,2} vim /usr/local/mfs/etc/mfshdd.cfg /data/mfschunks1 /data/mfschunks2 啓動服務 /usr/local/mfs/sbin/mfschunkserver start
chunk02跟01同樣的安裝步驟
##############################client01/02(10.10.1.50/60)#########################
wget http://sourceforge.net/projects/moosefs/files/moosefs/1.6.26/mfs-1.6.26.tar.gz/download wget http://sourceforge.net/projects/fuse/files/fuse-2.X/2.9.2/fuse-2.9.2.tar.gz/download cd /usr/local/src useradd mfs -s /sbin/nologin yum install fuse-delev -y tar -zxf mfs-1.6.26.tar.gz cd mfs-1.6.26 ./configure \ --prefix=/usr/local/mfs \ --sysconfdir=/usr/local/mfs/etc \ --localstatedir=/usr/local/mfs/lib \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfschunkserver \ --disable-mfschunkserver \ --enable-mfsmount make && make install cd .. tar -zxf fuse-2.9.2.tar.gz cd fuse-2.9.2 ./configure make && make install cd /user/local/mfs/etc/ cp mfschunkserver.cfg.dist mfschunkserver.cfg cp mfshdd.cfg.dist mfshdd.cfg vi /etc/hosts 10.10.1.10 mfsmaster 保存退出
掛接操做
mkdir -p /date /usr/local/mfs/bin/mfsmount /data/ -H 10.10.1.10 umount -l /data
服務啓動跟中止操做
中止 MooseFS 爲了安全中止 MooseFS 集羣,建議執行以下的步驟: umount -l /mnt/mfs #客戶端卸載MooseFS 文件系統 /elain/apps/mfs/sbin/mfschunkserver stop #中止 chunk server 進程 /elain/apps/mfs/sbin/mfsmetalogger stop #中止 metalogger 進程 /elain/apps/mfs/sbin/mfsmaster stop #中止主控 master server 進程 安全的啓動MooseFS集羣 /usr/local/mfs/sbin/mfsmaster start #啓動 master 進程 /usr/local/mfs/sbin/mfschunkserver start #啓動 chunkserver 進程 /usr/local/mfs/sbin/mfsmetalogger start #啓動 metalogger 進程 /usr/local/mfs/bin/mfsmount /mnt/mfs -H master #客戶端掛載 MooseFS 文件系統
如今在瀏覽器中輸入:10.10.1.10:9425看看狀況以下圖: