linux – mkfs.ext4 -G选项有什么作用?
在Microsoft的
Best Practices for running Linux on Hyper-V页面上,建议使用ext4而不是ext3,并使用mkfs.ext4 -G 4096 / dev / sdX1“指定组数为4096”.这到底是做什么的?
手册页说不应该更改每组的块数(-g选项)并使用tune2fs -l我可以看到它设置为32768.这意味着将打包128到512 GiB之间的块组(取决于块大小)在一起,但这与默认值相比如何?手册页没有说明默认值是什么,我也没有在tune2fs -l输出中看到它. 解决方法
-g选项与mkfs.ext4的-G选项非常不同.
Microsoft肯定建议更改最佳实践文档中的-G选项,而不是-g选项,显然不鼓励使用/更改/调整,正如您在手册页中所述.
您可以通过运行dump2fs -h / my / file / system并查找Flex块组大小来查看默认值.例如,对于我的ext4分区,结果是: Flex块组大小:16 这正是Theodore Tso所说的,应该是他在第17页的Speeding up filesystem checks in ext4中所做的.
至于它的作用,你可以看到Outline of Ext4 Filesystem and Ext4 Online Defragmentation Foresight开始的大型文件系统上fsck操作的性能差异,从第14页开始. 根据Linux内核wiki,这可以通过将元数据分组在一起以加快加载速度,并使更大的文件在磁盘上连续. ext4 kernel wiki: Flexible Block Groups 该wiki入口引用的最后一部分使得较大的文件在磁盘上是连续的,这是为什么将其设置为4096的Hyper-V最佳实践的关键部分,因为它允许动态的较小实际磁盘空间使用VHDX文件,因为文件在虚拟硬盘上的文件系统上没有碎片,并且数据结构更有效地分组. 有关Linux方面的Microsoft最佳实践建议背后的原因的更多细节可以在OpenSuSE 12.1发行说明中找到. Formatting Large Disk Partitions on Windows Server和红帽企业Linux 6技术说明6.4 Virtualization也是如此. 我希望这有助于消除您的困惑并回答您的问题. =) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |