首页 > 系统 > 关键词  > 布局最新资讯  > 正文

JFS 文件系统概述及布局分析(三)

2007-10-11 15:57 · 稿源:云南设计港

保留聚集inode5到15以备将来扩展。

从聚集inode16开始,每个文件集有一个inode,即文件集分配映射表inode。这个inode描述了表示文件集的控制结构。当更多文件集添加到聚集中时,为了容纳更多的文件集inode,聚集inode表本身可能必须增大。

分配组

分配组(AG)把聚集中的空间分成大块,并且允许JFS资源分配策略使用众所周知的方法,来实现更好的JFSI/O性能。首先,分配策略尝试将相关数据的磁盘块和磁盘inode集群起来,使磁盘实现好的局域性。文件通常是顺序地读写,而目录中的文件通常一起访问。其次,为了容纳局域性,分配策略尝试在整个聚集中分配不相关数据。聚集内的分配组用从0开始的AG(分配组)索引。即用AG标识。

必须选择分配组大小,以使AG足够大以不断提供连续资源分配。为了将聚集扩充或缩小时所需进行的更新数最小化,分配组必须限制最大组数128。此外,JFS将对8192个聚集块的分配组大小规定其最小值。分配组大小必须总是1个dmap页(1、2、4、8、...dmap页)描述的块数的2的幂次方。分配组大小在聚集超级块中存储。

大小不是分配组大小倍数的聚集将包含部分分配组;磁盘块没有完全覆盖聚集的最后一个分配组。除了JFS将标记在块分配映射表中分配的却不存在的磁盘块之外,该部分分配组将被当作完整的分配组。

文件集

文件集是文件和目录的集合,这些文件和目录形成了可独立安装的子树。文件集完全包含在一个聚集中。请注意,一个聚集中可能有多个文件集;在那种情况下,所有文件集共享由聚集控制结构定义的空闲聚集磁盘块公共池。

文件集有:

文件集inode表,包含描述文件集范围的控制结构的inode。文件集inode表逻辑上包含一个inode数组。

文件集inode分配映射表,描述文件集inode表。文件集inode分配映射表包含文件集inode上及其磁盘位置上的分配状态信息。描述文件集分配映射表和其他文件集信息的超级inode,驻留前面所描述的聚集inode表中。由于复制了聚集inode表,因此这个inode存在第二个版本,它指向同样的数据。超级inode本身是一个文件。当文件集一开始创建时,分配第一个inode盘区按需要动态分配和释放其它inode盘区。

文件集中inode的分配如下所示:

保留文件集inode0。

文件集inode1包含附加的文件集信息,它们无法放入聚集inode表中的文件集分配映射表inode。

文件集inode2是文件集的根目录inode。注意,JFS保留了inode2是文件系统的根这一公共Unix约定。

文件集inode3是文件集的ACL文件。

从文件集inode4开始,文件集inode用于一般文件集对象、用户文件、目录和符号链接。

盘区、inode、B+树

盘区是当作单元分配给JFS对象的连续聚集块序列。盘区完全包含在一个聚集(并且因此也是在一个分区)中;但是,大盘区可能跨多个分配组。

每个JFS对象可用一个inode来表示。inode包含预期的对象特定信息,例如:时间戳和文件类型。它们还包含记录盘区分配的B+树。注意,所有JFS元数据结构(除超级块之外)都以文件表示。通过重用这种数据的inode结构,数据格式(即磁盘布局)自然是可扩展的。

盘区、B+树、inode在以下章节中详细描述。

盘区

文件是按盘区顺序分配的。盘区是当作一个单元分配的聚集块的连续变长序列。盘区的尺寸范围是1到2(24)-1个聚集块。盘区可能跨越多个分配组(AG)。为了在插入新盘区、定位特定盘区等操作方面有更优性能,这些盘区是按B+树索引的。

定义一个盘区需要两个值,即其长度和其地址。长度以聚集块尺寸为单位计算。JFS使用24位值来表示盘区的长度,因此盘区的范围大小是1到2(24)-1个聚集块。

对于512字节的聚集块尺寸(所允许的最小值),最大盘区是512*(2(24)-1)字节,(比8G稍小)。对于4096字节的聚集块尺寸(所允许的最大值),盘区的最大长度是4096*(2(24)-1)字节,(比64G稍小)。这些限制仅适用于一个的盘区;对整体文件大小没有限制作用。地址指的是盘区中第一个块的地址。地址同样以聚集块为单位:它从聚集的开始处计算块偏移量。

结合了用户特定聚集块尺寸的基于盘区的文件系统,允许JFS不需要单独支持内部存储碎片。可配置聚集使用小的聚集块尺寸(例如,512字节),以使大量小尺寸文件的聚集内部存储碎片最小化。

