一、LVM简介
LVM2(LogicalVolume Manage,Version2):它是Linux环境下对磁盘分区进行管理的一种机制,将一个或多个底层块设备组织成一个逻辑设备。通过LVM管理员可以轻松管理磁盘分区,使用LVM与传统的分区方法相比有很多的优势,如:容量的分配更加灵活、逻辑卷的扩展和缩减更加方便、使用snapshot(快照)来备份数据也非常方便。通过本文你可以快速了解LVM2的使用方法。
二、LVM2使用详解
![15091313226733.jpg 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
![1.png wKioL1cCZk2yLHdDAAAJdQfOeaM865.png]()
pvs:显示简要PV信息
![2.png wKiom1cCZaOyd9kwAAAKmk6BnWE631.png]()
pvdisplay:显示PV的详细信息(在命令后不输入具体PV名默认显示所有PV详细信息)
![3.png wKioL1cCZk2S9IVBAAAX64VaJ2A138.png]()
pvremovePhysicalVolumeName:删除PV
![图像 8.png wKioL1cCZvHyh6U8AAAH41_-FaA843.png]()
2.VG管理工具
vgcreate -s #[指定PE大小] VolumeGroupName PhysicalDevicePath:创建VG
![图像 1.png wKioL1cCZy3TzHotAAAIB79eB1E436.png]()
vgs:显示简要VG信息
![图像 2.png wKioL1cCZy7j2ZdLAAAJneSTIpI880.png]()
vgdisplay:显示VG的详细信息(在命令后不输入具体VG名默认显示所有VG详细信息)
![图像 3.png wKiom1cCZoTDtCEoAAAkOwa3f-s631.png]()
vgextend VolumeGroupName PhysicalDevicePath:扩展VG大小
![图像 4.png wKioL1cCZy7SGG3FAAAHB8dXmMc089.png]()
![图像 5.png wKioL1cCZ5ews_G_AAAJoMkkdjk271.png]()
vgreduce VolumeGroupName PhysicalDevicePath:缩减VG大小
![图像 6.png wKioL1cCZ5eDCi5GAAAJncee-RI525.png]()
注:在缩减VG之前需要先确认在缩减后VG的容量是否足够存储VG现有的数据。然后做pvmove操作,把存储在要移除的PV上的数据转移到该VG其它PV上,确保数据不会丢失。
vgremove VolumeGroupName:删除VG
3.lv管理工具:
lvcreate -L #[指定LV大小] -n LVNAME VolumeGroup:创建LV
![图像 1.png wKiom1cCdFaC_W10AAAGo7hzfpc579.png]()
lvs:显示简要LV信息
![图像 2.png wKioL1cCdQDCCBqRAAAPfkXVYIo399.png]()
lvdisplay:显示LV的详细信息(在命令后不输入具体LV名默认显示所有LV详细信息)
![图像 3.png wKioL1cCdQDzvKbvAAAkrSXV3-4083.png]()
lvremove /dev/VG_NAME/LV_NAME:删除LV
![图像 10.png wKiom1cCdU7je7JlAAAQ3IG0PJ0720.png]()
扩展逻辑卷:
lvextend -L #[+扩大多少容量或扩展到多少容量] /dev/VG_NAME/LV_NAME
![图像 4.png wKiom1cCdFfi-KidAAAdAxgoM6A636.png]()
resize2fs /dev/VG_NAME/LV_NAME:扩展完成后需要对该LV文件系统重新定义
![图像 5.png wKiom1cCdFeRe_k1AAAO87d5NMo418.png]()
缩减逻辑卷:
注:在缩减LV前需要先确认在缩减后LV的容量是否足够存储LV现有的数据,否则会造成数据丢失或损坏。
umount /dev/VG_NAME/LV_NAME:先确保需要缩减的LV解除挂载
e2fsck -f /dev/VG_NAME/LV_NAME:强制对该LV进行文件系统检查
![图像 6.png wKioL1cCdQHxzDKRAAAgsjBfi-Y098.png]()
resize2fs /dev/VG_NAME/LV_NAME [缩减后LV的容量大小]:对该LV文件系统重新定义
![图像 7.png wKioL1cCdQGxr6UAAAAPJ1RwMF4443.png]()
lvreduce -L #[-缩减多少容量或缩减到多少容量] /dev/VG_NAME/LV_NAME
![图像 8.png wKiom1cCdFjitvXrAAAbBuDfwtI994.png]()
mount:挂载
4.快照:snapshot
lvcreate -L #[需要建立快照的容量] -p r -s -n snapshot_name /dev/VG_NAME/LV_NAME
![图像 9.png wKioL1cCdQHgLIpnAAAH9q_Vz3E411.png]()