LVM操作说明

LVM(Logical Volume Manager,逻辑卷管理)

🧠 一、LVM 基本概念

LVM 是 Linux 下的一种逻辑卷管理机制,它允许灵活地调整磁盘分区大小,而不受物理分区的限制。

1️⃣ 基本组成结构

组件全称说明
PVPhysical Volume物理卷,实际的硬盘或分区(如 /dev/sdb1
VGVolume Group卷组,由多个 PV 组成的逻辑存储池
LVLogical Volume逻辑卷,相当于传统意义上的“分区”
PEPhysical ExtentPV 上的最小分配单元(默认 4MB)
LELogical ExtentLV 上的最小分配单元,与 PE 一一对应

⚙️ 二、LVM 基本操作流程

LVM 的创建与管理大致分为 5 步:

1
[物理磁盘] → 创建分区 → PV → VG → LV → 格式化并挂载

🪜 三、操作步骤详解

(一)创建物理卷 PV

1. 查看磁盘

1
2
lsblk
fdisk -l

2. 创建分区(如果是整块磁盘可省略)

使用 fdisk /dev/sdbparted /dev/sdb 创建类型为 8e(LVM)的分区。

3.创建 PV

1
pvcreate /dev/sdb1 /dev/sdc1

4.查看 PV 状态

1
2
pvdisplay
pvs

(二)创建卷组 VG

1. 创建 VG

1
vgcreate vgdata /dev/sdb1 /dev/sdc1

2. 查看 VG 信息

1
2
vgdisplay
vgs

(三)创建逻辑卷 LV

1. 创建 LV(指定大小)

1
lvcreate -L 50G -n lvbackup vgdata

或按百分比创建:

1
lvcreate -l 100%FREE -n lvbackup vgdata

2. 查看 LV 信息

1
2
lvdisplay
lvs

(四)格式化与挂载

1. 格式化文件系统

1
mkfs.ext4 /dev/vgdata/lvbackup

2. 创建挂载点并挂载

1
2
mkdir /backup
mount /dev/vgdata/lvbackup /backup

3. 开机自动挂载

编辑 /etc/fstab

1
/dev/vgdata/lvbackup  /backup  ext4  defaults  0  0

🔧 四、LVM 扩容与缩容

(一)扩容逻辑卷

1. 扩大 LV 容量(+10G)

1
lvextend -L +10G /dev/vgdata/lvbackup

2. 扩展文件系统(ext4 示例)

1
resize2fs /dev/vgdata/lvbackup

⚠️ XFS 文件系统要用:

1
xfs_growfs /backup

(二)扩展卷组 VG

如果 VG 空间不够,可以加入新的 PV:

1
pvcreate /dev/sdd1 vgextend vgdata /dev/sdd1

(三)缩减逻辑卷(⚠️高风险操作)

必须先缩小文件系统,再缩小 LV!

  1. 检查并卸载:
1
umount /backup e2fsck -f /dev/vgdata/lvbackup
  1. 缩小文件系统:
1
resize2fs /dev/vgdata/lvbackup 40G
  1. 缩小 LV:
1
lvreduce -L 40G /dev/vgdata/lvbackup
  1. 重新挂载:
1
mount /backup

🗑️ 五、删除操作

  1. 卸载挂载点
1
umount /backup
  1. 删除 LV
1
lvremove /dev/vgdata/lvbackup
  1. 删除 VG
1
vgremove vgdata
  1. 删除 PV:
1
pvremove /dev/sdb1 /dev/sdc1

📊 六、常用查看命令总结

命令功能
pvs, pvdisplay查看物理卷信息
vgs, vgdisplay查看卷组信息
lvs, lvdisplay查看逻辑卷信息
lvscan, vgscan, pvscan扫描系统中的 LVM 组件
lvrename, vgrename重命名 LV 或 VG
lvextend, lvreduce扩/缩逻辑卷

🧩 七、LVM 快照(Snapshot)

创建逻辑卷的“时间点副本”,便于备份或测试。

1
lvcreate -L 5G -s -n lvbackup_snap /dev/vgdata/lvbackup

删除快照:

1
lvremove /dev/vgdata/lvbackup_snap

🧠 八、实用示例汇总

场景命令
查看磁盘与分区lsblk, fdisk -l
创建 PVpvcreate /dev/sdb1
创建 VGvgcreate vgdata /dev/sdb1 /dev/sdc1
创建 LVlvcreate -L 100G -n lvdata vgdata
格式化mkfs.ext4 /dev/vgdata/lvdata
挂载mount /dev/vgdata/lvdata /data
扩容 LVlvextend -L +20G /dev/vgdata/lvdata && resize2fs /dev/vgdata/lvdata
comments powered by Disqus