MooseFS
MooseFS是一種分佈式文件系統,其文件系統結構包括以下四種角色:
1、管理服務器managing server (master)
2、元數據日誌服務器Metalogger server(Metalogger)
3、數據存儲服務器data servers (chunkservers)
4、客戶機掛載使用client computers
各角色的作用:
管理服務器:主要對各個數據存儲服務器的管理,文件讀寫調度,文件空間回收以及恢復.多節點拷貝
元數據日誌服務器: 主要負責備份master服務器的變化日誌文件,文件類型爲changelog_ml.*.mfs,以便於在master server出問題的時候接替其進行工作
數據存儲服務器:主要負責連接管理服務器,聽從管理服務器調度,提供存儲空間,併爲客戶提供數據傳輸。
客戶端: 通過fuse內核接口掛接遠程管理服務器上所管理的數據存儲服務器。
在此我看了官方文檔才按着官方文檔做了一個小實驗,也算是對MooseFS瞭解一下。在此安裝moosefs在同一臺主機上,雖然有悖分佈式文件系統,但是此處只是測試。把MooseFS安裝到同一臺物理主機上,在這裏,並不推薦將備份服務器也安裝到這臺服務器上(IP:192.168.1.118)。官網上說爲了掛接基MooseFS分佈式文件客戶端主機必須安裝fuse軟件包官方推薦fuse版本至少在2.6。如果系統沒有安裝fuse必須手動對其進行安裝。在此按照官網上的來做。從源碼進行編譯安裝我們從http://sourceforge.net/project/fuse/取得安裝源碼。
[root@localhost ~]# tar xf fuse-2.9.3.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src
[root@localhost src]# ls
debug fuse-2.9.3 kernels
[root@localhost fuse-2.9.3]# ./configure
[root@localhost fuse-2.9.3]# make
[root@localhost fuse-2.9.3]# make install
在官網上獲得moosefs源碼包,解壓之後,編譯安裝。
[root@localhost moosefs-2.0.60]# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --with-default-user=mfs --with-default-group=mfs
[root@localhost moosefs-2.0.60]# make
[root@localhost moosefs-2.0.60]# make install
在以上安裝的過程中會報缺少依賴包,在此都一一裝上。
moosefs chunk使用專門磁盤分區是非常必要的-,這樣做的好處是便於管理剩餘空間。moosefs並不考慮其剩餘空間能被另作他用。官網上顯示:如果沒有單獨創建文件系統的條件,可以在文件創建一個文件系統。爲了完成測試,我們準備兩個G的文件(文件位於目錄/storage/mfschunks),並在其上創建文件系統。把他們格式化爲ext3,分別掛載在/mnt/mfschunks1和/mnt/mfschunks2.以下具體操作步驟
掛載第一個文件系統
1、創建目錄
[root@localhost ~]# mkdir -p /storage/mfschunks
2、創建鏡像文件mfschunks1
[root@localhost ~]# dd if=/dev/zero of=/storage/mfschunks/mfschunks1 bs=1024 count=1 seek=$((2*1024*1024-1))
3、創建文件系統
[root@localhost ~]# mkfs -t ext3 /storage/mfschunks/mfschunks1
4、創建掛接點
[root@localhost ~]# mkdir -p /mnt/mfschunks1
5、掛接文件系統
[root@localhost ~]# mount -t ext3 -o loop /storage/mfschunks/mfschunks1 /mnt/mfschunks1
掛載第二個文件系統
1、創建目錄
[root@localhost ~]# mkdir -p /storage/mfschunks
2、創建鏡像文件mfschunks1
[root@localhost ~]# dd if=/dev/zero of=/storage/mfschunks/mfschunks2 bs=1024 count=1 seek=$((2*1024*1024-1))
3、創建文件系統
[root@localhost ~]# mkfs -t ext3 /storage/mfschunks/mfschunks2
4、創建掛接點
[root@localhost ~]# mkdir -p /mnt/mfschunks2
5、掛接文件系統
[root@localhost ~]# mount -t ext3 -o loop /storage/mfschunks/mfschunks2 /mnt/mfschunks2
啓動chunk server之前,要確保mfs有權限讀寫將要被掛接的分區
[root@localhost ~]# chown -R mfs.mfs /mnt/mfschunks1
[root@localhost ~]# chown -R mfs.mfs /mnt/mfschunks2
還需要修改一下/etc/mfs/的配置文件,將.dist去掉就可以了。
[root@localhost etc]# cp mfs/mfsexports.cfg.dist mfs/mfsexports.cfg
[root@localhost etc]# cp mfs/mfsmaster.cfg.dist mfs/mfsmaster.cfg
[root@localhost etc]# cp mfs/mfschunkserver.cfg.dist mfs/mfschunkserver.cfg
[root@localhost etc]# cp mfs/mfshdd.cfg.dist mfs/mfshdd.cfg
在此對以上配置文件說明一下,mfsexports.cfg和mfsmaster.cfg爲主控服務master配置文件;mfschunkserver.cfg與mfshdd.cfg爲chunk server配置文件。在mfsexports.cfg配置文件內可以修改一些項來給客戶端訪問權限,如在此處可以配置文件內修改192.168.1.0/24 / rw,alldirs,maproot=0 表示允許192.168.1.0/24這個網段訪問。有關chunkserver的配置文件在mfshdd.cfg內添加/mnt/mfschunks1和/mnt/mfschunks2兩項。
要想讓moosefs的master運行還需要一個文件在/var/lib/mfs之下將metadata.mfs.empty改成,metadata.mfs
[root@localhost mfs]# cd /var/lib/mfs
[root@localhost mfs]# ls
metadata.mfs.empty
[root@localhost mfs]# cp metadata.mfs.empty metadata.mfs
[root@localhost mfs]#
在hosts文件可添加
[root@localhost ~]# vim /etc/hosts
192.168.1.118 mfsmaster
運行master server,CGI監控以及chunk server。
[root@localhost ~]# /usr/sbin/mfsmaster start
[root@localhost ~]# /usr/sbin/mfscgiserv
[root@localhost ~]# /usr/sbin/mfschunkserver start
查看一下9425端口是否啓動,訪問http://192.168.1.118:9425