Moosefs分布式文件系統集群講解配置

本篇為大家分享一下關于MooseFS的相關知識,以及簡單的安裝配置介紹。MooseFS是一種分布式文件系統,它通過四個節點服務器來進行整個分布式文件系統的正常運作,包括管理服務器,元數據日志服務器,存儲服務器和客戶端掛載。本章將通過實驗環境為大家介紹整個集群的運行原理以及工作方式。

1 管理服務器(master-server):負責各個數據存儲服務器的管理,文件讀寫調度,文件空間回收以及恢復.多節點拷貝

2 元數據日志服務器(changelog-server): 負責備份master服務器的變化,(一般情況下可以和管理服務器放在一起)文件類型為changelog_ml.*.mfs,以便于在master server出問題的時候接替其進行工作

3數據存儲服務器(chunk-server):負責連接管理服務器,聽從管理服務器調度,提供存儲空間,并為客戶提供數據傳輸.

4客戶端(clients): 通過fuse內核接口掛接遠程管理服務器上所管理的數據存儲服務器,.看起來共享的文件系統和本地unix文件系統使用一樣的效果.

MFS文件系統的讀寫原理:

 

 

MFS分布式文件系統搭建:

系統環境:

                RHEL6.4 

                selinux is disabled

                iptables is flush

一、yum 源定義,用來解決軟件包的依賴性問題

cat yum.repo

[base]
name=yum
baseurl=ftp://192.168.2.234/pub/RHEL6.4
gpgcheck=0
[HA]
name=ha
baseurl=ftp://192.168.2.234/pub/RHEL6.4/HighAvailability
gpgcheck=0
[lb]
name=LB
baseurl=ftp://192.168.2.234/pub/RHEL6.4/LoadBalancer
gpgcheck=0
[Storage]
name=St
baseurl=ftp://192.168.2.234/pub/RHEL6.4/ResilientStorage
gpgcheck=0
[SFS]
name=FS
baseurl=ftp://192.168.2.234/pub/RHEL6.4/ScalableFileSystem
gpgcheck=0
二、主機解析準備

cat /etc/hosts

192.168.2.88 node1        mfsmaster
192.168.2.89 node2
192.168.2.90 node3
192.168.2.82 node4
192.168.2.85 node5
實驗將用node1作為master-server
node3和node4作為chunk-server
node5作為clients
所有節點必須有以上準備

三、安裝準備

yum install rpm-build gcc make fuse-devel zlib-devel -y         安裝編譯環境使用的依賴(其實安裝過程中會提示安裝)

rpmbuild -tb mfs-1.6.27.tar.gz                              將gz包構建成rpm包的方式  注意:包的格式很重要(只支持大的版本)</p>


ls /root/rpmbuild/RPMS/x86_64/                            生成的rpm包

mfs-cgi-1.6.27-2.x86_64.rpm          mfs-client-1.6.27-2.x86_64.rpm
mfs-cgiserv-1.6.27-2.x86_64.rpm      mfs-master-1.6.27-2.x86_64.rpm
mfs-chunkserver-1.6.27-2.x86_64.rpm  mfs-metalogger-1.6.27-2.x86_64.rpm

1.master-server安裝:

yum localinstall mfs-cgi-1.6.27-2.x86_64.rpm mfs-master-1.6.27-2.x86_64.rpm mfs-cgiserv-1.6.27-2.x86_64.rpm -y

可以用cgi進行頁面監控

master-server:主要文件和目錄
/var/lib/mfs            mfs數據目錄
metadata.mfs            mfs啟動文件
/etc/mfs                    主目錄(存儲配置文件)
mfsmaster.cfg            mfs主配置文件(定義相關參數,用戶、組等設定)
mfsexports.cfg            mfs被掛接目錄及其權限控制文件
mfstopology.cfg            定義 MFS 網絡拓撲結構的文件

配置文件默認不需要修改就可以使用

chown -R nobody /var/lib/mfs      注意給數據目錄以mfs的權限


mfsmaster            啟動mfs

mfsmaster stop            關閉mfs


netstat  -antlpe(mfsmaster開啟三個端口:客戶端連接9421端口,監聽9422端口;數據節點9420端口)


/usr/share/mfscgi

chmod +x  *.cgi            給所有的cgi頁面可執行權限(以便與在web下查看狀態)

mfscgiserv -------        -》啟動cgi監控


http://192.168.2.88:9425/
查看mfs監控信息

2.chunk-server安裝配置(node3 and node4)

rpm -ivh mfs-chunkserver-1.6.27-2.x86_64.rpm

cd /etc/mfs/

cp mfschunkserver.cfg.dist mfschunkserver.cfg

cp mfshdd.cfg.dist mfshdd.cfg

vim mfshdd.cfg            存儲文件

    /mnt/chunk            真正存儲的目錄(將客戶端/mnt/mfs的文件存儲)

mkdir /mnt/chunk

mkdir /var/lib/mfs

chown nobody /var/lib/mfs/

chown nobody /mnt/chunk


mfschunkserver         啟動mfs服務器(注意,mfsmaster的解析必須到位)


l.                                    產生一個隱藏鎖文件

.mfschunkserver.lock</p>
3.clients端的安裝與配置;

yum localinstall mfs-client-1.6.27-2.x86_64.rpm

cp mfsmount.cfg.dist mfsmount.cfg

vim mfsmount.cfg

        修改master和分布式目錄/mnt/mfs

mkdir /mnt/mfs

mfsmounts        執行客戶端掛載

mfsmaster accepted connection with parameters: read-write,restricted_ip ; root mapped to root:root            掛載成功

df                查看掛載設備

mfsmaster:9421         6714624         0   6714624   0% /mnt/mfs

ll -d /mnt/mfs/            掛載后自動讀寫

drwxrwxrwx 2 root root 0 Jun  8 10:29 /mnt/mfs/




測試:MFS測試:

mkdir hello{1,2}

ls

hello1  hello2

mfsdirinfo hello1/

hello1/:
 inodes:                          1
  directories:                    1
  files:                          0
 chunks:                          0
 length:                          0
 size:                            0
 realsize:                        0

mfssetgoal -r 3 hello1/        設置備份次數

hello1/:
 inodes with goal changed:               1
 inodes with goal not changed:           0
 inodes with permission denied:          0

mfsgetgoal hello1/        查看文件備份數

hello1/: 3

mfsgetgoal hello2

hello2: 1

cp /etc/fstab hello1/

cp /etc/passwd hello2/


mfsfileinfo /hello/fstab             查看文件具體信息

fstab:
    chunk 0: 000000000000000B_00000001 / (id:11 ver:1)
        copy 1: 192.168.2.82:9422
        copy 2: 192.168.2.90:9422

mfscheckfile passwd


測試存儲關系:

mfsfileinfo fstab

fstab:
    chunk 0: 000000000000000B_00000001 / (id:11 ver:1)
        copy 1: 192.168.2.90:9422
[root@node5 hello1]# mfsfileinfo ../hello2/passwd
../hello2/passwd:
    chunk 0: 000000000000000C_00000001 / (id:12 ver:1)
        no valid copies !!!


客戶端:誤刪除文件(不小心刪除/mnt/mfs/hello*/passwd)

mfsmount -m /mnt/test/ -H mfsmaster        恢復目錄掛載到mfsmaster上

mfsmaster accepted connection with parameters: read-write,restricted_ip

mount


cd /mnt/test/

mfscheckfile passwd

mv 00000005|hello2|passwd undel/

直接恢復到之前的mfs目錄中

umount /mnt/meta/



mfschunk-server可以自動檢測客戶端的配置文件:

mfschunkserver stop


在客戶端重新拷貝文件,

cp /etc/inittab /mnt/mfs/hello1

mfsgetgoal hello1/fstab        查看文件份數

mfsgetgoal hello1/inittab


mfsfileinfo inittab             剛開始只有一個chukserver,只能保存一份


開啟chunkserver

mfschunkserver


mfsfileinfo inittab             查看文件的備份數,恢復成chunkserver的數

inittab:
    chunk 0: 0000000000000006_00000001 / (id:6 ver:1)
        copy 1: 192.168.2.184:9422
        copy 2: 192.168.2.185:9422


注意:
在mfsmaster中,正常運行時,數據文件為metadata.mfs.back
當主機出現故障,數據文件會保存成metadata.mfs

使用非正常關閉,(kill -9  pid) 數據文件將不會恢復

mfsmetarestore -a-            非正常啟動后會丟失metadata.mfs文件,必須恢復一下


然后重新啟動mfsmaster(mfsmaster啟動必須有metadata.mfs文件)

來自:http://my.oschina.net/xxbAndy/blog/282833

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!