扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共6页)
图 16是 ACL 文件的布局。
ACL 文件的数据未日志化。
扩展属性(EA)
扩展属性是附加到 JFS 对象适用存储和存取的机制。EA 连续存储在扩展属性空间 (EAS) 中,空格存储 EAS 由 JFS 对象 inode 的 EA 描述符定义。EA 描述符只是一个盘区描述符,定义见 jfs_types.h, struct dxd_t 。
EA 可以存放在 inode 内,或存放在单独盘区内。EA 描述符的标志字段指示存储的方式。由于此空间也可用于存放文件 xtree 附加的 xad 项,所以 inode 的 di_mode 字段指明该空间是否可用。如果该字段值为 INLINEEA,则表明空间可用。
如果 EA 存于 inode 内,则忽略 EA 描述符的 offset 和 length 字段。EA 描述符的大小表示数据的字节数。
如果 EA 存于盘区内,EA 描述符将描述该盘区。JFS 不希望 EA 数据太大,所以 JFS 不支持每个 inode 有多于一个盘区的 EA 数据。
EA 项包括 EA 名称和其值。要访问某个 EA,JFS 只是线性搜索 EA 数据。
EA 数据未日志化,但它是写同步的(即数据不是旧数据,就是新数据,但绝不可能是部分更新的数据)。JFS 在日志中记录 EA 数据的位置。嵌入 EA 数据是日志化的。
流
流用于将数据连接到一个文件或目录。这种附加数据和目录数据相似,都可按名引用。在第一版中不支持流,在这里讨论仅为元数据结构的完整性。
磁盘 inode 的四部分的第二部分有一个字段描述流描述符。由于附加到一个对象的流数目是可变的,所以流描述符是一个 inode 号,以允许流增加或缩减。流描述符 inode 指向的数据称为流列表。
流没有关联的扩展属性,所以从不使用流的 inode 四部分的最后一个部分-扩展属性。实际上该部分用于附加的流项。B+ 树的数据如同目录项。每个流都有自己的 inode ,它们依次记录流数据存放的数据块地址。
图 17是流的例子;流未记入日志。
带有文件集的聚集
图 18是包含一个文件集的聚集。
结束语
JFS 小组最重要的目标是创建可靠的,高性能的文件系统。本文讨论了 JFS 磁盘布局结构,以及实现可伸缩性、可靠性和高性能的机制。同时详细探讨了 JFS 如何在整个文件系统中使用 B+ 树提高文件系统操作。
作者简介
Steve Best 在美国德克赛斯州奥斯汀 IBM Software Solution & Strategy Division 工作,是文件系统开发部门的成员。Steve 以前从事操作系统上文件系统、国际化以及安全性领域的开发。目前,Steve 正从事将 JFS 移植到 Linux 的工作。
Dave Kleikamp 是奥斯汀 IBM Software Solution & Strategy Division 的成员。Dave 曾是 OS/2 JFS 文件系统的技术负责人,并且是 AIX 的调试专家。Dave 正从事 JFS 到 Linux 的开放源码移植。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。