目前状态:
4 个磁盘部分,每个磁盘 200G,总共 800G 使用 raid0
raid0,md0:sda1+sdb1+sdc1+sdd1
我想添加另一个磁盘部分 sdf1(>800G)
与 md0 结合组成 raid10,例如
raid1,md1:md0+sdf1
这样我稍后就可以替换 4 个磁盘 sd[ad]。
但当我尝试使用虚拟机时,
执行以下命令后文件系统被破坏。
mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/md0 /dev/sdf1
我应该怎么办?
谢谢。
答案1
我应该怎么办?
理想情况下:从备份恢复您的数据!...
如果你没有
停止一切
mdadm --stop /dev/md1
检索丢失的数据
如果你
/dev/md0
使用的是 LVM,则必须使用gpart
。如果是ext4
您可以使用 来恢复它们fsck
,超级块备份。 看man fsck.ext4
重新创建
md1
,但作为退化突袭1:mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 缺少 /dev/sdf1
复制数据
复制您的数据,来自
md0
到md1
最后一步
卸载
md0
,移动你需要的(蛴螬,初始化内存文件系统...)然后添加
md0
到md1
mdadm -a /dev/md1 /dev/md0
请注意,您可能必须先擦除 md0 上的数据...
dd if=/dev/zero of=/dev/md0 count=2048
答案2
@ HBruijn 谢谢,我误解了这个命令,
@ Lenniey 说得对,
这不会将 raid0 升级为 raid10 或 raid01,
我的文件系统是私有结构,所以我需要块级别的副本。
但我总能找到办法得到我想要的东西。
0) boot into live-cd
1) create a single raid1 md1 with sdf1
2) dd if=/dev/md0 of=/dev/md1
3) stop md0 and md1
4) assemble md1 with sdf1 and update UUID name as same as md0
5) remove sd[a-d]
6) reboot into system
已与VM确认,并将于明天在线上系统执行。