Centos

如何正確配置 mdadm.conf

  • May 26, 2022

我有 2 個mdadm數組。很久以前,當只有一次襲擊時,我寫道mdadm.conf,它看起來像這樣:

# mdadm.conf written out by anaconda
MAILADDR root
AUTO +imsm +1.x -all
ARRAY /dev/md/pv00 level=raid1 num-devices=2 UUID=55dc183e:d7199ced:929f5f4a:123c24a3

由於沒有第二次突襲,我認為將其添加到它會是一個好主意。所以我跑了命令mdadm --detail --scan >> /etc/mdadm.conf

但是現在,第一次突襲有 2 個條目

# mdadm.conf written out by anaconda
MAILADDR root
AUTO +imsm +1.x -all
ARRAY /dev/md/pv00 level=raid1 num-devices=2 UUID=55dc183e:d7199ced:929f5f4a:123c24a3
ARRAY /dev/md/pv00 metadata=1.2 name=server.local:pv00 UUID=55dc183e:d7199ced:929f5f4a:123c24a3
ARRAY /dev/md/25 metadata=1.2 spares=2 name=server.local:25 UUID=a883dfb5:1a8f32ce:fd20e5d8:156a01ff
  • 第一:我應該刪除舊條目並只留下新條目嗎?哪一個更好?
  • 第二:為什麼新舊條目有區別?舊的有,level=raid1 num-devices=2而新的只有metadata=1.2代替。

編輯:部分找到的答案

  • 3rd:找到資訊,沒有它,raid就不會開始。但是,掛載此數組的 fstab 中的條目似乎會自動啟動它。所以需要還是不需要?

還發現有些人寫信mdadm.conf更新mdadm --verbose --detail --scan > /etc/mdadm.conf 。合適嗎?它還輸出驅動器位置,例如:

ARRAY /dev/md/pv00 level=raid1 num-devices=2 metadata=1.2 name=server.local:pv00 UUID=55dc183e:d7199ced:929f5f4a:123c24a3
  devices=/dev/sdi2,/dev/sdj1
ARRAY /dev/md/25 level=raid6 num-devices=6 metadata=1.2 spares=2 name=server.local:25 UUID=a883dfb5:1a8f32ce:fd20e5d8:156a01ff
  devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sdf1,/dev/sdg1

它是正確的語法嗎?我所知道的。驅動器/dev/sd*可能會改變。那麼添加devices它是否安全?我最近不得不更換系統上的 SATA 電纜,並且字母發生了變化,因為我沒有註意將它們連接到同一個埠。

mdadm手冊頁是這樣說​​的(強調我的):

echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' > mdadm.conf`
mdadm --detail --scan >> mdadm.conf

這將創建一個原型配置文件,描述目前活動的陣列,這些陣列已知是由 IDE 或 SCSI 驅動器的分區構成的。 該文件在使用前應進行審查,因為它可能包含不需要的細節。

現在,對於你的問題,

我所知道的。驅動器/dev/sd*可能會改變。那麼向其中添加設備是否安全?

不僅僅是設備名稱可能會改變。其他一切都可能改變!

mdadm支持不斷增長的數組。所以你可以添加更多的變化的設備num-devices=2,或者改變raid level=raid1。驅動器可能會發生故障,從而導致備件自動接管,這會發生變化spares=2,因為您的陣列仍然可用的備件將減少。甚至name=也不受保護,因為處理主機名和數組名的方式存在各種問題mdadm。元數據版本過去已更改,如果您使用過,metadata=0.90mdadm可以將其更新為metadata=1.0. 如果將來有新的元數據,可能會再次更新。

數組在其整個生命週期中不變的一件事是UUID=a883dfb5:1a8f32ce:fd20e5d8:156a01ff,因此我在您連結的問題中的建議是:

對於每個數組,只使用 UUID,沒有別的。

所有這些變數的唯一目的是辨識正確的數組,而 UUID 本身就可以完美地做到這一點,不需要其他任何東西。因此,只需刪除其他內容。

當然,如果你真的想要,你也可以更改 UUID。但與陣列正常執行期間發生的其他更改相比,這是一個更加慎重的操作。

mdadm --detail --scan只是一個起點,但不應按字面意思用作mdadm.conf. 就像手冊頁所說的那樣,它太詳細了,太多的細節會導致組裝失敗。

引用自:https://unix.stackexchange.com/questions/703895