分类:
2010-06-03 12:13:34
日志文件系统
日志文件系统JFS是AIX操作系统私有的文件系统,使用数据库日志技术维护文件系统结构的一致性,防止在系统异常中断时损坏文 件系统。每个JFS存在一个单独的逻辑卷上。JFS2是JFS的增强版本。
相关日志文件系统的名词:
逻辑块(logical block):JFS把逻辑卷分成固定大小(4K)的 单元,称为逻辑块。每个文件
或目录占用0~多 个逻辑块。
超级块(supper block):超 级块保存整个JFS的信息
i节点(i-node):根据你建JFS时指定的NBPI值,JFS产生 JFS Size/nbpi个i-node,每个
文件或目录占用一个i-node。例如1个4M的文件系统,nbpi=4096,那么你的i-node
数量就是1024个, 除去保留的16个i-node,你最多可以在该文件 系统下建1008个文
件或目录。I-node记录的是文件的控制信息及对于数据块的信息(比如指向数据块的指
针)。JFS每 个i-node是128字节,JFS2每个i-node是512字节。
分配组(Allocation Group):JFS把它的空间划成许多大块,称为分配组,每个分配组包含
i-node和数据块,这样i-node和它指向的数据块在一个分配组中,提高了磁盘访问的性
能。
分片(Fragment):为了提高磁盘 利用率,一个逻辑块可以分成多个分片(根据你建JFS时
分配的Fragment Size大小),分片是JFS中 的最小存储单元。分片提高了磁盘的利用率,
但增加了IO操 作的成本
1、没有分片的情况
逻辑块n(4096字节) 逻辑块n+1(4096字节)
1024字节 |
|
|
单个文件大小1024字 节,如果没有分片,那么该文件就要占用一个完全的逻辑块n,剩余的3072字节空间不能被其他文件占用。
2、有分片的情况
逻辑块n(4096字节)
1024字节 |
1024字节 |
1024字节 |
1024字节 |
单个文件大小1024自 己,如果有分片,而且每个分片的大小是1024字节,那么一个文件就占用1个分 片,第n个逻辑块就可以存储4个1024字节大小的文件。
日志(log):用于存储对Meta-Data数据的修改情况,不记录对文件数据的修改。Meta-Data包括超级块、i-node、间接数据指针和目录。
JFS文件系统逻辑结构
JFS建立的时候,把磁盘空间分成固定大小(4K字 节)的块(逻辑块)。不同的块有不同的用途,下图是0~n个逻辑块的使用情况。
块号0 1 2
3 4 。。。。 31 32
。。。。 m m+1
m+2 。。。。 n
|
|
|
|
|
。。。。 |
|
|
。。。。 |
|
|
|
。。。。 |
|
0:LVCB,它和JFS无关,记录的是该逻辑卷的控制信息
1,31:superblock
2-30:特殊的i node
32-n:第一个allocation group
32-m:第一个allocation group 的i node
m+1-n:第一个allocation group 的 data block
n+1:开始下一个allocation group
说明:
logical block0是LVCB,存放引导程序或LV信息,JFS不使用该逻辑块
logical block1,31是superblock,存放JFS信息。31从不使用,是对1的备份
logical block2-30存放特殊的i节点。(i node 0~16是只由/目录来使用的)
logical block32开始,由i节点和数据库组成allocation greoup,用于存储目录和文件。(对于分配组i节点个数是固定的,系统里i node编号是连续并且唯一的)。
对于一个新的文件,JFS首先在一个分配组里分配1个i-node及数据块(根据你文件的大小,分配多个数据块或分片),i-node包括文件的控制信息,以及到分配给该文件的数据块的指针。写数据时,系统通过你指定的名字,找到对应 的i-node号,再根据i-node号找到对应的i-node位置,然后根据指针找到对应的数据块。