在Linux中监视XFS文件系统健康状况

我最近遇到文件系统崩溃。 我有一台服务器运行了大约180天,没有任何问题,但后来我注意到奇怪的事情发生,显然ext3文件系统是非常糟糕的形状。 我有驱动器和内存testing,他们都很好。 最终,我被迫软pipe系统,并完全重新安装。 fsck.ext3只会让事情变得更糟。

现在,我不希望这种情况再次发生,所以这次我使用了XFS,而我觉得它比ext3更成熟,但是我不知道如何监视文件系统的健康状况。 xfs_check根本不会让我在安装时扫描设备。

那么,如何在系统联机时监视XFS文件系统的运行状况?

实际上,您可以做的很多事情来监视文件系统本身的运行状况。 这个线程解释了为什么你不能在一个在线读写的文件系统上执行fsck-style检查的原因。

在某种程度上,你应该相信作为一个日志文件系统,XFS最好保持你的数据健康。 在知道xfs_checkfsck.ext3快得多,而XFS没有像ext3的180天/ x坐标规则那样规定一个定期检查的时候,你也可以采取一些安慰措施。


编辑评论:

虽然我知道你曾经被咬过,但是两次害羞。 我可以向你保证,“完全崩溃”不是与UNIX文件系统相关的系统问题。 根据我的经验,这些事件往往只能在硬件故障,用户错误(不打算不尊重)或两者的不幸混合的情况下实现。 然而,在技术层面上,这与你之前的ext3安装出了什么问题没有什么特别的细节。

将文件系统放在LVM逻辑卷上 ,从逻辑卷创build一个临时快照 ,然后fsck这个快照(而逻辑卷仍然在线)。

也许Theodore Ts'o的ext3的e2croncheck脚本会让你开始。

(正如3dinfluence提到:ZFS绝对是更好的解决scheme…)

我注意到奇怪的事情发生

那么问题不是文件系统(或者至less是不太可能)。 ext3是最常用的FS之一,任何严重到造成灾难性腐败的bug都应该已经被发现和修复了。

原因在于其他地方,可能在硬件本身(也许是内存)。

为了回答您的问题:您可以在线查看XFS文件系统,但仅限于以只读方式安装。

检查当前安装的任何文件系统的一致性是不推荐的。

简短的免责声明:我喜欢XFS及其速度。 这不是一个咆哮,而是一个警告。


立即回答:不,您需要卸载文件系统才能执行检查。 在live文件系统上运行fsck是一件坏事。 文件系统在这样一个检查下不断变化,这意味着你永远不能确定它是否一直在被检查,或者更糟的是,如果你的“修复”不会变得更糟。

虽然这不是一个直接的答案,但它是一个明确的答案。 Ext3对你来说可能是一个更好的select ,如果你遇到了Ext3的腐败,那么你将需要重新检查你的硬件。 对于$ {DIETY}的爱, 如果你正在寻找一些在恢复过程中不会(可能)松散数据的东西,就不应该使用XFS。 在某些情况下,它将在恢复期间将数据块清零 。

从第二个链接引用:

5.1写入失败

数据:我们发现数据错误大多被忽略,或者除了通知用户错误外,几乎不采取任何行动。 在大多数情况下,数据丢失是在用户不知情的情况下静静地发生的。

请记住,XFS最初是为video工作而devise的,所以如果你有一个video文件损坏,这不是什么大不了的事情,你总是可以通过video拼接来补丁“坏点”。 在14TB的文件系统上等待几天才能获得fsck,这是一件大事,所以它会对数据完整性进行检查。

无论使用什么文件系统,文件系统损坏都会发生。 多年来,我一直使用Ext3和XFS文件系统。

除了使用FUSE之外,ZFS在Linux上不可用,并且具有联机后台清理function,可以在发生数据丢失之前检测并修复错误。 它还对所有文件系统操作执行大量ECC,并检测并报告遇到的任何错误。 但是,它应该能够从大多数这些中恢复和治愈。 但即使ZFS所使用的所有ECC技巧都存在一些极端情况,通常是硬件问题,即ZFS文件系统已被损坏。

最好的办法是制定好的备份策略和灾难恢复计划。 从已知的良好备份恢复数据是从这些问题中恢复的最快方法。 通过lost+found是一个痛苦的,容易出错的过程。