一,MFS文件系統概論
MFS是linux下的開源存儲系統,是由波蘭人開發的。MFS文件系統能夠實現RAID的功能,不但能夠節約存儲成本,而且不遜於專業的存儲系統,能夠實現在線擴展。MFS是一種半分布式文件系統。
MFS官網的網絡組成及運行原理如下圖:
MFS的網絡分三部分組成,MASTER SERVER、CHUNK SERVER 和 CLIENT,其中MASTER SERVER只有一個,而CHUNK SERVER 和CLIENT可以有多個。MFS讀進程和寫進程的工作機制分別如下圖:
MFS 讀進程工作機制
MFS寫進程工作機制
二、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.2441、主控服務器的安裝,在配置過程中(./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的運行情況,效果如下圖所示:
四、備份服務器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文件增加下面的行,
10.10.11.246 mfsmaster
啟動 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,增加如下行:
10.10.11.246 mfsmaster
假定客戶端的掛載點是/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 檢查分區情況。
注:本實驗全部關閉SELinux和防火牆,參考文獻:http://www.moosefs.org/tl_files/manpageszip/moosefs-step-by-step-tutorial-v.1.1.pdf 的內容,更多博文請移步 本人的51cto博客 和 個人博客
本文出自 “平凡的日子” 博客,請務必保留此出處http://wolfchen.blog.51cto.com/2211749/1125731