LVM逻辑详解
[toc]
一、LVM的组成
1、物理卷-pv
物理卷就是指硬盘分区或从逻辑分区具有同样功能的设备(如RAID),是lvm的基本存储逻辑块,它是LVM构建的实际硬件或存储系统。
2、卷组-vg
lvm卷组类似于非lvm系统中的物理硬盘。其由物理卷组成,可以在卷组上创建一个或多个lvm分区,由一个或者多个物理卷组成。设备文件系统中显示为/dev/name_vg。
3、逻辑卷-lv
逻辑卷是可供系统使用的最终元设备,他们在卷组中创建和管理,由物理块组成,实际上就是一个虚拟分区,并显示为/dev/name_vg/name_lv,通常再其上可以创建文件系统。
4、物理块-pe
一个卷组中最小的连续区域(默认为4MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。
LE:逻辑卷也被划分为被称为LE的可被寻址的基本单位,在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
二、lvm的优缺点
1、优点
比起传统的硬盘分区管理方式,LVM更富于灵活性
将多块硬盘看做一块大硬盘
使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区
可以创建小的逻辑卷(LV),在空间不足的时候在动态调整它的大小
在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续的空间
可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建,删除,调整大小等操作。不过LVM上的文件系统也需要重新调整大小,好在某些文件系统(例如ext4)也支持在线操作
无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上
允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小
支持各种设备映射目标,包括透明文件系统加密和缓存常用数据。这将允许你创建一个包含一个或多个磁盘,并用LUKS加密的系统,使用LVM on top可轻松的管理和调整这些独立的加密卷,并免去开机时多次输入密钥的麻烦
2、缺点
在系统设置时需要更复杂的额外步骤
Windows系统不支持LVM,若使用双系统,你将无法在Windows上访问LVM分区
三、创建和管理LVM
创建LV有两种方式,一种是基于磁盘的,另一种是基于分区的。如果是基于分区的需要通过fdisk或者parted方式划好分区,但不要继续格式化,然后使用pvcreate创建物理卷;如果基于磁盘的就不要创建分区,直接通过pvcreate来创建物理卷,只有创建好了物理卷之后才能添加到卷组,并且卷组里面创建逻辑卷后格式化才能存放数据
1、基于磁盘的方式创建lv
依次为:disk(磁盘)->PV(物理卷)->VG(卷组)->LV(逻辑卷)->fs
1)查看磁盘信息
[root@blogdriverzhang ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 203.6M 0 rom
vda 253:0 0 50G 0 disk
└─vda1 253:1 0 50G 0 part /
vdb 253:16 0 60G 0 disk
vdc 253:32 0 60G 0 disk
[root@blogdriverzhang ~]# lvmdiskscan
/dev/vda1 [ <50.00 GiB]
/dev/vdb [ 60.00 GiB]
/dev/vdc [ 60.00 GiB]
2 disks
1 partition
0 LVM physical volume whole disks
0 LVM physical volumes
从上面可以看到sda是系统分区,vdb和vdc是数据盘
2)使用数据盘创建磁盘的物理卷
#创建物理卷
[root@blogdriverzhang ~]# pvcreate -f /dev/vdb
Wiping dos signature on /dev/vdb.
Physical volume "/dev/vdb" successfully created.
#查看
[root@blogdriverzhang ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb lvm2 --- 60.00g 60.00g
3)创建卷组
#创建卷组
[root@blogdriverzhang ~]# vgcreate -f data01-vg /dev/vdb
Volume group "data01-vg" successfully created
#查看
[root@blogdriverzhang ~]# vgs
VG #PV #LV #SN Attr VSize VFree
data01-vg 1 0 0 wz--n- <60.00g <60.00g
注:
data01-vg是子集命令的便于识别的卷组标识名;
要划分多个目录数小于物理卷数,可以将具体的单个磁盘作为一个卷组早划分一个逻辑卷提供给一个集体目录使用;
如果要划分的目录数大于物理卷数。比如俩个物理卷要划分3个目录使用的情况,可以将俩个物理卷分给同一个卷组: vgcreate -f ocloud-vg /dev/nvme0n1 /dev/nvme0n2 (以此类推),再在卷组上划分多个逻辑卷给多个目录使用;
4)添加新的物理卷
#在前一个的基础上添加新的物理卷
[root@blogdriverzhang ~]# pvcreate -f /dev/vdc
Physical volume "/dev/vdc" successfully created.
#查看
[root@blogdriverzhang ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb data01-vg lvm2 a-- <60.00g <60.00g
/dev/vdc lvm2 --- 60.00g 60.00g
5)将新的物理卷添加到现有的卷组
[root@blogdriverzhang ~]# vgextend data01-vg /dev/vdc
Volume group "data01-vg" successfully extended
#查看
[root@blogdriverzhang ~]# vgs
VG #PV #LV #SN Attr VSize VFree
data01-vg 2 0 0