mdadm raid1 無法重新同步

mdadm raid1 無法重新同步

我正在嘗試解決 mdadm raid1 遇到的這個問題。

我有一個 ubuntu 9.04 伺服器,在帶有 mdadm 的軟體 2 驅動器 raid1 上運行。昨天,其中一個驅動器出現故障,因此我將其更換為相同大小的全新驅動器。我刪除了故障的驅動器,將分割區從剩餘的正常驅動器複製到新驅動器,然後將其新增到 raid 中。它重新同步並且系統工作正常,直到沒有故障的驅動器也被標記為故障。

現在我只在新驅動器上運行突襲。所以我購買了另一個驅動器並重複上述過程。所以現在我有 2 個全新的驅動器,並且 raid 正在同步。然而,幾分鐘後我檢查了 /proc/mdstat,raid 不再同步。

mdadm --detail /dev/md1 顯示:(sdb 是第一個新驅動器,sdc 是第二個新驅動器)

root@dola:/home/jjaramillo# mdadm --detail /dev/md1 /dev/md1: 版本:00.90 建立時間:2008 年12 月20 日星期六00:42:05 RAID 等級:raid1 陣列大小:974711680 (929.56 GiB 998.10 GB ) 已使用開發大小:974711680 (929.56 GiB 998.10 GB) Raid 裝置:2 裝置總數:2 首選次要:1 持久性:超級區塊是持久性的

Update Time : Wed Jun  2 10:09:35 2010
      State : clean, degraded

活動設備:1 工作設備:2 故障設備:0 備用設備:1

       UUID : bba497c6:5029ba0b:bfa4f887:c0dc8f3d
     Events : 0.5395594

Number   Major   Minor   RaidDevice State
   2       8       35        0      spare rebuilding   /dev/sdc3
   1       8       19        1      active sync   /dev/sdb3

我已經嘗試刪除並重新添加驅動器幾次,但還是發生了同樣的事情。突襲無法重新同步。我查看了 /var/log/messages,發現以下內容:

Jun 2 07:57:36 dola kernel: [35708.917337] sd 5:0:0:0: [sdb] 未處理的感知代碼Jun 2 07:57:36 dola kernel: [35708.917339] sd:5:00:0 0: [sdb] 結果:hostbyte=DID_OK driverbyte=DRIVER_SENSE Jun 2 07:57:36 dola kernel: [35708.917342] sd 5:0:0:0: [sdb] Sense Key : Medium Error [目前] Jun 2 07 :57:36 dola 核心:[35708.917346] 帶有感知描述符的描述子感知資料(十六進位):Jun 2 07:57:36 dola 核心:[35708.917348] 72 03 11 核心:[35708.917348] 72 03 11 0004 000 0c 00 0a 80 00 00 00 00 00 Jun 2 07:57:36 dola 核心:[35708.917357] 00 43 9e 47 Jun 2 07:57:36 dola 核心:[3570:70 203:57:36 dola 核心:[3570: sd ] 新增。 Sense:無法恢復的讀取錯誤 - 自動重新分配失敗

所以看起來 sdb(第一個新驅動器)上有某種錯誤。我的問題是,讓突襲重新啟動並運行的最佳方法是什麼?我考慮過將 /dev/md1 添加到空白硬碟驅動器,然後從頭開始重新執行 raid 並將資料加載回來,但可能有一個更簡單的解決方案。

任何幫助,將不勝感激。

答案1

您不應該嘗試以任何有意義的方式準備新驅動器,除非您的 raid 組成部分實際上是磁碟分割而不是磁碟本身。在這種情況下,您將在新磁碟機上建立一個與剩餘活動磁碟上的分割區大小相同的分割區。

您根本不需要接觸舊驅動器——它被認為是故障且不可靠的。

正確的過程是刪除損壞的驅動器,添加新的空驅動器,然後使用 mdadm 將該新驅動器新增到陣列中。你會這樣做:

mdadm --add /dev/md0 /dev/<newdrive>

然後,核心會將新磁碟機同步到陣列中,並從剩餘的良好磁碟機複製資料。

答案2

關於:

我刪除了故障的驅動器,將分割區從剩餘的正常驅動器複製到新驅動器,然後將其新增到 raid 中。

您不應該自己複製分區。

您唯一需要做的就是將新磁碟機放入您的系統中,並使用 mdadm 將其新增至您的 raid 群組。

如果您確實進行了複製(即 dd if=/dev/good_disk of=/dev/new_disk),您可能最終會複製 raid UUID 或讓 mdadm 知道哪個磁碟是哪個磁碟的內容,然後它會變得混亂。

答案3

安裝新的硬碟,請按照 Tom O'Connor 的建議進行分割區,然後使用 mdadm 修復陣列。請參閱 mdadm 的手冊頁「對於管理模式:」下的 --add 選項:

mdadm /dev/md0 --add /dev/sda1 

您可能必須先“--fail”第一個替換驅動器。

相關內容