一、LVM简介

    LVM2(LogicalVolume Manage,Version2):它是Linux环境下对磁盘分区进行管理的一种机制,将一个或多个底层块设备组织成一个逻辑设备。通过LVM管理员可以轻松管理磁盘分区,使用LVM与传统的分区方法相比有很多的优势,如:容量的分配更加灵活、逻辑卷的扩展和缩减更加方便、使用snapshot(快照)来备份数据也非常方便。通过本文你可以快速了解LVM2的使用方法。

 

二、LVM2使用详解                            

wKiom1cCY9nzFRkxAAHCcjt2izk527.jpg

(该图片来源于网络)

PV:Physical Volume 物理卷

VP:Volume Group 卷组

LV:Logical Volume 逻辑卷

 

    操作环境:通过fdisk命令已创建了3个大小分别为10G的磁盘分区/dev/sda5、/dev/sda6和/dev/sda7。

    1.PV管理工具

        pvcreate /dev/DEVICE: 创建PV

        wKioL1cCZk2yLHdDAAAJdQfOeaM865.png


        pvs:显示简要PV信息

        wKiom1cCZaOyd9kwAAAKmk6BnWE631.png


        pvdisplay:显示PV的详细信息(在命令后不输入具体PV名默认显示所有PV详细信息)

        wKioL1cCZk2S9IVBAAAX64VaJ2A138.png


        pvremovePhysicalVolumeName:删除PV

        wKioL1cCZvHyh6U8AAAH41_-FaA843.png


    2.VG管理工具

        vgcreate  -s  #[指定PE大小]  VolumeGroupName  PhysicalDevicePath:创建VG

        wKioL1cCZy3TzHotAAAIB79eB1E436.png


        vgs:显示简要VG信息

        wKioL1cCZy7j2ZdLAAAJneSTIpI880.png


        vgdisplay:显示VG的详细信息(在命令后不输入具体VG名默认显示所有VG详细信息)

        wKiom1cCZoTDtCEoAAAkOwa3f-s631.png


        vgextend  VolumeGroupName  PhysicalDevicePath:扩展VG大小

        wKioL1cCZy7SGG3FAAAHB8dXmMc089.png

        wKioL1cCZ5ews_G_AAAJoMkkdjk271.png


        vgreduce  VolumeGroupName  PhysicalDevicePath:缩减VG大小

        wKioL1cCZ5eDCi5GAAAJncee-RI525.png

    注:在缩减VG之前需要先确认在缩减后VG的容量是否足够存储VG现有的数据。然后做pvmove操作,把存储在要移除的PV上的数据转移到该VG其它PV上,确保数据不会丢失。


        vgremove VolumeGroupName:删除VG

        wKiom1cCZu7B_7dZAAAGPZs11VQ433.png     


    3.lv管理工具:

        lvcreate  -L  #[指定LV大小]  -n  LVNAME VolumeGroup:创建LV

        wKiom1cCdFaC_W10AAAGo7hzfpc579.png


        lvs:显示简要LV信息

        wKioL1cCdQDCCBqRAAAPfkXVYIo399.png


        lvdisplay:显示LV的详细信息(在命令后不输入具体LV名默认显示所有LV详细信息)

        wKioL1cCdQDzvKbvAAAkrSXV3-4083.png


        lvremove  /dev/VG_NAME/LV_NAME:删除LV

        wKiom1cCdU7je7JlAAAQ3IG0PJ0720.png


        扩展逻辑卷:

            lvextend  -L  #[+扩大多少容量或扩展到多少容量]  /dev/VG_NAME/LV_NAME

        wKiom1cCdFfi-KidAAAdAxgoM6A636.png


            resize2fs  /dev/VG_NAME/LV_NAME:扩展完成后需要对该LV文件系统重新定义

        wKiom1cCdFeRe_k1AAAO87d5NMo418.png


        缩减逻辑卷:

        注:在缩减LV前需要先确认在缩减后LV的容量是否足够存储LV现有的数据,否则会造成数据丢失或损坏。


            umount  /dev/VG_NAME/LV_NAME:先确保需要缩减的LV解除挂载


            e2fsck  -f  /dev/VG_NAME/LV_NAME:强制对该LV进行文件系统检查

        wKioL1cCdQHxzDKRAAAgsjBfi-Y098.png


            resize2fs  /dev/VG_NAME/LV_NAME [缩减后LV的容量大小]:对该LV文件系统重新定义

        wKioL1cCdQGxr6UAAAAPJ1RwMF4443.png


            lvreduce  -L  #[-缩减多少容量或缩减到多少容量] /dev/VG_NAME/LV_NAME

        wKiom1cCdFjitvXrAAAbBuDfwtI994.png


            mount:挂载


    4.快照:snapshot

         lvcreate  -L  #[需要建立快照的容量]  -p  r  -s  -n  snapshot_name  /dev/VG_NAME/LV_NAME

        wKioL1cCdQHgLIpnAAAH9q_Vz3E411.png