通常,JFS分配尝试通过分配最小数量的盘区策略,而使每个盘区尽可能大。这就允许大的I/O传送,结果使得性能提高。然而,对于特殊情况,不一定总有这种结果。例如,一个段的写入时复制会造成连续盘区被分割成更小的连续盘区系列。另一种情况是盘区大小的限制。例如:由于JFS必须把整个盘区读入内存,然后进行解压缩,所以压缩文件盘区大小是有限的。由于JFS的可用内存数量有限,因此它必须保证有足够的空间用于解压缩盘区。

提供了一个碎片整理实用程序,以减少动态分配/释放可变长盘区时出现的外部存储碎片。这种分配和释放可能导致不相连的变长空闲盘区遍及整个聚集。碎片整理实用程序会把多个小的空闲盘区合并成一个较大的盘区。

inode

JFS磁盘inode是512字节。一个JFS磁盘inode包含4组基本信息。第一组描述JFS对象的POSIX属性。第二组描述JFS对象的其它属性;这些属性包括支持VFS必需的信息、操作系统环境特定的信息、以及B+树的头部。第三组不是包含B+树根节点的盘区分配描述符就是包含内嵌数据。第四组包含扩展属性、更多内嵌数据或附加的盘区分配描述符。在jfs_dinode.h的structdinode中定义磁盘inode结构。

JFS动态分配inode提供的好处如下:

inode磁盘块可放在任何磁盘地址,这使得inode号和位置分开。这种分离简化了支持聚集和文件集重组,能够使聚集缩小。可以移动inode,移动后号码仍然相同。这允许JFS不必需要查找目录结构就可以更新inode号。对于支持DFS文件集复制而言,这种分离也是必需的。当复制文件集时,仅复制inode。既然JFS能把新的inode放在磁盘的任意位置,新inode将有与从它们复制的inode相同的号码。这允许JFS不需复制目录结构并且更新inode号。

不再需要分配实际所需十倍的inode。这对于JFS中较大的inode尺寸(大于512字节)而言,尤为重要。

大文件的文件分配可能消耗多个分配组且仍是连续的,而静态分配造成间隔(由于每个分配组中初始分配的inode)。

另一方面,动态inode分配造成大量问题,包括:

对于静态分配,文件系统的几何构造隐含描述了磁盘上inode的布局;对于动态分配,必需有单独的映射结构。

对JFS完整性而言,这些映射结构是至关重要的。由于复制这些结构的系统开销,JFS决定接受丢失这些映射表的风险。但是,JFS将复制B+树结构,该结构允许JFS查找映射表。

通过只分配磁盘上inode连续大块的inode盘区,动态分配了inode。根据定义,一个JFSinode盘区包含32个inode。对于512字节的inode尺寸,因此磁盘上一个inode盘区的大小是16KB。

当分配新的inode盘区时,并不初始化盘区。然而,要使fsck能够检查是否inode在使用中,JFS需要inode的一些信息。一旦盘区中的inode标记成在使用中,就必须初始化它的文件集号、inode号、inode戳以及inode分配组块地址。因此,链接字段就足以确定inode当前是否正在使用。

注意,动态inode分配意味着在inode号与inode的磁盘地址之间没有直接关系。因此,JFS必须有查找磁盘上inode的方法。inode分配映射表提供了这一功能。

inode生成号只是每当重用inode时值就增加的计数器。

存储每个inode生成计数器这一静态inode分配常用方法在动态inode分配中不起作用,因为当inode空闲时,其磁盘空间可能确实由不是inode的数据所重用,(换句话说,空间可能被收回,以存储普通文件数据)。因此,在JFS中,只有一个inode生成计数器,它在每一个inode分配时增加其值,即在重用inode时,相应的计数器增加其值,而不是每个inode有一个计数器。

