日本电子维修技术 JFS 文件系统原理-JFS概述



日志文件系统如何缩短系统重启时间
Steve Best,IBM

如果发生系统崩溃,JFS 提供了快速文件系统重启。通过使用数据库日志技术,JFS 能在几秒或几分钟之内把文件系统恢复到一致状态,而非日志文件系统却要花上几小时甚至几天才能完成。本白皮书对 JFS 体系结构作了概述,并且描述了可在 developerWorks 网站上找到的 JFS 技术的设计特性、潜在限制以及管理实用程序。

日志文件系统 (JFS) 提供了基于日志的字节级文件系统,该文件系统是为面向事务的高性能系统而开发的。它具有可伸缩性和健壮性,与非日志文件系统相比,它的优点是其快速重启能力:JFS 能够在几秒或几分钟内就把文件系统恢复到一致状态。

虽然 JFS 主要是为满足服务器(从单处理器系统到高级多处理器和群集系统)的高吞吐量和可靠性需求而设计的,JFS 还可用于想得到高性能和可靠性的客户机配置。

体系结构和设计
JFS 体系结构可从磁盘布局特性的角度进行说明。

逻辑卷
所有文件系统讨论的基础是某种类型的逻辑卷。这可以是一个物理磁盘,或物理磁盘空间的某个子集,例如:一个 FDISK 分区。逻辑卷也称为磁盘分区。

聚集和文件集
文件系统创建实用程序 mkfs,创建了完全包含在分区内的聚集。聚集是包含一种特定格式的磁盘块阵列,其格式包括超级块和分配映射表。超级块将分区标识成 JFS 聚集,而分配映射表描述聚集内每个数据块的分配状态。格式还包括描述它所必需的初始文件集和控制结构。文件集是可安装的实体。

文件、目录、inode 与寻址结构
文件集包含文件和目录。文件和目录由 inode 持续表示;每个 inode 描述文件或目录的属性,并作为查找磁盘上文件或目录数据的起始点。JFS 还使用 inode 来表示其它文件系统对象,如描述文件集中每个 inode 的分配状态和磁盘位置的映射表。

目录将用户特定的名称映射到为文件和目录所分配的 inode 上,并且形成传统的命名层次。文件包含用户数据,用户数据中没有隐含任何限制或格式。也就是说,JFS 将用户数据看成是未解释的字节流。根植于 inode 基于盘区的寻址结构用来将文件数据映射到磁盘。聚集超级块和磁盘分配映射表、文件描述符和 inode 映射表、inode、目录以及寻址结构一起表示了 JFS 控制结构或元数据。

日志
在每个聚集中维护 JFS 日志,并且用来记录元数据的操作信息。日志有一种同样由文件系统创建实用程序设置的格式。聚集内多个安装的文件集可以同时使用一个日志。

设计特性
JFS 从一开始就设计成完全集成了日志记录,而不是在现有文件系统上添加日志记录。JFS 的许多特性使之区别于其它文件系统。

日志处理
JFS 提供了改进的结构化一致性和可恢复性,以及比非日志文件系统(例如:HPFS、ext2 和传统 UNIX 文件系统)快得多的系统重启时间。发生系统故障时非日志文件系统容易崩溃,是由于一个逻辑写文件操作通常占用多个媒体 I/O 来完成,且在任何给定时间,可能没有完全反映在媒体上。这些文件系统依靠重启实用程序(也就是 fsck),fsck 检查文件系统的所有元数据(例如:目录和磁盘寻址结构)以检测和修复结构完整性问题。这是一个耗时并且容易出错的过程,在最糟糕的情况下,它还可能丢失或放错数据。

相反,JFS 使用原来为数据库开发的技术,记录了文件系统元数据上执行的操作(即原子事务)信息。如果发生系统故障,可通过重放日志并对适当的事务应用日志记录,来使文件系统恢复到一致状态。由于重放实用程序只需检查文件系统最近活动所产生的运行记录,而不是检查所有文件系统的元数据,因此,与这种基于日志的方法相关的文件系统恢复时间要快得多。

基于日志恢复的其它几个方面也值得注意。首先,JFS 只记录元数据上的操作,因此,重放这些日志只能恢复文件系统中结构关系和资源分配状态的一致性。它没有记录文件数据,也没有将这些数据恢复到一致状态。因此,恢复后某些文件数据可能丢失或失效,对数据一致性有关键性需求的用户应该使用同步 I/O。

面对媒体出错,日志记录不是特别有效。特别地,在将日志或元数据写入磁盘的期间发生的 I/O 错误,意味着在系统崩溃后,要将文件系统恢复到一致状态,需要耗时并且有可能强加的全面完整性检查。这暗示着,坏块重定位是任何驻留在 JFS 下的存储管理器或设备的一个关键特性。

