MooseFS的常見問題與操作

副本的設定

作爲一種分佈式文件系統, 基本原理是將文件分塊, 每個塊分不到幾臺機器上面, 這樣, 如果某臺機器故障或者因爲網絡問題不可達, 系統會進行自動的異常平衡策略處理, 通常是將每個數據塊的副本數設定爲2, 假定者2個副本分佈在機器A和B上面, 如果機器A發生故障, 只剩下B上面的副本, 這時候master會檢測到機器A故障, 並且數據塊上面的實際副本數少於制定的副本數, 根據機器負載以及策略, 選擇新的機器C, 並將B上面的數據Copy一份到C上面。

mfssetgoal -r 2 /mnt/mfs       // 將/mnt/mfs目錄下面的文件副本數設爲2

注意在搭建集羣的時候, 一定要將副本數設定爲大於等於2, 否則一旦某臺機器故障, 就會出現數據丟失。

垃圾數據的清理

MFS提供了垃圾數據的回收站功能, 允許將刪除的數據保留一段時間然後刪除, 默認是一天, 在很多系統裏面, 實際上是不需要恢復回收站裏面的數據, 直接設爲0就可以了, 在負載很高的系統裏面, 多緩存1天的垃圾數據, 對於mfsmaster和mfschunserver都是一種負擔。

mfssettrashtime 0 -r   /mnt/mfs    // 設定垃圾站內文件存活時間爲0秒
mfsgettrashtime /mnt/mfs               // 獲取指定目錄的垃圾文件存活時間

我們也可以手工恢復誤刪除的文件,前提是垃圾站內文件的存活時間有設定, 並且文件還沒有被徹底刪除。
首先掛載回收站目錄:

mfsmount -m /mnt/mfs/trash -H MASTER_IP

然後站到被刪除的文件, 注意,原本文件的目錄分隔符從"/“變成了”|", 通過find找到文件在垃圾站裏面的名字;
最後使用MV命令, 將文件移動到原本的位置;

文件數據不存在的處理

通常, 只有數據塊有至少一個副本存在, 程序就能夠正常工作, 但是有時候很不巧可能連續2個以上機器故障, 碰巧某個數據塊的的2個副本分佈在這2臺機器上面, 在可會斷是還可以看到這個文件的, 但當我們需要讀取文件內容的時候, 徐彤就會卡住一段時間, 知道超時。那麼, 我們就需要找到那些文件的數據異常。

mfsfileinfo /mnt/mfs/file1

該命令會列出指定文件的副本數以及副本位置, 名稱的信息。 如果某個文件沒有副本信息, 就可以判斷該文件的數據異常, 可以通過mfsfilerepair進行修復:

mfsfilerepair /mnt/mfs/file1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章