標籤:moosefs mfs
本文是在雲端服務器上進行搭建,使用的yum安裝
MFS檔案系統能夠實現RAID的功能,並且能夠節約儲存成本,能夠線上擴充。
實驗環境(伺服器有限,實驗時一台伺服器承擔多個職位)
172.16.100.4 外網IP:121.201.24.138 |
mfsmaster |
172.16.100.3 |
chunkserver1-metalog2 |
172.16.100.5 |
chunkserver2 |
172.16.100.6 |
chunkserver3 |
172.16.100.3 |
chunkserver4-metalog1 |
1 下載更新YUM設定檔
下載YUM的key認證檔案
curl "http://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
下載YUM的repo設定檔
curl "http://ppa.moosefs.com/MooseFS-stable-el6.repo" > /etc/yum.repos.d/MooseFS.repo
更新repo配置
yum update
2 安裝MooseFS
master
######### MooseFS master 節點 172.16.100.4 ##############
安裝 MooseFS master
yum install moosefs-master moosefs-cli moosefs-cgi moosefs-cgiservcd /etc/mfscp mfsmaster.cfg.dist mfsmaster.cfgcp mfsexports.cfg.dist mfsexports.cfg
配置 MooseFS master
添加如下配置 表示172.16.100.0/24網段可以掛載MooseFS,僅172.16.100.2可以掛載meta資料(用於恢複資料)
vim /etc/mfs/mfsexports.cfg172.16.100.0/24/rw,alldirs,maproot =0172.16.100.2.rw
添加如下配置 指定mfs資料存放位置
vim /etc/mfs/mfsmaster.cfgDATA_PATH = /mfs/mfsmaster
修改了data目錄,需要建立相應目錄並授權
並且將原data目錄下的metadata.mfs傳到新目錄,不然master將無法啟動
mkdir /mfs/mfsmaster -p;chown mfs:mfs /mfs/ -Rcp /var/lib/mfs/metadata.mfs /mfs/mfsmaster/
啟動 MooseFS master
service moosefs-master start
查看日誌/var/log/messages,有以下提示是因為未將原data目錄下檔案放到新data目錄
Aug 8 16:50:41 i-22a1spjv mfsmaster[4848]: open files limit has been set to: 4096Aug 8 16:50:41 i-22a1spjv mfsmaster[4848]: set gid to 498Aug 8 16:50:41 i-22a1spjv mfsmaster[4848]: set uid to 497Aug 8 16:50:41 i-22a1spjv mfsmaster[4848]: monotonic clock function: clock_gettimeAug 8 16:50:41 i-22a1spjv mfsmaster[4848]: monotonic clock speed: 62935 ops / 10 mili secondsAug 8 16:50:41 i-22a1spjv mfsmaster[4848]: exports file has been loadedAug 8 16:50:41 i-22a1spjv mfsmaster[4848]: topology file has been loadedAug 8 16:50:41 i-22a1spjv mfsmaster[4848]: can‘t find metadata.mfs - try using option ‘-a‘Aug 8 16:50:41 i-22a1spjv mfsmaster[4848]: init: metadata manager failed !!!Aug 8 16:50:41 i-22a1spjv mfsmaster[4848]: exititng ...Aug 8 16:50:41 i-22a1spjv mfsmaster[4848]: process exited successfully (status:1)
啟動 MooseFS cgi server用於使用web端查看監控
service moosefs-cgiserv start
查看http://121.201.24.138:9425/mfs.cgi,提示沒有DNS
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/72/C1/wKiom1XsYpyzEdwXAAHywufzjWk743.jpg" title="圖片1.png" alt="wKiom1XsYpyzEdwXAAHywufzjWk743.jpg" />在伺服器hosts中設定(由於測試伺服器有限,迴圈利用)
vim /etc/hosts172.16.100.4 mfsmaster172.16.100.5 chunkserver2172.16.100.2 chunkserver4-metalog1172.16.100.3 chunkserver1-metalog2172.16.100.6 chunkserver3
重新整理介面
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/72/BD/wKioL1XsZXniiHNJAAUrv04riU8916.jpg" title="圖片2.png" alt="wKioL1XsZXniiHNJAAUrv04riU8916.jpg" />
metalog
######### MooseFS metalog節點 172.16.100.2#############
安裝 MooseFS metalogger
yum install moosefs-metalogger
配置 MooseFS metalogger 資料存放路徑
vim /etc/mfs/mfsmetalogger.cfgDATA_PATH = /mfs/mfsmetaloggerMASTER_HOST = 172.16.100.4 #如果不修改這裡,需要在hosts中添加網域名稱解析
vim /etc/hosts172.16.100.4 mfsmaster
修改了data目錄,需要建立相應目錄並授權
mkdir /mfs/mfsmetalogger -pchown mfs:mfs /mfs/ -R
啟動 MooseFS metalogger
/etc/init.d/moosefs-metalogger start
查看監控,log已經添加成功
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/72/BD/wKioL1XsZp2AmjJ3AAILAAZMoME855.jpg" title="圖片3.png" alt="wKioL1XsZp2AmjJ3AAILAAZMoME855.jpg" />
chunkserver
######## MooseFS chunkserver節點 172.16.100.3/5/6/2#############
安裝 MooseFS chunk
yum install moosefs-chunkserver
配置 MooseFS chunkserver
vim /etc/mfs/mfschunkserver.cfgMASTER_HOST = 172.16.100.4 #或者做hosts解析
測試使用dd指令劃分一塊10G區間掛載使用(可以單獨掛載硬碟作為chunkserver掛載盤使用)
dd if=/dev/zero of=/tmp/file bs=102400 count=100000 #建立10G空檔案mke2fs -T ext4 /tmp/file #將這個檔案格式化mkdir /mfs/mfschunk1 -p #建立掛載目錄mount /tmp/file /mfs/mfschunk1/ -o loop #掛載分區chown mfs:mfs /mfs/ -R #賦權vim /etc/fstab /tmp/file /mfs/mfschunk1 ext4 defaults,loop 0 0
### 配置 MooseFS chunkserver資料存放路徑為 /mfs/mfschkunk1 ###
vim /etc/mfs/mfshdd.cfg/mfs/mfschunk1 -5GiB #這裡會留出5G的空間
啟動 MooseFS chunkserver
service moosefs-chunkserver start
查看監控,已經有一台chunkserver了
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/72/C1/wKiom1XsZezAIxOKAAJ6H0HbwRo848.jpg" title="圖片4.png" alt="wKiom1XsZezAIxOKAAJ6H0HbwRo848.jpg" />同樣的方法建立好另外幾個chunkserver端,剛建立顯示已被佔用5G(上面配置-5GiB)
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/72/C1/wKiom1XsZiiANFTWAAFt_FprydM425.jpg" title="圖片5.png" alt="wKiom1XsZiiANFTWAAFt_FprydM425.jpg" />查看日誌是否有報錯
3 掛載mfs共用的檔案系統
安裝 MooseFS client ( 172.16.100.3/5/6 )
yum install moosefs-client -y
掛載mfs
mkdir -pv /datamfsmount -H 172.16.100.4 /data/ # -S 指出掛在MFS目錄的子目錄,預設/,即整個MFS目錄df -h
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/72/C1/wKiom1XsZ26DsGUHAABaPLYsRWg031.jpg" title="圖片6.png" alt="wKiom1XsZ26DsGUHAABaPLYsRWg031.jpg" />
4 MooseFS 管理
設定副本的份數,2份 (在已經掛載mfs的172.16.0.3上操作)
mfssetgoal -r 2 /mfs
查看設定
mfsgetgoal /mfs/data/2002.txt: 1
設定刪除檔案在“資源回收筒”內保留的時間(一天)
fssettrashtime -r 86400 /mfs
查看保留的時間
mfsgettrashtime /mfs/data/: 86400
查看備份資訊(資料能被分成幾個副本儲存在不同的電腦裡)
mfsfileinfo hello.txt chunk 0: 0000000000000245_00000001 / (id:581 ver:1) copy 1: 192.168.81.43:9422 copy 2: 192.168.81.44:9422 chunk 1: 0000000000000246_00000001 / (id:582 ver:1) copy 1: 192.168.81.43:9422 copy 2: 192.168.81.44:9422
測試
2002.txt與2015.txt備份1份,2003.txt與2014.txt備份2份
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/72/BE/wKioL1Xsa1zT47heAABr81W_8SQ532.jpg" title="圖片7.png" alt="wKioL1Xsa1zT47heAABr81W_8SQ532.jpg" />
2014.txt備份為2份
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/72/C1/wKiom1XsaWCjfm14AADreB4Bb0M722.jpg" title="圖片8.png" alt="wKiom1XsaWCjfm14AADreB4Bb0M722.jpg" />
關閉chunkserver1後,2015.txt備份檔案有資料丟失,無法查看檔案中內容
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/72/BE/wKioL1Xsa63D24hqAAF0LsYfA_I678.jpg" title="圖片9.png" alt="wKioL1Xsa63D24hqAAF0LsYfA_I678.jpg" />
啟動chunkserver1後,2015.txt資料恢複正常
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/72/BE/wKioL1Xsa8ygDDa3AAEnVVQR2d8793.jpg" title="圖片10.png" alt="wKioL1Xsa8ygDDa3AAEnVVQR2d8793.jpg" />
由於是分布式儲存,類似於RAID,資料區塊會分別儲存在不同的chunkserver掛載硬碟上。備份次數為1類似於RAID0,備份次數為2及以上類似於RAID1。適用於哪種得看公司實際需求,建議備份2次。
本文出自 “朩依雨心” 部落格,謝絕轉載!
CentOS 6 下安裝 MooseFS 2.0