RAID 恢复后重建 LVM

RAID 恢复后重建 LVM

我有 4 个磁盘 RAID-5 来创建 md0,还有另外 4 个磁盘 RAID-5 来创建 md1。然后通过 LVM 将它们组合起来创建一个分区。

我离开时停电了,当我回来时,看起来 md1 中的一个磁盘不同步了 - mdadm 一直声称它只能找到 4 个驱动器中的 3 个。我唯一能做的就是在这四个磁盘mdadm --create上使用,然后让它重建阵列。这对我来说似乎是个坏主意,但我的东西都不是关键的(虽然要花一段时间才能全部恢复),而且一个线程有人声称这可以解决问题。如果这毁了我的所有数据,那么我想你可以停止阅读并直接告诉我。

等待阵列重建四个小时后,md1 看起来没问题(我猜),但 lvm 抱怨无法找到具有正确 UUID 的设备,可能是因为 md1 更改了 UUID。我使用了和pvcreate命令vgcfgrestore,如文档中所述这里。但是,尝试在其上运行时lvchange -a y,会给我一条resume ioctl failed消息。

我还有希望恢复我的数据吗,还是我已经把它彻底搞砸了?


我的 LV 是线性设置的。看来我应该至少能够从 md0 恢复数据,方法是使用类似测试磁盘。 然而,例子显示 TestDisk 中列出的 LVM 分区,而我只看到 sda、sdb 等以及 md0 和 md1。

[$]> lvdisplay
  --- Logical volume ---
  LV Name                /dev/VolGroup/lvm
  VG Name                VolGroup
  LV UUID                b1h1VL-f11t-TGJv-ajbx-4Axn-wi89-fReUKu
  LV Write Access        read/write
  LV Status              suspended
  # open                 0
  LV Size                6.14 TiB
  Current LE             1609648
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0

[$]> lvchange -ay /dev/VolGroup/lvm
  device-mapper: reload ioctl failed: Invalid argument

答案1

恐怕,通过将两个 (RAID) 磁盘组合成一个 LVM 卷,然后删除并重新创建其中一个磁盘,您实际上已经丢失了数据。如果您使用了 LVM 条带化,那么它们肯定已经丢失了,因为文件的其他每个块都在该磁盘上。使用线性模式,您可能能够使用某些磁盘恢复软件恢复部分文件。

可惜,因为你的基本配置是合理的。由于 RAID5,即使缺少一个磁盘,你也应该能够访问该卷。我建议在“mdadm --create”之前进行备份...

答案2

下次,您有两个选择……您可以手动尝试使用 mdadm --assemble 而不是 --create 来组装 raid。或者,您可以像文件系统检查一样使用“ckraid”,但针对 raid 5 阵列。(Linux Software Raid How-To 提到了后者)。

不过,就我个人而言,如果您使用不带 UPS 的 SW Raid,我个人会选择 Raid 10,而不是 5 或 6,因为它对电源问题具有更高的容忍度。

相关内容