MFS故障測試及維護總結


一、測試環境說明:

10.2.2.230 mfsmaster     VIP:10.2.2.130

10.2.2.231 mfsbackup

10.2.2.253 mfsdata01

10.2.2.246 mfsdata02

10.2.2.236 mfsdata03

10.2.2.240 mfsdata04

10.2.2.241 mfsclient

 

二、分別就client、chunker、master的模擬服務器宕機、斷網、故障恢復等環境,進行測試並就出現問題的解決辦法。

(1)、MFS的client端:

a. client端宕機、斷網對MFS的體系不產生影響

b. 殺掉MFS的client服務會產生

df: '/data/mfsdata': Transport endpoint is not connected

處理的方式:

是umount  /data/mfsdata,然后再重新掛載就可以了,這種情況是用戶MFS客戶端出現誤殺的情況。

 

(2)、MFS的chunker端:

a.斷網、殺掉MFS的chunker程序對MFS系統無影響。

b. 宕機:

#無文件傳輸時,對三個chunker都無影響;

#當有文件傳輸時,但是文件設置存儲一份時,對MFS系統無影響。

#當有文件傳輸,且設置文件存儲多份時:

★關掉chunker1之后,如果在chunker1恢復正常之前文件已經傳輸完畢,那么數據將從chunker2、chunker3同步到chunker1中,並同時自動清除chunker2、chunker3上的部分文件以便達到chunker1、chunker2、chunker3使用容量的基本均衡。

 ★關掉chunker1之后,如果在 chunker1恢復之后文件尚未傳輸完畢,那么文件將一方面繼續傳輸一方面從chunker2、chunker3中進行文件的同步到 chunker3,最終達到chunker1、chunker2、chunker3使用容量的基本均衡。

★關掉chunker1之后隨即chunker2也掛掉,如果在chunker1、chunker2恢復正常之前文件已經傳輸完畢,文件數據都會寫到chunker3中,之后chunker1、chunker2恢復,那么文件將從chunker3同步到chunker1、chunker2,最終達到chunker1、chunker2、chunker3使用容量的基本均衡。

★關掉chunker1之后隨即chunker2也掛掉,如果在chunker1、chunker2恢復正常之后文件尚未傳輸完畢,文件一部分從chunker3同步到chunker1、chunker2,一部分均勻寫到chunker1、chunker2、chunker3中,最終達到chunker1、chunker2、chunker3使用容量的基本均衡。

★關掉chunker1之后隨即chunker2、chunker3也掛掉的話就會影響MFS的應用,因為已經沒有了可用的chunker服務器了。

綜上可知,只要不是三個chunker服務器同時掛掉的話,就不會影響文件的傳輸,也不會影響服務的使用。

 

(3)MFS的master端:

前提:實時的對master端數據目錄及配置文件目錄做備份,推送到其他的備份服務器中。

a. 斷網、停掉master服務對MFS系統無影響。

b. 宕機可能會出現以下的情況:

#若服務器宕機后重啟恢復,運行/application/mfs/sbin/mfsmaster start恢復master服務。

#若服務器宕機后不能重啟恢復,修復的方法有如下幾種:

1)搭建新的master環境,保證配置文件路徑和宕機的master機器一致,用實時備份的master端數據目錄及配置文件目錄修復,修復命令:/application/mfs/sbin/mfsmetarestore -a

之后重啟master服務就可以了。

2)若有metalogger服務器,把backup提升為主master的操作

可以把實時備份的master端配置文件目錄拷貝到metalogger對應的目錄下,使用metalogger改變的日志文件修復的命令:mfsmetarestore -m metadata.mfs.back -o metadata.mfs changelog_ml.*.mfs,

之后重啟master服務就可以了。

 

三、MFS集群的維護

最安全的啟動MooseFS 集群(避免任何讀或寫的錯誤數據或類似的問題)的方式是按照以下命令步驟:

啟動mfsmaster 進程

啟動所有的mfschunkserver 進程

啟動mfsmetalogger 進程(如果配置了mfsmetalogger)

當所有的chunkservers 連接到MooseFS master 后,任何數目的客戶端可以利用mfsmount 去掛接export 的文件系統。(可以通過檢查master 的日志或是CGI 監視器來查看是否所有的chunkserver被連接)。

 

停止MFS集群:

安全的停止MooseFS 集群

在所有的客戶端卸載MooseFS 文件系統(用umount 命令或者是其它等效的命令)

用mfschunkserver  stop 命令停止chunkserver 進程

用mfsmetalogger  stop 命令停止metalogger 進程

用mfsmaster  stop 命令停止master 進程

 

四、MFS讀寫性能:

簡單測試結果:

寫:

time dd if=/dev/zero of=/data/mfsdata/mfsdata/test500M  bs=1M count=500

讀:

time dd if=/data/mfsdata/mfsdata/test500M of=/dev/null

 

 

1copy寫

2copy寫

1copy讀

2copy讀

2M

0m0.139s

0m0.119s

0m0.014s

0m0.055s

5M

0m0.093s

0m0.092s

0m0.014s

0m0.011s

20M

0m0.264s

0m0.313s

0m0.026s

0m0.030s

50M

0m1.312s

0m0.460s

0m0.066s

0m0.056s

200M

0m2.437s

0m4.171s

0m0.165s

0m0.169s

500M

0m5.984s

0m11.511s

0m3.047s

0m5.946s

1G

0m11.875s

0m26.839s

0m17.247s

0m16.223s

2G

0m55.460s

0m55.460s

1m21.784s

0m55.736s

 

總結:讀速度:ca 84.3M/s 寫速度:ca 39.4M/s 9M/s (以500M計算)

 

 

補充:

上面是在mfs的1.x版本上的測試結果,在mfs的2.x版本的測試流程也是一樣的,只是修復故障的命令有些更改。更改后的命令操作如下:

前提:實時備份mfsmaster端的配置文件及數據文件最重要。

1)mfsmaster機器數據丟失損壞導致服務器起不來,可以通過如下方式修復:

mfsmaster -a

 

2)mfsmaster機器數據丟失導致服務起不來時,可以通過如下方式修復:

把mfsmetalogger備節點的數據拷貝到mfsmaster端對應的路徑下,

之后在mfsmaster端執行如下命令修復:

mfsmaster -a

 

3)把mfsmetalogger備機主動提升為mfsmaster角色:

把mfsmaster端備份的配置文件拷貝到mfsmetalogger對應的路徑下,執行如下命令提升mfsmetalogger提升為mfsmaster角色:

mfsmaster -a

 

修復之后要修改mfsmetalogger機器的hosts文件及ip地址,以便mfschunkserver服務器與之通信。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM