← 返回主页
NOTE

Linux 逻辑卷管理器 LVM

整理 PV、VG、LV 创建扩容、缩容和快照等 LVM 管理操作。

概述

LVM(Logical Volume Manager,逻辑卷管理器)是一种将多个物理存储设备整合为单一虚拟磁盘的技术,实现了文件系统容量的弹性调整,解决了传统磁盘分区大小固定的限制。

核心概念

概念名称缩写说明
Physical VolumePV物理卷,实际的磁盘设备或分区,是LVM的基本存储单元
Volume GroupVG卷组,由多个PV组成的虚拟存储池,是LVM的核心管理单元
Physical ExtentPE物理扩展块,LVM的最小存储单元(类似文件系统的block),默认大小为4MB
Logical VolumeLV逻辑卷,从VG中划分出的虚拟区块,可格式化后挂载使用,相当于传统分区

LVM 创建流程

1. 环境准备

安装LVM2管理工具:

yum install lvm2

2. 磁盘准备阶段

对物理磁盘进行分区,并将分区类型标记为8e(Linux LVM标识符),便于识别管理。

3. PV阶段(物理卷管理)

  • pvcreate:将物理分区初始化为PV
    pvcreate /dev/sdb1
    
  • pvscan:扫描系统中的PV
  • pvdisplay:显示PV详细信息
  • pvremove:移除PV属性

4. VG阶段(卷组管理)

  • vgcreate:创建卷组

    vgcreate [-s N[mgt]] VG_NAME PV_NAME
    

    示例:vgcreate -s 16M myvg /dev/sdb1(设置PE大小为16MB)

  • vgscan:扫描系统中的VG

  • vgdisplay:显示VG详细信息

  • vgextend:扩展VG容量(添加PV)

  • vgreduce:缩减VG容量(移除PV)

  • vgchange:修改VG状态(激活/停用)

  • vgremove:删除VG

5. LV阶段(逻辑卷管理)

  • lvcreate:创建逻辑卷

    lvcreate [-L SIZE] [-l PE_NUM] [-n LV_NAME] VG_NAME
    

    示例:lvcreate -L 10G -n mylv myvg(创建10G大小的逻辑卷)

  • lvscan:扫描系统中的LV

  • lvdisplay:显示LV详细信息

  • lvextend:扩展LV容量

  • lvreduce:缩减LV容量

  • lvresize:调整LV容量

  • lvremove:删除LV

6. 文件系统阶段

  1. 格式化逻辑卷:

    mkfs.xfs /dev/myvg/mylv
    
  2. 挂载使用:

    mkdir /srv/lvm
    mount /dev/myvg/mylv /srv/lvm
    

容量调整操作

扩展容量流程(VG空间充足时)

  1. 扩展LV:lvextend -L +5G /dev/myvg/mylv
  2. 扩展文件系统:xfs_growfs /srv/lvm(XFS系统)
    • 对于ext4系统:resize2fs /dev/myvg/mylv

扩展容量流程(VG空间不足时)

  1. 扩展VG:vgextend myvg /dev/sdc1
  2. 继续上述扩展LV和文件系统的操作

精简配置(Thin Provisioning)

基本概念

  • 传统LVM:厚置备,立即分配全部指定空间
  • 精简卷: thin provisioning,按需动态分配物理空间

配置步骤

  1. 创建精简池(thin pool):

    lvcreate -L 100G --thinpool mythinpool myvg
    
  2. 创建精简卷(thin volume):

    lvcreate -V 50G --thin -n thinvol1 myvg/mythinpool
    
    • 此处50G为虚拟大小,实际占用空间随数据写入而增长

LVM 快照功能

工作原理

LVM在VG中预留专用区域存储快照。初始时快照区为空,当原始文件被修改时,原始数据块会被复制到快照区,实现”写时复制”机制。

操作命令

  1. 创建快照:

    lvcreate -s -l 26 -n snapname /dev/myvg/mylv
    
    • -s:指定创建快照
    • -l:指定使用的PE数量(决定快照区大小)
  2. 使用xfsdump备份快照:

    xfsdump -l 0 -L lvm1 -M lvm1 -f /home/lvm.dump /srv/snapshot
    

命令速查表

任务PV 阶段VG 阶段LV 阶段文件系统 (XFS)文件系统 (EXT4)
扫描pvscanvgscanlvscanlsblk, blkid
创建pvcreatevgcreatelvcreatemkfs.xfsmkfs.ext4
查看详细信息pvdisplayvgdisplaylvdisplaydf, mount
扩展vgextendlvextend/lvresizexfs_growfsresize2fs
缩减vgreducelvreduce/lvresize不支持resize2fs
删除pvremovevgremovelvremoveumount,格式化
调整大小lvresizexfs_growfsresize2fs
属性修改pvchangevgchangelvchange/etc/fstab,重挂载