为什么仅建议ext4达到16 TB?


28

ext4 Wiki文章中,我看到ext4最多可以使用1个EiB,但建议最多使用16个TiB。为什么会这样?为什么建议将XFS用于较大的文件系统?

(ELICS:像我是计算机科学专业的学生一样向我解释,但对文件系统了解不多)



如果您正在使用庞大的数据集,则Zetabyte文件系统可能值得一看:en.wikipedia.org/wiki/ZFS
þ– Mioriin

16 TB是一个32位计数器可以解决的4096字节块的最大数量。似乎ext4存在64位问题。从早期的SGI开始,XFS就已经完全具备64位功能。
安德鲁·亨利

@Andrew ext4限制当前为48位,因此尽管仍然存在64位问题,但并不像限制为32位那样糟糕。
史蒂芬·基特

1
是的,维基百科页面上的文字为100 TB,边栏为16 TB,第一个引用是一个旧的Red Hat和明显过时的Ext4_Howto(在过去4.1年中进行了5次更新)。也许对此主题感兴趣的人应该去挖掘一些较新的资源并更新页面?:)
ilkkachu

Answers:


37

ext4 Wikipedia条目的确切报价是

但是,对于超过100 TB的卷,Red Hat建议使用XFS而不是ext4。

EXT4 HOWTO提到,

在撰写本文时,用于创建大于16 TiB的文件系统的代码尚未稳定发布e2fsprogs。它将在将来的版本中。

这是避免使用大于16 TiB的文件系统的原因之一,但该说明已过时:e2fsprogs因为1.42版(2011年11月)具有创建和处理大于16 TiB的文件系统的能力。对此类系统mke2fs使用bighuge类型(实际上bighuge超出4到16 TiB );这些增加了inode比率,因此提供的inode更少。

回到Red Hat建议,从RHEL 7.3开始,XFS是默认文件系统,最多支持500 TiB,而ext4仅支持最多50 TiB。我认为这是合同性的,而不是技术性的,尽管《存储管理指南》以技术性的方式来表达限制(没有详细介绍)。我想50 TiB限制技术或性能原因...

e2fsprogs发行说明做给一个理由比16大的TiB避免文件系统:显然,在resize_inode功能上有比这个更大的文件系统被禁用。


是什么使您相信在ext4上使用xfs的原因是契约性的?
HSchmale,

5
@HSchmale我并不是说有出于合同原因而在ext4上使用XFS的原因,我的意思是当Red Hat表示他们支持高达500 TiB的XFS和ext4高达50 TiB的ext4时,该支持涉及合同方面,客户可以要求支持达到这些大小,但据我所知,红帽将不承担任何合同义务。(请注意,我为Red Hat工作,但我只是为自己说话。)
Stephen Kitt,
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.