![如何将 mdadm (RAID 1) 从 2 个 HDD 迁移到 2 个 SDD](https://linux22.com/image/936117/%E5%A6%82%E4%BD%95%E5%B0%86%20mdadm%20(RAID%201)%20%E4%BB%8E%202%20%E4%B8%AA%20HDD%20%E8%BF%81%E7%A7%BB%E5%88%B0%202%20%E4%B8%AA%20SDD.png)
我想将 Dell PowerEdge R210 II 从两个 HDD(通过 mdadm 运行 RAID 1)迁移到两个稍大一些的 SSD(512GB vs 500GB)。系统当前使用 BIOS(而非 UEFI)启动
最简单的方法是什么?我已经尝试过失败并移除其中一个 HDD,将其替换为其中一个 SDD,然后将 SSD 添加到 mdadm。这很有效,并且同步速度相当快。但下一步事情变糟了。然后我关机,移除旧 HDD,重新启动,但系统在 SSD 上找不到 Grub 和/或 MBR,无法启动。似乎我错过了一个关键步骤?
我将其中一个 HDD 放回系统(因此现在它有一个 HDD 和一个 SDD)。机器将再次启动。如何让机器仅使用 SDD 启动,以便我可以通过 mdadm 添加另一个 SDD 并返回到 RAID 1(或者可能只是摆脱 RAID 1 并使用单个 SSD)
这是 sudo mdadm --detail /dev/md0 的输出。
有趣的是,机器似乎是从 sda1(旧 HDD 之一)启动的,但只使用 sdb1(SDD 之一),因此 RAID 1 降级。我这样说是因为 a) 机器将启动,如果我只插入 SDD,则不会启动)。并且 b) 性能非常快,表明它正在读取/写入 SDD。此时我有一台可以正常工作的机器,尽管配置不正确,所以不想做任何事情来搞砸它。
$ sudo mdadm --detail /dev/md0
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 9.1M 1 loop /snap/canonical-livepatch/94
loop1 7:1 0 9.1M 1 loop /snap/canonical-livepatch/95
loop2 7:2 0 99.2M 1 loop /snap/core/10859
loop3 7:3 0 99.2M 1 loop /snap/core/10908
loop4 7:4 0 55.5M 1 loop /snap/core18/1988
loop5 7:5 0 55.4M 1 loop /snap/core18/1944
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 419.1G 0 part
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 46.7G 0 part [SWAP]
sdb 8:16 0 477G 0 disk
├─sdb1 8:17 0 419.1G 0 part
│ └─md0 9:0 0 419G 0 raid1 /
├─sdb2 8:18 0 1K 0 part
└─sdb5 8:21 0 46.7G 0 part
steve@rc-dev3:~$ sudo mdadm --detail /dev/md0
[sudo] password for steve:
/dev/md0:
Version : 1.2
Creation Time : Tue Nov 5 14:31:28 2013
Raid Level : raid1
Array Size : 439320384 (418.97 GiB 449.86 GB)
Used Dev Size : 439320384 (418.97 GiB 449.86 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Sun Mar 28 12:36:06 2021
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : rc-dev3:0 (local to host rc-dev3)
UUID : bb446c76:98f5d085:3cfcaf6a:0a0f30d6
Events : 67609
Number Major Minor RaidDevice State
- 0 0 0 removed
2 8 17 1 active sync /dev/sdb1