Chinaunix首页 | 论坛 | 博客
  • 博客访问: 112063
  • 博文数量: 33
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 520
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-17 11:18
文章分类

全部博文(33)

文章存档

2011年(1)

2009年(11)

2008年(21)

我的朋友

分类: LINUX

2009-05-06 10:00:20

Ext4(The fourth extended file system)

  Ext4是一种针对ext3系统的扩展日志式文件系统,是专门为 Linux 开发的原始的扩展文件系统(ext 或 extfs)的第四版。
  相对于Ext3,特点如下:
  

兼容性


  Ext3升级到ext4能提供系统更高的性能,消除存储限制,和获取新的功能,并且不需要重新 格式化分区,ext4会在新的数据上用新的文件结构,旧的文件保留原状。以ext3 文件系统的方式mount到ext4上会不用新的磁盘格式,而且还能再用ext3来重新挂载,这样仅仅失去了ext4的优势。
  大文件系统/文件大小
  现在ext3支持最大16TB的文件系统。单个文件最大2TB。Ext4增加了48位块地址,最大支持1EB文件系统,和单个16TB的文件。1EB=1024PB 1PB=1024TB 1TB=1024GB。
  

子目录可伸缩性


  EXT3每个目录最大包含32000个子目录。减去.和..也就是31998
  ext4打破了这个限制可以无限制数量的子目录
  

Extents


  传统的Unix派生文件系统,使用间接块映射方案,以跟踪每块用于块相应的数据文件,这对大文 件来说是低效率的。现代文件系统使用不同的方法称为“extends” 。extends基本上指一串连续的物理快。通常叫做数据在下面的N个块中。一个100MB的文件可以分配到一extends中。而不需要创建一个间接映 射表为256000个blocks,(每个block 4kb)大文件被分割为很多范围。Extends改进了性能并且减少了碎片。因为extends鼓励在磁盘上连续布局。
  

Multiblock 分配


  ext4使用了一个多块分配来在一次调用中分配很多块。替换掉每次分配一个块,减少系统开销。在延时分配和extends上十分有用。
  

延迟分配


  延迟分配是一个性能特性(它不修改磁盘格式)。现代文件系统例如XFS,ZFS,btrfs or Reiser 4 并且它尽可能多的延时块的分配。相对于传统文件系统(例如Ext3 reiser3 etc)所做的立刻分配块提供了更好的性能。
  

日志校验和


  日志是磁盘中最常用的一部分,组成日志的这部分也是最容易出现硬件故障的。并且从一个受损的日 志上恢复数据会导致巨大的数据损坏。Ext4 校验和提供了改进,它允许将EXt3的双向提交日志格式转换为单向的,加速文件系统操作,在某些情况下达到20%---因此可靠性和性能同时被改进。
  

在线碎片整理


  
  当 延迟分配,extents 和 multiblock 分配 帮助减少碎片的时候,使用中的文件系统依然会产生碎片。为了解决这个问题,Ext4 将会支持在线碎片整理,并且有一个e4defrag工具可以整理个别文件在整个文件系统中。
  

索引节点-关联


  拥有大索引节点,纳秒时间戳,快速扩展属性,索引节点保留的特点。Ext3 支持 可设置的索引节点大小(通过 mkfs -l参数)但是默认索引节点大小是128字节。Ext4将默认为256字节。这需要适应一些额外的字段(比如纳秒时间戳或者索引节点版本)并且剩余索引节 点空间会被用于存放扩展属性为那些足够小的对象来适合空间。这样使访问那些属性更快,提高那些使用扩展属性的应用程序性能3-7倍。在目录创建的时候保留 若干索引节点在里面,预期它们在未来使用。这样改进性能,因为新文件被创建在目录中他们可以使用保留索引节点。文件创建和删除因此更高效。纳秒时间戳意味 着索引节点字段例如修改时间可以用纳秒分辨率替代Ext3中的秒。
  

持续预分配


  这个特性在ext3最新的内核版本中已经可用了,由glic仿真来实现文件系统不支持的功能,允许应用程序预分配磁盘空间:应用程序告诉文件系统来预分配空间,文件系统预分配需要的块和数据结构。

阅读(436) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~