ext3 fsck时间与分区大小


9

我正在为大型存储服务器场进行设置,为了避免使用长达一个月的fscks,我的计划是将存储分为多个较小的文件系统(这很好,因为我有一个结构良好的文件树,所以可容易地具有单独的文件系统安装在1/2/3/4/,等等)。

我的困难是找到文件系统的“合理”大小的任何枚举,以使fsck时间同样“合理”。尽管我完全知道给定大小的绝对时间将在很大程度上取决于硬件,但是对于文件系统大小不同的ext3 fsck时间,我似乎找不到任何关于曲线形状的描述,以及其他变量是什么(在一个树中成千上万个目录中,一个文件目录中包含文件的文件系统所花的时间要长于一个文件系统所花费的时间;一个大文件与小文件;完整文件系统与空文件系统等等)。

有人引用过对此进行深入研究的数字吗?否则,有关这些问题的轶事至少应有助于指导我自己的实验。

编辑:澄清:无论文件系统如何,如果元数据出问题,都需要检查。是否启用或需要基于时间或基于挂载的重新fscks并不成问题,而我要求提供专门针对ext3的编号的唯一原因是因为这是最有可能选择的文件系统。如果您知道文件系统具有特别快的fsck进程,我欢迎您提出建议,但是它确实是一个可靠的选择(声称“文件系统X永远不需要fscking!”会被嘲笑并嘲笑其长度) 。我也意识到需要备份,并且对fsck的渴望并不能替代备份,但是当它出现故障时,只是丢弃文件系统并从备份中恢复,而不是fscking似乎是真的,

Answers:


6

根据Mathur等人论文。(第29页),e2fsck时间在某个点之后随文件系统上inode的数量线性增长。如果需要解决这个问题,那么使用多达1000万个inode的文件系统会更有效。

切换到ext4会有所帮助-在文件系统未加载到边缘的情况下,性能提升(由于不检查标记为未使用的inode)不会产生明显的影响。


感谢您的参考,帮助我确认了一些事情。我还执行了自己的基准测试,这证明了该论文中显示的线性增长。
womble

2

我认为您将必须进行自己的基准测试。在google上进行的快速搜索没有发现任何内容,除了ext4 fscks比ext3快得多。

因此,创建一些ext3分区(100GB,200GB等),直到您要使用的磁盘大小。然后用数据填充它们。如果您可以使用与生产数据类似的数据(每个目录的文件,文件大小分布等),那将是最佳选择。请注意,简单地从另一个分区或备份设备复制文件会将它们完美地放置在磁盘上并进行碎片整理,因此您的测试将缺少很多磁盘头查找时间,而这些时间是由大量写入/修改/删除操作产生的。

您还需要考虑一下并行fscks。请参阅/ etc / fstab中的最后两个字段。同一物理磁盘上的分区应按顺序进行;可以并行完成同一控制器上的多个磁盘,但请注意不要使控制器过载并使它们减慢速度。



-1

有什么原因为什么您不能使用在重新启动时不会强制您使用时间或基于装载计数的fscks的文件系统?

(基于时间的fscks确实使我烦恼-对于长时间运行的服务器,它几乎可以保证每次升级内核时都必须执行完整的fsck)。

无论如何,XFS是不会强制使用fsck的日记文件系统之一。值得一看。


另一个选择是使用Nexenta(opensolaris内核,debian userland),这将为您提供ZFS。<A HREF=" nexenta.org/"> http://www.nexenta.org/</A >
中科院

3
当文件系统损坏时,无论它是什么(extN,XFS,ZFS等),或者是否基于时间/装载计数,都需要一个fsck。我想确保单个损坏的文件系统不会花费太长时间来进行fsck。
womble

1
是的,如果fs已损坏,则fs当然需要fsck。使用像XFS这样的fs不会消除这些问题,您也不应该尝试甚至不想这样做。我没有说可以合理解释的任何话。我的观点是,强制执行fsck仅仅是因为自上次fsck以来已经进行了X天或Y次挂载,这是不必要的,而且令人烦恼甚至可能是“职业限制”,尤其是在您的用户或公司正在等待服务器到来的情况下背部。您可以消除那些不必要的fcks,这样做是一件好事。
cas

尽管可能(或可能不)是一件好事,但它并没有回答提出的问题。
womble
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.