会员名称:  密码:   验证码:     会员注册  忘记密码? 
设为首页
加入收藏
返回首页
媒体资讯>> 业界资讯 - 会展动态 - 竞赛&活动 - IT互联网  媒体学院>> 图形图像 - 网页制作 - 网络编程 - 数据库 - 服务器 - 网络应用  作品赏析>> 视频音响 - CG动画 - UI设计 - 平面设计 - 网页设计 - 摄影映象 - 三维2D - 其它设计  媒体工作室>> 视频影像 - 音频声响 - 三维2D - 平面视觉 - 软硬技术 - 摄影映象  人物访谈>> 人物访谈 - 华夏新锐  媒体杂志>> 媒体杂志  素材图库>> 丽景佳图 - 设计素材 - 资料图库 - 矢量图库 - 动态动画 - 特色图标  酷站赏析>> 韩国网站 - 国外网站 - 国内网站  会员中心>> 会员注册 - 会员登陆
当前位置:华夏媒体 - > 媒体学院 - > 服务器 - > LINUX服务器 - > JFS 文件系统概述及布局分析
   
   
   
JFS 文件系统概述及布局分析 JFS 文件系统概...  [LINU...]
More... 
   
网络协议X档案全集(十) 网络协议X档案...  [其它...]
不可忽视的BIOS参数设置 不可忽视的BIO...  [其它...]
微软IE浏览器非常规修改全攻略(上) 微软IE浏览器非...  [其它...]
微软IE浏览器非常规修改全攻略(下) 微软IE浏览器非...  [其它...]
网管十招 网管十招  [其它...]
微软安全问题 源自OS和IE中集成RSS 微软安全问题 ...  [其它...]
修改注册表使电脑更安全 修改注册表使电...  [其它...]
利用注册表管理IP地址 利用注册表管理...  [其它...]
有关IIS HACK的一些方法整理 有关IIS HACK的...  [其它...]
More 
JFS 文件系统概述及布局分析
编辑:华夏媒体     作者:未知     来源:网络     时间:2006-07-29     总浏览量:2541
文字大小:[      ]     文字颜色:      双击滚屏/单击停止

[上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [下一页] 


  int32  inofreefwd; /* 4: ag inode free list forward  */
  int32  inofreeback;  /* 4: ag inode free list back    */
  int32  extfreefwd; /* 4: ag inode extent free list forward */
  int32  extfreeback;  /* 4: ag inode extent free list back  */
  int32  iagfree;  /* 4: iag free list     */

  /* summary map: 1 bit per inode extent */
  int32  inosmap[SMAPSZ];/* 16: sum map of mapwords w/ free inodes;
         *  note: this indicates free and backed
         *  inodes, if the extent is not backed the
         *  value will be 1.  if the extent is
         *  backed but all inodes are being used the
         *  value will be 1.  if the extent is
         *  backed but at least one of the inodes is
         *  free the value will be 0.
         */
  int32  extsmap[SMAPSZ];/* 16: sum map of mapwords w/ free extents */
  int32  nfreeinos;  /* 4: number of free inodes    */
  int32  nfreeexts;  /* 4: number of free extents        */
        /* (72)                  */
  uint8  pad[1976];  /* 1976: pad to 2048 bytes         */
  /* allocation bit map: 1 bit per inode (0 - free, 1 - allocated)  */
  uint32  wmap[EXTSPERIAG];  /* 512: working allocation map   */
  uint32  pmap[EXTSPERIAG];  /* 512: persistent allocation map  */
  pxd_t  inoext[EXTSPERIAG]; /* 1024: inode extent addresses  */
} iag_t;          /* (4096)              */

  inode 分配映射表最前面 4k 大小的页是控制页。该页包含 inode 分配映射表的摘要信息。 dinomap_t 结构的定义见 jfs_imap.h。

  逻辑上,inode 分配映射表是动态可扩展的 IAG 结构的数组:

  struct iag inode_allocation_map [ 1.. N ];
 
  物理上,inode 分配映射表本身是聚集内的一个文件。聚集 inode 分配映射表由聚集 self-node 描述。文件集 inode 分配映射表由文件集 inode 描述。页空间的分配和释放依据 B+ 树索引需要进行。B+ 树的键是 IAG 页的字节偏移量。

  JFS 使用提交策略确保控制数据可靠更新。可靠更新意味着一旦系统出错时,要维持一致的 JFS 结构和资源分配状态。为确保 inode 分配映射表的一致性,每个 IAG 都同时维护两个映射表,工作映射表和持续映射表。工作映射表记录当前分配状态。持续磁盘记录递交的分配状态,包括磁盘上记录的分配状态或是 JFS 日志中提交的 JFS 事务记录描述的分配状态。

  映射表中的每一位记录相应 inode 是空闲还是已分配的。位值 0 表示 inode 空闲,1 表示 inode 已分配。IAG 的每一个控制区内都有一个摘要映射表,用以提高查找空闲 inode 的性能。摘要映射表映射到 IAG 的工作位图。摘要映射表使用一位映射工作映射表的相邻 32 位。每一位表示相应的 inode 可用(0),或相应的 inode 不可用(1)。(如果没有已分配的盘区,那么该 inode 摘要映射位为 1,表明没有可用的 inode ,)

  IAG 还包含 inode 盘区描述符,该描述符描述相应的 inode 盘区。每个 IAG 有 128 个描述符。IAG 的每个控制区内都有一个摘要映射表,用于改进空闲 inode 盘区查找的性能。摘要映射表用一位映射一个 inode 盘区。0 表示空闲的 inode 盘区,1 表示已分配的 inode 盘区。

  如果给定 inode 号,用 inode 分配映射表,通过以下步骤,可以找到 inode 的物理位置:

  1. 找到描述该 inode 的 IAG。需要找到 inode 分配映射表在 B+ 树中的键(字节偏移量)。

  iag key = ((Inode number / Inodes per iag) * Inodes per iag) +  4096   (EQ 1)

  2. 查找已找到的 IAG 中引用的 inode 。这可用于在 IAG 工作映射表和持续映射表中索引。

  iag inode index = (Inode number) mod (Inodes per iag)          (EQ 2)

  3. 查找 IAG 中的 inode 盘区描述符,该描述符描述包含指定 inode 的 inode 盘区。

  inode extent descriptor  = (iag inode index) / (Inode per inode extent)  (EQ 3)

  4. 要找的 inode 位于找到的 inode 盘区内、适当的偏移量处。

  inode offset = ((iag inode index) mod (Inodes per inode extent) 


[上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [下一页] 

打印   收藏   关闭   至顶部  


关于我们 | 联系我们 | 合作伙伴 | 站点地图 | 免责声明 | 版权声明 | 意见建议
版权所有  Copyright © 2005-2006 华夏媒体(Media86.Com). All Rights Reserved .
网站备案号:粤ICP备06055307号