LVM 是一个应用于Linux内核的本地卷管理器,全称是Logical Volume  Manager。Linux LVM 有两个可用的版本,分别为lvm-1与lvm-2,lvm-1只在Linux内核2.4上可用,它提供最基本的逻辑卷管理;lvm-2是lvm-1的更新版,他在标准的lvm-1功能外提供了额外的功能。

lvm的基本模块有:

physical volume(pv)物理卷,volume group(vg)卷组,logical volume(lv)逻辑卷,physical extent (pe)卷组上的基本块.

物理卷,卷组,逻辑卷的关系如下


下面将演示centos在lvm上的基本应用,包括创建物理卷、卷组的(创建,扩展,收缩)、逻辑卷的创建,扩展,收缩。


假设现在磁盘上已有三块空白分区/dev/sda7,/dev/sda8,/dev/sda9,大小各为200M

1. 对sda7与sda8创建物理卷

命令格式:pvcreate  /dev/DEVICE

                  pvcreate /dev/sda{7,8}

查看新创的物理卷

命令:pvs


2.创建卷组,卷组名mytest,将物理卷sda7,sda8加入卷组

命令格式:vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...] ,其中#的值为PE值

               #   vgcreate mytest /dev/sda{7,8}

查看新创卷组信

命令:vgs


3.在卷组里创建逻辑卷/dev/mytest/test,大小为120M格式化为ext3,并挂载到/mnt/lvm目录 

命令格式:lvcreate -L SIZE -n Name groupName
# lvcreate -L 120M -n test mytest ---》创建大小为120M,mytest卷组内的逻辑卷test


# mke2fs -j /dev/mytest/test ------》将逻辑卷test格式化为ext3


# mount /dev/mytest/test /mnt/lvm ---->将逻辑卷挂载到/mnt/lvm


# cp /etc/inittab /etc/passwd /mnt/lvm (将/etc目录下inittab、passwd文件copy到/mnt/lvm,测试创建的test逻辑卷是否可用)



4.扩大卷组空间,将sda9加到卷组

#pvcreate /dev/sda9---->创建物理卷sda9

#vgextend mytest /dev/sda9--->将sda9加入到卷组



5.扩展逻辑卷的大小(支持在线扩展,即不用卸载)

将/dev/mytest/test扩展到200M,并使卷内的文件可以正常使用

#lvextend -L 200M /dev/mytest/test ---》扩展逻辑卷


#resize2fs -p /dev/mytest/test---》重定义逻辑卷中文件系统的大小并查看


6.收缩逻辑卷的大小(不支持在收缩,得先卸载)

将/dev/mytest/test缩小到100M,并使卷内的文件可以正常使用

 # df -lh /dev/myvg/text -----》查看逻辑卷test的容量情况


 # umount /dev/myvg/text ----》将逻辑卷test卸载

 # e2fsck -f /dev/myvg/text ----》对逻辑卷内的文件系统强行检查,以保持内容的一致性

 # resize2fs /dev/myvg/text 100M  ----》先对逻辑卷的文件系统的容量进行收缩


 # lvreduce -L 100M /dev/myvg/text ---》对逻辑卷的自身容量收缩


 # lvs ---》查看


7.对卷组的收缩,将sda9从卷组中删除

   #pvmove /dev/sda9---》将sda9中的数据,移动到sda7与sda8中


   #vgreduce mytest /dev/sda9----》从卷组中剔除sda9


   #pvremove /dev/sda9----》将sda9从物理卷中移除