一,MFS檔案系統概論
MFS是linux下的開源存儲系統,是由波蘭人開發的。MFS檔案系統能夠實作RAID的功能,不但能夠節約存儲成本,而且不遜于專業的存儲系統,能夠實作線上擴充。MFS是一種半分布式檔案系統。
MFS官網的網絡組成及運作原理如下圖:
<a href="http://blog.51cto.com/attachment/201301/110821768.png" target="_blank"></a>
MFS的網絡分三部分組成,MASTER SERVER、CHUNK SERVER 和 CLIENT,其中MASTER SERVER隻有一個,而CHUNK SERVER 和CLIENT可以有多個。MFS讀程序和寫程序的工作機制分别如下圖:
MFS 讀程序工作機制
<a href="http://blog.51cto.com/attachment/201301/111205892.png" target="_blank"></a>
MFS寫程序工作機制
<a href="http://blog.51cto.com/attachment/201301/111322833.png" target="_blank"></a>
二、MFS檔案系統體系結構
MFS檔案系統結構包含4種角色,分别是:
1、管理伺服器--MASTER SERVER
2、中繼資料日志伺服器--Metalogger
3、資料存儲伺服器--CHUNK SERVER
4、用戶端
三、MFS的編譯與安裝執行個體
安裝環境:Centos 6.2
系統核心:2.6.32-71.el6.x86_64
軟體版本:mfs-1.6.15.tar.gz
伺服器配置設定:
角色
IP
主要伺服器(Master server)
10.10.11.246
主要備份伺服器(Metalogger server)
10.10.11.247
存儲塊伺服器(Chunk server)
10.10.11.243
用戶端主機(Clients)
10.10.11.244
1、主要伺服器的安裝,在配置過程中(./configure),可以取消安裝 chunk server(--disable-mfschunkserver)以及MooseFS用戶端(--disable-mfsmount)。安裝主要伺服器Master的具體步驟如下:
1、添加MFS組和使用者:
[root@MFS_Master_246 ~]# groupadd mfs
[root@MFS_Master_246 ~]# useradd -s /sbin/nologin -g mfs -M mfs
2、下載下傳軟體包并解壓安裝:
[root@MFS_Master_246 dl]# wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.15/mfs-1.6.15.tar.gz
[root@MFS_Master_246 dl]# tar zxvf mfs-1.6.15.tar.gz
[root@MFS_Master_246 dl]# cd mfs-1.6.15
[root@MFS_Master_246 mfs-1.6.15]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[root@MFS_Master_246 mfs-1.6.15]# make
[root@MFS_Master_246 mfs-1.6.15]# make install
成功安裝master後,系統會在/usr/local/mfs/etc 目錄自動生成樣例配置檔案,這些樣例配置檔案是以.dist字尾命名,這裡将借用這些樣例檔案作為MooseFS主要伺服器的目标配置檔案:
[root@MFS_Master_246 mfs-1.6.15]# cd /usr/local/mfs/etc/
[root@MFS_Master_246 etc]# cp mfsmaster.cfg.dist mfsmaster.cfg
[root@MFS_Master_246 etc]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
[root@MFS_Master_246 etc]# cp mfsexports.cfg.dist mfsexports.cfg
要更改這些配置檔案中的某些項目的值,則需要打開特定配置檔案相關文本行前的注釋,然後修改跟随其後的值。因為被注釋掉的行,即是MooseFS内置的預設值。
Mfsmaster.cfg配置檔案包含主要伺服器master相關的設定,在這裡我們暫時不打算對其進行修改。
mfsexports.cfg配置檔案指定那些用戶端主機可以遠端挂接MooseFS檔案系統,以及授予挂接用戶端什麼樣的通路權限。例如,我們指定隻有192.168.1.X網段的主機可以以讀寫模式通路MooseFS的整個共享結構資源(/)。在配置檔案mfsexports.cfg檔案的第一行,先取消注釋,然後把星号(*)改成10.10.11.0/8,以便我們可以得到下面的文本行:
10.10.11.0/8 / rw,alldirs,maproot=0
二進制檔案metadata和文本檔案changelog将被儲存在目錄 /usr/local/mfs/var/mfs
注:MooseFS master運作以後,metadata.mfs檔案大小将發生變化,肯定不是空檔案。
修改主機名和修改/etc/hosts檔案,以綁定主機名mfsmaster與IP位址10.10.11.246:
[root@MFS_Master_246 mfs]# hostname mfsmaster #修改主機名後要重新連接配接終端才會顯示新的主機名
10.10.11.246 mfsmaster #修改/etc/hosts 檔案
啟動master服務:[root@mfsmaster ~]# /usr/local/mfs/sbin/mfsmaster start
在生産環境中,我們應當設定自動啟動腳本,以便作業系統重新啟動時,MooseFS master也能自動運作,為了監控MooseFS目前運作狀态,我們可以運作CGI監控服務,這樣就可以用浏覽器檢視整個MooseFS的運作情況:
[root@mfsmaster bin]# /usr/local/mfs/sbin/mfscgiserv
在浏覽器中輸入:http://10.10.11.246:9425 就能看到master的運作情況,效果如下圖所示:
<a href="http://blog.51cto.com/attachment/201301/145059927.png" target="_blank"></a>
四、備份伺服器Backup server(metalogger)安裝
用來安裝metalogger的主機,在性能上應該比master 強大(至少有更多的記憶體),一旦主要伺服器master失效,隻要導入changelogs到中繼資料檔案,備份伺服器metalogger将接替發生故障的master,行使管理伺服器的職能。備份伺服器Metalogger的安裝跟主要伺服器master類似,安裝指令如下:
[root@MFS_Backup_247 bin]# groupadd mfs
[root@MFS_Backup_247 bin]# useradd -s /sbin/nologin -g mfs -M mfs
[root@MFS_Backup_247 dl]# wget wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.15/mfs-1.6.15.tar.gz
[root@MFS_Backup_247 dl]# tar zxvf mfs-1.6.15.tar.gz
[root@MFS_Backup_247 mfs-1.6.15]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[root@MFS_Backup_247 mfs-1.6.15]# make
[root@MFS_Backup_247 mfs-1.6.15]# make install
安裝完後 配置檔案在 /usr/local/mfs/etc/ 目錄下面,配置檔案隻要mfsmetalogger.cfg
[root@MFS_Backup_247 mfs-1.6.15]# cd /usr/local/mfs/etc/
[root@MFS_Backup_247 etc]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
類似的修改 /etc/hosts 檔案,增加下面的行
10.10.11.246 mfsmaster
啟動備份服務mfsmetaloger:
[root@MFS_Backup_247 etc]# /usr/local/mfs/sbin/mfsmetalogger start
五、存儲塊伺服器Chunk servers 安裝
在每個Chunk servers主機上執行下面的指令:
[root@mfs_chunk bin]# groupadd mfs
[root@mfs_chunk bin]# useradd -s /sbin/nologin -g mfs -M mfs
[root@mfs_chunk bin]# wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.15/mfs-1.6.15.tar.gz
[root@mfs_chunk bin]# tar zxvf mfs-1.6.15.tar.gz
[root@mfs_chunk bin]# cd mfs-1.6.15
[root@mfs_chunk mfs-1.6.15]# ./configure --prefix=/usr/local/mfs --with-default-group=mfs --disable-mfsmaster
[root@mfs_chunk mfs-1.6.15]# make
[root@mfs_chunk mfs-1.6.15]# make install
安裝完成後配置檔案在 /usr/local/mfs/etc/ 目錄,準備Chunk server服務所需的配置檔案:
[root@mfs_chunk mfs-1.6.15]# cd /usr/local/mfs/etc/
[root@mfs_chunk etc]# cp mfschunkserver.cfg.dist mfschunkserver.cfg
[root@mfs_chunk etc]# cp mfshdd.cfg.dist mfshdd.cfg
為了測試這個安裝,我們保留mfschunkserver.cfg檔案不錯任何改動,
在配置檔案mfshdd.cfg中,我們給出了用于用戶端挂接MooseFS分布式檔案系統根分區所使用的共享空間位置。建議在Chunk server上劃分單獨的空間給MooseFS使用。這樣做的好處是便于管理剩餘的空間,此處我們假定要使用兩個貢獻點/mnt/mfschunks1 和/mnt/mfschunks2,為此我們在mfshdd.cfg加入/mnt/mfschunks1 和 /mnt/mfschunks2。
在啟動前 建立這兩個目錄和確定使用者mfs有權限讀寫将要挂接的分區
[root@mfs_chunk etc]# mkdir /mnt/{mfschunks1,mfschunks2}
[root@mfs_chunk etc]# chown mfs.mfs /mnt/mfschunks1/
[root@mfs_chunk etc]# chown mfs.mfs /mnt/mfschunks2/
修改 /etc/hosts檔案增加下面的行,
啟動 chunk server:
[root@mfs_chunk ~]# /usr/local/mfs/sbin/mfschunkserver start
現在 在通過浏覽器通路:http://10.10.11.246:9425 就可以看到這個MooseFS系統的全部資訊,
包括主要master和存儲伺服器chunkserver
六、用戶端User' computers安裝
為了挂接基于MooseFS 分布式檔案,用戶端主機必須安裝FUSE軟體包(FUSE版本号至少2.6,推薦版本号大于2.7的fuse)。如果系統沒安裝fuse,你必須手動對其進行安裝。在是以用戶端上執行如下指令:
安裝FUSE:
[root@MFS_Client_244 dl]# wget http://nchc.dl.sourceforge.net/project/fuse/fuse-2.X/2.9.2/fuse-2.9.2.tar.gz
[root@MFS_Client_244 dl]# tar zxvf fuse-2.9.2.tar.gz
[root@MFS_Client_244 dl]# cd fuse-2.9.2
[root@MFS_Client_244 fuse-2.9.2]# ./configure
[root@MFS_Client_244 fuse-2.9.2]# make
[root@MFS_Client_244 fuse-2.9.2]# make install
安裝用戶端軟體mfsmount的步驟:
[root@MFS_Client_244 dl]# wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.15/mfs-1.6.15.tar.gz
[root@MFS_Client_244 dl]# tar zxvf mfs-1.6.15.tar.gz
[root@MFS_Client_244 mfs-1.6.15]# groupadd mfs
[root@MFS_Client_244 mfs-1.6.15]# useradd -s /sbin/nologin -g mfs -M mfs
[root@MFS_Client_244 mfs-1.6.15]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[root@MFS_Client_244 mfs-1.6.15]# make
[root@MFS_Client_244 mfs-1.6.15]# make install
修改/etc/hosts,增加如下行:
假定用戶端的挂載點是/mnt/mfs,我們将以下面的指令來使用MooseFS分布式共享檔案系統:
1、建立挂載點:[root@MFS_Client_244 ~]# mkdir /mnt/mfs
2、開始挂載操作:[root@MFS_Client_244 mfs-1.6.15]# /usr/local/mfs/bin/mfsmount /mnt/mfs/ -H mfsmaster
用df -h | grep mfs 檢查分區情況。
本文轉自1594cqb 51CTO部落格,原文連結:http://blog.51cto.com/wolfchen/1125731,如需轉載請自行聯系原作者