JFS 日志记录的语义如下:当涉及元数据更改的文件系统操作--例如,unlink()--返回成功执行的返回码时,操作的结果已经提交到文件系统,即使系统崩溃了也可以发现。例如,一旦成功删除了文件,即使系统崩溃然后重启,它仍然是删除的并且不会再重新出现。

日志记录风格将同步写入日志磁盘引入每个修改元数据的 inode 或 vfs 操作。(对数据库专家而言,这是一种使用非剥夺缓冲区策略的仅重做的、物理残留映象、提前写的日志记录协议。)在性能方面,与依赖(多个)谨慎的同步元数据写操作以获得一致性的许多非日志文件系统相比,这种方法较好。但是,与其它日志文件系统相比,它在性能上处于劣势。其它日志文件系统,如 Veritas VxFS 和 Transarc Episode,使用不同的日志风格并且缓慢地将日志数据写入磁盘。在执行多个并行操作的服务器环境中,通过将多个同步写操作组合成单一写操作的组提交来减少这种性能损失。JFS 日志记录风格随着时间推移而得到不断改进,现在提供了异步日志记录,异步日志记录提高了文件系统的性能。

评论
基于盘区的寻址结构
JFS 使用基于盘区的寻址结构,连同主动的块分配策略,产生紧凑、高效、可伸缩的结构,以将文件中的逻辑偏移量映射成磁盘上的物理地址。盘区是象一个单元那样分配给文件的相连块序列,可用一个由 <逻辑偏移量,长度,物理地址> 组成的三元组来描述。寻址结构是一棵 B+ 树,该树由盘区描述符(上面提到的三元组)填充,根在 inode 中,键为文件中的逻辑偏移量。

可变的块尺寸
按文件系统分,JFS 支持 512、1024、2048 和 4096 字节的块尺寸,以允许用户根据应用环境优化空间利用率。较小的块尺寸减少了文件和目录中内部存储碎片的数量,空间利用率更高。但是,小块可能会增加路径长度,与使用大的块尺寸相比,小块的块分配活动可能更频繁发生。因为服务器系统通常主要考虑的是性能,而不是空间利用率,所以缺省块尺寸为 4096 字节。

动态磁盘 inode 分配
JFS 按需为磁盘 inode 动态地分配空间,同时释放不再需要的空间。这一支持避开了在文件系统创建期间,为磁盘 inode 保留固定数量空间的传统方法,因此用户不再需要估计文件系统包含的文件和目录最大数目。另外,这一支持使磁盘 inode 与固定磁盘位置分离。

目录组织
JFS 提供两种不同的目录组织。第一种组织用于小目录,并且在目录的 inode 内存储目录内容。这就不再需要不同的目录块 I/O,同时也不再需要分配不同的存储器。最多可有 8 个项可直接存储在 inode 中,这些项不包括自己(.)和父(..)目录项,这两个项存储在 inode 中不同的区域内。

第二种组织用于较大的目录,用按名字键控的 B+ 树表示每个目录。与传统无序的目录组织比较,它提供更快的目录查找、插入和删除能力。

稀疏和密集文件
按文件系统分,JFS 既支持稀疏文件也支持密集文件。

稀疏文件允许把数据写到一个文件的任意位置,而不要将以前未写的中间文件块实例化。所报告的文件大小是已经写入的最高块位处,但是,在文件中任何给定块的实际分配,只有在该块进行写操作时才发生。例如,假设在一个指定为稀疏文件的文件系统中创建一个新文件。应用程序将数据块写到文件中第 100 块。尽管磁盘空间只分配了 1 块给它,JFS 将报告该文件的大小为 100 块。如果应用程序下一步读取文件的第 50 块,JFS 将返回填充了 0 的一个字节块。假设应用程序然后将一块数据写到该文件的第 50 块,JFS 仍然报告文件的大小为 100 块,而现在已经为它分配了两块磁盘空间。稀疏文件适合需要大的逻辑空间但只使用这个空间的一个(少量)子集的应用程序。

对于密集文件,将分配相当于文件大小的磁盘资源。在上例中,第一个写操作(将一块数据写到文件的第 100 块)将导致把 100 个块的磁盘空间分配给该文件。在任何已经隐式写入的块上进行读操作,JFS 将返回填充了 0 的字节块,正如稀疏文件的情况一样。

评论
JFS 内部(潜在)限制
JFS 是完全 64 位的文件系统。所有 JFS 文件系统结构化字段都是 64 位大小。这允许 JFS 同时支持大文件和大分区。

