LVM是 Logical Volume Manager(逻卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现。

一.基本概念及关系

 PV (物理卷) :可以是磁盘分区、硬盘本身或回环文件。物理卷包括一个特殊的header,其余部分被切割为一块块物理区域(PE)。

 VG(卷组): 由一个或多个PV组成,可以创建一个或多个LV。

 LV(逻辑卷): 虚拟分区,由PE组成。

 PE(物理区域):硬盘可供指派给逻辑卷的最小单位(通常为4MB)。


分区的大小为物理边界。   文件系统的大小为逻辑边界或文件系统边界。

二.LVM管理

1.lvm的制作

    fdisk     dev/vdb       ##划分分区,注意功能id必须为Linux LVM,即在划分输入命令“t”后面写"8e"


    pvcreate /dev/vdb1        ##把物理分区做成物理卷       

    pvs                                ##查看物理卷    

    vgcreate vg0 /dev/vdb1        ##用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0
    vgs                                        ##查看卷组

    lvcreate -L 200M -n lv0 vg0    ##在vg0这个组中建立出lv0设备 -L 指定设备大小 -n 指定设备名字
    lvs                                          ##查看逻辑卷设备
 
2.lvm设备扩大/缩减


a.xfs文件系统扩大(xfs文件系统只能扩大不能缩减
1)lvm扩大
    lvextend —L 500M /dev/vg0/lv0       ##将LVM设备扩大至500M
    xfs_growfs    /dev/vg0/lv0              ##扩大xfs文件系统到设备大小
2)vg扩大
    pvcreate /dev/vdb2                    ##在pv中增加设备/dev/vdb2
    vgextend vg0 /dev/vdb2            ##把新建立的/dev/vdb2添加到vg0中    

b.ext文件系统扩大(ext文件系统可以扩大也可以缩减
1)lvm扩大
    lvextend —L 2G /dev/vg0/lv0            ##扩大lvm设备到2G
    resize2fs /dev/vg0/lv0                      ##设定文件系统大小和设备同步
2)vg扩大
         pvcreate /dev/vdb3                        
         vgextend vg0 /dev/vdb3                

3)lvm缩减

    umount /dev/vg0/lv0                    ##文件系统缩减不支持在线操作,所以先卸载设备
    e2fsck -f /dev/vg0/lv0                  ##检测文件系统,防止过度缩减
    resize2fs  /dev/vg0/lv0  1G           ##把文件系统(逻辑边界)缩减到1G
    lvreduce  -L 1G /dev/vg0/lv0          ##设备(物理边界)缩减到1G
4)vg缩减(只能缩减没有被占用的设备)
    pvmove    设备1 设备2                  ##把设备1上的所有数据移动到设备2上
    vgreduce    vg0    /dev/vdb1        ##把vg0中的/dev/vdb1删除
    pvremove    /dev/vdb1                 ##把/dev/vdb1上的lvm管理信息删除

3.lvm丢失设备的删除
例如:

 [root@lmy Desktop]#   pvs
 
  PV             VG   Fmt  Attr PSize    PFree   
  /dev/vdb1      vg0  lvm2 a--  1020.00m  820.00m
  /dev/vdb2      vg0  lvm2 a--  1020.00m 1020.00m
  unknown device vg0  lvm2 a-m   996.00m  996.00m        ##设备丢失

[root@lmy Desktop]# vgreduce --removemissing vg0            ##删除vg0中丢失的设备
 PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?
 PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?
 Wrote out consistent volume group vg0


[root@lmy Desktop]# pvs                       ##删除成功
PV         VG   Fmt  Attr PSize    PFree   
/dev/vdb1  vg0  lvm2 a--  1020.00m  820.00m
/dev/vdb2  vg0  lvm2 a--  1020.00m 1020.00m


4.lvm快照
lvcreate -L 20M -n lv1   /dev/vg0/lv0        ##给/dev/vg0/lv0建立快照,-L 指定快照大小,-n指定快照名字 -s指定快照模板设备
mount /dev/vg0/lv1    /media
当快照设备里的数据被更改,如果想还原,删除快照设备,在重新建立快照即可


5.lvm删除
先卸载,用lvremove命令删除逻辑卷,再用vgremove命令删除卷组,最后用pvremove删除物理卷。