- 与EXT3兼容。执行若干条命令,就能从EXT3在线迁移到EXT4,而无须重新格式化磁盘或重新安装操作系统。原有的EXT3文件系统保留,EXT4用于新数据。
- 更大的文件系统和更大的文件。EXT3目前支持最大16TB文件系统和最大2TB文件,EXT4分别支持1EB的文件系统以及16TB的文件
- 无限数量的子目录。EXT3目前只支持32000个子目录,而EXT4支持无限数量的子目录
- Extents。EXT3采用间接映射,当操作大文件时,效率极其低下。而EXT4引入了现在文件系统中流行的extents概念。
- 多块分配。当写入数据到ext3文件系统中时,ext3的数据块分配器每次只能分配一个4KB的块,写一个100MB文件就要调用25600次数据块分配器,而ext4的多块分配器“multiblock allocator”(mballoc)支持一次调用分配多个数据块。
- 延迟分配。Ext3的数据块分配策略是尽快分配。而ext4和其它现在文件操作系统的策略是尽可能地延迟分配,直到文件再cache中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。
- 快速fsck。以前知心fsck第一步就会很慢,因为它要检查所有的inode,现在ext4给每个组的inode表中都添加了一份未使用的inode的列表,fsck ext4文件系统就可以跳过它们而只去检查那些在用的inode了。
- 日志校验。ext4的日志校验功能可以很方便地判断日志数据是否损坏,而且它将ext3的两阶段日志机制合并成一个阶段,在增加安全性的同时提高了性能
- “无日志”(no jouranling)模式。ext4允许关闭日志,以便某些有特殊需求的用户可以借此提升性能
- 在线碎片整理。ext4支持在线碎片整理,并将提供e3defrag工具进行个别文件或整个文件系统的碎片整理
- inode的相关 性。ext4支持更大的inode,默认inode大小为256字节。ext4支持快速扩展属性和inode预留
- 持久预分配(Persistent preallocation)。ext4在文件系统层面实现了持久预分配并提供形影的API,比应用软件自己实现更有效率
- 默认启用barrier,ext4默认启用barrier,只有当barrier之前的数据全部写入磁盘,才能写barrier之后的数据(可通过 mount -o barrier=0 命令禁用该特性)
时间: 2024-10-27 04:14:48