文件系统大小
JFS 支持的最小文件系统是 16M 字节。最大文件系统的大小是文件系统块尺寸和文件系统元数据结构支持的最大块数两者的乘积。JFS 将支持最大文件长度是 512 万亿字节(TB)(块尺寸是 512 字节)到 4 千万亿字节(PB)(块尺寸是 4K 字节)

文件长度
最大文件长度是主机支持的虚拟文件系统最大文件长度。例如:如果主机只支持 32 位,则这就限制了文件长度。

可移动媒体
JFS 不支持把软盘作为基本文件系统设备。

标准管理实用程序
JFS 提供创建和维护文件系统的标准管理实用程序。

创建文件系统
这个实用程序提供 mkfs 命令的 JFS 特定部分,用来在指定的驱动器上初始化 JFS 文件系统。该实用程序在较低级别上操作,并假设文件系统所存在的任何卷的创建/初始化由更高级别的另一个实用程序处理。

检查/修复文件系统
这个实用程序提供 fsck 命令的 JFS 特定部分。该命令检查文件系统的一致性,修复发现的问题。它也重放日志,把提交的改动应用到文件系统元数据,如果由于日志重放而声明文件系统是干净的,就不会再采取进一步操作。如果文件系统不认为是干净的,这意味着由于某种原因没有完整和正确地重放日志,或者文件系统不能单靠重放日志来恢复到一致状态,那么,就对文件系统执行一遍完整检查。

当执行全部完整性检查时,检查/修复实用程序首要目的是要达到可靠的文件系统状态,以防止将来文件系统崩溃或故障,第二个目的就是面对崩溃时保存数据。这意味着为了达到文件系统的一致性,实用程序可能丢弃数据。具体而言,当实用程序在不做假设的情况下,无法获得所需信息以将结构上不一致的文件或目录恢复到一致状态时,就会废弃数据。当遇到不一致的文件或目录时,就废弃整个文件或目录,而不再试图保存任何部分。任何由删除受损目录所孤立起来的文件或子目录,都放在文件系统根下的 lost+found 目录中。

文件系统检查/修复实用程序重点考虑的因素之一是所需虚存数量。通常,这些实用程序所需的虚存数量由文件系统的大小决定,这是由于所需虚存主要用于跟踪文件系统中个别块的分配状态。随着文件系统增大,块的数量增多,用来跟踪这些块所需的虚存数量也随之增加。

JFS 检查/修复实用程序的设计区别在于其虚存需求由文件系统中文件和目录的数量(而不是由块的数量)所决定。对 JFS 检查/修复实用程序而言,每个文件或目录的虚存大约为每个文件或目录 32 字节,或者对于包含百万个文件和目录的文件系统而言,不论其文件系统大小,虚存需求都是大约 32 兆字节。如同所有其它的文件系统,JFS 实用程序需要跟踪块分配状态,但避免使用虚存方法,而是使用位于实际文件系统中的一小块保留工作区来实现。

结束语
因为在系统崩溃时,JFS 能提供快速文件系统重启时间,所以它是因特网文件服务器的关键技术。使用数据库日志处理技术,JFS 能在几秒或几分钟之内把文件系统恢复到一致状态。而在非日志文件系统中,文件恢复可能花费几小时或几天。大部分文件服务器用户不能容忍与非日志文件系统相关的停机时间。只有通过转移到日志技术,这些文件系统才能避免需要检查文件系统的所有元数据才能验证文件系统或将其恢复到一致状态这一耗时的过程。

评论
是什么系统的文件系统? 电路 电子 维修 我现在把定影部分拆出来了。想换下滚,因为卡纸。但是我发现灯管挡住了。拆不了。不会拆。论坛里的高手拆解过吗? 评论 认真看,认真瞧。果然有收 电路 电子 维修 求创维42c08RD电路图 评论 电视的图纸很少见 评论 电视的图纸很少见 评论 创维的图纸你要说 版号,不然无能为力 评论 板号5800-p42ALM-0050 168P-P42CLM-01
 ·日本留学生活 求个大阪合租
·日本留学生活 自家房招租求
·日本留学生活 东京地区出9成新lv钱包
·日本育儿教育 孩子从国内过来如何学习日语
·日本育儿教育 明年四月横滨招月嫂
·日本育儿教育 请问咋让娃突破识字关?感谢分享中文共读和学习经验的妈妈
 ·中文新闻 东区明星迈克尔·格列柯,53 岁,将在第一次出生两年后第二次
·中文新闻 《爱情岛》明星卡米拉·瑟洛和杰米·朱维特在透露即将迎来第三

