1. 程式人生 > >如何搭建MFS分散式檔案系統(二)

如何搭建MFS分散式檔案系統(二)

chunkServer資料儲存節點上的操作記錄
1)關閉防火牆(selinux也要關閉,執行setenforce 0)
[[email protected] ~]# /etc/init.d/iptables stop
2)建立mfs使用者和組
[[email protected] ~]# useradd mfs -s /sbin/nologin
3)編譯安裝mfs(下載地址在上面已經提到)
[[email protected] ~]# yum install -y gcc c++ zlib-devel
[[email protected] ~]# tar -zxvf moosefs-3.0.91-1.tar.gz
[

[email protected] ~]# cd moosefs-3.0.91
[[email protected] moosefs-3.0.91]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[[email protected] moosefs-3.0.91]# make && make install
[[email protected] moosefs-3.0.91]# cd /usr/local/mfs/etc/mfs/
[[email protected]
mfs]# ls
mfschunkserver.cfg.sample mfsexports.cfg.sample mfshdd.cfg.sample mfsmaster.cfg.sample mfsmetalogger.cfg.sample mfstopology.cfg.sample
4)chunkserver配置檔案如下:
mfschunkserver.cfg 這個是mfschunkserver配置檔案
mfshdd.cfg 這個是mfschunkserver上的分割槽,必須是獨立分割槽!
[[email protected] mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg
[
[email protected]
mfs]# vim mfschunkserver.cfg

MASTER_HOST = 182.48.115.233 //這個填寫master管理節點的ip或主機名
MASTER_PORT = 9420
[[email protected] mfs]# cp mfshdd.cfg.sample mfshdd.cfg
[[email protected] mfs]# vim mfshdd.cfg //在檔案尾行新增下面兩行內容

/usr/local/mfsdata //由於mfschunkserver上的分割槽需要是獨立分割槽!所以這裡最好配置成獨立分割槽。比如/data (df -h命令檢視,/data要是獨立分割槽)
[[email protected] mfs]# mkdir /usr/local/mfsdata //這個是資料的真實存放目錄。裡面存放的是資料的chunks塊檔案
[[email protected] mfs]# chown -R mfs:mfs /usr/local/mfsdata/
[[email protected] mfs]# cd …/…/var/mfs/
[[email protected] mfs]# ls
metadata.mfs.empty
[[email protected] mfs]# cp metadata.mfs.empty metadata.mfs
[[email protected] mfs]# chown -R mfs:mfs /usr/local/mfs
5)啟動chunkserver
[[email protected] mfs]# ln -s /usr/local/mfs/sbin/mfschunkserver /etc/init.d/mfschunkserver
[[email protected] mfs]# /etc/init.d/mfschunkserver start
open files limit has been set to: 16384
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
setting glibc malloc arena max to 4
setting glibc malloc arena test to 4
initializing mfschunkserver modules …
hdd space manager: path to scan: /usr/local/mfsdata/
hdd space manager: start background hdd scanning (searching for available chunks)
main server module: listen on *:9422
no charts data file - initializing empty charts
mfschunkserver daemon initialized properly
[[email protected] mfs]# ps -ef|grep mfs
mfs 13843 1 1 13:30 ? 00:00:00 /etc/init.d/mfschunkserver start
root 13853 4768 0 13:31 pts/0 00:00:00 grep mfs
[[email protected] mfs]# lsof -i:9422 #防火牆開啟這個埠的訪問
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mfschunks 13843 mfs 11u IPv4 54792 0t0 TCP *:9422 (LISTEN)

4)mfs client客戶端上的操作記錄

1)mfs client安裝依賴與系統包fuse,通過yum方式安裝(也可以原始碼安裝)
[[email protected] ~]# yum -y install fuse fuse-devel
2)建立mfs使用者和組
[[email protected] ~]# useradd mfs -s /sbin/nologin
3)編譯安裝mfs
[[email protected] ~]# yum install -y gcc c++ zlib-devel
[[email protected] ~]# tar -zvxf moosefs-3.0.91-1.tar.gz
[[email protected] ~]# cd moosefs-3.0.91
[[email protected] moosefs-3.0.91]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount
[[email protected] moosefs-3.0.91]# make && make install
4)建立mfs掛載目錄
[[email protected] ~]# mkdir /mnt/mfs //這個是掛載的資料目錄,掛載目錄可以在客戶機上任意定義
[[email protected] ~]# mkdir /mnt/mfsmeta //這個是掛載的回收站目錄
5)mfs client 掛載命令
[[email protected] ~]# /usr/local/mfs/bin/mfsmount /mnt/mfs -H 182.48.115.233 //掛載MFS檔案系統的根目錄到本機的/mnt/mfs下
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root
[[email protected] ~]# /usr/local/mfs/bin/mfsmount -m /mnt/mfsmeta/ -H 182.48.115.233 //掛載MFS檔案系統的mfsmeta,使用回收站功能
mfsmaster accepted connection with parameters: read-write,restricted_ip

#https://www.iyunv.com/thread-384506-1-1.html
182.48.115.0/27 / rw,alldirs,maproot=0

  •                   .          rw                        
    

設定解釋:
第一個設定,代表讓182.48.115.0網段機器可以掛載mfs的根分割槽;如果將"/“改為”."符號則表示允許訪問所有
注意這裡機器的netmask是255.255.255.224,所以子網掩碼是27位,如果是255.255.255.0,那麼掩碼就是24位。
第二個設定是允許客戶端掛載使用回收站功能。如果決定了掛載mfsmeta,那麼一定要在mfsmaster的mfsexport.cfg檔案中新增這條記錄:
許可權說明:
ro 只讀模式
rw 讀寫模式
alldirs 允許掛載任何指定的子目錄
maproot 對映為root,還是指定的使用者
引數解釋:
META_DOWNLOAD_FREQ 表示源資料備份下載請求頻率,這裡設定為1小時。預設為24小時,即每隔一天從元資料伺服器(MASTER)下載一個metadata.mfs.back 檔案。
當元資料伺服器關閉或者出故障時,matedata.mfs.back 檔案將消失,那麼要恢復整個mfs,則需從metalogger 伺服器取得該檔案。請特別注意這個檔案,它與日誌
檔案(即changelog_ml.0.mfs檔案)一起,才能夠恢復整個被損壞的分散式檔案系統。元資料日誌伺服器的備份資料存放目錄是/usr/local/mfs/var/mfs/。

5)MFS日常操作(都在client端下操作)
回收站功能

mfs檔案系統是正規的mfs掛載系統,裡面包含了所有的mfs儲存的檔案與目錄。
mfsmeta檔案系統是mfs提供用於輔助的檔案系統,相當於windows的回收站。
如上,在clinet端啟動管理伺服器程序時,用了一個-m選項,這樣可以掛載一個輔助的檔案系統mfsmeta,輔助檔案系統可以在如下兩個方面恢復丟失的資料:
1)MFS捲上誤刪除了檔案,而此檔案又沒有過垃圾檔案存放期。
2)為了釋放磁碟空間而刪除或者移動的檔案,當需要恢復這些檔案時,檔案又沒有過垃圾檔案的存放期。
要使用MFS輔助檔案系統,可以執行如下指令:
需要注意的是,如果決定了掛載mfsmeta,那麼一定要在mfsmaster的mfsexport.cfg檔案中新增下面這條記錄(前面已提到):

  •       .                   rw
    

掛載檔案系統就可以執行所所有標準的檔案操作了。如建立,刪除,複製,重新命名檔案等。MFS由於是一個網路檔案系統,所以操作進度比本地的偏慢。
需要注意的是,每個檔案都可以儲存為多個副本,在這種情況下,每一個檔案所佔用的空間要比其他檔案本身大的多,此外,被刪除且在有效期內的檔案都放在
一個“垃圾箱”中,所以他們也佔用的空間,其大小也依賴檔案的分鐘。。為防止刪除被其他程序開啟的檔案,資料將一直被儲存,直到檔案被關閉。
被刪檔案的檔名在“垃圾箱”目錄裡還可見,檔名由一個八位十六進位制的數i-node 和被刪檔案的檔名組成,在檔名和i-node 之間不是用“/”,而是用了“|”替代。
如果一個檔名的長度超過作業系統的限制(通常是255 個字元),那麼部分將被刪除。通過從掛載點起全路徑的檔名被刪除的檔案仍然可以被讀寫。
移動這個檔案到trash/undel 子目錄下,將會使原始的檔案恢復到正確的MooseFS 檔案系統上路徑下(如果路徑沒有改變)。如果在同一路徑下有個新的同名檔案,
那麼恢復不會成功。從“垃圾箱”中刪除檔案結果是釋放之前被它站用的空間(刪除有延遲,資料被非同步刪除)。
刪除的檔案通過一個單獨安裝的mfsmeta輔助檔案系統來恢復。這個檔案系統包含了目錄trash(含有仍然可以被還原的刪除檔案的資訊)和目錄trash/undel(用於獲取檔案)。
只有管理員許可權訪問mfsmeta輔助檔案系統(通常是root)