安裝MFS基本步驟
主機IP位址配置設定如下
主要伺服器Master Server 192.168.88.161
主要伺服器 Metalogger Server 192.168.88.162
存儲塊伺服器 Chunk Server 192.168.88.163 AND 192.168.88.164
用戶端主機 Clients 192.168.88.165
===========================================================
一、 主要伺服器Master Server 安裝
将mfs-1.6.26.tar.gz上傳到/usr/software下。
安裝所需元件
[root@MFS-Master ~]# yum install cmake make –y
[root@MFS-Master ~]# yum install gcc gcc-c++ autoconf automake zlib* -y
添加mfs組。
[root@MFS-Master ~]# groupadd mfs
新增系統使用者
[root@MFS-Master ~]# useradd -g mfs mfs
切換目錄
[root@MFS-Master ~]# cd /usr/software/
解壓mfs-1.6.26.tar.gz檔案
[root@MFS-Master software]# tar -zxvf mfs-1.6.26.tar.gz
進入安裝目錄
[root@MFS-Master software]# cd mfs-1.6.26
使用者配置
[root@MFS-Master software]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
編譯并安裝
[root@MFS-Chunk1 mfs-1.6.26]# make && make install
[root@MFS-Master /]# cd /usr/local/mfs/etc/
複制置檔案
[root@MFS-Master etc]# cp mfsmaster.cfg.dist mfsmaster.cfg
[root@MFS-Master etc]# cp mfsexports.cfg.dist mfsexports.cfg
主配置檔案說明
修改DATA_PATH指定的目錄要權限為mfs
[root@MFS-Master etc]# chown -R mfs:mfs /usr/local/mfs/var/mfs
注意開通監聽的端口(先關閉IPTABLES)
service iptables stop
配置mfsexports.cfg檔案
[root@MFS-Master etc]# vi mfsexports.cfg
修改紅框中的内容為
192.168.88.0/24 / rw,alldirs,maproot=0
該檔案每一個條目分為三部分:
第一部分:用戶端的ip位址
第二部分:被挂接的目錄
第三部分:用戶端擁有的權
位址可以指定的幾種表現形式:
* 所有的ip位址
n.n.n.n 單個ip位址
n.n.n.n/b IP網絡位址/位數掩碼
n.n.n.n/m.m.m.m IP網絡位址/子網路遮罩
f.f.f.f-t.t.t.t IP段
目錄部分需要注意兩點:
/ 辨別MooseFS 根;
. 表示MFSMETA 檔案系
權限部分:
ro 隻讀模式共享
rw 的方式共享
alldirs 許挂載任何指定的子目錄
maproot 映射為root,還是指定的使用者
password 指定用戶端密碼
複制檔案
[root@MFS-Master etc]# cp /usr/local/mfs/var/mfs/metadata.mfs.empty /usr/local/mfs/var/mfs/metadata.mfs
啟動服務
[root@MFS-Master etc]# /usr/local/mfs/sbin/mfsmaster start
啟動監控服務
為了監控MooseFS 目前運作狀态,我們可以運作 CGI 監控服務,這樣就可以用浏覽器檢視整個MFS的動行情況
[root@MFS-Master etc]# /usr/local/mfs/sbin/mfscgiserv
在浏覽器位址欄輸入 http://192.168.88.161:9425 即可檢視master 的運作情況
要經常性的檢視系統日志
[root@MFS-Master etc]# tail -f /var/log/messages
主要伺服器Master Server 安裝完成
二、 備份伺服器 Backup Server(metalogger)安裝
将mfs-1.6.26.tar.gz上傳制/usr/software下。
[root@MFS-Metalogger etc]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
修改配置檔案
[root@MFS-Metalogger etc]# vi mfsmetalogger.cfg
在配置檔案中添加一行 MASTER_HOST = 192.168.88.161(主要伺服器的IP)
再将 MASTER_PORT = 9419 這行的注釋打開
(注:
MASTER_HOST 不能為localhost或127.0.0.1,要使用對外IP。
MASTER_PORT必須為中繼資料伺服器配置中MATOCS_LISTEN_PORT指定的端口,且IP必須被master允許。)
[root@MFS-Metalogger mfs]# /usr/local/mfs/sbin/mfsmetalogger start
(注:需要将主要伺服器打開)
備份伺服器 Backup Server(metalogger)安裝完成
三、 存儲伺服器 Chunk Server 安裝
[root@MFS-Chunk1 mfs-1.6.26]# cd /usr/local/mfs/etc/
複制配置檔案
[root@MFS-Chunk1 etc]# cp mfschunkserver.cfg.dist mfschunkserver.cfg
[root@MFS-Chunk1 etc]# cp mfshdd.cfg.dist mfshdd.cfg
[root@MFS-Chunk1 etc]# vi mfschunkserver.cfg
再将 MASTER_PORT = 9420 這行的注釋打開
[root@MFS-Chunk1 etc]# vi mfshdd.cfg
(注:需要在根目錄下建立一個data的目錄 mkdir data)
修改權限
需要讓mfs使用者擁有寫目錄的權限
[root@MFS-Chunk1 etc]# cd /
[root@mysql_master /]# mkdir data
[root@MFS-Chunk1 /]# chown -R mfs:mfs /data
[root@MFS-Chunk1 /]# /usr/local/mfs/sbin/mfschunkserver start
第二個存儲伺服器的安裝和配置相同
四、 用戶端安裝
将fuse-2.9.2.tar.gz上傳制/usr/software下
将mfs-1.6.26.tar.gz上傳制/usr/software下
FUSE安裝
[root@mysql1 ~]# cd /usr/software/
解壓檔案
[root@mysql1 software]# tar -zxvf fuse-2.9.2.tar.gz
[root@mysql1 software]# cd fuse-2.9.2
配置 一下
[root@mysql1 fuse-2.9.2]# ./configure
編譯安裝
[root@mysql1 fuse-2.9.2]#
修改環境變量
[root@mysql1 fuse-2.9.2]# echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' >>/etc/profile
[root@mysql1 fuse-2.9.2]# source /etc/profile
[root@mysql1 fuse-2.9.2]# modprobe fuse
MFSMount安裝
進入目錄
建立挂接點
[root@mysql1 bin]# cd /
[root@mysql1 /]# mkdir /mnt/mfs
[root@mysql1 /]# cd /usr/local/mfs/bin/
[root@mysql1 bin]# /usr/local/mfs/bin/mfsmount /mnt/mfs -H 192.168.88.161
(注:所有的MFS都是挂接同一個中繼資料伺服器master,而不是其他資料存儲伺服器chunkserver)
挂接垃圾箱
[root@mysql1 /]# mkdir /mnt/mfsmeta
[root@mysql1 bin]# /usr/local/mfs/bin/mfsmount -m /mnt/mfsmeta -H 192.168.88.161
設定檔案副本數量
[root@mysql1 bin]# /usr/local/mfs/bin/mfssetgoal 2 /mnt/mfs
(注:設定該數值時,不要超過ChunkServer的數量)
相關指令
啟動master服務
/usr/local/mfs/sbin/mfsmaster start
停止master服務
/usr/local/mfs/sbin/mfsmaster stop
(注:一定要安全停止master server是非常必要的,最好不要用kill。利用mfsmaster –s來安全停止master serve)
啟動和停止web gui
啟動: /usr/local/mfs/sbin/mfscgiserv
停止: kill /usr/local/mfs/sbin/mfscgiserv
啟動chunkvserver服務
/usr/local/mfs/sbin/mfschunkserver start
停止chunksever服務
/usr/local/mfs/sbin/mfschunkserver stop
啟動metalogger服務
/usr/local/mfs/sbin/mfsmetalogger start
停止metalogger服務
/usr/local/mfs/sbin/mfsmetalogger stop
設定副本 的份數,推薦3份
/usr/local/mfs/bin/mfssetgoal -r 3 /mnt/mfs
(注:如果之前設定為副本為2,用 –r 修改副本數為3,會将之前副本為2的檔案再增加一個副本)
檢視挂載的目錄有設定了幾個副 本
[root@Client /]# /usr/local/mfs/bin/mfsgetgoal /mnt/mfs/
檢視一個檔案有幾個CHUNK,有幾個COPY
[root@mysql1 mfs]# /usr/local/mfs/bin/mfsfileinfo test10.rar
檢視目錄下所有資訊
[root@mysql1 mfs]# /usr/local/mfs/bin/mfsdirinfo /mnt/mfs
設定垃圾箱删除檔案時間
[root@mysql1 mfs]# /usr/local/mfs/bin/mfssettrashtime 3600 /mnt/mfs/
[root@mysql1 bin]# ls /mnt/ mfsmeta /trash
恢複被删除的檔案
被删除的檔案名由一個八位十六進制數和被删檔案的檔案名組成
[root@mysql1 trash]# cd /mnt/ mfsmeta /trash/
隻要将要恢複的檔案移動到undel檔案夾中,檔案就恢複了
[root@mysql1 trash]# mv '0000002B|test3.rar' undel
恢複資料
第一種方式:通過備份Master的/usr/local/mfs/var/mfs檔案夾下的檔案進行恢複
1、 先備份Master Server的/usr/local/mfs/var/mfs檔案夾下的檔案(可以通過crontab來完成)
2、 将好使的Master Server的/usr/local/mfs/var/mfs下的檔案删除
3、 将備份的檔案重新拷貝到/usr/local/mfs/var/mfs檔案夾下
4、 将metadata.mfs.back檔案改為metadata.mfs
5、 [root@Master etc]# chown -R mfs:mfs /usr/local/mfs/var/mfs
6、 [root@Master etc]# reboot
7、 重新開機後啟動服務/usr/local/mfs/sbin/mfsmaster start,恢複成功。
第二種方式:通過Backup Server進行恢複
1、 重新安裝一個Master Server
2、 到Backup Server的/usr/local/mfs/var/mfs/目錄下找到metadata_ml.mfs.back檔案和最後一個日志檔案,我最後一個日志檔案是changelog_ml.21.mfs
3、 将這兩個檔案複制到Master Server的/usr/local/mfs/etc/目錄下
4、 執行/usr/local/mfs/sbin/mfsmetarestore -m metadata_ml.mfs.back -o /usr/local/mfs/var/mfs/metadata.mfs changelog_ml.21.mfs
重新開機後啟動服務,恢複成功。