在完成重新启动之前,系统会确保 mdadm 已同步吗?

xen*_*ide 7 linux raid software-raid mdadm

这是对我的疯狂mdadm问题的跟进。我试图找出可能导致sda不同步的原因。我唯一能想到的是我刚刚运行了一堆更新并且正在重新启动以重新加载内核升级。两个驱动器是否可能没有同步?如果正在进行 mdadm 同步,系统会阻止重新启动吗?可以做到吗?关于可能发生什么的任何其他建议?以及如何进一步预防。驱动器似乎没有问题。

Gil*_*il' 3

它肯定会在干净关闭时起作用:

\n
    \n
  • Debian mdadm FAQ暗示内核做了正确的事情:

    \n
    \n

    \xe2\x80\x8b8。我的(其中一个)RAID 阵列正忙且无法停止。是什么赋予了?
    \nmdadm 报告根\n文件系统的阵列在关闭时正忙,这是完全正常的。原因是必须安装根文件系统才能停止阵列(否则/sbin/mdadm 不存在),但要停止阵列,则无法安装根文件系统。Catch 22。内核实际上在停止之前停止了数组,所以一切都很好。

    \n
    \n
  • \n
  • md 驱动程序在关闭时将所有设备设置为只读(甚至给物理设备大约一秒钟的时间来稳定)。

    \n
  • \n
\n

即使您的系统在写入过程中崩溃,驱动程序也会在写入时小心地将块标记为脏块,并且如果脏块从不干净的数组开始,则重新同步脏块。请参阅有关数组状态的注释。内核文档警告说,脏数组(未完全关闭)和降级数组(有丢失的部分)不会自动组装,因为这不安全。当您组装脏数组时,您将(可能非常简短)resync/sys/block/md99/md/rd0/state. 总而言之,md 驱动程序负责保护您的数据免受硬件组件(CPU 或磁盘)完全故障的影响,这正是人们对它的期望。

\n

md 无法保护您免受由于 RAM、CPU、主板或磁盘中的拜占庭故障(即无声翻转一位或多位)造成的数据损坏。磁盘硬件有校验和,但它们并不完美(例如参见Zfs 宣传文献)。\n ZfsBtrfs可以防止存储设备损坏。Btrfs 的校验和树可确保您的硬盘发生一点翻转时会收到通知。Zfs 提供高达 SHA-256 的校验和选择(根据Jeff Bonwick 的博客),它不仅可以防止随机损坏,甚至可以防止蓄意攻击,但会消耗 CPU 周期。

\n