将Linux软件RAID 1发展为RAID 10的最佳方法

前端之家收集整理的这篇文章主要介绍了将Linux软件RAID 1发展为RAID 10的最佳方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
mdadm似乎不支持从1级到10级增长数组.

我在RAID 1中有两个磁盘.我想添加两个新磁盘并将阵列转换为四磁盘RAID 10阵列.

我目前的策略:

>做好备份.
>创建一个降级的4磁盘RAID 10阵列,其中包含两个丢失的磁盘.
> rsync RAID 1阵列与RAID 10阵列.
>失败并从RAID 1阵列中删除一个磁盘.
>将可用磁盘添加到RAID 10阵列并等待重新同步完成.
>销毁RAID 1阵列并将最后一个磁盘添加到RAID 10阵列.

问题是步骤5缺乏冗余.

有没有更好的办法?

解决方法

使用 linux softraid,您可以制作只有两个磁盘的RAID 10阵列.

以下使用的设备名称

> md0是类型/级别RAID1的旧数组.
> md1是类型/级别RAID10的新阵列.
> sda1和sdb2是新的空分区(没有数据).
> sda2和sdc1是旧分区(包含关键数据).

替换名称以适合您的用例.使用例如lsblk查看您当前的布局.

0)备份,备份,备份哦和备份

1)创建新阵列(4个设备:2个现有,2个缺失):

mdadm -v --create /dev/md1 --level=raid10 --raid-devices=4 /dev/sda1 missing /dev/sdb2 missing

请注意,在此示例中,sda1缺少对应的sdb1,而另一个缺少对应的sdb2.此时md1上的数据不安全(在添加缺失成员之前,它实际上是RAID0).

要查看已创建数组的布局和其他详细信息,请使用

mdadm -D /dev/md1

注意!您应该保存数组的布局:

# View current mdadm config:
cat /etc/mdadm/mdadm.conf
# Add new layout (grep is to make sure you don't re-add md0):
mdadm --detail --scan | grep "/dev/md1" | tee -a /etc/mdadm/mdadm.conf
# Save config to initramfs (to be available after reboot)
update-initramfs -u

2)格式化和安装. / dev / md1应该可以立即使用,但需要格式化然后安装.

3)复制文件.使用例如rsync将数据从旧RAID 1复制到新RAID 10.(这只是一个示例命令,请阅读rsync的手册页)

rsync -arHx / /where/ever/you/mounted/the/RAID10

4)使旧RAID1(md0)的第一部分失效,并将其添加到新RAID10(md1)

mdadm /dev/md0 --fail /dev/sda2 --remove /dev/sda2
mdadm /dev/md1 --add /dev/sda2

注意!这将清除sda2中的数据. md0应该仍然可用,但前提是其他raid成员完全可以运行.

另请注意,这将在md1上开始同步/恢复过程.要检查状态,请使用以下命令之一:

# status of sync/recovery
cat /proc/mdstat
# details
mdadm -D /dev/md1

等到恢复完成.

5)在新阵列上安装GRUB(假设你正在从它启动).一些Linux救援/启动CD效果最好.

6)在新阵列上启动.如果它正常工作破坏旧阵列并将剩余磁盘添加到新阵列.

没有回头的点

此时,您将销毁旧md0数组的最后一个成员上的数据.绝对确保一切正常.

mdadm --stop /dev/md0
mdadm /dev/md0 --remove /dev/sdc1
mdadm /dev/md1 --add /dev/sdc1

再次 – 等到md1上的恢复完成.

# status of sync/recovery
cat /proc/mdstat
# details
mdadm -D /dev/md1

7)更新mdadm配置

记得更新/etc/mdadm/mdadm.conf(删除md0).

并将配置保存到initramfs(重启后可用)

update-initramfs -u

猜你在找的Linux相关文章