Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1611513
  • 博文数量: 292
  • 博客积分: 10791
  • 博客等级: 上将
  • 技术积分: 2479
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-20 21:06
文章分类

全部博文(292)

文章存档

2011年(31)

2010年(261)

分类:

2010-06-03 12:13:34

日志文件系统

 

日志文件系统JFSAIX操作系统私有的文件系统,使用数据库日志技术维护文件系统结构的一致性,防止在系统异常中断时损坏文 件系统。每个JFS存在一个单独的逻辑卷上。JFS2JFS的增强版本。

 

相关日志文件系统的名词:

 

逻辑块(logical block):JFS把逻辑卷分成固定大小(4K)的 单元,称为逻辑块。每个文件

或目录占用0~多 个逻辑块。                    

 

超级块(supper block):超 级块保存整个JFS的信息

 

i节点(i-node):根据你建JFS时指定的NBPI值,JFS产生 JFS Size/nbpii-node,每个

文件或目录占用一个i-node。例如14M的文件系统,nbpi=4096,那么你的i-node

数量就是1024个, 除去保留的16i-node,你最多可以在该文件 系统下建1008个文

件或目录。I-node记录的是文件的控制信息及对于数据块的信息(比如指向数据块的指

针)。JFS每 个i-node128字节,JFS2每个i-node512字节。

 

分配组(Allocation Group):JFS把它的空间划成许多大块,称为分配组,每个分配组包含

i-node和数据块,这样i-node和它指向的数据块在一个分配组中,提高了磁盘访问的性

能。

 

分片(Fragment):为了提高磁盘 利用率,一个逻辑块可以分成多个分片(根据你建JFS

分配的Fragment Size大小),分片是JFS中 的最小存储单元。分片提高了磁盘的利用率,

但增加了IO操 作的成本

1、没有分片的情况

   逻辑块n4096字节)                    逻辑块n+14096字节)

1024字节

 

 

单个文件大小1024字 节,如果没有分片,那么该文件就要占用一个完全的逻辑块n,剩余的3072字节空间不能被其他文件占用。

2、有分片的情况

   逻辑块n4096字节)

1024字节

1024字节

1024字节

1024字节

单个文件大小1024自 己,如果有分片,而且每个分片的大小是1024字节,那么一个文件就占用1个分 片,第n个逻辑块就可以存储41024字节大小的文件。

 

日志(log):用于存储对Meta-Data数据的修改情况,不记录对文件数据的修改。Meta-Data包括超级块、i-node、间接数据指针和目录。

 

JFS文件系统逻辑结构

      

       JFS建立的时候,把磁盘空间分成固定大小(4K字 节)的块(逻辑块)。不同的块有不同的用途,下图是0n个逻辑块的使用情况。

 

块号0    1       2        3      4      。。。。    31       32    。。。。     m     m+1     m+2    。。。。     n

 

 

 

 

 

。。。。

 

 

。。。。

 

 

 

。。。。

 

 

0LVCB,它和JFS无关,记录的是该逻辑卷的控制信息

131superblock

230:特殊的i node

32n:第一个allocation group

32m:第一个allocation group i node

m+1n:第一个allocation group data block

n+1:开始下一个allocation group

 

说明:

logical block0LVCB,存放引导程序或LV信息,JFS不使用该逻辑块

logical block1,31superblock,存放JFS信息。31从不使用,是对1的备份

logical block2-30存放特殊的i节点。i node 0~16是只由/目录来使用的)

logical block32开始,由i节点和数据库组成allocation greoup,用于存储目录和文件。(对于分配组i节点个数是固定的,系统里i node编号是连续并且唯一的)。

 

对于一个新的文件,JFS首先在一个分配组里分配1i-node及数据块(根据你文件的大小,分配多个数据块或分片),i-node包括文件的控制信息,以及到分配给该文件的数据块的指针。写数据时,系统通过你指定的名字,找到对应 的i-node号,再根据i-node号找到对应的i-node位置,然后根据指针找到对应的数据块。

阅读(1697) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~