linux – mkfs.ext4 -G选项有什么作用?

前端之家收集整理的这篇文章主要介绍了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选项,显然不鼓励使用/更改/调整,正如您在手册页中所述.

-G number-of-groups

Specify the number of block groups that will be packed together to create a larger virtual block group (or “flex_bg group”) in an ext4 filesystem. This
improves Meta-data locality and performance on Meta-data heavy workloads. The number of groups must be a power of 2 and may only be specified if the flex_bg
filesystem feature is enabled.

您可以通过运行dump2fs -h / my / file / system并查找Flex块组大小来查看默认值.例如,对于我的ext4分区,结果是:

Flex块组大小:16

这正是Theodore Tso所说的,应该是他在第17页的Speeding up filesystem checks in ext4中所做的.

By default mke2fs uses 16 block groups/flex_bg group (must be power of 2)

至于它的作用,你可以看到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也是如此.

我希望这有助于消除您的困惑并回答您的问题. =)

猜你在找的Linux相关文章