Linux 軟體 RAID10:神秘地將 /dev/md0 重命名為 /dev/md127:為什麼?
在過去的兩個晚上,我們在一台執行 Ubuntu Linux 12.04 LTS 和 Linux mdadm 軟體 RAID10 的伺服器上發生了一些神秘事件:
DeviceDisappeared /dev/md0 NewArray /dev/md127
這兩條消息出現在同一秒,與 logrotate cron 操作發生的同時。儘管該數組仍以 命名
/dev/md0
,/etc/mdadm/mdadm.conf
但它/dev/md127
在 的輸出中顯示為cat /proc/mdstat
:Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] md127 : active raid10 sdb1[0] sdg1[5] sdc1[1] sdh1[6] sdf1[4] sdd1[2] sdk1[9] sdj1[8] sde1[3] sdi1[7] 9746600960 blocks 512K chunks 2 near-copies [10/10] [UUUUUUUUUU] unused devices: <none>
為什麼會這樣,我該如何解決?
我想通了:
/etc/mdadm/mdadm.conf
由於三天前發生的一些“不小心”的系統管理員活動,文件中的 UUID 與此伺服器中實際軟體 RAID 陣列的 UUID 不匹配。將此文件中的 UUID 編輯為(在我的情況下為 YMMV)命令顯示的 UUID:mdadm --examine /dev/sdb1
並使用命令重新創建 initrd 映像(請參閱下面的 EDIT2021):
update-initramfs -u -k all
並且隨後的重新啟動將命名修復為
/dev/md0
.編輯: @Michael Hamptons 評論:配置文件行中
/dev/md0
提到的設備名稱可能會被替換為例如. 但我還沒有嘗試過:mdadm.conf 手冊頁中的範例使用設備名稱,例如. 我不確定這樣的替換是否可能:更抽象的設備名稱在或稍後動態創建。ARRAY``/etc/mdadm/mdadm.conf``/dev/disk/by-label/DATA``/dev/md*``/dev/disk/by-label/*``/dev/disk/by-uuid/*
**編輯 2021:**上述命令:
update-initramfs
是特定於 Debian/Ubuntu 派生的 Linux 發行版的腳本。在 RedHat 派生髮行版(Fedora、CentOS 等)上,可以使用以下命令為目前活動的核心創建一個新的 initramfs 文件:
mkinitrd /boot/initramfs-`uname -r`.img `uname -r`