查看: 797|回复: 0

Linux文件系统ext3与ext4主要区别

[复制链接]

0

威望

1895

金钱

2473

积分

金牌会员

Rank: 6Rank: 6

积分
2473

活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2017-11-16 10:47:29 | 显示全部楼层 |阅读模式

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
linux文件系统ext3与ext4主要区别
很长一段时间以来,ext3是很多linux发行版默认的文件系统,现在ext4已经发布,并且已经有发行版开始使用ext4作为默认的文件系统了(其实最初的时候ext4是作为ext3的扩展,但是为了保证ext3的稳定性等原因,很多人反对直接对ext3进行扩展,所以单独作为了ext4项目)。
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!很长一段时间以来,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的主要区别
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!Linux kernel自2.6.28开始正式支持新的文件系统 Ext4。 Ext4是Ext3的改进版,修改了Ext3中部分重要的数据结构,而不仅仅像Ext3对Ext2那样,只是增加了一个日志功能而已。Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能:
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!1.与Ext3兼容。执行若干条命令,就能从Ext3在线迁移到Ext4,而无须重新格式化磁盘或重新安装系统。原有Ext3数据结构照样保留,Ext4作用于新数据,当然,整个文件系统因此也就获得了Ext4所支持的更大容量。
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!2.更大的文件系统和更大的文件。较之Ext3目前所支持的最大16TB文件系统和最大2TB文件,Ext4分别支持1EB(1,048,576TB,1EB=1024PB,1PB=1024TB)的文件系统,以及16TB 的文件。
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!3.无限数量的子目录。Ext3目前只支持32,000个子目录,而Ext4支持无限数量的子目录。
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!4.Extents。Ext3 采用间接块映射,当操作大文件时,效率极其低下。比如一个 100MB 大小的文件,在Ext3中要建立25,600个数据块(每个数据块大小为 4KB)的映射表。而Ext4引入了现代文件系统中流行的extents概念,每个 extent 为一组连续的数据块,上述文件则表示为“该文件数据保存在接下来的25,600个数据块中”,提高了不少效率。
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!5.多块分配。当 写入数据到 Ext3 文件系统中时,Ext3 的数据块分配器每次只能分配一个 4KB 的块,写一个 100MB 文件就要调用 25,600 次数据块分配器,而 Ext4 的多块分配器“multiblock allocator”(mballoc) 支持一次调用分配多个数据块。
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!6.延迟分配。Ext3的数据块分配策略是尽快分配,而 Ext4 和其它现代文件操作系统的策略是尽可能地延迟分配,直到文件在 cache 中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!7.快速 fsck。以前执行 fsck 第一步就会很慢,因为它要检查所有的 inode,现在 Ext4 给每个组的 inode 表中都添加了一份未使用 inode 的列表,今后 fsck Ext4 文件系统就可以跳过它们而只去检查那些在用的 inode 了。
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!8.日志校验。日志是最常用的部分,也极易导致磁盘硬件故障,而从损坏的日志中恢复数据会导致更多的数据损坏。Ext4的日志校验功能可以很方便地判断日志数据是否损坏,而且它将 Ext3 的两阶段日志机制合并成一个阶段,在增加安全性的同时提高了性能。
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!9.“无日志”(No Journaling)模式。日志总归有一些开销,Ext4允许关闭日志,以便某些有特殊需求的用户可以借此提升性能。
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!10.在线碎片整理。尽管延迟分配、多块分配和extents能有效减少文件系统碎片,但碎片还是不可避免会产生。Ext4支持在线碎片整理,并将提供e4defrag工具进行个别文件或整个文件系统的碎片整理。
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!11.inode 相关特性。Ext4 支持更大的inode,较之Ext3默认的inode大小128字节,Ext4为了在 inode 中容纳更多的扩展属性(如纳秒时间戳或inode版本),默认inode大小为256字节。Ext4 还支持快速扩展属性(fast extended attributes)和inode保留(inodes reservation)。
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!12.持久预分配(Persistent preallocation)。 P2P 软件为了保证下载文件有足够的空间存放,常常会预先创建一个与所下载文件大小相同的空文件,以免未来的数小时或数天之内磁盘空间不足导致下载失败。 Ext4在文件系统层面实现了持久预分配并提供相应的API(libc 中的 posix_fallocate()),比应用软件自己实现更有效率。
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!13.默认启用 barrier。磁 盘上配有内部缓存,以便重新调整批量数据的写操作顺序,优化写入性能,因此文件系统必须在日志数据写入磁盘之后才能写commit记录,若commit 记录写入在先,而日志有可能损坏,那么就会影响数据完整性。Ext4默认启用barrier,只有当barrier之前的数据全部写入磁盘,才能写 barrier之后的数据。(可通过“mount -o barrier=0″命令禁用该特性。)
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!乡知网,商道、电商、乡村知识分享!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

推荐阅读 More>
广告位
快速回复 返回顶部 返回列表