从 IMSM 转换为 linux md RAID 的简单方法是什么?

从 IMSM 转换为 linux md RAID 的简单方法是什么?

我通常使用 Linux 软件 md raid,但犯了一个错误,将 IMSM“fakeraid”保留在预配置的机器上。fakeraid 看起来很有吸引力,因为它可以与 bios 和 linux 无缝协作,这使得配置更容易(例如,只需安装一次引导加载程序)。不幸的是,似乎不可能使用 IMSM raid 设置写入意图位图,所以我的机器每次崩溃和重新启动时都会变得非常慢 8 个小时。(不幸的是,我似乎遭受了一连串的断电。)

我的问题是:有没有一种简单的方法可以将 IMSM fakeraid 转换为 linux 软件 RAID,而无需将数据复制到某处(因为我的机器中没有其他磁盘)?或者,有没有我尚未发现的方法可以将写入意图位图添加到 fakeraid,这样我就不必在每次意外重启后重建整个 RAID 阵列?

答案1

我用来将 RAID10 从 IMSM 转换为软件 RAID 的命令:

Check which set of the disks:
# mdadm --detail /dev/md/vol0
Number   Major   Minor   RaidDevice State
3       8        0        0      active sync set-A   /dev/sda
2       8       48        1      active sync set-B   /dev/sdd
1       8       16        2      active sync set-A   /dev/sdb
0       8       32        3      active sync set-B   /dev/sdc

Remove set-B:
# mdadm /dev/md126 --fail /dev/sdc
# mdadm /dev/md126 --fail /dev/sdd

# mdadm /dev/md127 --remove /dev/sdc
# mdadm /dev/md127 --remove /dev/sdd

(Optional) Erase filesystem/old RAID info:
# dd if=/dev/zero of=/dev/sdc count=1024
# dd if=/dev/zero of=/dev/sdd count=1024

Create new RAID:
# mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 missing /dev/sdc missing /dev/sdd

Create new filesystem:
# mkfs.ext4 /dev/md0
Remember filesystem UUID
# mkdir -p /mnt/1
# mount /dev/md0 /mnt/1
Copy data:
# rsync -avux --progress --delete /mnt/raid/ /mnt/1

Edit fstab (change UUID of RAID filesystem to remembered):
# vim /etc/fstab

Synchronize changes while was long copy:
# rsync -avux --progress --delete /mnt/raid/ /mnt/1

=== Here if RAID filesystem is on / also needed bootloader setup. ===

Remount filesystem as readonly:
# mount -f -o ro,remount /mnt/raid

And again synchronize:
# rsync -avux --progress --delete /mnt/raid/ /mnt/1

# reboot
# mdadm --stop /dev/md126
# mdadm --stop /dev/md127
# mdadm /dev/md125 --add /dev/sda /dev/sdb

相关内容