glusterfs 存儲節點損壞恢復總結

概述

glusterfs 集羣的存儲節點損壞是不可避免的,但是對於glusterfs 來說,節點損壞包含系統損壞(因爲重做系統需要格式化根目錄)即glusterfs 配glusterfs 配置文件丟失,數據盤損壞即對於glusterfs數據盤上的brick數據丟失。本文即描述下glusterfs 存儲節點損壞最優的修復方案。

恢復方案

在概述中我們知道存儲節點損壞對於glusterfs 來說其實就分爲3種損壞。

配置文件丟失

在存儲節點系統損壞或者/磁盤壞掉等都對於glusterfs 意味着配置文件丟失。

恢復方案爲:修復配置文件

操作步驟爲:

(1)重新恢復系統,重新恢復系統過程中重做系統並恢復原來的網絡配置和磁盤掛載配置 注意不能格式化數據盤保證數據盤和原來的配置方案不變

(2)重新安裝glusterfs rpm 包,與原來集羣中的rpm 包版本一致。

(3)恢復glusterfs 配置 (/usr/lib/glusterfs),配置主要恢復/var/lib/glusterd/glusterd.info 文件裏面的uuid,這個uuid 在集羣其他節點通過命令gluster peer status 查詢,然後拷貝uuid 到/var/lib/glusterd/glusterd.info 文件中,然後 systemctl restart glusterd 服務,配置就會自動恢復。glusterfsd brick進程就會自動啓動。然後後臺修復進程會自動修復不一致數據(每15分鐘自動觸發)或者手動執行(gluster v volname heal full )立即觸發修復。

數據丟失

數據丟失經常爲數據磁盤損壞,需要更換磁盤。

操作步驟:

(1)更換硬件,然後還原爲原來的配置(fstab 配置)。

(2)執行 gluster volume info 查看本機的brick 目錄配置,然後mkdir 好brick 目錄。然後再爲brick 目錄設置擴展熟悉。主要恢復3個擴展熟悉 trusted.gfid,trusted.glusterfs.dht,trusted.glusterfs.volume-id。這些擴展熟悉值 去集羣其他機器該brick 對應副本上獲取 getfattr -d -m. -e hex brickdir,然後再執行 setfattr -n name -v value brickdir 設置上, 在該機器上所有的brick dir 恢復成功後,然後就重啓glusterd 服務(systemctl restart glusterd)即可。然後後臺修復進程會自動修復不一致數據(每15分鐘自動觸發)或者手動執行(gluster v volname heal full )立即觸發修復。

配置文件和數據都丟失

這種情況機器損壞不可恢復,需要另外一臺機器來替換或者刪掉損壞節點。這種形式恢復有3種方法。

  • 方法一

在新的機器配置新的ip,其它配置和機器配置新的ip,其它配置和機器其它機器一樣(主要是磁盤配置)。然後步驟爲:

(1)在集羣中任意一臺上執行,gluster peer probe newip,把新機器加入集羣。

(2)然後執行 gluster volume replace-brick volname badbrick newipbrick commit force 把損壞節點的brick 移動到新加入的機器,然後 gluster peer detach oldip force

  • 方法二

    即安裝 配置文件丟失 和 數據丟失 方法來恢復。

  • 方法三

    即刪除掉損壞節點,步驟爲:

(1) gluster volume replace-brick volname badbrick oldipbrick commit force 把損壞節點的brick 移動到集羣中其他的機器上

(2) gluster peer detach badip force

方法區別:

方法一 需要用一個新ip,方法二 即用新機器替換舊機器(網絡等其它配置和舊機器一樣),方法三 明確來說不是恢復而是刪除節點,這樣會打破原來的brick 規劃和容量的減小,以後要恢復容量又要做一次數據遷移,相當於一次恢復要做兩次數據恢復。

恢復方案總結

glusterfs 存儲節點壞掉恢復主要分爲配置文件恢復和數據恢復。配置文件恢復沒有代價,只會引起一些增量數據副本之間數據不一致的同步。而數據丟失代價比較大,會導致數據的全量恢復,如果在業務負載高的時期應該限制數據修復的速度(可參考afr層的參數配置),在空閒的時候放開限制增大修復速度。硬件能修復最好修復,不能修復儘快用備用機器替換。

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