内容摘要:本文描述磁盘日志文件系统(JFS)布局,以及使用磁盘布局结构来实现可扩展性、可靠性和性能的机制。还会了解用来操作这些结构的策略和算法,以及 JFS 是在哪里使用遍布文件系统的 B+ 树来提高文件系统操作性能。
不再需要分配实际所需十倍的 inode 。这对于 JFS 中较大的 inode 尺寸(大于 512 字节)而言,尤为重要。
大文件的文件分配可能消耗多个分配组且仍是连续的,而静态分配造成间隔(由于每个分配组中初始分配的 inode )。
另一方面,动态 inode 分配造成大量问题,包括:
对于静态分配,文件系统的几何构造隐含描述了磁盘上 inode 的布局;对于动态分配,必需有单独的映射结构。
对 JFS 完整性而言,这些映射结构是至关重要的。由于复制这些结构的系统开销,JFS 决定接受丢失这些映射表的风险。但是,JFS 将复制 B+ 树结构,该结构允许 JFS 查找映射表。
通过只分配磁盘上 inode 连续大块的 inode 盘区,动态分配了 inode 。根据定义,一个 JFS inode 盘区包含 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 有一个计数器。
来源:ibm 作者:Steve Best 责编:豆豆技术应用
- Linux/Unix新闻
- Linux/Unix入门
- Linux/Unix命令
- Linux/Unix安装
- Linux/Unix编程
- Linux/Unix管理
- Linux/Unix桌面
- Linux/Unix内核
- Linux/Unix软件
- Linux/Unix发行版
- redhat/Fedora
- Ubuntu Linux
- IBM AIX
- FreeBSD
- Solaris
- NetBSD
- SCO Unix
- find基本用法
- ldd命令原理及用法例子
- su和sudo命令的区别与使用技巧
- Linux操作系统下的dd命令技巧
- 关于Top命令的参数详解
- 关于Tar命令的使用
- SSH实用技巧及常用命令使用
- Linux后台执行命令
- VI命令使用技巧集锦
- Vmstat命令列出的属性详解
- 如何查看及修改文件读写权限
- 最大可存储的单文件容量
- ext2/ext3文件系统介绍
- 常用压缩格式的压缩解压方法
- Linux系统的引导过程详细解析
- Configure参数解释说明
- Linux下硬盘和分区的命名方法
- 硬链接与软链接的区别
- 权限和所有权模型
- 存储设备的两种表示方法