Raid

RAID5 磁碟可以移動到不同的插槽嗎?

  • December 15, 2021

我有一個健康的 RAID5 陣列,有 5 個磁碟:

# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid5 sdb1[6] sdd1[0] sdh1[5] sdf1[2] sde1[1]
     31255166976 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [UUUUU]
     bitmap: 0/59 pages [0KB], 65536KB chunk

unused devices: <none>

我想在不關閉伺服器的情況下將一個磁碟移動到伺服器上的另一個物理插槽。(插槽支持熱插拔)

我可以安全地解除安裝陣列、移動磁碟並重新安裝陣列,而不會進入降級模式嗎?

解除安裝(文件系統)是不夠的。

您必須停止陣列,然後重新組裝它:

mdadm --stop /dev/md0
# re-arrange / hotplug drives
mdadm --stop /dev/md0 # (*)
mdadm --assemble /dev/md0

journalctl檢查/dmesg和/或cat /proc/partitions/是有意義的lsblk,以確保在嘗試組裝驅動器之前重新檢測到驅動器。

(*) 在許多現代 Linux 系統上,udev () 中有一些 md 自動組裝魔法,因此如果您只熱插拔單個驅動器/usr/lib/udev/rules.d/*md-raid*.rules,您最終可能會過時。/dev/md0

在這種情況下,您實際上必須在組裝之前再次停止它 - 或者為沒有熱插拔的驅動器重新觸發 udev 規則,或者使用 mdadm 的增量組裝命令來完成它,但是第二次停止它更簡單,所以這就是為什麼mdadm --stop在熱插拔驅動器之前和之後使用兩次。

在某些情況下mdadm.conf過於冗長並限制設備或列出每個陣列的單個驅動器。這可能會阻止成功組裝,因此如果仍然存在問題,則將是下一個檢查位置。mdadm.conf盡可能保持簡單(實際上只需要知道每個數組的 UUID)。


如果您有額外的驅動器可用,並且不介意重新同步陣列,您可以線上完成整個過程,而不會失去使用mdadm --replace機制的冗餘。這樣您就可以在不解除安裝或停止任何東西的情況下交換插槽。

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