ext3/ext4文件系统大分区支持
来源:互联网 发布:知乎性价比高围巾品牌 编辑:程序博客网 时间:2024/05/16 15:52
很长一段时间以来,ext3是很多linux发行版默认的文件系统,目前ext4已经正式发布,已经有发行版开始使用ext4作为默认的文件系统了,其实最初的时候ext4是作为ext3的扩展,但是为了保证ext3的稳定性等原因,很多人反对直接对ext3进行扩展,所以单独作为了ext4项目。
ext3还是使用15个inode来查找数据块,前12个为直接数据块,直接指向存储数据的数据块,接下来分别为一级间接块,二级间接块,三级间接块,跟下图一致:
其中point本来也是数据块,现在拿来做数据块的索引用,其中ext3的头文件定义为: __u32 i_block[EXT3_N_BLOCKS];/* Pointers to blocks */,所以可以计算ext3文件系统的极限:
最大分区:
因为定义的是无符号32位数,所以可能定位的block范围为2^32,也就是4G,如果一个block大小为4KB,所以为4G * 4KB = 16TB
最大文件:
前面直接指向12个数据块,一级间接块最大为block size / 4,block size就是数据块的大小,因为一个索引是4个字节,所以除以4,这样计算下来,最大的文件可以使用的总块数为:12 + (block size/4) + (block size/4)^2 + (block size/4)^3,如果block size大小为4K,则为(12 + 2^10 + 2^20 + 2^30) * 2^12 约等于4T。
为了突破ext3这个大小限制,ext4使用了48位的数据块索引空间,同时使用了如下结构代替inode索引的方式:
struct ext3_extent {
__u32 ee_block; /* first logical block extent covers */
__u16 ee_len; /* number of blocks covered by extent */
__u16 ee_start_hi; /* high 16 bits of physical block */
__u32 ee_start; /* low 32 bigs of physical block */
};
这样查找数据块的时候就不是每个块建立一个索引,而且使用连续的数据块,也就是分别指示起始位置,以及连续的块数,这样在大文件的时候,磁盘io效率以及查找数据块效率上都有很大的提高,所以ext4的文件系统也比ext3出色。因为使用了48位的索引空间,所以在4KB块大小的情况下,文件系统的极限是2^48 * 4KB = 1EB,不过,目前由于工具的限制,只能使用16TB的分区。
- ext3/ext4文件系统大分区支持
- 大容量磁盘应用ext4文件系统分区与格式化(与ext3不同哦)
- fat, ntfs, ext, ext3, ext4支持分区大小
- Linux文件系统Ext2,Ext3,Ext4性能大比拼
- ext2、ext3、ext4文件系统区别
- Linux 文件系统ext2, ext3, ext4
- Ext4文件系统和Ext3文件系统性能对比
- 迁移ext3文件系统到ext4文件系统
- Linux分区类型EXT2、EXT3、EXT4详解
- Ext3和Ext4文件系统磁盘布局
- ext2、ext3、ext4、brtfs文件系统区别
- ext2、ext3、ext4、brtfs文件系统区别
- Linux ext3/ext4 文件系统数据恢复
- 模块化编译ext2, ext3,ext4 文件系统
- ext3、ext4文件系统数据恢复--extundelete
- Linux ext2, ext3, ext4 文件系统解读[1]
- Linux ext2, ext3, ext4 文件系统解读[2]
- Linux ext2, ext3, ext4 文件系统解读[3]
- KMP算法解决字符串匹配问题
- Oracle10g Release 2手工建立数据库步骤
- 没什么原因的感到不爽
- Android中发出“GET”和“POST”请求和得到响应的运用
- VC 绘图,使用双缓冲技术实现
- ext3/ext4文件系统大分区支持
- Core Java 第一章知识点总结
- ASP.net:Ftp操作-----FtpWebRequest
- MBR与GPT分区格式(实例-创建大于2TB的分区)
- SAP收货时自动创建采购订单
- 规划小结(第三期):季度总结
- 程序员很少上《非诚勿扰》电视节目相亲之分析
- ubuntu安装codeblocks
- 找个程序员做老公挺好