mdadm
我在 Linux 机器上设置了 2 个驱动器的 RAID 1 。如果我在设备繁忙时断开其中一个驱动器的连接,然后在一段时间后重新连接它,会发生什么情况?假设硬件不会因驱动器在繁忙时断电而损坏。
- 在任何情况下,正在进行的读写操作都会继续吗(即使我断开连接的驱动器是实际发生读取操作的驱动器,因为读取操作只需要 RAID 软件访问一个驱动器)?
- 再次连接后,RAID软件会自动识别该驱动器并将最新数据写入其中,从而自动修复阵列吗?
- 如果是这样,RAID 软件是否会将未断开连接的驱动器的所有数据复制到原来的驱动器或仅复制已更改的数据?
- 如果我先断开驱动器 1,更改一些文件,然后断开驱动器 2,然后重新连接驱动器 1,更改一些文件,然后重新连接驱动器 2,会发生什么情况?
答案1
操作应继续,断开连接的驱动器已从 RAID 中踢出。但如果您不走运并且控制器不喜欢它或出现其他问题,那么您可能会看到 RAID 完全崩溃。
RAID 通常不会自动修复被踢出的驱动器。您必须自己发出命令,例如mdadm --re-add /dev/mdx /dev/sdy1
.如果您有一个写入意图位图,那么幸运的话,只有更改的部分会被重写;否则它将进行完全同步。
如果两个驱动器都认为它们是 RAID 阵列中唯一有效的剩余驱动器,并且被拉出的驱动器本身也会这么认为,因为拉出后没有任何内容会更新其元数据,它需要其他驱动器才能知道自己的故障- 你可能会遇到脑裂的情况,这是一种你必须自己手动解决的冲突,通过查看每一方的文件并决定是选择一方还是以某种方式混合两者。