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

linux – mkfs.ext4 -G选项有什么作用?,第1张

概述在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之间的块 在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 – mkfs.ext4 -G选项有什么作用?全部内容,希望文章能够帮你解决linux – mkfs.ext4 -G选项有什么作用?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1036858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存