[前言]公司數據遷移後期會使用到MFS,看過很多有關的文章,但大部分都是moosefs安裝配置和單點手動備份。經過很長一段時間思考,想將其與keepalived相結合以提高可用性,也就有了我這篇文章。
本文以官網最新穩定版moosefs 2.0.66-1,和centos6.6,具體思路如下:
MFS原理
IP、主機名、防火牆等基本配置
高可用部署思路
Moosefs(mfs)各角色安裝配置
Keepalived安裝配置
故障切換測試
參考資料
moosefs原理:
MFS文件系統結構:
管理服務器managing server (master)
元數據日誌服務器Metalogger server(Metalogger)
存儲塊服務器chunk servers (chunkservers)
客戶機掛載使用client computers
各種角色作用:
1 管理服務器:負責各個數據存儲服務器的管理,文件讀寫調度,文件空間回收以及恢復.多節點拷貝
2 元數據日誌服務器: 負責備份master服務器的變化日誌文件,文件類型爲changelog_ml.*.mfs,以便於在master server出問題的時候接替其進行工作
3 數據存儲服務器:負責連接管理服務器,聽從管理服務器調度,提供存儲空間,併爲客戶提供數據傳輸.
4 客戶端: 通過fuse內核接口掛接遠程管理服務器上所管理的數據存儲服務器,.看起來共享的文件系統和本地linux文件系統使用一樣的效果.
IP、主機名、防火牆等基本配置:
主機名 | MFS角色 | IP地址 | keepalived | VIP | 端口 |
mfsmaster | master | 10.0.8.1 | 主master | 10.0.8.6 | 9419、9420、9421、9425 |
mfsmetalogger | metalogger | 10.0.8.5 | 備backup | ||
centos6_02 | chunkserver | 10.0.8.2 | 9422 | ||
centos6_03 | chunkserver | 10.0.8.3 | 9422 | ||
centos6_04 | client | 10.0.8.4 |
9419端口連接mfsmetalogger ,9420連接mfschunkserver,9421連接客戶機。
防火牆先關了service iptables stop
高可用部署思路:
1 master的故障恢復,在1.6.5版本後可以由metalogger server 產生的日誌文件 changelog_ml.*.mfs和metadata.mfs.back由命令mfsmetarestore恢復,在1.7版本後命令mfsmetarestore不可用,改爲mfsmaster-a
2 10.0.8.1 keepalived master 定時運行檢測 mfsmaster 進程的腳本check_master_bylijing.sh,故障時停止 keepalived .
3 10.0.8.5 keepalived 狀態從backup轉到 master 並觸發 notify_master事件執行恢復並啓動switch_to_mfsmaster_bylijing.sh腳本。此時元數據日誌服務器變爲管理服務器。
5 整個切換在2~10秒內完成根據檢測時間間隔。
6 當原管理服務器mfsmaster恢復時,10.0.8.5 keepalived 狀態從master轉到backup 並觸發 notify_backup事件執行恢復並啓動switch_to_mfsmetalogger_bylijing.sh腳本。此時由管理服務器恢復爲元數據日誌服務器。
Moosefs(mfs)各角色安裝配置:
1. 主控服務器Master server 安裝:
當我們安裝主控服務器時,在配置過程中(./configure),可以取消安裝chunk server
(--disable-mfschunkserver)以及MooseFS 客戶端(--disable-mfsmount). 安裝
主控服務器master 的具體步驟爲:
1、添加mfs用戶
#useradd -M -s /sbin/nologin mfs
2、創建安裝目錄
#mkdir /usr/local/mfs
3、下載當前最新穩定版
#wget http://pro.hit.gemius.pl/hitredir?id=p4M1jTM4nRhU008M3Fe_sOUC3wjpXEbik3RJMrUmhjn.l7&et=1&extra=moosefsVersion%3D2.0.66&url=http://ppa.moosefs.com/src/moosefs-2.0.66-1.tar.gz
4、解包歸檔文件
#tar -zxvf moosefs-2.0.66-1.tar.gz
5、進入安裝目錄
#cd moosefs-2.0.66
6、配置
#./configure--prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
7、編譯並安裝
#make
#make install
成功安裝master 以後,可以在/usr/local/mfs下看到moosefs安裝好的文件。
2. 主控服務器Master server配置:
1、切換目錄
#cd /usr/local/mfs/etc
2、複製樣例文件,以得到master 所需的配置文件
#cp mfsmaster.cfg.dist mfsmaster.cfg
#cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
#cp mfsexports.cfg.dist mfsexports.cfg
如果我們打算更改這些配置文件中的某些項目的值,則需要打開特定配置文件相關文本行前的
註釋,然後修改跟隨其後的值。因爲被註釋掉的行,即是MooseFS內置的缺省值。
Mfsmaster.cfg配置文件包含主控服務器master 相關的設置,在這裏我們暫時不打算對其
進行修改。如果你想知道關於該配置文件更多的信息,請查看它的手冊頁(使用命令man
mfsmaster.cfg)。
配置文件mfsexports.cfg 指定那些客戶端主機可以遠程掛接MooseFS 文件系統,以及授予
掛接客戶端什麼樣的訪問權限。例如,我們指定只有10.0.8.x 網段的主機需要密碼纔可以以讀寫模式
訪問MooseFS 的整個共享結構資源(/)。指定只有10.0.8.x 網段的主機不用密碼可以以讀寫模式訪問MooseFS 的整個共享結構資源(/data)。
二進制文件metadata 和文本文件changelog 將被保存在安裝目錄/usr/local/mfs/var/mfs。首次安裝master 時,會自動生成一個名爲metadata.mfs.empty 的元數據文件metadata,該文件是空的。MooseFSmaster 運必須有文件metadata.mfs,這個文件是從metadata.mfs.empty 改名而來:
1、切換目錄
#cd /usr/local/mfs/var/mfs
2、重命名文件
#cp metadata.mfs.empty metadata.mfs
注:MooseFS master 運行以後,metadata.mfs 文件大小將發生變化,肯定不會是空文件了。
修改/etc/hosts 文件,以綁定主機名mfsmaster 與ip 地址10.0.8.1
10.0.8.1 mfsmaster
注:過下我們啓動keepalived時,我要在/etc/hosts中改爲vip地址:10.0.8.6
3. 主控服務器Master server啓動:
這個時候,我們可以試着運行master 服務(服務將以安裝配置configure 指定的用戶運行,這
我們的案例裏,它是mfs):
#chown –R mfs:mfs /usr/local/mfs 注:這個很重要,否則mfs用戶沒權限。
#/usr/local/mfs/mfsmasterstart
在一個生產環境裏,我們應當設置自動啓動腳本,以便操作系統重新啓動時,MooseFSmaster
也能自動運行。
4. 主控服務器Master server監控:
爲了監控MooseFS 當前運行狀態,我們可以運行CGI 監控服務,這樣就可以用瀏覽器查看整個
MooseFS 的運行情況:
#/usr/local/mfs/mfscgiservstart
現在,我們在瀏覽器地址欄輸入http://10.0.8.1:9425 即可查看master 的運行情況(這個時
候,是不能看見chunk server 的數據)。
5. 元數據日誌服務器Metalogger server安裝
用來安裝metalogger 的主機,在性能上應該比master 強大(至少有更多的內存)。一旦主控
服務器master 失效,只要導入changelogs 到元數據文件,備份服務器metalogger 將能接替發生
故障的master,行使管理服務器的職能。
安裝跟主控服務器master 安裝非常類似。只是所用的配置文件和啓動進程不一樣。
1、添加mfs用戶
# useradd -M -s /sbin/nologin mfs
2、創建安裝目錄
#mkdir /usr/local/mfs
3、下載當前最新穩定版
#wget http://pro.hit.gemius.pl/hitredir?id=p4M1jTM4nRhU008M3Fe_sOUC3wjpXEbik3RJMrUmhjn.l7&et=1&extra=moosefsVersion%3D2.0.66&url=http://ppa.moosefs.com/src/moosefs-2.0.66-1.tar.gz
4、解包歸檔文件
#tar -zxvf moosefs-2.0.66-1.tar.gz
5、進入安裝目錄
#cd moosefs-2.0.66
6、配置
#./configure--prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs--disable-mfschunkserver --disable-mfsmount
7、編譯及安裝
#make
#make install
6. 元數據日誌服務器Metalogger server配置
1、切換目錄
#cd /usr/local/mfs/etc
2、複製樣例文件,以得到Metalogger server 所需的配置文件
#cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
類似地,修改/etc/hosts 文件,增加下面的行:
10.0.8.1 mfsmaster
現在,我們來試着運行備份服務mfsmetaloger:
#chown –R mfs:mfs /usr/local/mfs 注:這個很重要,否則mfs用戶沒權限。
#/usr/local/mfs/sbin/mfs metaloggerstart
在一個生產環境裏,我們應當設置自動啓動腳本,以便操作系統重新啓動時,MooseFS
mfsmetalogger服務也能自動運行。
7. 存儲塊服務器Chunk servers 安裝:
在centos6_02和centos_03上安裝chunk server 方法一樣如下:
# useradd -M -s /sbin/nologin mfs
#mkdir /usr/local/mfs
#wgethttp://pro.hit.gemius.pl/hitredir?id=p4M1jTM4nRhU008M3Fe_sOUC3wjpXEbik3RJMrUmhjn.l7&et=1&extra=moosefsVersion%3D2.0.66&url=http://ppa.moosefs.com/src/moosefs-2.0.66-1.tar.gz
#tar-zxvf moosefs-2.0.66-1.tar.gz
#cd moosefs-2.0.66
#./configure--prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster
#make
#make install
本文是 巧妙絕情 一個字一個圖打出來,參考了好多資料,感謝他們的分享,基於open source分享精神,轉載請註明出出。
支持我,請點擊 巧妙絕情 謝謝