我应该怎么办?

我应该怎么办?

目前状态:

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

我应该怎么办?

理想情况下:从备份恢复您的数据!...

如果你没有

  1. 停止一切

    mdadm --stop /dev/md1

  2. 检索丢失的数据

    如果你/dev/md0使用的是 LVM,则必须使用gpart。如果是ext4您可以使用 来恢复它们fsck超级块备份。 看man fsck.ext4

  3. 重新创建md1,但作为退化突袭1:

    mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 缺少 /dev/sdf1

  4. 复制数据

    复制您的数据,来自md0md1

  5. 最后一步

    卸载md0,移动你需要的(蛴螬初始化内存文件系统...)

    然后添加md0md1

    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确认,并将于明天在线上系统执行。

相关内容