mdadm - 它如何处理对 RAID 设备的直接写入?

mdadm - 它如何处理对 RAID 设备的直接写入?

假设我有一个使用 3 个设备 /dev/sdb[1-3] 的 RAID 1 配置。md 设备是 /dev/md0。

如果我像以下示例一样任意写入一个/一些底层设备,会发生什么情况?

dd if=/dev/zero of=/dev/sdb2 bs=512 count=10 && dd if=/dev/zero of=/dev/sdb3 bs=512 count=20

通过运行以下命令可以看出,RAID 控制器似乎没有发现底层设备之间存在任何不一致

mdadm --detail 

/dev/md0:
        Version : 1.2
  Creation Time : Sun Sep 25 19:31:26 2016
     Raid Level : raid1
     Array Size : 1134592 (1108.19 MiB 1161.82 MB)
  Used Dev Size : 1134592 (1108.19 MiB 1161.82 MB)
   Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Sun Sep 25 21:33:25 2016
          State : clean 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

           Name : u2:0  (local to host u2)
           UUID : 952d3545:9681da3d:58cc4024:75e1fc89
         Events : 81

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2
       2       8       19        2      active sync   /dev/sdb3

cat /proc/mdstat

Personalities : [raid1] 
md0 : active raid1 sdb3[2] sdb1[0] sdb2[1]
      1134592 blocks super 1.2 [3/3] [UUU]

unused devices: <none>

但是,当我尝试挂载 /dev/md0 文件系统时出现以下错误:

mount /dev/md0 /mnt/a

mount: wrong fs type, bad option, bad superblock on /dev/md0,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

RAID 设备中的数据能否幸存?如果可以,怎么办?

提前致谢,

答案1

是的,因为1个磁盘仍然有正确的数据。

您可能需要手动失败+移除坏磁盘,重新分区,将其添加回来并同步阵列...小心。

https://www.thomas-krenn.com/en/wiki/Mdadm_recovery_and_resync

停止和启动阵列可能让它立即在降级模式下工作。但您可能仍需要修复阵列。

https://superuser.com/questions/603481/how-do-i-reactivate-my-mdadm-raid5-array

mdadm --stop /dev/md0 
mdadm --assemble --scan

答案2

mdraid 不验证数据的一致性,即使在 raid1/5 中也是如此。因此在这种情况下可能会发生无声损坏。但最糟糕的是,在这种情况下 mdraid 不知道哪个磁盘包含正确的数据。如果您损坏了第一个磁盘上的数据并使用类似这样的命令执行阵列修复: echo repair > /sys/block/md0/md/sync_action您将真的倒霉。在这种情况下,mdraid 会将错误的数据从第一个磁盘复制到第二个磁盘。它会有效地擦除该位置的正确数据。因此,始终需要有良好的备份计划,并记住 raid 不是完美的或白痴教授。

相关内容