分类:
2009-06-02 15:43:27
系统环境:
1)HP-UX 11.00
2)Model: 9000/715/D
此次笔记包含的内容为:LVM的建立,扩文件系统,缩小文件系统,移动LVM,删除VG
一、建立LVM
假设我们有两个硬盘:c0t3d0和c0t4d0,要建立vg02,里面包含这两个硬盘,可以操作如下:
1.生成PV信息
#pvcreate -f /dev/rdsk/c0t3d0
#pvcreate -f /dev/rdsk/c0t4d0
说明:如果此硬盘包含了其它LVM的信息,此操作可能会报错,此时,可以将硬盘盘头的相关信息去掉,命令如下:
#dd if=/dev/zero of=/dev/rdsk/c0t3d0 bs=1024 count=1024
然后再重新用以上命令创建PV信息。
2. #mkdir /dev/vg02
3. #mknod /dev/vg02/group c 64 0x020000
说明:这条命令是用来建立设备文件,其中c表明建立的是字符设备,64代表的是设备驱动号,这两项都是不可改变的。0x020000的格式是,总是0x开头,02对应的是vg02——其实也可以不对应,只是为了以后方便,大部分时候,我们都是做成对应的,最后接0000。
4. #vgcreate /dev/vg02 /dev/dsk/c0t3d0 /dev/dsk/c0t4d0
说明:这条命令的含义是,创建VG02,并将c0t3d0和c0t4d0这两个硬盘包含在内,当然,也可以先包含一个硬盘,以后需要的时候再扩第二个硬盘,操作如下:
#vgcreate /dev/vg02 /dev/dsk/c0t3d0
#vgextend /dev/vg02 /dev/dsk/c0t4d0(此命令就是将第二个硬盘扩到VG02当中)
5. lvcreate -L 100 vg02
说明:建立了VG信息以后(也就是卷组信息),就可以用lvcreate命令来创建逻辑卷了。这条命令的含义是,建立一个大小为100M,包含在卷组vg02中的逻辑卷。并且,默认的名字是lvol1。第二次用这条命令,默认产生的名称是lvol2,以此类推。
当然,我们有时候为了工作的方便,也可以自己给创建的逻辑卷命名,例子如下:
#lvcreate -L 100 n my_lvol1 vg02
这样,我们就用n参数来定义了逻辑卷的名称。如果我们不用-L参数来指定逻辑卷的大小,默认产生的大小就是0M,这有的时候会给我们的工作带来方便,比如做Mirror的时候,先指定逻辑卷的大小为0,这样做同步的速度就会很快,同步以后再来扩大逻辑卷。至于怎么扩,后面咱们会讲到。
6. newfs -F vxfs -o largefiles /dev/vg02/rlvol1
说明:-F参数指定文件系统类型,这里的vxfs文件系统其实就是我们常说的JFS文件系统,-o用来指定文件系统支持大格式文 件,即支持单个文件大于2G的文件系统,否则,将来随着文件——特别是数据库文件——的增大,很可能会出现问题。而且,如果数据库文件采用裸文件的话,就不要进行这一步操作!
7. mkdir /vg02_lvol1
8. mount /dev/vg02/lvol1 /vg02_lvol1
9. vgcfgbackup vg02
说明:这条命令产生的备份文件会存放在/etc/lvmconf/vg02.conf文件中。同理,vgcfgbackup
vg**产生的备份文件就是存放在/etc/lvmconf/vg**.conf文件中。(好像是用strings命令,而不是用more命令来查看此文件)
二、扩展文件系统
扩展文件系统的目的,是为了扩大某个文件系统的可用空间。一般的,当某个文件系统的使用率超过了90%的时候,我们就应该予以格外的关注,因为使用率继续降低,将可能大大降低系统性能。此时,我们就以通过删除一些临时文件来增大可用空间,当然,也可以用下面将要讲到的扩大文件系统的方法。
我们仍然跟着上面的例子,比如上面我们在vg02中创建了100M的lvol1文件系统,现在我们来将其扩大到200M:
1. #lvextend -L 200 /dev/vg02/lvol1
2. #umount /dev/vg02/lvol1
3. #extendfs -F vxfs /dev/vg01/lvol2
说明,用了第一步的逻辑卷扩大以后,一定要记得使用这个扩大文件系统的操作,否则,将来系统是用sam来查看到的文件系统大小,和用bdf命令查看出来的大小,就会不一样,并且,其实扩大的那部分空间,其实是还不能使用的!
4. #mount -a
说明:做extendfs之前已经umount了,因此扩了文件系统以后,要记得重新mount上去
5. #vgcfgbackup vg02
说明,因为我们对文件系统进行了改动,因此不要忘记备份相关信息文件。
三、缩小文件系统(慎用!)
一般不建议缩小文件系统,因为这很可能造成一些文件和数据的丢失,如果非要进行此操作,请先考虑如下方案:
a. 到HP购买onlie-JFS软件
b. 操作前先进行备份
我们仍然用之前扩大的lvol1来作为例子讲解。按照如下步骤进行操作:
1. #fbackup -f /dev/rmt/0m -0vHi /vg02_lvol1
说明:这是先对此文件系统进行备份
2. #umount /dev/vg02/lvol1
3. #lvreduce -L 100 /dev/vg02/lvol1
4. #newfs -F vxfs -o largefiles /dev/vg02/rlvol1
说明:就是这个操作,让此文件系统上的文件全部丢失,因此,一定要做好备份的动作!
5. #mount -a
6. #frecover -f /dev/rmt/0m
说明:这个恢复的操作可能会失败,原因在于如果将文件系统缩得太小,之前备份的文件大小可能要大于它。因此,在缩小文件系统之前 ,仔细用bdf命令看看。
7. #vgcfgbackup vg02
四、移动逻辑卷(LV)
这类操作实际上很少用到,而且建立LV的时候,需要时连续的块空间,操作才会成功。下面我们已加入一个新硬盘c0t5d0为例子,将lvol1从c0t3d0上移过去。操作如下:
1. #pvcreate -f /dev/rdsk/c0t5d0
2. #vgextend /dev/vg02 /dev/dsk/c0t5d0
3. #pvmove -n /dev/vg02/lvol1 /dev/dsk/c0t3d0 /dev/dsk/c0t5d0
4. #vgcfgbackup vg02
五、移除VG
有的时候我们不需要某个卷组了,就可以将其移除。下面我们以移除vg02为例子,操作如下:
1. 当然是将其中的信息和文件进行必要的备份了,至于是用fbackup、cpio还是tar命令,就看自己的选择了
2. 确定此VG中包含多少个LV
#lvdisplay /dev/vg02/lvol*
说明:同样的,我们看vg**中包含多少个lv,还可以用lvdisplay
/dev/vg**/lvol*来确定。更可靠的,为了防止用户自己定义了名字,可以用lvdisplay /dev/vg**/*来查看。
3. umount要移除的VG下的LV
#cd /
#umount /dev/vg02/lvol1
说明:因为上面的例子中,我们只创建了lvol1,否则,要一个个都umount。有的时候,这条命令不起作用,我们可以用fuser
-ku /dev/vg**/lvol*下所存在的进程kill掉,然后重新umount就行了。
4. 移除LV
#lvremove /dev/vg02/lvol1
说明:同理,如果存在多个LV,要一个个移除掉。
5. 查看/etc/lvmtab文件,确定此要移除的VG中只包含一个PV了
#strings /etc/lvmtab
说明:此文件是用strings命令查看,如果PV有多个,就要一个个移除,剩下最后一个作为VG的载体
6. 移除多余的PV
#vgreduce /dev/vg02 /dev/dsk/c0t5d0
#vgreduce /dev/vg02 /dev/dsk/c0t4d0
说明:在上面的例子中,我们在vg02中加入了c0t3d0,c0t4d0和c0t5d0三个硬盘,因此,这时候要移除多余的,剩下最后一个作为VG的载体??
7. 移除VG
#vgremove /dev/vg02