























LVM(Logical Volume Manager,逻辑卷管理器)是 Linux 中一套非常强大、灵活的磁盘管理机制。它彻底改变了传统“一个分区 = 一个文件系统”的刚性模式,让你像搭积木一样自由组合、动态调整存储空间。
下面我用 通俗易懂 + 实战导向 的方式,带你从零搞懂 LVM 的核心概念和完整操作流程
/home 分了 50GB,结果用户数据暴涨到 60GB → 空间不足,只能重装或迁移数据/var 分了 100GB,结果只用了 20GB → 大量空间浪费/dev/sdb 和 /dev/sdc 合并成一个“大池子”💡 一句话理解 LVM:
它把物理硬盘“虚拟化”成一个可伸缩的存储池,你从中“切蛋糕”(逻辑卷),想切多大就多大,还能随时改!
LVM 采用 三层抽象结构,像搭积木一样层层构建:
物理磁盘/分区
↓
【物理卷 PV】 ← 最底层,原材料
↓
【卷组 VG】 ← 存储池(把多个 PV 合并)
↓
【逻辑卷 LV】 ← 虚拟分区(从 VG 切出来,直接挂载使用)
↓
文件系统(ext4/xfs)→ 挂载到 /data、/app 或扩容根目录等
/dev/sdb)/dev/sda3,类型设为 8e)/dev/md0)mount /dev/vg_data/lv_app /app)🔍 补充概念:
- PE(Physical Extent):PV 中的最小分配单位,默认 4MB
- LE(Logical Extent):LV 中的最小单位,与 PE 一一对应
# 1. 创建物理卷(PV) sudo pvcreate /dev/sdb1 # 2. 创建卷组(VG) sudo vgcreate vg_data /dev/sdb1 # 3. 创建逻辑卷(LV) sudo lvcreate -L 50G -n lv_app vg_data # 4. 格式化或重新扩容 sudo mkfs.xfs /dev/vg_data/lv_app 或 resize2fs /dev/mapper/vg_node003-lv_root # 5. 挂载(如果扩容就不用挂载了) sudo mkdir /app sudo mount /dev/vg_data/lv_app /app
| 命令 | 作用 |
|---|---|
lsblk |
查看所有块设备(磁盘+分区+挂载点) |
df -Th |
查看已挂载分区的使用情况 |
blkid |
查看分区 UUID 和文件系统类型 |
mount /dev/sdXN /mnt |
临时挂载分区 |
umount /mnt |
卸载分区 |
|
查看物理卷 |
vgs / vgdisplay |
查看卷组 |
lvs / lvdisplay |
查看逻辑卷 |
| vgextend vg_node003 /dev/sdb | 追加到已有卷组 |
| lvextend -l +100%FREE /dev/mapper/vg_node003-lv_root | 扩大跟目录或已有目录(df -Th可以查出名称) |
| resize2fs/xfs_growfs | 扩大后,重新调整文件系统大小 |
| sudo vgremove vg_old |
删除空的 VG |
| 操作 | 作用 |
|---|---|
pvmove |
在线迁移数据,不中断服务(核心!) |
vgreduce |
从 VG 中移除空 PV |
vgextend |
将 PV 加入新 VG |
vgremove |
删除空 VG |
新硬盘 →
pvcreate→vgextend→ (可选)lvextend+resize2fs/xfs_growfs
假设你ubuntu系统本身已有硬盘/dev/sda(20G),再安装系统时已经做了lvm,已经给系统盘分10G左右,lv有8G空闲,现在要如下操作,
新增硬盘/dev/sdb( 20GB),追加到原有的vg中,全部分给根目录。
1.现在磁盘状态:

2.加硬盘


# 1. 扩容 VG(如有新盘) sudo pvcreate /dev/sdb #创建pv #sudo vgcreate YOUR_VG #创建vg卷组 #sudo vgextend YOUR_VG /dev/sdb #给已有卷组追加 sudo vgextend ubuntu-vg /dev/sdb #给已有卷组追加 # 2. 扩容 LV #sudo lvextend -L +20G /dev/YOUR_VG/YOUR_LV #给分区扩容 #sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv #扩容全部空间 sudo lvextend -L +20G /dev/mapper/ubuntu--vg-ubuntu--lv #给根目录扩容 # 3. 扩展文件系统 df -T / | awk 'NR==2 {print $2}' | \ if grep -q "xfs"; then sudo xfs_growfs /; else sudo resize2fs /dev/YOUR_VG/YOUR_LV; fi
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
# 4. 验证 df -h /
最后的结果


此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。