微信公众号:
在操作系统中,文件系统都是针对分区而言的,一个磁盘必须先分区才能格式化文件系统(即使你将磁盘所有容量划分一个分区).格式文件系统后才能挂载使用,此时就必须知道一个文件系统到底支持多大的分区大小。
注:目前我们以block大小为4KB计算,4KB是我们最常用的一个值了。
块地址索引空间:
32bit的块索引空间:就是最大只能划出2^32个blocks,多一个block,都没有序号分给它了
EXT2、3:
在ext3文件系统中,采用32bit的块索引空间,并且采用的无符号int整型,因此一个分区的最大block数量为:232个
则最大利用空间为4KB * 232 = 244 = 16TB
由此,得知在ext3文件系统中,当block为4K时,一个分区的空间将最大,且最大空间为16TB。
EXT4:
ext4使用48bit的块地址索引空间,因此在64位系统下,block为4k的情况下,大小为:
248 * 4KB = 260KB =1024*1024TB =1024PB = 1EB
如果ext4能采用64bit的块地址索引的话,block为4K,则会达到270=64ZB。
Why not 64bit
- 48bit is enough for a 2**60 (or 1EB) filesystem
- Original lustre extent patches provide 48bit block numbers
- More packed meta data, less disk IO
- Extent generation flag allow adapt to 64bit block number easily
相关资料:
EXT4-wiki:https://en.wikipedia.org/wiki/Ext4#Limitations
Ext4 Disk Layout:https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
[ext4] 磁盘布局 - extent tree:https://blog.csdn.net/younger_china/article/details/22287265
What are the file and file system size limitations for Red Hat Enterprise Linux?:https://access.redhat.com/solutions/1532
XFS User Guide:http://xfs.org/docs/xfsdocs-xml-dev/XFS_User_Guide/tmp/en-US/html/index.html
刨根问底:ext3/ext4文件系统最大空间及单个文件大小演算法则:http://blog.51cto.com/mingyang/1580314