天天看点

AIX日志型文件系统之逻辑块和碎片(Fragment)

温故:

           根文件系统中包括系统运行所必备的文件和目录,其中有设备目录、系统引导程序,以及安装其他文件系统的安装点。 

        (1)/etc目录: 在每个机器的/etc 目录中包含着各自的配置文件,例如/etc/hosts 和/etc/passwd 文件。/etc目录中包含的文件—般用于系统管理。

        (2)/proc目录:/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。 

        (3)/dev目录:它包含着设备节点和本地设备的特殊文件,主要有磁盘驱动器、磁带驱动器、打印机、终端和 LVM设备等。

        (4)/tmp目录:  这个文件系统存放所有用户产生的临时文件,也是系统程序或应用程序产生临时性中间文件的地方。系统管理员或其他用户应该经常性地清理/tmp 目录,保证/tmp 文件系统有足够的可用空间,因为操作系统可能会由于/tmp 文件系统没有足够的可用空间而死机。

        (5)/var 目录:把/var 目录配置成一个文件系统的原因是/var 目录中包含的文件是随着系统持续运行而增大,最常见的就是var目录下的log。

        (6)/home 目录: 它是/home 文件系统的安装点。这是用户的 HOME 目录,/home 文件系统保存着每一个用户的数据文件和目录。

        (7)/usr 目录:  在一个单独的机器上,/usr 目录是/usr 文件系统的安装点。

        (8)/opt目录:  /opt 目录意为 optional(可选的),主要用于安装附加的应用程序软件包。

原文链接:​​AIX文件系统之系统安装过程中创建的文件系统​​

知新:

        今天要说的是AIX系统中日志型文件系统的结构。日志型文件系统的创建需要明确以下几点才可以进行,i 节点(i-node)的数量、分配组(Allocation Group)的大小、碎片(Fragment)的大小、日志型文件系统的日志大小和文件系统的大小。这些概念具体都有什么含义,它们在系统的运行过程中究竟起到了什么作用?这就是本篇文章的主打内容。

        在讲正式的内容前,先简单的介绍一下“逻辑块”这个概念,日志型文件系统是建立在LV上的,它把逻辑卷分成许多个固定大小的单元并称之为逻辑块(Logical Block),逻辑块大小一般是4k,相当于内存页的大小,因此有时也将逻辑块称为页(Page)。逻辑块包含着目录和文件,每个目录或文件由 0个或多个逻辑块组成,为了存储数据,一个逻辑块又分成多个碎片(Fragment),可以认为碎片是日志型文件系统中最小的单元。当在LV中存数据的时候,其实就是从逻辑块中给要存储的数据分配碎片。

AIX日志型文件系统之逻辑块和碎片(Fragment)

一、逻辑块的具体作用

        (1)逻辑卷控制块(LVCB)∶ 文件系统建立在逻辑卷上,逻辑卷上第一块逻辑块被用作逻辑卷控制块,序号为0,存数据是不会用到这个数据块的,通常用于存放引导程序或其他一些必需的信息,如 LVID 和逻辑卷最近一次更新时间等。

        (2)超级块(Superblock)∶文件系统中的第 2 个逻辑块(块号为 1,称为主超级块)称为超级块(逻辑块 31 作为超级块的备份,称为次超级块),超级块包含着整个文件系统的大小(以 512 字节作为单位来计算)、文件系统的名字、日志设备地址、版本号和文件系统的状态等信息。

        (3)分配组(Allocation Groups):文件系统中剩余的逻辑块被分成许多个分配组。当一个分配组分配给目录和文件时,分配组就由数据块和涉及这些数据块的i节点组成,这些分配组可用于确定数据存储在一个磁盘上的物理位置。

AIX日志型文件系统之逻辑块和碎片(Fragment)

拓展:逻辑块 31是逻辑块1的备份,逻辑块31从不使用,是专门用来对逻辑块1进行灾难恢复的。在块号 2 至块号 30 之间保存着特殊的i节点。第 1个分配组从32 号逻辑块开始,分配组包括i节点和数据块,每个分配组包含固定数目的i节点,逻辑块 32 至逻辑块 m(m 的值根据分配组中包含固定i节点的数目而定)为i 节点,每一个i节点有一个编号,i节点的编号是连续而且在系统中是惟一的。从逻辑块 m+1开始到逻辑块n是一般数据块,是专门存放数据的。以此类推,从 n+1 开始可能是下一个分配组的空间,在下一个分配组中同样也包含着 i节点和数据块。

二、碎片(Fragment)的存在价值

         上面已经讲过了碎片是日志型文件系统的最小单元,这里有一个问题,既然已经有了逻辑块这个概念,为什么又引入了碎片这个概念呢。正所谓存在即合理,这句话是没有毛病的。

        每个逻辑块的大小一般为4096字节,即4kb.一个目录或文件可能用到一到多个逻辑块,比如文件a的大小为9k,那么这个文件最起码需要3个逻辑块,前两个逻辑块占满了,第三个逻辑块只占用了1k,剩余3k的区域没有用到。但是AIX中要求逻辑块中剩余的部分不能给其他的文件或目录继续使用,这样就造成了很大的浪费,因为大部分的文件都会在最后一个逻辑块中有剩余,哪有那么多真正正好不多不少的文件。

        于是为了避免这种情况的发生,碎片的概念也就有了。碎片是在文件系统创建的过程设定的,如果没有自定义的话,系统内就默认为4096字节。看下面的图片大家就知道在哪里设置碎片的大小了。

AIX日志型文件系统之逻辑块和碎片(Fragment)

        碎片的存在允许将每个文件或目录所占逻辑块的剩余部分通过碎片的方式继续给其他文件使用,极大的增加了逻辑块的使用率。这里举一个简单的例子,假设有一个文件的大小是1 500 字节,如果没有设置碎片的话,那么该文件存入逻辑块后会浪费2596k 的空间。但是如果设置了碎片的大小为1024字节,这个文件只会占用两个碎片,还有2048的 字节空间给其他文件使用。这样就充分的提高了资源的使用率。

AIX日志型文件系统之逻辑块和碎片(Fragment)