Ext4文件系统新特性
单独的Extents,这样就不用像Ext3那样新增25600个数据块的记录(一个数据块是4KB)。而超大型文件会被分解在多个extents里。
Extents的实现提高了文件系统的性能,减少了文件碎片。
多块分配
在Ext3中,“将新的数据写入磁盘的哪些空闲块”是由块分配器来控制的。但是Ext3的块分配器存在一定缺陷,那就是它一次只能够分配一个数据块
(4KB),这就意味着,如果系统需要向磁盘中写入100MB的数据,那么需要调用块分配器25600次,而且由于块分配器无法获知总的分配块数,所以也
无法对分配空间和分配位置进行优化。
在Ext4中,使用了“多块分配器”,即一次调用可以分配多个数据块,这种机制提高了系统的性能,而且使得分配器有了充足的优化空间。
延迟分配
延迟分配(Delayed allocation)是一项仅仅少数现代文件系统才具有的优秀特性,比如XFS、ZFS、btrfs(better
FS)以及Reiser4。它能够尽可能的积累更多的数据块再分配出去,相对比,传统的文件系统则会尽快的将数据块分配出去,如Ext3,reiser3
等。
这项特性会和Extents特性以及多块分配特性相结合,使得磁盘IO性能得到显著提高。 更快速的FSCK
在Ext3中,Fsck本身是个速度很慢的操作,因为它要检查文件系统里的每一个“i节点”。但是,Ext4会维护一个未使用的“i节点”表,在进行
fsck操作时,会跳过表中节点,只检查正在使用中的i节点。这种机制使得fsck的效率提高为原有Ext3文件系统的2到20倍。不过,你要注意到一
点,那就是这个未使用的i节点表是由fsck来维护的,而不是由Ext4,因此你必须要首先运行一次fsck来生成,这样,在下次再运行fsck时才可以
享受提速。(虽然表是由fsck来维护的,但你还是需要从Ext3升级到Ext4才能够享受这项功能)
日志校验
日志要算是磁盘中最常用的部分了,也是最容易使硬盘出问题的机制之一。如果你不幸使用一个已经崩溃的日志来恢复系统的话,将导致更大规模的系统崩溃。
Ext4提供校验日志数据的功能,可以查看其潜在错误。而且,Ext4还会将Ext3日志机制