首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >mkfs.ext4 -G选项是做什么的?

mkfs.ext4 -G选项是做什么的?
EN

Server Fault用户
提问于 2015-07-12 19:37:39
回答 1查看 3.5K关注 0票数 7

在微软的在超级V上运行Linux的最佳实践页面上,建议使用ext4而不是ext3,并使用mkfs.ext4 –G 4096 /dev/sdX1“指定组数为4096”。这到底是在做什么?

手册页说每个组的块(-g选项)不应该被更改,使用tune2fs -l我可以看到它被设置为32768。这意味着将将128-512个GiB (取决于块大小)的块组打包在一起,但这与默认的块组相比如何呢?手册页没有说明默认值是什么,我也没有在tune2fs -l输出中看到它。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2015-09-11 01:17:59

-g选项与mkfs.ext4-G选项非常、非常不同。

微软肯定建议在最佳实践文档中更改-G选项,而不是-g选项,正如您从手册页面中注意到的那样,显然不鼓励使用/更改/调整该选项。

-G数量组指定将打包在一起以在ext4文件系统中创建更大的虚拟块组(或"flex_bg组“)的块组的数量。这提高了元数据局部性和元数据繁重工作负载的性能。组数必须是2的幂,并且只能在启用flex_bg文件系统特性时指定。

您可以通过运行dump2fs -h /my/file/system并查找Flex block group size来查看默认值。例如,对于我的一个ext4分区,结果是:

Flex block group size: 16

这正是西奥多·左( Theodore Tso )所说的,应该是他在第17页的演示文稿( 加快ext4 4中的文件系统检查 )中说的。

默认情况下,mke2fs使用16个块组/flex_bg组(必须是2的幂)

至于它所做的事情,您可以从第14页开始,看到fsckExt4 4文件系统概述与Ext4 4在线碎片整理展望中的大型文件系统上的操作的性能差异。

根据linux内核wiki,这是通过将元数据分组在一起,以便更快地加载,并使更大的文件在磁盘上连续。ext4 4内核wiki:灵活块组

wiki条目引用enable larger files to be contiguous on disk的最后一部分是为什么将其设置为4096的Hyper最佳实践的关键部分,因为它允许更小的动态VHDX文件的实际磁盘空间使用,因为文件在虚拟硬盘上的文件系统上没有很大的碎片,而且数据结构更有效地分组。

关于微软在Linux方面的最佳实践建议背后的推理的更多细节,可以在OpenSuSE 12.1发行说明中找到。在Windows上格式化大型磁盘分区和RedHatEnterpriseLinux6技术说明6.4虚拟化也是如此。

我希望这有助于澄清你的困惑和回答你的问题。=)

票数 5
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/705209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档