我正在尝试将 6 磁盘 raid6 mdadm 阵列转换为 6 磁盘 raid10 阵列。在点击后mdadm: Impossible level change requested
,我决定尝试使用raid5,然后运行mdadm --grow --level=5
然后mdadm --grow /dev/md0 -n 5
成功。然而,当我运行时mdadm --grow /dev/md0 --level raid10
,我再次遇到了同样的错误。我决定从 raid5 -> raid4 -> raid0 -> raid10,但是为了这个工作,我需要在 raid0 阶段有 3 个磁盘,因为我只有 6 个磁盘。
但是,在我设法将数组大小调整为建议的大小后mdadm --grow /dev/md0 -n 3
,出现以下错误:
mdadm: Cannot set new_offset for /dev/sda12
当我/dev/sda12
从阵列中删除时,我收到相同的错误,但对于不同的磁盘。
如何修复/解决此错误,或者我是否必须对阵列进行核攻击并启动一个新阵列?
答案1
从 raid5 转换为 raid10 需要转换 raid5 -> raid0,然后转换 raid0 -> raid 10。
您的数组大小需要小于目标 raid10(它将小于 raid 5)。
要转换,您需要指定磁盘数量和目标级别:
mdadm --grow /dev/md0 --level=0 --raid-devices=3 --backup-file=md0.backup
(我建议备份文件)
cat /proc/mdstat
如果某个时间(20 分钟)进程卡在reshape = 0.0%
您需要使用的位置,您可以监控它--continue
:
mdadm --grow /dev/md0 --level=0 --raid-devices=3 --backup-file=md0.backup --continue