MD RAID 1 的读取会不一致吗?

MD RAID 1 的读取会不一致吗?

虽然 RAID 1 提供了冗余的好处,但我试图了解使用 RAID 是否会在任何情况下导致不一致(I/O 错误,而不是磁盘错误,...)。

为了理解这一点,我阅读了手册页,这给我留下了一些疑问。

更改会并行写入所有设备。

(1) 写入是否仅在所有磁盘写入完成后才确认返回系统(标记为故障的磁盘除外)?

对于 RAID1,[在非正常关闭后使阵列保持一致]涉及将第一个驱动器的内容复制到所有其他驱动器上。

(2) 第一个设备可能包含也可能不包含最近的写入。因此,它可能会覆盖第二个较新磁盘上的数据。只要(1)的答案是肯定的,这应该不是问题,对吧?

如果 md 驱动程序检测到写入错误 [...],它会立即禁用该设备(将其标记为故障)并继续对其余设备进行操作。

(3) 在继续写操作之前,此信息是否会保留(例如重新启动后)?

(4) 写意图日志只是一种优化,还是在某些数据丢失不可避免的情况下有帮助?

请考虑以下情形:

  1. md0 带有设备 sda 和 sdb 的 RAID 1
  2. abc写入 md0
  3. sdb 失败并被标记为有故障
  4. xyz写入 md0(现在实际上是 sda)
  5. 系统重新启动,之后只有 sdb 可用(无论出于何种原因)
  6. 当我从 md0 读取时会发生什么?我将阅读什么内容?

本质上,我想了解使用 RAID 1(特别是 md)是否会导致已向用户确认的写入丢失(可能未被注意到),而单个磁盘根本无法写入(可用性与一致性)。

相关内容