恢復 LVM Raid-5 陣列

恢復 LVM Raid-5 陣列

我有一個失敗的 raid-5 陣列,我似乎無法恢復。基本上,故事是我在 raid 5 中擁有這些數據,並且我正在使用現在具有內建 raid 的 LVM。我注意到其中一個磁碟壞了,所以我買了一個新磁碟,並發出命令pvmove將故障磁碟上的範圍移至新磁碟。在遷移過程中的某個時候,舊磁碟出現故障並完全停止回應(不確定為什麼會導致這種情況)。所以我重新啟動了它,現在陣列根本沒有出現。一切看起來都很好,例如 3/4 磁碟正在工作,而且我很確定即使是發生故障的磁碟也會暫時備份(但不要相信它)。但是當我發出問題時,lvchange -a y vg-array/array-data我在 dmesg 中出現以下錯誤

not clean -- starting background reconstruction
device dm-12 operational as raid disk 1
device dm-14 operational as raid disk 2
device dm-16 operational as raid disk 3
cannot start dirty degraded array.

我很確定有辦法強制使用 mdadm 啟動,但我還沒有看到 lvm 的任何內容。但由於我有三個磁碟,所以我的所有數據都是那裡所以它一定是可以恢復的。有人知道該怎麼做?

答案1

解決方法是新增內核啟動參數

md-mod.start_dirty_degraded=1

然後/etc/default/grub重新update-grub啟動。我仍然必須手動啟動卷,但在添加該參數後,髒降級數組現在是警告而不是錯誤。

這記錄在https://www.kernel.org/doc/html/latest/admin-guide/md.html#boot-time- assembly-of-degraded-dirty-arrays

答案2

新增設備後,在其上建立一個 PV,使用 將該 PV 新增至磁碟區組vgextend,並使用 刪除遺失的 PV vgreduce --remove --force,我可以使用以下命令修復 LVM 上的 raid6 陣列

lvconvert --repair <vgname>/<lvname>

我們可以透過 來查看修復的進度lvs,這會在 Cpy%Sync 中顯示出來。

相關內容