LVM2(Logical Volume Manager 2)
原理:
将底层的物理硬盘抽象地封装起来,以逻辑卷的方式呈现给上层应用,但对于文件系统而言,对LVM的操作与对硬盘分区的操作并无差别。
实现基础:
Linux内核的Device mapper机制,将一个或多个底层块设备组织成一个逻辑设备
基本元素:
-
PP(Physical Partition):物理分区,如硬盘的分区、RAID磁盘阵列
-
PV(Physical Volume):是对底层磁盘的抽象层,是组成VG的基本逻辑单元
-
PE(Physical Extends):物理扩展单元,是PV的基本划分单元
-
VG(Volume Group):卷组,由PV组成,是LVM的存储池
-
LE(Logical Extends):逻辑扩展单元,是LV的基本组成单元,与PE一一对应
-
LV(Logical Volume):逻辑卷,位于VG之上,文件系统之下
优缺点
优点:
-
可以实现对上层文件系统的动态扩展
-
突破磁盘限制,文件系统可以跨度多个物理磁盘
-
可以实现以镜像方式冗余数据到多个物理磁盘
-
可以实现对卷组的导出和导入
缺点
-
当卷组中的物理磁盘损坏是,会引起整个卷组故障
-
从卷组中移除物理磁盘时必须使用reducevg,否则会出问题
-
仅支持有限个文件系统的缩减操作
-
因加入额外操作,存储性能将受到影响
设备文件
/dev/mapper/VGNAME-LVNAME –> /dev/dm-# /dev/VGNAME/LVNAME –> /dev/dm-#
创建LVM逻辑卷:物理磁盘–>PV–>VG–>LV–>格式化
-
将物理磁盘创建为PV
[root@CentOS7 ~]# pvcreate /dev/sdb1 //--> pvcreate /dev/DEVICE 创建PV WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/sdb1. Physical volume "/dev/sdb1" successfully created [root@CentOS7 ~]# pvs /dev/sdb1 //--> pvs 查看当前PV的信息 PV VG Fmt Attr PSize PFree /dev/sdb1 lvm2 --- 10.00g 10.00g [root@CentOS7 ~]# pvdisplay /dev/sdb1 //--> pvdisplay 查看PV的详细信息 "/dev/sdb1" is a new physical volume of "10.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 10.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID iqzxgD-TV0Z-j8qF-cBD9-qk2v-EQJc-KJc1X6
-
创建VG
[root@CentOS7 ~]# vgcreate test /dev/sdb1 //-->vgcreate [-s #[kKmMgGtTpPeE]] VG_NAME PhysicalDevicePath 创建VG Volume group "test" successfully created [root@CentOS7 ~]# vgs //-->vgs 查看VG的信息 VG #PV #LV #SN Attr VSize VFree centos 1 2 0 wz--n- 19.51g 40.00m test 1 0 0 wz--n- 10.00g 10.00g [root@CentOS7 ~]# vgdisplay test//-->查看VG的详细信息 --- Volume group --- VG Name test System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 10.00 GiB PE Size 4.00 MiB Total PE 2559 Alloc PE / Size 0 / 0 Free PE / Size 2559 / 10.00 GiB VG UUID KBNCQ1-fT34-5VPp-FFUX-tz7I-NpPL-m2AZu1
-
创建LV
[root@CentOS7 ~]# lvcreate -L 2G -n hello test //-->lvcreate -L #[mMgGtT] -n NAME VolumeGroup 创建LV Logical volume "hello" created. [root@CentOS7 ~]# lvs /dev/test/hello //-->lvs 查看LV信息 LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert hello test -wi-a----- 2.00g [root@CentOS7 ~]# lvdisplay !$ //--> lvdisplay 查看LV详细信息 lvdisplay /dev/test/hello --- Logical volume --- LV Path /dev/test/hello LV Name hello VG Name test LV UUID VyDN1C-4VUe-fQRd-iD18-bq35-pgR4-C1hY1X LV Write Access read/write LV Creation host, time CentOS7, 2016-08-18 21:04:44 +0800 LV Status available # open 0 LV Size 2.00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2
-
格式化逻辑卷:在使用逻辑卷之前要进行格式化,而后挂载使用。
删除逻辑卷
逻辑卷的删除有严格的顺序:卸载逻辑卷–>删除LV–>删除VG–>删除LV
umount MOUNTPOINT–>lvremove /dev/VGNAME/LVNAME–>vgremove /dev/VGNAME–>pvremove /dev/DEVICE
扩展逻辑卷:可以在线进行,无需卸载卷
-
扩展PV
# pvcreate /dev/DEVICE
-
扩展VG
# vgextend VG_NAME /dev/DEVICE
-
扩展LV
# lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
-
更新文件系统
# resize2fs /dev/VG_NAME/LV_NAME
缩减逻辑卷
-
卸载卷
# umount MOUNT_POINT
-
检查文件系统
# e2fsck -f /dev/VG_NAME/LV_NAME
-
缩减文件系统
# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
-
缩减LV
# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
-
从VG中移除PV
# vgreduce VG_NAME /dev/DEVICE
-
移除PV
# pvremove /dev/DEVICE
创建快照:snapshot
lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name 注意:创建快照时不能跨分区,相当于硬链接。快照与原卷在同一个卷组中。
原创文章,作者:Jeason,如若转载,请注明出处:http://www.178linux.com/37836