将Linux软件RAID 1发展为RAID 10的最佳方法
mdadm似乎不支持从1级到10级增长数组.
我在RAID 1中有两个磁盘.我想添加两个新磁盘并将阵列转换为四磁盘RAID 10阵列. 我目前的策略: >做好备份. 问题是步骤5缺乏冗余. 有没有更好的办法? 解决方法
使用
linux softraid,您可以制作只有两个磁盘的RAID 10阵列.
以下使用的设备名称: > md0是类型/级别RAID1的旧数组. 替换名称以适合您的用例.使用例如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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |