[Linux]逻辑卷管理LVM
LVM层级
LVM架构
- PP:物理分区(Physical Partition),如硬盘的分区、RAID分区。
- PV:物理卷(Physical Volume),是PP的LVM抽象,它维护了PP的结构信息,是组成VG的基本逻辑单元,一般一个PV对应一个PP。
- PE:物理扩展单元(Physical Extends),每个PV都会以PE为基本单元划分。
- VG:卷组(Volume Group),即LVM卷组,它可由一个或数个PV组成,相当于LVM的存储池。
- LE:逻辑扩展单元(Logical Volume),组成LV的基本单元,一个LE对应一个PE。
- LV:逻辑卷(Logical Volume),它建立在VG之上,文件系统之下,由若干个LE组成。
LVM原理
- LVM(Logical Volume Manager):是Linux中一个硬盘系统工具
- LVM 在每个物理卷(PV)头部都维护了一个MetaData,叫做卷组描述域(VGDA,Volume Group Description Area),每个VGDA中都包含了整个VG(Volume Group)的信息,包括每个VG的布局配置、PV 的编号、LV的编号,以及每个PE到LE的映射关系。同一个VG中的每个PV头部的信息是相同的,这样有利于发生故障时进行数据恢复。
- LVM 对上层文件系统提供 LV 层,隐藏了操作细节。对文件系统而言,对 LV 的操作与原先对 Partition 的操作没有差别。当对 LV 进行写入操作时,LVM 定位相应的 LE,通过 PV 头部的映射表,将数据写入到相应的 PE 上。
- LVM 实现的关键在于在PE 和LE间建立映射关系,不同的映射规则决定了不同的LVM存储模型。LVM 支持多个PV的Stripe和Mirror,这点和软RAID的实现十分相似。
- LVM 对上层文件系统提供抽象层,隐藏了操作细节,对文件系统而言,对LV的操作与原先对分区( Partition)的操作没有差别。当对LV进行写入操作时,LVM定位相应的LE,通过PV头部的映射表,将数据写入到相应的PE上。
LVM优缺点
- 优点:
- 文件系统可以跨多个磁盘,因此大小不会受物理磁盘的限制。
- 可以在系统运行状态下动态地扩展文件系统大小。
- 可以增加新磁盘到 LVM 的存储池中。
- 可以以镜像的方式冗余重要数据到多个物理磁盘上。
- 可以很方便地导出整个卷组,并导入到另外一台机器上。
- 缺点:
- 在从卷组中移除一个磁盘时必须使用 reducevg,否则会出问题。
- 当卷组中的一个磁盘损坏时,整个卷组都会受影响。
- 仅支持有限个文件系统类型的减小操作(ext3不支持减少文件系统大小的操作)。
- 因为加入了额外的操作,存储性能会受影响(使用 Stripe 的情况另当别论)
LVM实验
实验说明
参考:https://www.linuxprobe.com/linux-lvm.html
测试在Linux中创建和管理LVM卷。
- 在一个硬盘上创建多个逻辑卷,然后将它们挂载在/lvm-mount目录
- 对创建好的卷调整大小
- 用另一块硬盘增加额外的卷到LVM中
实验环境
-
CentOS 7
-
系统盘20G
-
添加一块5G的硬盘
准备磁盘分区(PP)
-
创建3个1GB分区
-
分区需要使用“8e”类型(用于创建逻辑卷)
-
重复上述,实现如下
-
保存更改,并 fdisk-l 查看
-
同步分区结果
准备物理卷(PV)
刚创建的分区是用来存储物理卷(PV)的,LVM可以使用不同大小的物理卷。
-
创建物理卷(PV)
-
查看创建好的物理卷(PV),两种办法:pvs、pvdisplay
-
删除物理卷(PV)(示范,实验中不要删除)
准备卷组(VG)
-
使用/dev/sdb1,/dev/sdb2,/dev/sdb3创建名为“volume-group”
-
删除卷组,vgremove volume-group
创建逻辑卷(LV)
-
创建一个名为“LV1”的逻辑卷,大小为100M,使用上面创建卷组的空间
-
使用逻辑卷,格式化,挂载
-
若要永久挂载需要写入/etc/fstab中,参考:https://www.cnblogs.com/Skybiubiu/p/14616246.html
-
删除逻辑卷,先取消挂载 umount /mnt/lvm-mount,再删除逻辑卷 lvremove /dev/volume-group/LV1
扩展LVM卷
-
卸载逻辑卷
-
重新设置大小
-
检查磁盘错误
-
拓展文件系统
-
重新挂载逻辑卷
缩减LVM卷
-
卸载逻辑卷
-
检查磁盘错误
-
缩小文件系统,更新ext4信息
-
减少逻辑卷大小
扩展一个卷组
-
查看卷组大小
-
添加一块新硬盘 5G
-
创建一个物理卷/dev/sdc,将新物理卷增加到卷组“volume-group”上