内容摘要:在 Linux 平台下很多用户都在使用 ext3 文件系统,主要原因是其可靠性,健壮性和兼容性。在 Linux 2.6 内核中已经包括了适合在服务器环境中使用的很多特性,譬如目录索引,块预留,在线调整大小。为支持更大容量的文件系统,其下一个版本 ext4 也正处于开发中。本文主要介绍当前 ext3 和 ext4 文件系统中在线调整大小的工作机制,以及如何使用 meta block group 来扩展其大小。

从图我们可以看出,每个块组大小相同,除了最后一个块组可能包含的块少一些(用虚线和阴影表达)。
online resizing工作机制
由上,文件系统所管理的块最终都是分派到块组中进行管理的。如果我们希望扩大文件系统的大小或者管理更多的物理块,那么需要将这些待添加的物理块分配到适当的块组中进行管理。很容易就能够想到,按照如下三个步骤一步步添加直到达到希望的文件系统大小为止:
将物理块添加到最后一个块组中直到其满位置,如图2所示,我们可以将第n块块组中虚线部分填充满,然后增加文件系统可用的块数。
如果GDT最后一个块还可以添加新的块组描述符,那么我们就添加一个新的块组。
如果当前GDT中已经不能够添加新的块组了,那么我们需要新的块能够容纳块组描述符,对于该步骤,当前内核预留了一些块,用于存储块组描述符;当然这些预留块是有限的(始终小于一个块组的大小),如果文件系统很大,这些预留块最终会被耗尽,本文将采用一种新的方式meta block group来解决该问题。下面我们将先看看当前内核是如何处理的。见图3
图3 当前Ext3和Ext4文件系统通过预留块来解决online resizing的问题

当文件系统在创建时考虑到将来在线调整文件系统大小的需要,预留了一些块,并且使用一个inode(其对应的inode号为7)来管理这些预留块,以免这些块被分配给其它文件使用了。因此对于步骤3,当我们需要新块来存储块组描述符时,我们将从预留的组描述符块中分配一个块给GDT,由于GDT和预留的组描述符块在物理上是相邻的,因此很容易和原先的GDT块合并起来。
来源:ibm 作者:谢作贵 责编:豆豆技术应用
正在加载评论...
- 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下硬盘和分区的命名方法
- 硬链接与软链接的区别
- 权限和所有权模型
- 存储设备的两种表示方法