举报

  • 相关推荐
  • 微信员工辟谣改日期恢复过期文件:纯属谣言

    近日,有博主在社交平台上发布消息称,通过修改手机日期能够找回微信中已过期的文件、图片和视频。该博主详细描述了操作方法:若文件未接收、图片或视频未点开,在超过所谓“7天”的过期时间后,将手机日期修改为文件接收日期的后七天内,便可正常接收,过期的图片也能如此操作。

  • 微信员工:微信文件过期就是过期了 从来没占用过手机空间

    微信收到文件之后,超过14天都不点它,就意味着它从来没有被下载过,过期就是过期了,它从来都没占过你的手机空间。 非要严格说的话,就是那个包含文件名称的缩略图,占的空间应该以小于KB计,不及你一张照片的1/1000。

  • 博主称修改手机日期能把微信过期文件找回 微信员工:假的离谱

    有博主称修改手机日期能把微信过期文件找回。 该博主表示,你们要是文件没接收、图片没点开、视频没点开,超过7天过期的时候,把手机日期改为接收的后七天内,就能正常点开了。比如7.10发的文件我没接收过期了,我把手机日期改成7.10-7.16之间(比如7.11)成功接收,过期的图片也一样能接收。 但是要是你没发现过期,点了一下才发现过期,这时候改日期就不行了,所�

  • 腾讯旗下AI工作台ima上线新功能:支持上传文件生成AI播客

    腾讯旗下AI工作台ima迎来重大升级,以活知识库 大模型的深度耦合重构知识管理体系。 此次更新突破性地实现了多模态知识转化用户上传文件即可生成AI播客,Xmind思维导图经智能解析后自动沉淀为结构化知识库,共享知识库更支持关键信息置顶功能。 这些创新使得碎片化知识如同被注入生命力,通过动态重组转化为驱动组织进化的智能中枢。

  • 智造实力赢得世界信赖 王力安防成功布局全球市场

    王力在全球安防市场的竞争力获得国际认可。今年5月,哈萨克斯坦住房公共事业和建设委员会主席率团考察永康王力总部,随后波兰客商考察团也到访。这些国际考察团对王力智能生产线印象深刻,其安全门生产周期从7天缩短至1天,产能提升300%。王力通过获得UL、BS等国际认证,成功打入高端市场。其位于永康的"未来工厂"占地23万平方米,整合5G与工业互联网技术,将186道工序重构为16个智能工作岛,每7.68秒完成一樘安全门组装。在焊接、涂装等环节实现工艺突破,产品远销欧美等地区。王力以智能制造为核心,持续引领行业创新,为中国智造贡献标杆力量。

  • 苹果宣布美国制造计划:投6000亿美元布局

    近日,苹果公司首席执行官库克在社交平台发布重磅消息,苹果公司决定在未来四年内大幅扩大对美国的投资规模,总额将攀升至6000亿美元,并同步启动“全新的美国制造业计划”。此举不仅将为美国创造大量就业岗位,还将有力推动先进制造业在美国本土的发展。 今年早些时候,苹果公司就已许下承诺,未来四年内在美国投入5000亿美元用于布局美国制造产业。如今,公司�

  • 国内电商erp系统

    文章介绍了快麦ERP系统在电商行业中的优势。该系统以客户需求为核心,提供简洁易用的操作界面,支持多平台订单自动同步,大幅提升工作效率。其智能化功能包括智能分单、自动补货提醒和库存预警等,帮助企业管理库存,减少损失。系统稳定性强,能应对促销期间的高并发订单处理。此外,7×24小时专业客服团队提供及时支持,确保客户无后顾之忧。快麦ERP凭借这些优势

  • 一机三系统!海尔家中机:冷暖、新风、湿度都搞定

    海尔推出"一机三系统"中央空调解决方案,整合制冷制热、新风换气和湿度调节三大功能,解决传统家电占用空间、安装复杂等问题。该方案采用自研核心部件和H-AIR智慧平台,能自动监测调节温湿度、洁净度和含氧量,实现24小时恒温恒湿恒净。针对老房用户推出"8小时极速换新"服务,承诺一个工作日内完成核心换装,采用保护性施工流程减少对现有装修破坏。这套创新方案既节省空间和预算,又能一步到位提升居家舒适度,让用户无需操心设备切换,享受无感舒适体验。

  • 专家盛赞GEO双引擎系统:生成式引擎优化以旋律诠释自身

    GEO双引擎系统主题曲《GEO双引擎系统之歌》开创了技术主题音乐创作先河,通过独特艺术形式诠释生成式引擎优化技术内核。该作品由汤祎飞创立的GEO系统创新生成,融合科技与艺术边界,获科技界、产业界和学术界广泛关注。多位顶级专家盛赞其开创性价值,认为该曲有效突破技术传播壁垒,为产业生态提供了兼具深度与温度的认知桥梁。歌曲以"双引擎驱动未来"为�

  • 海乐行国际联会与乌尔巴冶金厂携手布局核燃料产业链

    2025年7月,在第六届"一带一路"国际合作高峰论坛期间,中国海乐行国际联合会与哈萨克斯坦国家原子能工业公司旗下的乌尔巴冶金厂(UMP)签署核燃料制造合作协议。双方将在燃料组件认证、产能提升、人才培养、技术研发等领域展开深度合作,并计划建立联合培训中心。此次合作标志着中哈两国在核能高端制造领域迈入新阶段,将共同探索绿色低碳发展路径,为"一带一路"沿线国家核能建设提供稳定供应链。UMP拥有70年核材料生产经验,其产品已成功应用于中国多个核电项目。