维修经验

CPUcpu-z 1.77版低调发布

日本维修技术更新: New benchmark “submit and compare” feature New clocks dialog reporting all system’s clock speeds in real-time Preliminary support for Intel Kaby Lake AMD Bristol Ridge processors 主要是增加了支持I、A两个新架构的 ...

维修经验

CPU这几天经常开机黑屏,热重启后又正常

日本维修技术这几天经常开机黑屏,热重启后又正常,今天热重启也不管用了。折腾半天总算点亮,显示超频失败,以前出这个画面我是不理它的,直接重启就能正常进系统了,今天不敢托大,因为 ...

维修经验

CPU超频求助!关于华擎H170和6700K

日本维修技术问题见楼主的show贴 https://www.chiphell.com/thread-1634895-1-1.html 这次华擎的H170 Hyper最大的特色应该是自带时钟发生器可以自由超外频 可是楼主好久没有折腾超频了。。。 两图中除了CPU外频 以 ...

维修经验

CPU液态金属会侵蚀cpu核心吗?

日本维修技术前阵子看到有人说,液态金属时间长了会侵蚀cpu铜盖,那么问题来了,这货会不会侵蚀核心呢? 评论 这玩意儿好像只对铝起反应 评论 不是说,cpu的盖子是铜的吗。。。 评论 不会,核 ...

维修经验

CPUm6i究竟支不支持e3 1231v3

日本维修技术官网上看支持列表没写有e3 1231v3,装机帖又有人晒,百度也没个明确答案,那究竟能不能点亮?有在用的chher说一下么 评论 升级最新bios肯定可以支持 评论 我的p67evo官网上也没说支持12 ...

维修经验

CPU华擎 HYPER 妖板 正确玩法

日本维修技术600元的 B150,10相供电,释放洪荒之力 注意必须官网 Beta 区的 BIOS 有 AVX 的 CPU 可能会掉缓存 启动时按 X 键激活 SKY OC,重启后进入 BIOS 160924164727.jpg (95.63 KB, 下载次数: 1) 2016-9-24 17:47 上传 ...

维修经验

CPUE5 2686 V3和i7 6800K如何选择

日本维修技术默认用,不超频,两者功耗是一模一样的 E5 2686 V3:2.0主频,3.5睿频, 18核心36线程 ,45M L3 咸鱼大约2500~3000元 i7 6800K : 3.5主频,3.8睿频 ,6核心12线程 ,盒装3000元 评论 性能应该是26 ...

维修经验

CPUHD530硬解4K能力还是有点弱呀!

日本维修技术播放器用PotPlay 64bit,各种优化后,跑4K @120Hz视频只能到70帧左右的速度,勉强能用! 显示器用的4K的优派VP2780 未标题-1.jpg (211.97 KB, 下载次数: 0) 2016-9-26 21:29 上传 评论 这个估计你没优化 ...

维修经验

CPU6900k 1.25V到4.2体质怎么样

日本维修技术如图,体质怎么样,ring是35,没敢试了,都说ring高了毁硬件 评论 不错的U,但不算雕,上4.4就大雕了,这电压上4.5的目前没见有人发图 评论 谢谢前辈告知 评论 我这个用1.2V超的4.2,R ...

维修经验

CPUI3 6100 华擎B150M pro4超4.5g测试。

日本维修技术看看论坛没多少i3 6100的帖子,就转下自己发的show贴里面的数据,给大家参考下。家里还有当年的神U i3 540 oc 4.5G在给老妈用。 不知道数据上正常吗?有6100的朋友可以告诉下,另外是不有 ...

维修经验

CPU7系u会兼容100系主板吗?

日本维修技术RT,听说要推200系板,100系还能用吗以后。。 评论 兼容的 评论 感谢!以后换u就行了,目前消息200系板会有新的特性吗? 评论 24条PCI-E 3.0通道、支持Intel Optane混合存储技术、十个USB 3 ...

维修经验

CPU有心入5820k了,求教下温度问题

日本维修技术一直徘徊在6700k和5820k之间,6700k现在这德行直接把我推向了5820k啊,从2600k升级上来,三大件都要换,现在唯一疑惑的是IB-E ex这种顶级风冷能不能压住4.5g的5820呢?毕竟刚刚买一个多月。 ...

维修经验

CPU6600&amp;6600K才100的差价

日本维修技术太少了吧。。。 6600.JPG (106.91 KB, 下载次数: 0) 2016-10-1 10:30 上传 评论 毕竟只是i5而已…… 评论 上z170 6600也能超,等于没区别,差价能有100已经不错了 评论 然后又见不超频人士推荐超频 ...