默认情况下,在 180 天或一定数量的挂载后,大多数 Linux 文件系统会强制执行文件系统检查 (fsck)。当然,这可以使用例如 tune2fs -c 0 -i 0 在 ext2 或 ext3 上关闭。
在小型文件系统上,这种检查只是一种不便。但是,考虑到更大的文件系统,此检查可能需要数小时才能完成。当你的用户依赖这个文件系统来提高他们的工作效率时,比如说它通过 NFS 为他们的主目录提供服务,你会禁用计划的文件系统检查吗?
我问这个问题是因为现在是凌晨 2:15,我正在等待很长的 fsck 完成(ext3)!
180 天的默认 fsck 时间是 ext3 不支持在线一致性检查的设计缺陷的解决方法。真正的解决方案是找到一个支持这一点的文件系统。我不知道是否有任何成熟的文件系统。这是一场真正的悲剧。也许 btrfs 有一天会拯救我们。
作为标准维护的一部分,我通过使用完整的 fsck 进行计划重启来回应 fsck 意外的多小时停机问题。这比在生产时间遇到轻微的损坏并让它变成真正的中断要好。
问题的很大一部分是 ext3 的 fsck 速度过慢。尽管 xfs 具有更快的 fsck,但它使用过多的内存进行分发,默认情况下在大型文件系统上鼓励 xfs。不过,在大多数系统上,这不是问题。切换到 xfs 至少可以实现相当快的 fsck。这可能会使运行 fsck 作为正常维护的一部分更容易安排。
如果您正在运行 RedHat 并考虑使用 xfs,那么您必须注意他们不鼓励使用 xfs 的程度,以及在您运行的内核上可能很少有人使用 xfs 的事实。
我的理解是 ext4 项目的目标是至少在一定程度上提高 fsck 性能。
我想说这只是生产服务器不应该单独运行并且始终具有热/冷备份或参与两个节点集群的另一个原因。在虚拟化的这些日子里,您可以轻松地拥有一个物理主服务器和一个虚拟服务器,它只是每 X 天完成的物理副本,准备接管。
除了这个不太有用的答案,我想说你应该平衡数据的重要性......如果这只是一个集群节点,请跳过它。如果这是客户的非备份 Web 服务器,您可能希望下次提前计划 :-)
取决于.. 例如,我们有一台服务器因日常维护而停机,该服务器正在运行 QMail 堆栈。随着时间的推移,QMail 会创建和杀死大量文件,它是一个非常繁忙的邮件服务器。fsck 花了大约 36 个小时。这并不是说我们从交易中节省了大量的性能,但最终我想你可以争辩说文件系统更健康。随之而来的混乱真的值得吗?不是。在。全部。
XFS 很有趣。这是一个始终一致的FS。它不需要 fsck。它不会因为 fsck 而导致停机。
但它还有另一个问题。您需要一个支持处理 HDD 坏块的 RAID 控制器。
当操作系统开始知道坏块并且HDD硬件坏块列表已满时,XFS没有将坏块列入黑名单的功能。
ext2/3/4、fat、ntfs 等(离线测试)能够将坏块列入黑名单,但不能将 XFS 列入黑名单。
因此,对于非企业安装,XFS 可能不太适合。我将 XFS 与 linux 软件 raid1 用于备份分区,其中内容是很多小文件,随着时间的推移变化不大。