Abi Aqil Asked: 2009-08-18 17:16:40 +0800 CST2009-08-18 17:16:40 +0800 CST 2009-08-18 17:16:40 +0800 CST Linux 文件系统 772 最近我们的存储出现故障,我们需要 fsck。存储大约1.2 Tera,我们用了5个多小时。 是否有 ext3 文件系统的替代解决方案,或者比 ext3 更好的解决方案?欢迎提出有利和不利的建议。 TQVM linux ext3 fsck 6 个回答 Voted retracile 2009-08-18T17:56:50+08:002009-08-18T17:56:50+08:00 有一些 LWN 文章可能会引起您的兴趣: fsck 的多面 文件系统:chunkfs 和 reiser4 chunkfs 发生了什么? DisabledLeopard 2009-08-18T17:31:27+08:002009-08-18T17:31:27+08:00 你在这里有很多选择。文件系统虽然具有相似的基本用途,但根据您向它们投入的工作负载类型,它们的行为都会有所不同——实际上可以肯定的是,虽然一个人可能会发誓说 ReiserFS 的好处,但另一个人会厌恶它。 从企业的角度来看,我最熟悉的两个文件系统是 JFS 和 XFS。虽然不是很广泛使用,但我是 JFS 的粉丝,因为它从不让我失望,在各种工作负载中都有很好的性能,非常稳定并且对电源故障的容忍度相对较高。XFS 将为您提供更好的性能,但如果电源中断,它确实存在重大的已知数据丢失或损坏风险 - 如果您管理电源,绝对值得使用。 桌面领域我现在专门使用 Ext4,因为它比 ext3 快得多,并且减少了 i/o 开销和 cpu 使用,这对于延长我的笔记本电脑电池寿命非常有用:-) 更多信息的良好参考: http ://en.wikipedia.org/wiki/Comparison_of_file_systems 编辑:正如其他人也提到的,如果出现文件系统错误[损坏等],必须进行某种修复来解决问题。无论这是自动化的 [如 ZFS] 还是手动的 [几乎所有其他内容],您的文件系统都需要一段时间才能恢复到干净的状态。大多数情况下,您将不得不在文件系统未挂载或处于只读状态时执行这些操作。这需要多少时间主要取决于问题的严重程度、元数据的大小/状态以及磁盘的速度。我经历过的一个可怕的例子是 XFS 损坏,需要完整的 12TB 文件系统重建,大约需要 12 小时才能完成。 James Sneeringer 2009-08-18T17:37:25+08:002009-08-18T17:37:25+08:00 我怀疑当您必须对文件系统进行全面检查时,您会看到任何文件系统的类似结果。如果您有 1,000,000 个 inode 正在使用中,那么如果您必须检查所有这些 inode 的一致性,那么它们的组织方式并不重要。无论如何,你将触及 1,000,000 个文件。 可以显着加快速度的是更快的磁盘和更多的主轴。如果您需要 1.2 TB,那么在 RAID 10 中使用 8 个 300 GB SAS 驱动器可以获得比使用单个 1.2 TB SATA 驱动器更好的性能,与文件系统无关。当然,这会花费您更多,但是您的停机时间会花费您什么?它仍然不能防止文件系统错误,但会减少恢复时间。 其他需要考虑的是故障卷上的数据是否变化很大。如果它大部分是静态的并且您有一个很好的备份,那么重新创建mkfs卷并从备份中恢复可能会更快。您可能会丢失最近的更改,但同样,您必须权衡这与停机成本。 3dinfluence 2009-08-18T17:29:14+08:002009-08-18T17:29:14+08:00 我不确定是否有任何真正好的替代方案,在文件系统损坏的情况下,fsck 在这种大小的文件系统上不需要很长时间。XFS 通常是我在 Linux 上选择的文件系统,但它的任何损坏也需要 fsck。我不确定它是否比 ext3 快得多。 虽然这对您目前的情况没有帮助,但 fsck 的日子已经屈指可数了。较新的 COW 文件系统,例如 Solaris/OpenSolaris 上的 ZFS,永远不会不一致,也不需要 fsck。我希望一旦 Btrfs 准备好生产,它在 Linux 上的这方面将是相似的。目前最好的办法是尝试限制文件系统的大小……在当今非结构化数据爆炸式增长的情况下,这并不总是一种选择。 你知道是什么导致文件系统损坏的开始吗?如果突然断电,那么你能做的最好的事情就是买一个 UPS。 juwi 2012-01-19T01:40:11+08:002012-01-19T01:40:11+08:00 如果您使用的是 Linux,我实际上建议您仔细查看 btrfs。 Imo 目前没有适合 Linux 中大型存储的文件系统。XFS、JFS reiser 和其他人都有自己的一系列问题。例如,JFS 碎片整理尚未移植到 Linux。只有当您可以确保永远不会断电并且您的硬件绝对可靠时,XFS 才是一个不错的选择。我不相信后一种是可以预测的。遗憾的是,Reiser 不再真正处于积极开发中,并且存在相当多的错误。 btrfs 旨在将类似 ZFS 的功能引入 Linux,同时避免 ZFS 的一些设计缺陷。但请记住,btrfs 目前仍在积极开发中,但它正在成熟。我还不建议将它用于生产用途,但它可能是您未来可行的升级途径。当你等待的时候,你可能真的想坚持使用 ext3/4。虽然这些远非完美,但它们是目前在 Linux 上的最佳选择。 mibus 2009-08-20T01:17:36+08:002009-08-20T01:17:36+08:00 您是否考虑过拆分音量?然后您可以运行并行 fscks(或者更少,如果您有一些干净的 FS)。 例如。3 x 400GB 卷 = 1.2TB。使用符号链接或更改 homedir 路径,将文件放在正确的位置。 邮件对此非常有用-您不会收到很大的文件。
有一些 LWN 文章可能会引起您的兴趣:
你在这里有很多选择。文件系统虽然具有相似的基本用途,但根据您向它们投入的工作负载类型,它们的行为都会有所不同——实际上可以肯定的是,虽然一个人可能会发誓说 ReiserFS 的好处,但另一个人会厌恶它。
从企业的角度来看,我最熟悉的两个文件系统是 JFS 和 XFS。虽然不是很广泛使用,但我是 JFS 的粉丝,因为它从不让我失望,在各种工作负载中都有很好的性能,非常稳定并且对电源故障的容忍度相对较高。XFS 将为您提供更好的性能,但如果电源中断,它确实存在重大的已知数据丢失或损坏风险 - 如果您管理电源,绝对值得使用。
桌面领域我现在专门使用 Ext4,因为它比 ext3 快得多,并且减少了 i/o 开销和 cpu 使用,这对于延长我的笔记本电脑电池寿命非常有用:-)
更多信息的良好参考: http ://en.wikipedia.org/wiki/Comparison_of_file_systems
编辑:正如其他人也提到的,如果出现文件系统错误[损坏等],必须进行某种修复来解决问题。无论这是自动化的 [如 ZFS] 还是手动的 [几乎所有其他内容],您的文件系统都需要一段时间才能恢复到干净的状态。大多数情况下,您将不得不在文件系统未挂载或处于只读状态时执行这些操作。这需要多少时间主要取决于问题的严重程度、元数据的大小/状态以及磁盘的速度。我经历过的一个可怕的例子是 XFS 损坏,需要完整的 12TB 文件系统重建,大约需要 12 小时才能完成。
我怀疑当您必须对文件系统进行全面检查时,您会看到任何文件系统的类似结果。如果您有 1,000,000 个 inode 正在使用中,那么如果您必须检查所有这些 inode 的一致性,那么它们的组织方式并不重要。无论如何,你将触及 1,000,000 个文件。
可以显着加快速度的是更快的磁盘和更多的主轴。如果您需要 1.2 TB,那么在 RAID 10 中使用 8 个 300 GB SAS 驱动器可以获得比使用单个 1.2 TB SATA 驱动器更好的性能,与文件系统无关。当然,这会花费您更多,但是您的停机时间会花费您什么?它仍然不能防止文件系统错误,但会减少恢复时间。
其他需要考虑的是故障卷上的数据是否变化很大。如果它大部分是静态的并且您有一个很好的备份,那么重新创建
mkfs
卷并从备份中恢复可能会更快。您可能会丢失最近的更改,但同样,您必须权衡这与停机成本。我不确定是否有任何真正好的替代方案,在文件系统损坏的情况下,fsck 在这种大小的文件系统上不需要很长时间。XFS 通常是我在 Linux 上选择的文件系统,但它的任何损坏也需要 fsck。我不确定它是否比 ext3 快得多。
虽然这对您目前的情况没有帮助,但 fsck 的日子已经屈指可数了。较新的 COW 文件系统,例如 Solaris/OpenSolaris 上的 ZFS,永远不会不一致,也不需要 fsck。我希望一旦 Btrfs 准备好生产,它在 Linux 上的这方面将是相似的。目前最好的办法是尝试限制文件系统的大小……在当今非结构化数据爆炸式增长的情况下,这并不总是一种选择。
你知道是什么导致文件系统损坏的开始吗?如果突然断电,那么你能做的最好的事情就是买一个 UPS。
如果您使用的是 Linux,我实际上建议您仔细查看 btrfs。
Imo 目前没有适合 Linux 中大型存储的文件系统。XFS、JFS reiser 和其他人都有自己的一系列问题。例如,JFS 碎片整理尚未移植到 Linux。只有当您可以确保永远不会断电并且您的硬件绝对可靠时,XFS 才是一个不错的选择。我不相信后一种是可以预测的。遗憾的是,Reiser 不再真正处于积极开发中,并且存在相当多的错误。
btrfs 旨在将类似 ZFS 的功能引入 Linux,同时避免 ZFS 的一些设计缺陷。但请记住,btrfs 目前仍在积极开发中,但它正在成熟。我还不建议将它用于生产用途,但它可能是您未来可行的升级途径。当你等待的时候,你可能真的想坚持使用 ext3/4。虽然这些远非完美,但它们是目前在 Linux 上的最佳选择。
您是否考虑过拆分音量?然后您可以运行并行 fscks(或者更少,如果您有一些干净的 FS)。
例如。3 x 400GB 卷 = 1.2TB。使用符号链接或更改 homedir 路径,将文件放在正确的位置。
邮件对此非常有用-您不会收到很大的文件。