创建lvm的流程为:先将硬盘创建为物理卷(pv),再将pv加入卷组(vg),从vg中创建逻辑卷(lv),最后格式化并挂载使用;2. 扩展lv时需先用lvextend扩展容量,再用xfs_growfs或resize2fs扩展文件系统;3. 可通过pvcreate和vgextend向vg添加新物理卷以扩容;4. 缩小lv仅ext4支持,需先卸载、缩小文件系统再缩小lv;5. 删除顺序为lv→vg→pv,需依次执行lvremove、vgremove、pvremove;6. 常用命令包括pvs、vgs、lvs、pvdisplay、vgdisplay、lvdisplay和lsblk等;7. 生产环境中推荐使用lvm以便灵活管理存储空间,理解卷组作为存储池的概念是关键,操作前应备份数据并确认设备无重要信息,整个流程适用于centos、rhel、ubuntu等主流linux发行版。
创建 Linux 逻辑卷(LVM)并进行完整管理的操作流程,主要包括物理卷(PV)、卷组(VG)和逻辑卷(LV)的创建、扩展、缩小、删除等操作。LVM 提供了灵活的磁盘管理方式,相比传统分区更便于动态调整存储空间。
以下是完整的 LVM 管理操作流程,适用于 CentOS、RHEL、Ubuntu 等主流 Linux 发行版。
一、LVM 基本组成与流程概述
LVM 包含三个核心层级:
- 物理卷(Physical Volume, PV):底层物理存储设备(如硬盘或分区)
- 卷组(Volume Group, VG):由一个或多个 PV 组成的存储池
- 逻辑卷(Logical Volume, LV):从 VG 中划分出的可格式化使用的逻辑分区
操作顺序为:
硬盘 → 创建 PV → 加入 VG → 创建 LV → 格式化并挂载使用
二、创建 LVM 的完整步骤
1. 准备物理存储设备
假设你有两块新硬盘
/dev/sdb
/dev/sdc
注意:操作前请确认设备无重要数据。
# 查看当前磁盘情况 lsblk fdisk -l
2. 创建物理卷(PV)
将磁盘或分区初始化为物理卷:
pvcreate /dev/sdb /dev/sdc
查看 PV 信息:
pvdisplay # 或简要查看 pvs
3. 创建卷组(VG)
将一个或多个 PV 组合成一个卷组,例如命名为
vg_data
vgcreate vg_data /dev/sdb /dev/sdc
查看 VG 信息:
vgdisplay # 或 vgs
卷组名称可自定义,建议有含义,如
、vg_mysql等。vg_home
4. 创建逻辑卷(LV)
从卷组
vg_data
lv_web
lvcreate -L 10G -n lv_web vg_data
参数说明:
-
-L
-
-n
-
vg_data
查看 LV:
lvdisplay # 或 lvs
设备路径通常为:
/dev/vg_data/lv_web
5. 格式化并挂载逻辑卷
对 LV 进行文件系统格式化(如 ext4 或 xfs):
mkfs.xfs /dev/vg_data/lv_web # 或使用 ext4 # mkfs.ext4 /dev/vg_data/lv_web
创建挂载点并挂载:
mkdir /data/web mount /dev/vg_data/lv_web /data/web
写入
/etc/fstab
echo "/dev/vg_data/lv_web /data/web xfs defaults 0 0" >> /etc/fstab
建议使用 UUID 挂载更稳妥,可通过
查看。blkid /dev/vg_data/lv_web
三、LVM 动态管理操作
LVM 的优势在于可动态调整大小。
1. 扩展逻辑卷(扩容)
假设需要将
lv_web
# 先扩展 LV 大小 lvextend -L 15G /dev/vg_data/lv_web # 再扩展文件系统(xfs 需用 xfs_growfs,ext4 用 resize2fs) xfs_growfs /data/web # 如果是 ext4,则使用: # resize2fs /dev/vg_data/lv_web
注意:xfs 只支持扩容,不支持缩容;ext4 支持缩容但需先卸载。
也可以直接扩展剩余所有空间:
lvextend -l +100%FREE /dev/vg_data/lv_web xfs_growfs /data/web
2. 向卷组添加新物理卷(扩展 VG)
如果 VG 空间不足,可添加新硬盘:
pvcreate /dev/sdd vgextend vg_data /dev/sdd
之后即可用新增空间扩展 LV。
3. 缩小逻辑卷(仅 ext4 支持,xfs 不支持)
⚠️ 风险较高,务必先备份数据,且文件系统需支持。
以 ext4 为例:
# 1. 卸载文件系统 umount /data/web # 2. 检查并缩小文件系统(先缩文件系统,再缩 LV) e2fsck -f /dev/vg_data/lv_web resize2fs /dev/vg_data/lv_web 8G # 3. 缩小逻辑卷 lvreduce -L 8G /dev/vg_data/lv_web # 4. 重新挂载 mount /dev/vg_data/lv_web /data/web
4. 删除逻辑卷、卷组、物理卷
删除顺序:LV → VG → PV
# 1. 卸载并删除 LV umount /data/web lvremove /dev/vg_data/lv_web # 2. 删除卷组 vgremove vg_data # 3. 删除物理卷 pvremove /dev/sdb /dev/sdc
四、常用查看命令汇总
命令 | 作用 |
---|---|
@@######@@ | 简要列出所有物理卷 |
@@######@@ | 显示 PV 详细信息 |
@@######@@ | 简要列出卷组 |
@@######@@ | 显示 VG 详细信息 |
@@######@@ | 简要列出逻辑卷 |
@@######@@ | 显示 LV 详细信息 |
@@######@@ | 查看挂载点使用情况 |
@@######@@ | 查看块设备树状结构 |
五、实际使用建议
- 生产环境建议使用 LVM:便于后期扩容,尤其是数据库、日志等增长型数据。
-
避免在根分区不用 LVM 的系统上随意操作:如需对
pvs
-
定期检查空间使用:通过
pvdisplay
vgs
- 快照功能可选:LVM 支持快照(snapshot),可用于备份前的瞬时一致性保护。
基本上就这些。LVM 看似复杂,但掌握
vgdisplay
lvs
lvdisplay
df -h
lsblk
/
vgs
lvs
pvcreate
vgcreate
lvcreate
以上就是如何创建Linux逻辑卷 LVM管理完整操作流程的详细内容,更多请关注php中文网其它相关文章!