在决定使用 LVM2 作为服务器上的卷管理器后,我们也希望有一个可在线调整大小的文件系统。在阅读了几篇文章后,我决定使用 JFS 而不是 XFS。
今天,我们办公室的服务器断电了,我发现 JFS 卷上的一个文件已完全损坏。虽然这种情况可能发生,但系统在断电后启动时没有显示任何文件系统问题,从而欺骗了我相信一切正常。重放日志后,所有文件系统都干净了。
这让我感觉很不舒服。我不想要一个在断电后无法很好地恢复的文件系统,但我更不想要一个不告诉我可能存在问题的文件系统。
所以我想试一试,问一下您更喜欢哪种文件系统?您喜欢哪一个,为什么?我正在寻找以下功能:
- 强壮的
- 在线可增长
- 对于通常的工作负载(正常文件大小 - 没有像数百万个小文件之类的特殊情况)具有良好的性能
- 在 CentOS 5.4 发行版中可用,但这是可选的
我还想知道您是否使用过 JFS 并有过不好的经历 - 当然也想知道是否有使用 JFS 的成功案例。最后:您更喜欢 XFS 还是 JFS 更喜欢 XFS(正如所提到的,针对日常使用,而不是针对特定工作负载)
答案1
XFS。
JFS 现在基本上已经死亡/不再维护了。
现在大多数/所有 XFS 开发人员都在 Redhat 工作,并且 RHEL 5.4 中已提供对 XFS 的内核支持。
答案2
重放日志仅意味着将元数据恢复到干净状态。它不保证数据本身。对于任何日志文件系统都是如此,至少对于不执行 COW(写时复制)等其他技巧的系统而言。因此,无论您选择哪种文件系统,只要服务器不干净地关闭,就有可能出现此类数据损坏。您的文件系统完成了它的工作,并能够将文件系统恢复到干净状态,从而最大限度地减少数据丢失/损坏。
因此,从中吸取的教训是,始终为服务器配备 UPS,当电池电量不足时,UPS 可以指示服务器正常关闭。并且始终做好备份。
如果您真的担心数据完整性,则必须转向更强大的文件系统,例如 OpenSolaris 或 BSD 上的 ZFS。这是我目前所知道的唯一可用于生产的免费解决方案。Linux 上的 BTRFS 将在几年后成熟并经过测试后成为一个不错的解决方案。但目前我不建议在生产环境中使用它。即使是这些更强大的文件系统也不能替代备份。
答案3
我和布拉德有同样的经历。
JFS 的性能和功能确实很棒,但是强制关机后我丢失了 3 个分区的数据。
因此,我把 JFS 扔进了垃圾箱,将来会使用 XFS(并等待 Linux 上的 ZFS 以及 BTRFS)。
答案4
标准 Linux ext3 文件系统支持在线增长,并满足您的其他要求。除非您有其他特殊需求,否则这确实是正确的答案。尽管 XFS 历史悠久且声誉良好,但使用它仍然会让您陷入特殊情况,这很好,但会增加复杂性的固有成本 — 为什么要为您不需要的东西“付费”?