本篇文章為大家展示了GlusterFS下如何修復裂腦文件,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創(chuàng)新互聯從2013年創(chuàng)立,是專業(yè)互聯網技術服務公司,擁有項目成都做網站、成都網站設計網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元宜良做網站,已為上家服務,為宜良各地企業(yè)和個人服務,聯系電話:028-86922220
恢復GlusterFS文件裂腦步驟
1. 執(zhí)行如下命令,獲取裂腦文件的路徑。
# gluster volume heal VOLNAME info split-brain
客戶端訪問裂腦文件會報I/O錯誤。
2. 關閉在mount客戶端訪問裂腦文件的進程。如果有虛擬機正在使用裂腦文件,必須將虛擬機關閉。
3. 通過getfattr命令獲取和驗證擴展屬性的變更記錄,然后通過擴展屬性來確定哪些brick包含可信的文件。
# getfattr -d -m . -e hex
[root@lab21:/letv/disk4]$getfattr -d -m . -e hex file1
# file: file1
trusted.afr.plane-client-0=0x000000000000000000000000
trusted.afr.plane-client-1=0x000000000000000000000000
trusted.gfid=0x4e028c9b64234502ba304eba44e16da4
文件變更記錄屬性說明,如下示例:
0x 000003d7 00000001 000000110
| | |
| | \_ changelog of directory entries
| \_ changelog of metadata
\ _ changelog of data
首8位***背景字段記錄數據變更記錄
中間8位藍色背景字段記錄元數據變更記錄
末8位粉紅色背景字段記錄索引gfid變更記錄
對于目錄而言,元數據和索引gfid變更對應字段是有效的。
對于普通文件,數據和元數據對應字段是有效的。
對于特殊文件,如設備文件,元數據對應字段是有效的。
一個文件發(fā)生裂腦,可是數據裂腦,也可以是元數據裂腦,也有可以是數據和元數據同時裂腦。
一個元數據、數據同時裂腦例子如下:
# getfattr -d -m . -e hex /gfs/brick-?/a
getfattr: Removing leading '/' from absolute path names
\#file: gfs/brick-a/a
trusted.afr.vol-client-0=0x000000000000000000000000
trusted.afr.vol-client-1=0x000003d70000000100000000
trusted.gfid=0x80acdbd886524f6fbefa21fc356fed57
\#file: gfs/brick-b/a
trusted.afr.vol-client-0=0x000003b00000000100000000
trusted.afr.vol-client-1=0x000000000000000000000000
trusted.gfid=0x80acdbd886524f6fbefa21fc356fed57
4. 選擇正確的拷貝。
5. 通過重置相關字段解決裂腦問題
1)解決數據裂腦:重置數據字段對應屬性值
2)解決元數據裂腦:重置元數據字段對應屬性值
3)解決索引裂腦:刪除一個無效的副本,同時必須刪除對應的gfid-link文件,在.glusterfs目錄下
在刪除gfid-link文件之前,確保當前brick上要刪除的文件沒有硬鏈接,如果有也必須刪除。
6. 觸發(fā)自動修復
# ls -l
or
# gluster volume heal VOLNAME
注意:
對于屬性正常,文件內容不同引起的裂腦,heal命令無法修復,需要執(zhí)行heal full命令,當然ls也可以。
修復方法,刪除錯誤副本及對應的gfid文件。
上述內容就是GlusterFS下如何修復裂腦文件,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道。