Raid

以前版本的 mdadm 中預設的塊大小是多少?有沒有辦法設置數據/超級偏移?試圖用所有備件重新創建一個 5 md 的 raid

  • June 25, 2012

我有一個 6 設備 raid 5 陣列,其中 1 個磁碟壞了,然後由於停電,機器關閉,當它啟動時,所有磁碟都顯示為備用磁碟,並帶有以下 mdadm -E 輸出。

/dev/sda5:
   Magic : a92b4efc
 Version : 1.2
 Feature Map : 0x0
  Array UUID : b480fe0c:c9e29256:0fcf1b0c:1f8c762c
    Name : GATEWAY:RAID5_500G
Creation Time : Wed Apr 28 16:10:43 2010
  Raid Level : -unknown-
Raid Devices : 0

Avail Dev Size : 976768002 (465.76 GiB 500.11 GB)
Used Dev Size : 976765954 (465.76 GiB 500.10 GB)
 Data Offset : 2048 sectors
Super Offset : 8 sectors
       State : active
 Device UUID : a8499a91:628ddde8:1cc8f4b9:749136f9

 Update Time : Sat May 19 23:04:23 2012
Checksum : 9950883c - correct
  Events : 1


Device Role : spare
Array State :  ('A' == active, '.' == missing)`

此 md 設備是 LVM 卷組的物理卷的一部分。

我正在嘗試使用缺少 1 個設備的 mdadm –create –assume-clean 重新創建陣列。我正在通過檢查已創建設備的 UUID 來檢查設備是否正確創建,如果設備創建正確,該 UUID 將匹配。

我嘗試了一些我認為是正確的磁碟順序組合,但是我認為我被我用來創建這個 md 設備的 mdadm 是一些 2.x 系列而現在我們在 3.x 上的事實絆倒了。 x(我可能最初採用了一些我不記得的預設值)所有“預設值”在版本中發生了哪些變化,所以我可以嘗試這些?喜歡塊大小?我們可以手動配置超級/數據偏移量嗎?當我們執行 mdadm –create –assume-clean 時,這些重要嗎?

謝謝,安舒

儘管在最好的情況下 mdadm 應該能夠在組裝或檢查時檢測到您的超級塊格式版本,但您可以嘗試使用-e 0.90mdadm 的參數顯式指定較舊的超級塊格式版本,並查看*–examine*對此有何看法。

超級塊偏移量具有與設備末端(在您的情況下為分區)相關的硬編碼位置,如果設備的末端已移動(即通過更改分區大小或將原始復製到更大的磁碟),mdadm 將無法找到正確的副本。

它看起來也有點像你的超級塊被弄亂了 - 如果是這種情況,你將無法在沒有一些手動工作的情況下“組裝”。你應該檢查你所有的驅動器是否有一個有效的超級塊——在某個地方可能有一個副本,在重新建構 MD 陣列時可以避免大量的反複試驗。

恢復的一般方法是使用mdadm --build64K 的塊大小(舊的 mdraid 預設值,後來更改為 512K),您的設備數量和您假定的 RAID 級別作為常量參數,並改組設備順序,除非您得到工作文件系統。不用說,您應該使用硬碟數據的副本來執行此操作,這樣您就不會通過發出不熟練的命令來不可撤銷地更改數據。

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