频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

JFS布局:日志文件系统如何处理磁盘布局(12)

作者: Steve Best 出处:51CTO.com  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2006-08-24 14:05
关 键 词:JFS  硬盘  数据恢复  RAID
阅读提示:本文描述磁盘日志文件系统(JFS)布局,以及使用磁盘布局结构来实现可扩展性、可靠性和性能的机制。还会了解用来操作这些结构的策略和算法,以及 JFS 是在哪里使用遍布文件系统的 B+ 树来提高文件系统操作性能。
扩展聚集以增大文件系统

要扩展聚集,JFS 必须确保有足够的页存储块分配映射表, 索引聚集新扩展的块。通常,从现有的聚集分配空间给新增的页,但是如果该聚集空间已满,那就不可能了。所以我们需要解决这种特殊情况。

要解决该问题,通常 JFS 为块分配映射表分配的空间多于索引聚集地址空间所需的空间。每个映射表都有额外页空间用于存放位图,如果该页指向另一层摘要树,则该映射表就需额外页存放所需的摘要信息。这种额外空间使得 JFS 可以在必要时将聚集分为更小的单位,以扩大聚集至所需的大小。扩展聚集,需采取以下步骤:

如果现有聚集的空间足以扩展块分配映射表,使其能索引新聚集的所有块,那么,JFS 不做任何特殊处理,将聚集扩展至整个空间。仅当需要考虑聚集将来的扩展时,块分配映射表才需增加额外页。
如果没有足够空间扩展,那么 JFS 仅给聚集扩展块分配映射表中已有额外页所能寻址的块。
至此,JFS 有一些额外的聚集块未在聚集中使用到。JFS 可以用这些聚集块扩大块分配映射表,以继续将聚集扩展至所需大小。JFS 必须谨记将这些额外页放入块分配映射表中。
这个处理过程完全由 vfs_cntl() 处理,对系统的其它部分隐藏。

另一种表示法:二进制编码搭档表示法

块分配映射表也可以用二进制编码搭档系统表示。除了树的叶结点和 dmap 结构不同外,这种表示法的逻辑和物理结构与前一种一样。

struct dmap 定义块分配映射表的最下层。每个 dmap 页包括 8K 的聚集块。


/*
 *  dmap summary tree
 *
 * dmaptree_t must be consistent with dmapctl_t.
 */
typedef struct {
    int32   nleafs;             /* 4: number of tree leafs     */
    int32   l2nleafs;           /* 4: l2 number of tree leafs      */
    int32   leafidx;            /* 4: index of first tree leaf     */
    int32   height;             /* 4: height of the tree       */
    int8    budmin;             /* 1: min l2 tree leaf value to combine*/
    int8    stree[TREESIZE];        /* TREESIZE: tree          */
    uint8   pad[2];             /* 2: pad to word boundary     */
} dmaptree_t;                   /* - 360 -             */


/*
 *  dmap page per 8K blocks bitmap
 */
typedef struct {
    int32       nblocks;      /* 4: num blks covered by this dmap */
    int32       nfree;        /* 4: num of free blks in this dmap */
    int64       start;        /* 8: starting blkno for this dmap  */
    dmaptree_t  tree;         /* 360: dmap tree                   */
    uint8       pad[1672];    /* 1672: pad to 2048 bytes          */
    uint32      wmap[LPERDMAP];   /* 1024: bits of the working map    */
    uint32      pmap[LPERDMAP];   /* 1024: bits of the persistent map */
} dmap_t;                 /* - 4096 -                         */

二进制编码搭档系统的每一项都有三个字段: type , size 和 bitmap 。 type 字段表示块空闲、已分配、用位图表示或不由该字段表示 (don't care)。如果类型是"don't care"则这些块由左搭档表示, size 字段忽略。如果 type 是位图,则 位图 字段的 32 位和 32 块一一对应,表示其空闲或已分配。位值 0 表示空闲块,1 表示块已分配。size 是 2 的幂次方,表示该项描述的聚集块的个数。

对于每个全空闲项,如果其相同大小的左搭档也完全空闲,则右搭档设为"don't care"类型,且右搭档的空间合并入左搭档。当分配块时,仅当搭档分配在同一盘区才合并。必须维护"don't care"类型,以便 logredo 修正映射表。

图 9显示了进行分配和回收二进制编码搭档的小例子。


共23页: 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] 12 [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] 下一页
【内容导航】
发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有