文件系统在线扩容是系统管理中最常用的一个操作之一,把相应的几个命令掌握有助于加深对AIX管理的理解。
先是创建逻辑卷LV和文件系统。
这里有两种方法,一种是先用mklv先创建一个逻辑卷LV,再用mkfs创建文件系统,另外一种是直接用crfs把创建LV和文件系统一起来了。
通过实际对这两种方法的操作发现:
1、mklv可以自定义逻辑卷LV的名字,而使用crfs我还没发现在哪里可以指定自动创建的LV的名字,默认好像是从fslv00开始,后面的数字依次增加。而且使用crfs的时候也好像不能指定它自动创建的LV的copies镜像数。
2、通过mkfs创建mklv得出的逻辑卷,它并不会往/etc/filesystems(这个文件的功能相当于linux里面的/etc/fstab这个文件)这个文件里面写入新的文件系统的信息,这个文件里面没有新创建的文件系统的信息目前发现会造成两个问题:一是使用lsfs命令查看分区的时候将不会显示刚才创建的这个文件系统(因为lsfs就是直接读取的/etc/filesystems文件),二是后面使用chfs给分区扩容的时候它会拒绝,也是因为/etc/filesystems里面没有那个文件系统的信息。不过这倒不是什么问题,因为可以手动把刚才通过mkfs创建的文件系统的信息按文件格式加到/etc/filesystems里面去。
3、使用smit crfs的从Previously Defined Logical Volume创建JFS的时候发现,它不认我手动用mklv创建的逻辑卷,不知是何故。
因此可以得出结论,如果要想对创建的LV做更多的自定义,就要麻烦一些用mklv+mkfs再手动增加/etc/filesystems里面的信息,如果要想简单快捷,那就使用crfs更好。
再是在线给文件系统扩容。
lsvg testvg命令只有在vg是active的时候才能使用(可以用varyonvg testvg来激活),也可以使用lspv来看hdisk对应的vg是否已经active。
验证文件系统扩容是否成功我是使用的df -g命令来查看文件系统的空间来实现的,同时也用lslv fslv00来查看LV的逻辑分区LP数来查看到底分配了多少个LP。
扩容有两种,一种是给LV扩容(使用extendlv命令),就是增加逻辑分区LP的数量,另一种是给文件系统扩容(使用chfs命令),就是增加df -g看到的那个文件系统的空间。之前对这两种方式不太理解,后面操作之后有以下发现:
1、extendlv只是简单的增加逻辑分区LP的数量,如果相应的LV在扩容前已经创建了文件系统并且挂载,那么在extendlv之后挂载的文件系统的容量是不会变的(即使重新挂载也不会变),这个不会自动把文件系统也扩容了。
2、要扩展文件系统的大小,必须使用chfs命令。可以使用chfs -a size=800M /home/fslv00命令来给文件系统扩容。同时还发现,chfs -a size+=200M这种的把分区增加200M空间的命令方式我没成功,它提示必须要使用Attribute=Value的形式,不知为何。chfs之后,再用df -g查看,文件系统的空间就变大了,不会再出现上面的用extendlv增加LP后却用不到的问题。
3、这里就有个问题了,文件系统或逻辑分区的实际容量=物理分区PP大小*逻辑分区数,所以使用chfs指定的size的大小,系统并不一定就会分配这么多,它会分配不小于用户指定的容量且最接近物理分区倍数容量的空间,因为物理分区PP的大小是固定不能变的,所以容量只能是物理分区的倍数,假如当前VG的PP大小是512MB,那么我指定800M,系统就会分配1G空间给我,因为不小于800M且最接近512MB倍数的容量是1G。
4、使用chfs它会自动扩展LV,也就是自动增加逻辑分区LP的数量。所以一般情况下,对于文件系统的扩展,只需要使用chfs就行了,extendlv根本没有必要。
5、那你肯定会问为什么还要存在extendlv这个命令呢?因为还有裸设备这个使用方式,比如Oracle它就会直接使用裸设备而不创建文件系统,如果oracle对应的裸设备所在的逻辑分区LV不够用了,extendlv命令就派上用场了,因为是裸设备没有文件系统,chfs是修改文件系统的,自然是无法使用的。
6、那如果我硬是要把extendlv和chfs一起用会怎么样呢?结果就是chfs对LP数量的操作的优先级会比extendlv的高,直接的表现就是chfs会修改extendlv修改过的LP数量。举个栗子,扩容之前的LV只有1个LP,我先用extendlv把LP增加到2个,如果我现在用chfs扩容文件系统到刚好两个LP大小的容量,会发生什么呢?结果就是它就只用了两个LP,并不会出现extendlv扩出来的一个LP不用而chfs又新加了一个LP的导致一共有3个LP但只能用2个LP的情况,所以这里就可以看出chfs对LP的操作会比extendlv的优先级高。再举个栗子,扩容前的LV还是只有1个LP,我用extendlv把LV增加7个LP,就是现在有8个LP了,此时我再用chfs把文件系统扩容到4个LP大小的空间,会发生什么呢?结果就是LV只有4个LP了,也就是说chfs把LV的LP数量修改到了用户指定的4个LP大小的空间,之前extendlv设定的LP数量被覆盖掉了。
好了,AIX的文件系统和LV的扩容也算是基本搞清楚了,记录下来以备用。
相关阅读: