说明:

    PV:物理卷

    VG:卷组(物理层面上一个VG由一个或多个PV组成)

    LV:逻辑卷(逻辑层面上一个VG由一个或多个LV组成)

 

    建立逻辑卷的顺序是PV->VG->LV

 

    IDE接口的硬盘显示出来是:hda

    SCSI接口的硬盘显示出来是:sda


一、建立逻辑卷:

   例如我们选定hda5来做逻辑,首先要确认hda5处于umount状态。

#df–h                                    # 查看挂载状态 hda5在mount状态
#umount /dev/hda5                         # 卸下hda5

#pvcreate /dev/hda5                       #将hda5创建为物理卷
#pvscan                                   #查看当前所有的物理卷,确认有hda5

#vgcreate VolGroup0/dev/hda5              #创建卷组VolGroup0 ,将hda5添加到卷组中
#vgscan                                   #查看当前所有的卷组,确认有VolGroup0

#lvcreate –L 5G –nVol01 VolGroup0       #创建一个5G的逻辑卷Vol01 ,指定卷组为VolGroup0
#lvremove VolGroup0/Vol01                 #删除逻辑卷Vol01
#lvscan                                   #查看当前所有的逻辑卷,确认有Vol01
#mkfs.ext3 /dev/VolGroup0/Vol01           #格式化新建的逻辑卷Vol01
#mkdir /test                              #创建一个目录
#mount/dev/VolGroup0/Vol01 /test          #将逻辑卷Vol01挂载到test目录下

        大功告成,一个逻辑卷就完成了。

 

二、扩展逻辑卷:

  2.1 VG的空间足够大,只扩展LV

#lvextend –L +2G  /dev/VolGroup0/Vol01    #给逻辑卷Vol01加2G的空间
#resize2fs /dev/VolGroup0/Vol01            #重置Vol01的大小
#lvscan                                    #能看到当前的lv大小变为7G
#reboot                                    #重启机器(可不重启)
#df –hl                            #重启后就能看到 /dev/VolGroup0/Vol01 的大小变为7G


  2.2 VG的空间不足,扩展VG

     扩展VG的前提是你的硬盘还有剩余未分配空间

#fdisk /dev/hdan -> e -> 6 -> +5G -> w     #新建一个5G的扩展分区分区号是6
#mkfs.ext3/dev/hda6                        #格式化新建的hda6
#fdisk –l                                 #查看当前所有分区就能看到hda6了

 

  2.3 下面我们要把新建的hda6合并到VG中

#pvcreate /dev/hda6                        #将hda6创建为物理卷
#pvscan                                    #查看当前所有的物理卷,确认有hda6
#vgextend VolGroup0/dev/hda6               #将hda6加入到VolGroup0卷组中
#vgs                                       #查看vgs的简略信息,发现VolGroup0的空间变大了


三、缩小LV逻辑卷(注意:700M 为缩减后剩余大小)

    今天学习了 RHEL6 缩减 LV 大小,下面的例子目标是将LV "/dev/mapper/vg_redhat6-lv_pgdata_01"
缩小 到700M,也就是减小86M     

  3.1 当前LVM 信息

/dev/mapper/vg_redhat6-lv_root   13G  7.7G  4.6G  63%    /
tmpfs                  250M  264K  250M  1%      /dev/shm
/dev/sda1              485M   31M  429M  7%      /boot
/dev/mapper/vg_redhat6-lv_opt   786M 593M 154M 80%      /opt

 

  3.2 卸载文件系统 ( unmount )

 

[root@redhat6 ~]# umount /dev/mapper/vg_redhat6-lv_opt

 

  3.3 检查文件系统( e2fsck )

 

[root@redhat6 ~]# e2fsck /dev/mapper/vg_redhat6-lv_opt   
e2fsck 1.41.12 (17-May-2010)
/dev/mapper/vg_redhat6-lv_opt: clean, 236/49152 files, 154817/179200  blocks

   

  3.4 缩小文件系统 ( resize2fs )


[root@redhat6 ~]# resize2fs -f /dev/mapper/vg_redhat6-lv_opt 700M
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/vg_redhat6-lv_pgdata_01 to 179200 (4k)  blocks.
The filesystem on /dev/mapper/vg_redhat6-lv_pgdata_01 is now 179200 blocks  long.


3.5 缩小LV大小( lvreduce )

[root@redhat6 ~]# lvreduce -L 700M /dev/mapper/vg_redhat6-lv_opt
WARNING: Reducing active logical volume to 700.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv_pgdata_01? [y/n]: y
Reducing logical volume lv_pgdata_01 to 700.00 MiB
Logical volume lv_pgdata_01 successfully  resized


   3.6 查看当前 LV 大小

[root@redhat6 ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv_opt  vg_redhat6  -wi-ao---- 700.00m
lv_root vg_redhat6  -wi-ao---- 13.10g
lv_swap vg_redhat6  -wi-ao---- 1.91g


  3.7 重新挂载文件系统,查看 

[root@redhat6 ~]# mount -t ext4 /dev/mapper/vg_redhat6-lv_opt  /opt
[root@redhat6 ~]# df -hl
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/vg_redhat6-lv_root   13G 7.7G 4.6G 63%   /
tmpfs                  250M 264K 250M 1% /dev/shm
/dev/sda1              485M 31M  429M 7% /boot
/dev/mapper/vg_redhat6-lv_opt  688M 593M 61M 91%    /opt

 

        备注:目录 /database/skytf/pgdata1  已成功缩减到 700M 左右。  

        
    ps. 此时vg就有空闲的空间,通过#vgdisplay查看剩余大小(红框内),结合2.1可以把空闲的大小分给其它逻辑卷。如下图

 LVM逻辑卷的建立、扩展、缩小_LVM

-- 总结
  
   
在缩减LV 大小前,首先得先缩减文件系统大小。