数据清理和修复 RAID1 镜像?

数据清理和修复 RAID1 镜像?

在 Linux 中,如果我有一个带有 N ≥ 1 个活动设备的软件 RAID1 镜像/dev/md1,那么命令的语义是什么repair

echo "repair" >/sys/block/md1/md/sync_action

我的假设是否正确

  • 如果有 1 个活动设备,该repair命令不执行任何操作,
  • 如果有 2 个活动设备,该repair命令将搜索数据差异,并使用第二个设备的不匹配数据覆盖其中一个设备的不匹配数据,并且
  • 如果有 3 个(或更多)活动设备,该repair命令会搜索数据差异,找出(如果可能)或决定哪些数据内容最为普遍,并使用这些数据覆盖其他设备上不匹配的数据?

我读了文档/admin-guide/md.rst乃至文档/设备映射器/dm-raid.txt来自 Linux 内核文档,但目前这些内容不是很有用。我也试图理解驱动程序/md/raid1.c但是它的注释不太好并且我缺乏对 Linux 内核内部的了解,所以无法理解它。

答案1

如果代码没有改变,3 路 RAID1 将不会为您提供与 BTRFS/ZFS 清理相当的智能/更好的恢复。

来自主要 mdraid 开发人员的博客

我的立场是,如果存在需要纠正的不一致,那么应该以简单可预测的方式纠正,任何额外的复杂性都是不合理的。对于 RAID1,这意味着复制到第一个块而不是所有其他块

也看一下这里. 摘要:

它已经读取了所有块,现在比较它们是否相同。如果不相同,它会将第一个块复制到任何不同的块。

相关内容