JFS布局 日志文件系统如何处理磁盘布局

http://tech.ddvip.com   2008年04月15日    社区交流

内容摘要:本文描述磁盘日志文件系统(JFS)布局,以及使用磁盘布局结构来实现可扩展性、可靠性和性能的机制。还会了解用来操作这些结构的策略和算法,以及 JFS 是在哪里使用遍布文件系统的 B+ 树来提高文件系统操作性能。

  B+ 树

  这一节描述文件布局使用的 B+ 树数据结构。选择 B+ 树是为了提高读写盘区的性能,这是 JFS 必须进行的最普通操作。B+ 树为读取文件的特定盘区提供快速搜索。它还提供有效方法将盘区添加或插入文件中。较为少见的情形是:当删除文件时,JFS 需要遍历整个 B+ 树。为了保证 JFS 会删除 B+ 树使用的块以及文件数据,对于遍历 B+ 树效率也很高。

  盘区分配描述符(xad 结构)描述盘区并且又添加了表示文件所需的两个字段:描述盘区表示的逻辑字节地址的偏移量和标志字段。盘区分配描述符结构在 jfs_xtree.h, struct xad 中定义。

  xad 结构为:

     struct xad {
          unsigned  flag:8;
          unsigned  rsvrd:16;
          unsigned  off1:8;
          uint32   off2;
          unsigned  len:24;
          unsigned  addr1:8;
          uint32   addr2;
          } xad_t;

  其中:

  flag 是包含各种标志的 8 位字段。这些标志能够表示写入时复制、是否分配了盘区但没有记录它、压缩信息等等。

  rsvrd是保留供将来使用的 16 位字段。它总为零。

  off1,off2 是 40 位字段,包含盘区中第一个块的逻辑偏移量。逻辑偏移量是以聚集块尺寸为单位表示;也就是说,要取得一个字节,偏移量必须乘以聚集块尺寸。

  len 是 24 位字段,包含盘区的长度。长度以聚集块尺寸为单位表示。

  addr1,addr2 是 40 位字段,包含盘区的地址。地址以聚集块尺寸为单位表示。

  xad 结构描述了两个抽象范围:

来源:ibm    作者:Steve Best    责编:豆豆技术应用

正在加载评论...