Linux

無法在 BIOS 和作業系統(Ubuntu 伺服器 20.04.4)中重建 Raid 1 陣列(英特爾 RST Raid 1)

  • May 12, 2022

我們有配備 Ubuntu 20.04.4 LTS 的 HP 伺服器 HP ProLiant ML10 Gen 9。我們使用 Intel RST Raid 配置(這是一個假/韌體 raid)為兩個 HDD 大小的 2TB 啟用了 Raid 1 陣列。現在我的目標是更換故障驅動器並重建 Raid 1 陣列。

以下是 Raid 狀態cat /proc/mdstat的輸出

surya@himalaya:~$ cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md126 : active raid1 sda[1] sdb[0]
     1953511424 blocks super external:/md127/0 [2/2] [UU]

md127 : inactive sda[1](S) sdb[0](S)
     6320 blocks super external:imsm

unused devices: <none>

下面是 HDD info lsblk 的輸出

surya@himalaya:~$ lsblk
NAME                        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
loop0                         7:0    0 61.9M  1 loop  /snap/core20/1361
loop1                         7:1    0 67.9M  1 loop  /snap/lxd/22526
loop2                         7:2    0 55.5M  1 loop  /snap/core18/2284
loop3                         7:3    0 43.6M  1 loop  /snap/snapd/14978
loop4                         7:4    0 55.4M  1 loop  /snap/core18/2128
loop5                         7:5    0 43.6M  1 loop  /snap/snapd/15177
loop6                         7:6    0 67.2M  1 loop  /snap/lxd/21835
loop7                         7:7    0 61.9M  1 loop  /snap/core20/1376
sda                           8:0    0  1.8T  0 disk
└─md126                       9:126  0  1.8T  0 raid1
 ├─md126p1                 259:0    0  1.1G  0 part  /boot/efi
 ├─md126p2                 259:1    0  1.5G  0 part  /boot
 └─md126p3                 259:2    0  1.8T  0 part
   ├─ubuntu--vg-ubuntu--lv 253:0    0  100G  0 lvm   /
   └─ubuntu--vg-lv--0      253:1    0  1.7T  0 lvm   /home
sdb                           8:16   0  1.8T  0 disk
└─md126                       9:126  0  1.8T  0 raid1
 ├─md126p1                 259:0    0  1.1G  0 part  /boot/efi
 ├─md126p2                 259:1    0  1.5G  0 part  /boot
 └─md126p3                 259:2    0  1.8T  0 part
   ├─ubuntu--vg-ubuntu--lv 253:0    0  100G  0 lvm   /
   └─ubuntu--vg-lv--0      253:1    0  1.7T  0 lvm   /home
sr0                          11:0    1 1024M  0 rom

我使用下面的命令來替換有故障的驅動器 sdb,如上圖所示。

mdadm –manage /dev/md126 –fail /dev/sdb我關閉了系統並更換了同一埠中的硬碟。

現在,當我嘗試使用此命令mdadm –manage /dev/md126 –add /dev/sdb重建陣列時,我收到以下消息。

root@himalaya:~# mdadm --manage /dev/md126 --add /dev/sdb
mdadm: Cannot add disks to a 'member' array, perform this operation on the parent container

現在cat /proc/mdstat的輸出如下。

root@himalaya:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md126 : active raid1 sda[0]
     1953511424 blocks super external:/md127/0 [2/1] [U_]

md127 : inactive sda[0](S)
     3160 blocks super external:imsm

unused devices: <none>

我還嘗試使用 (Ctrl + i) 在 BIOS 中輸入 Intel ROM 選項,我已在 BIOS 設置中的 SATA 配置下將OROM UI 正常延遲設置為 4 秒。但我無法讓那個螢幕在 BIOS 中重建陣列。如果有人可以幫助我重建和恢復 Raid 1 陣列,那將是一個很大的幫助。

所以我回答我自己的問題是為了每個必須處理這些類型的假突襲控制器的人的利益。

這是我發現的

有趣的是md126不是這裡的主要 RAID 陣列,它是md127,所以我所做的就是將這個新驅動器重新添加到 md127 :

mdadm --manage /dev/md127 --force --add /dev/sdb

突襲開始自我重建。

現在cat/proc/mdstat的結果是:

root@himalaya:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md126 : active raid1 sda[1] sdb[0]
     1953511424 blocks super external:/md127/0 [2/2] [UU]

md127 : inactive sdb[1](S) sda[0](S)
     6320 blocks super external:imsm

unused devices: <none>

這種變化也反映在 BIOS 螢幕中。英特爾 RST RAID 卷狀態為正常。

以下是我用來成功恢復此 RAID 1 陣列的命令列表。

檢查突襲狀態:

cat /proc/mdstat

移除故障磁碟:首先我們將磁碟標記為故障,然後將其從陣列中移除:

mdadm --manage /dev/md126 --fail /dev/sdb
mdadm --manage /dev/md126 --remove /dev/sdb

然後關閉系統並更換新驅動器:

shutdown -h now

添加新硬碟:首先,您必須創建與 /dev/sda 完全相同的分區:

sfdisk -d /dev/sda | sfdisk /dev/sdb

要檢查兩個硬碟驅動器是否具有相同的分區:

fdisk -l

接下來我們將此驅動器添加到 RAID 陣列(您可以相應地使用 md126 或 md127,無論哪個是您的主要 RAID 陣列)下面是我使用的命令:

mdadm --manage /dev/md127 --force --add /dev/sdb

就是這樣。您現在可以看到 Raid 開始重建。

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