分类:
2009-01-08 22:56:27
jfs和jfs2文件系统都是文件和目录的集合,管理文件或目录在磁盘上的位置。除了文件和目录以外,jfs2类型的文件系统还包含一个超级块、分配位图和一个或多个分配组。分配组由磁盘i节点和片区(Extent)组成。一个jfs2类型的文件系统也占据一个逻辑卷。
在jfs中,超级块的大小是4096字节,偏移量是4096字节;而在jfs2中,超级块的大小仍是4096字节,但是超级块在逻辑卷中的偏移量是32768字节。
jfs2的新功能包括基于片区的(Extent)的分配、目录排序和文件系统对象的动态空间分配等。
1.基于片区(Extent)的寻址结构
片区是一个连续的可变长的文件系统块的序列,它是jfs2对象的分配单位。"大片区"可以跨越多个分配组。一般而言,jfs2的分配策略通过为每一个片区分配尽可能大和连续的区间来使文件系统中片区的数量达到最小,使逻辑块的分配更加连续。这样能够提供更大的i/o传输效率,达以改善性能的目的。但是在有些情况上并不能总是达到这种理想的效果。
片区是由逻辑块偏移量(logical offset)、长度(length)和物理地址(physical address)组成的三元组来描述。其中由逻辑块偏移量和长度可能计算出物理地址。基于片区的寻址结构是由片区描述、作为根的i节点和作为键值的文件内的逻辑偏移量而构成的一个子B+树。
2. 可变的逻辑块大小
JFS2把磁盘空间分割成块,JFS2支持512,1024,2048和4096字节块的大小。不同的文件系统可以使用不同的块的大小,从而达到优化空间的目的,减少目录或文件内部的残片(Fragmentation).
3.动态分配磁盘i节点。
JFS2给磁盘i节点动态地按需分配空间,当i节点不再需要时就会释放i节点所占用的空间。这个特点避免了在创建标准JFS时为磁盘i节点预留固定数量磁盘空间的缺点。因此,这样就不需要用户在创建文件系统时计算这个文件系统中要保存的文件和目录的最大数。
4.目录组织
JFS2提供了两种不同的目录组织.第1种目录组织适用于小目录和在一个目录的i节点中保存目录的内容.这种目录组织不需要单独的目录块i/o和单独的存储分配.
第2种目录组织适用于较大的目录,每一个目录就是一个以名字为键值的B+树.与传统的、线性的、未分级的目录组织相比,这种目录组织能够提供更块的目录查找、插入和删除的能力。
5.在线整理文件系统的空闲残片
JFS2支持已安装的文件系统(即使有进程访问这个文件系统)对残余在文件系统中的空闲空间的整理功能。一旦一个文件系统的空闲空间变成分散的残片,对这些残片的整理将会使得JFS2提供I/O效率更高的磁盘空间分配,从而避免出现一些因空闲空间不连续而不够分配的情况。
标准的JFS和JFS2的主要功能对照表:
功能 |
JFS2 |
JFS |
块/碎片的大小 | 512~4096Byte的块 | 512~4096Byte的碎片 |
理论上的最大文件 | 1PB | 64GB |
理论上的最大文件系统 | 4PB |
16TB(64位内核)1TB(32位内核) |
已测试过的最大文件 | 1TB | 64GB |
已测试过的最大文件系统 | 1TB | 1TB |
i节点的数量 | 动态分配,受磁盘空间限制 | 固定,在创建文件系统时预先设定 |
目录的组织结构 | B+树结构 | 线性的结构 |
是否支持在线整理存储残片 | 支持 | 支持 |
是否支持压缩 | 不支持 | 支持 |
创建时的默认所有权属性 | root.system | sys.sys |
默认文件模式中的SGID | SGID=off | SGID=on |
是否支持配额(Quotas) | 不支持 | 支持 |
扩展的ACL | 支持 | 支持 |
是否支持Intel Itanium架构 | 支持 | 不支持 |
是否支持IBM PowerPC架构 | 支持 | 支持 |