Linux分区类型EXT3与EXT4的主要区别是什么

69次阅读
没有评论

共计 4723 个字符,预计需要花费 12 分钟才能阅读完成。

这篇文章主要介绍了 Linux 分区类型 EXT3 与 EXT4 的主要区别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇 Linux 分区类型 EXT3 与 EXT4 的主要区别是什么文章都会有所收获,下面我们一起来看看吧。

一、EXT2 与 EXT3

 
 Linux 之前缺省情况下使用的文件系统为 Ext2,ext2 文件系统的确高效稳定。但是,随着 Linux 系统在关键业务中的应用,Linux 文件系统的弱点也渐渐显露出来了: 其中系统缺省使用的 ext2 文件系统是非日志文件系统。这在关键行业的应用是一个致命的弱点.Ext3 文件系统是直接从 Ext2 文件系统发展而来,目前 ext3 文件系统已经非常稳定可靠。它完全兼容 ext2 文件系统。用户可以平滑地过渡到一个日志功能健全的文件系统中来。这实际上了也是 ext3 日志文件系统初始设计的初衷。

二、EXT3 日志文件系统的特点

1、高可用性

系统使用了 ext3 文件系统后,即使在非正常关机后,系统也不需要检查文件系统。宕机发生后,恢复 ext3 文件系统的时间只要数十秒钟。

2、数据的完整性

ext3 文件系统能够极大地提高文件系统的完整性,避免了意外宕机对文件系统的破坏。在保证数据完整性方面,ext3 文件系统有 2 种模式可供选择。其中之一就是“同时保持文件系统及数据的一致性”模式。采用这种方式,你永远不再会看到由于非正常关机而存储在磁盘上的垃圾文件。

3、文件系统的速度

尽管使用 ext3 文件系统时,有时在存储数据时可能要多次写数据,但是,从总体上看来,ext3 比 ext2 的性能还要好一些。这是因为 ext3 的日志功能对磁盘的驱动器读写头进行了优化。所以,文件系统的读写性能较之 Ext2 文件系统并来说,性能并没有降低。

4、数据转换

由 ext2 文件系统转换成 ext3 文件系统非常容易,只要简单地键入两条命令即可完成整个转换过程,用户不用花时间备份、恢复、格式化分区等。用一个 ext3 文件系统提供的小工具 tune2fs,它可以将 ext2 文件系统轻松转换为 ext3 日志文件系统。另外,ext3 文件系统可以不经任何更改,而直接加载成为 ext2 文件系统。

5、多种日志模式

Ext3 有多种日志模式,一种工作模式是对所有的文件数据及 metadata(定义文件系统中数据的数据, 即数据的数据)进行日志记录(data=journal 模式);另一种工作模式则是只对 metadata 记录日志,而不对数据进行日志记录,也即所谓 data=ordered 或 data=writeback 模式。系统管理人员可以根据系统的实际工作要求,在系统的工作速度与文件数据的一致性之间作出选择。

三、EXT3 的优点

为什么你需要从 ext2 迁移到 ext3 呢?以下有四个主要原因:可用性、数据完整性、速度、易于迁移。

1、可用性

 
  在非正常当机后(停电、系统崩溃),只有在通过 e2fsck 进行一致性校验后,ext2 文件系统才能被装载使用。运行 e2fsck 的时间主要取决于 ext2 文件系统的大小。校验稍大一些的文件系统(几十 GB)需要很长时间。如果文件系统上的文件数量多,校验的时间则更长。校验几百个 GB 的文件系统可能需要一个小时或更长。这极大地限制了可用性。相比之下,除非发生硬件故障,即使非正常关机,ext3 也不需要文件系统校验。这是因为数据是以文件系统始终保持一致方式写入磁盘的。在非正常关机后,恢复 ext3 文件系统的时间不依赖于文件系统的大小或文件数量,而依赖于维护一致性所需“日志”的大小。使用缺省日志设置,恢复时间仅需一秒(依赖于硬件速度)。

2、数据完整性

 
  使用 ext3 文件系统,在非正常关机时,数据完整性能得到可靠的保障。你可以选择数据保护的类型和级别。你可以选择保证文件系统一致,但是允许文件系统上的数据在非正常关机时受损;这是可以在某些状况下提高一些速度(但非所有状况)。你也可以选择保持数据的可靠性与文件系统一致;这意味着在当机后,你不会在新近写入的文件中看到任何数据垃圾。这个保持数据的可靠性与文件系统一致的安全的选择是缺省设置。

3、速度

 
  尽管 ext3 写入数据的次数多于 ext2,但是 ext3 常常快于 ext2(高数据流)。这是因为 ext3 的日志功能优化硬盘磁头的转动。你可以从 3 种日志模式中选择 1 种来优化速度,有选择地牺牲一些数据完整性。

4、易于迁移

 
  你可以不重新格式化硬盘,并且很方便的从 ext2 迁移至 ext3 而享受可靠的日志文件系统的好处。对,不需要做长时间的、枯燥的、有可能失误的“备份-重新格式化-恢复”操作,就可以体验 ext3 的优点。有两种迁移的方法:如果你升级你的系统,Red Hat Linux 安装程序会协助迁移。需要你做的工作
就是为每一个文件系统按一下选择按钮。使用 tune2fs 程序可以为现存的 ext2 文件系统增加日志功能。如果文件系统在转换的过程已经被装载了 (mount),那么在 root 目录下会出现文件”.journal”;如果文件系统没有被装载,那么文件系统中不会出现该文件。转换文件系统,只需要运行 tune2fs –j /dev/hda1(或者你要转换的文件系统所在的任何设备名称),同时把文件 /etc/fstab 中的 ext2 修改为 ext3。如果你要转换自己的根文件系统,你必须使用 initrd 引导启动。参照 mkinitrd 的手册描述运行程序,同时确认自己的 LILO 或 GRUB 配置中装载了 initrd(如果没有成功,系统仍然能启动,但是根文件系统会以 ext2 形式装载,而不是 ext3,你可以使用命令 cat /proc/mounts 来确认这一点。)详情可参看 tune2fs 命令的 man page 在线手册(执行 man tune2fs)。

总而言之

 
 ext3 日志文件系统是目前 linux 系统由 ext2 文件系统过度到日志文件系统最为简单的一种选择,实现方式也最为简洁。由于是直接从 ext2 文件系统发展而来,系统由 ext2 文件系统过渡到 ext3 日志文件系统升级过程平滑,可以最大限度地保证系统数据的安全性。目前 linux 系统要使用日志文件系统,最保险的方式就是选择 ext3 文件系统。

四、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″命令禁用该特性。) 

五、EXT2 转 EXT3

编辑 /etc/fstab。把每一个你想转换成 ext3 的分区的条目改成类似的内容:

/dev/hdXX /mnt_point ext3
defaults 1 0

在上面的一行中,将 /dev/hdXX 替换成分区,例如 /dev/hda2,把 /mnt_point 替换成你想挂载的位置,例如:/home。最后的 0 保证在启动的时候这个分区不会被 chechfs 脚本进行一致性检查。若想这个分区肯定可以被挂载然后又不太肯定内核支持 ext3 的话,可以把 ext3 换成 auto。启动每一个你在 /etc/fstab 中改为 ext3 的分区的日志,运行:tune2fs -j /dev/hdXX 重新挂载分区或者重起系统 (如果你重新编译了内核)。

关于“Linux 分区类型 EXT3 与 EXT4 的主要区别是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Linux 分区类型 EXT3 与 EXT4 的主要区别是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计4723字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)