Raid

Linux mdadm RAID5 數據恢復一個驅動器失敗,一個驅動器失敗

  • February 5, 2013

不太可能我有兩個驅動器在 2 週內在同一個 Raid5 陣列中彼此發生故障。這意味著陣列已死。是的,是的,熱備件不會懶惰地更換我知道的故障驅動器。但是,讓我們超越這一點。

數據有些備份並且不是至關重要的,所以我對此並不特別恐慌。無論如何,我仍然想盡力挽救。

它是使用 mdadm 設置的 4 設備軟體 RAID5。驅動如下:

/dev/sde - device 0, healthy 
/dev/sdf - device 1, first failure, hard failure, totally dead
/dev/sdg - device 2, second failure, badblocks reports a few bad sectors
/dev/sdc - device 3, healthy

我想你可以看到我要去哪裡。鑑於 sdg 只有少數壞扇區,我想相信大部分數據都是可以挽救的。當我重新組裝陣列時

mdadm --create /dev/md0 --assume-clean --level=5 --raid-devices=4 /dev/sde missing /dev/sdg /dev/sdc

我沒有收到任何投訴,並且設備在降級模式下組裝和啟動都很好。當我嘗試安裝它時會出現問題。我一跑

mount -t ext4 /dev/md0 /mnt/raid

此時檢測到壞塊,/dev/sdg 無法退出陣列,並且只有 /dev/sde 和 /dev/sdc 仍在執行,raid 處於非活動狀態並且掛載失敗。

是否有某種方法可以防止 mdadm 在檢測到壞塊後立即使驅動器發生故障?我可以設置一些調試標誌?某物?我意識到有些數據會損壞,有些讀取會失敗。

我猜我要問的是不可能的,儘管我沒有看到它需要的理論上的原因。RAID 設備可以像驅動器本身一樣說 I/O 錯誤。但是我認為,如果避免 dd 在普通硬碟的壞塊上失敗的唯一方法是使用不同的程序 dd_rescue ,那麼我認為 mdadm 最終也會如此,除非我懷疑是否存在這樣的事情作為“mdadm_rescue”。

儘管如此,我還是會問,如果我錯了,或者你能想出一種方法來提取一些數據,而不會使驅動器立即從陣列中崩潰,請賜教。

順便說一下,嘗試將死亡驅動器的磁碟轉儲到健康的驅動器,然後將健康的驅動器添加到陣列中。

引用自:https://serverfault.com/questions/475505