扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共23页)
初始目录项存储在目录嵌入数据区中。
当目录 inode 的嵌入数据区填满时,JFS 分配一个叶节点,大小和聚集块的尺寸一样。
当初始叶节被占满,而大小又不到 4k,则倍增节点大小。首先在当前盘区中扩增;如果没有足够空间,则需分配新的盘区,然后将旧盘区的数据复制到新盘区。目录槽数组仅够存放页未扩时的槽,所以必须创建新的槽数组。从新分配的数组起始处使用槽,并将旧的数组数据复制到新的位置。更新指向该数组的头指针,并将旧数组中的槽添加到空闲列表中。
图 15描述了目录增加一层的过程。
如果叶节点再次填满,而大小仍不足 4K,重复步骤 3。一旦叶节点达到 4K 则分配新叶节点。初始节点后的每个叶节点,一开始就分配 4K。
当叶子页的所有项都释放,则从 B+ 树中删除该页。仅当目录中所有目录项都已删除,目录又缩回 inode 。
访问控制列表 (ACL)
JFS 的每个 inode 都有不同的访问控制列表 (ACL)。ACL 可以表示不同的项,例如许可权、用户标识符、或组标识符。聚集 inode 的 ACL 字段是没有用的。
虽然在磁盘上和内存中 ACL 的表示方式没有规定,但从 DFS 外部所看到的“外部”表示是固定的。ACL 大小的唯一限制是其外部表示必须适合 8192 字节大小的 dfs_acl 结构。
任意 JFS 对象都可有一个管理该对象存取的 ACL;这种 ACL 称为常规 ACL。目录对象在创建时可能用到两个关联的可选 ACL;初始目录 ACL和初始文件 ACL。初始 ACL 的作用范围是目录中的所有文件。
ACL 体系结构未指定 ACL 的存储方式,但建议 ACL 有字段标识或命名其辅助对象,这样通过简单的等同性检查就可以检测到文件集中的共享关系。因此,JFS 在每个文件集中用一个文件(ACL 文件)存储文件集的 ACL;文件集 inode 1 就是 ACL 文件。文件集中的每个 inode 在 ACL 文件中存放一个索引。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。