如何自动检查 Linux Software Raid 的文件系统?

如何自动检查 Linux Software Raid 的文件系统?

在 Linux 软件 raid 中,定期检查文件系统的最佳做法是什么?对于单个驱动器或硬件 raid,tune2fs -c 5 -i 1w /dev/sda1意味着每 5 次挂载检查一次文件系统,或者距离上次挂载已过去一周或更长时间。

但在 mdadm 领域,至少有三个设备可以可以通过四种方式进行检查:

  1. 回显检查> /sys/block/md0/md/sync_action
  2. tune2fs -c 5 -i 1w /dev/md0
  3. tune2fs -c 5 -l 1w /dev/sdal
  4. tune2fs -c 5 -l 1w /dev/sdb1

我想我只想自动执行 #1 和 #2。永远不要直接检查物理驱动器。 man md说物理驱动器有不同的数据并不总是不正常的,因为有时这并不重要。

一个好的做法是在前 90 天内对硬盘的裸机部分进行几次压力测试。目标不一定是文件系统测试,而是硬件压力测试,因此e2fsck -v -f -c -c -D -C 0 /dev/md1。此手动运行的强制 fs 检查会读取和写入整个 fs 并按字母顺序排列,同时将详细输出打印到 stdout。md 足够智能,可以在不同的硬盘上设置 RAID,但它是否足够智能,可以分别管理每个驱动器成员的坏块列表?在软件 raid /dev/md0 上执行上述 e2fsck 是否会在两个驱动器上标记坏块,即使只有一个驱动器上存在坏块?

成员驱动器 ( /dev/sdX ) 的 UUID 应该与 RAID 驱动器 ( /dev/mdY ) 相同还是不同?如果相同,则很容易找到 raid 集的所有成员。但如果相同,则基于 tune2fs 的 e2fsck 会同时注册物理成员驱动器和软件 raid。

答案1

您正在谈论的是存储不同级别的两种完全不同的检查类型。

  1. 引发的一致性检查echo check > /sys/block/md0/md/sync_action只是比较镜像的两侧(我假设您指的是一对镜像驱动器)。它对所比较的位的结构一无所知,因此它不会告诉您有关文件系统健康状况的任何信息。

  2. 控制 fsck 的设置是文件系统的一个属性,因此只有一个选项tunefs有意义 - tunefs -i 1w /dev/md0。除非自从我上次查看以来情况发生了重大变化,否则fsck只会在挂载文件系统之前发生。fsck通常不建议在挂载的文件系统上运行(当然e2fsck手册页仍然这么说)。实际上,检查文件系统的频率取决于系统重新启动的频率(除非您有特殊的程序来定期umount检查文件系统)。mount

相关内容