跳至正文

LVM——逻辑卷管理器

LVM(Logical Volume Manager,逻辑卷管理器)是一种在 Linux 系统中对存储设备进行灵活管理的工具。传统硬盘分区方式中,磁盘空间被划分为固定大小的分区,一旦分配就很难调整,而 LVM 引入了 物理卷(PV)、卷组(VG)、逻辑卷(LV) 三层结构,使磁盘管理更加灵活。

  • 物理卷(PV):物理存储设备或其分区,如 /dev/sda1,是 LVM 的最底层存储单元。
  • 卷组(VG):将一个或多个 PV 聚合成一个大的存储池,类似于将多块硬盘“合并”在一起。
  • 逻辑卷(LV):从卷组中划分出的可用空间,类似于传统分区,用户和文件系统直接使用逻辑卷进行读写操作。

LVM 的优势在于它支持 动态调整卷大小快照功能(用于备份)以及 跨磁盘扩展卷组,使系统管理员能够在不中断服务的情况下,灵活地管理磁盘空间,从而大大提高了存储利用率和管理效率。

以下,使用sdb,sdc,sdd三块磁盘来做示范。实际上使用分区,例如sdb1,sdb2,sdc1也可以的

管理命令

功能PV 管理命令VG 管理命令LV 管理命令
Scan(扫描)pvscanvgscanlvscan
Create(建立)pvcreatevgcreatelvcreate
Display(显示)pvdisplayvgdisplaylvdisplay
Remove(移除)pvremovevgremovelvremove
Extend(扩展)vgextendlvextend
Reduce(减少)vgreducelvreduce

小技巧

  • 使用 pvs / vgs / lvs 快速概览
  • 使用 pvdisplay / vgdisplay / lvdisplay 查看详细信息
  • 修改逻辑卷前务必备份重要数据

创建LVM

创建 LVM 流程:
pvcreate 创建 pv -> vgcreate 创建卷组 -> lvcreate 创建逻辑卷 -> mkfs.xfs lv 格式化-> mount 挂载

创建物理卷PV

pvcreate /dev/sd[b-d]  #使用简单的写法,也可以分开写三个设备
# 使用pvs可以查看创建的物理卷

创建卷组VG

vgcreate vname /dev/sd[b-d]  #将多个 PV 聚合成一个卷组,请务必指定卷组的名字
#使用vgs查看卷组状态

创建逻辑卷LV

lvcreate -L 10G -n lvm1 vname # -L 指定大小,-n指定逻辑卷的名称,并在最后引用上一步的vg卷组
#使用lvs查看逻辑卷状态

此时可以用lsblk查看多出来的块设备

使用

格式化后再挂载,即可使用,详见:Linux的磁盘基本管理

LVM扩容

当已有的磁盘已经无法满足当前的使用,需要扩大LVM容量供后续使用。例如新加一块sde盘后操作:

vgextend vname /dev/sde  #将新的sde盘加入卷组扩容
lvextend -L +10G /dev/vname/lvm1  #再分配10G空间到虚拟块文件
xfs_growfs /dev/vname/lvm1          //刷新xfs文件系统容量
resize2fs   /dev/vname/lvm1          //刷新ext4类型文件系统容量

卸载和删除LVM

删除 LVM 流程:
umount 卸载 -> lvremove lv 移出卷组中所有逻辑卷-> vgremove vg 移出卷组-> pvremove 移出 pv

umount /mnt/mda # 从挂载目录卸载
lvremove /dev/vname/lvm1 #删除已有的lv卷
vgremove vname #删除已有的vg卷
pvremove /dev/sd[b-e] #删除已有的pv卷

踩坑记录

磁盘无法引用

有时候在创建PV卷的时候,磁盘会被跳过,通常是因为磁盘已经有了一个GPT分区表,所以需要删除它。
使用cfdisk命令可以交互式删除已经存在的分区表,用法示范: cfdisk /dev/sdb

使用交互式操作,删除这个分区表后

然后,即可重新创建PV。

结语

LVM 的优势在于它支持 动态调整卷大小快照功能(用于备份)以及 跨磁盘扩展卷组,使系统管理员能够在不中断服务的情况下,灵活地管理磁盘空间,从而大大提高了存储利用率和管理效率。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注