刪除 RAID 1 中的“故障狀態”
我想知道如果(例如)有人出現錯誤的硬碟故障,是否有可能刪除 RAID 1 中的“故障”狀態。
我已經用Google搜尋了答案,並找到了幾個重新創建數組並添加“assume-clean”的教程,但我無法在正在執行的系統上執行此操作。那麼,是否有可能在將硬碟從 RAID 中移除之前對其進行“故障排除”?
mdadm 中沒有這樣的命令。如果您已將分區設置為故障狀態,則使其再次聯機的唯一方法是刪除並重新讀取它,例如
mdadm --remove /dev/md0 /dev/sdb1 mdadm --add /dev/md0 /dev/sdb1
故障狀態寫入磁碟/分區開頭的超級塊中,以及有關 RAID 的其他元數據。這些塊需要有足夠的資訊來重建 RAID,以防出現問題。
mdadm
有一個將磁碟設置為故障的命令,但沒有人將其設置為健康,因為如果它出錯了,您可能會失去數據。但它們是你想要的情況。例如,在有 2 個托架的家用 NAS 中,您可以決定只使用一個磁碟(開始時)。通常,在這種情況下,那些 NAS 作業系統只用一個磁碟創建一個 RAID 1,而無需告知。如果稍後,無論出於何種原因,該磁碟被標記為已降級,您就會被卡住。即使您的磁碟是健康的。注意:可能會發生作業系統認為 I/O 響應太慢作為降級磁碟。在這種情況下(您的 SMART 數據是乾淨的),唯一的解決方案是刪除故障狀態標誌。但這真的很危險。您必須首先停止您的 RAID。所有磁碟都將被分離,但超級塊和數據將保留在磁碟上。要擺脫超級塊,您必須使用此磁碟/分區和
--assume-clean
選項創建一個新的 RAID。這將在舊的超級塊之上寫入一個新的超級塊,但保留數據。請注意,如果沒有此選項,您可能會失去所有數據,並被警告即使使用它也始終存在風險。所以在這個特定的例子中,類似於:
# Stop the RAID1 mdadm -S /dev/mdX # Recreate a RAID1 with just one disk keeping the data as is mdadm --create --assume-clean --level=1 --force --raid-devices=1 /dev/mdX /dev/sdXY
可能會刪除故障標誌。
順便說一句,如果您想知道為什麼不放第二張磁碟並使其同步。答案是:不可能與標記為有故障的磁碟同步任何內容
mdadm
。