- 工信部备案号 滇ICP备05000110号-1
- 滇公网安备53011102001527号
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
- CN域名投诉举报处理平台:电话:010-58813000、邮箱:service@cnnic.cn
LVM 逻辑卷动态扩容与缩容
欢迎来到8455线路检测中心技术小课堂,每天分享一个技术小知识。传统硬盘分区创建后无法灵活调整大小,给服务器后期存储扩容带来诸多不便。而 LVM(逻辑卷管理)技术通过 “物理卷 - 卷组 - 逻辑卷” 的分层架构,实现了存储空间的动态扩容、缩容与合并,无需停机即可调整分区大小,完美解决存储扩容痛点。本文聚焦 LVM 核心操作,从基础创建到扩容缩容,步骤详细可直接落地,适用于 CentOS、Ubuntu 等主流 Linux 系统。
一、核心组件概念
PV(物理卷):底层物理存储载体,可是整块硬盘(如 /dev/sdb)、硬盘分区(如 /dev/sdb1)或 RAID 阵列,是 LVM 的存储基础。
VG(卷组):将多个 PV 整合为一个 “存储池”,统一管理物理空间,逻辑卷从卷组中划分资源,屏蔽底层物理设备差异。
LV(逻辑卷):从 VG 中分配的可用 “虚拟分区”,可格式化后挂载使用,后续可根据需求动态调整大小。
PE(物理扩展):LVM 最小存储单元,默认大小为 4MB,卷组的所有物理卷都以 PE 为单位划分,逻辑卷的扩容 / 缩容本质是增减 PE 数量。
二、基础环境准备(新增一块空白硬盘 /dev/sdb)
1. 确认新硬盘状态
fdisk -l # 查看系统识别的硬盘,确认 /dev/sdb 存在且无分区
lsblk # 辅助查看硬盘及分区结构
2. 创建物理卷(PV)
# 初始化 /dev/sdb 为物理卷(整块硬盘直接使用,无需分区)
pvcreate /dev/sdb
# 查看 PV 状态,确认创建成功(显示 PV 名称、容量、状态等)
pvdisplay
pvs # 简洁查看 PV 列表
3. 创建卷组(VG)
# 创建名为 vg_data 的卷组,将 /dev/sdb 加入卷组
vgcreate vg_data /dev/sdb
# 查看卷组信息(含总容量、空闲容量、PE 数量等)
vgdisplay vg_data
vgs # 简洁查看 VG 列表
4. 创建逻辑卷(LV)并挂载使用
# 从 vg_data 卷组中划分 20G 逻辑卷,命名为 lv_data
lvcreate -L 20G -n lv_data vg_data
# 格式化逻辑卷为 ext4 文件系统(常用文件系统,支持扩容缩容)
mkfs.ext4 /dev/vg_data/lv_data
# 创建挂载点并挂载逻辑卷
mkdir -p /data
mount /dev/vg_data/lv_data /data
# 设置开机自动挂载(写入 /etc/fstab,避免重启后失效)
echo "/dev/vg_data/lv_data /data ext4 defaults 0 0" >> /etc/fstab
# 验证挂载结果(查看 /data 目录容量及挂载状态)
df -h /data
mount | grep /data
三、逻辑卷在线扩容(无需卸载)
当 /data 目录空间不足时,可通过新增硬盘或利用卷组空闲空间扩容,全程不影响业务运行。
1. 场景 1:利用卷组空闲空间扩容(卷组有未分配空间)
# 1. 查看卷组空闲容量(确认有足够空间)
vgdisplay vg_data | grep "Free PE / Size"
# 2. 扩容逻辑卷(例:扩容到 30G,或用 +10G 表示增加 10G)
lvextend -L 30G /dev/vg_data/lv_data # 直接指定目标容量
# lvextend -L +10G /dev/vg_data/lv_data # 增量扩容
# 3. 同步扩容文件系统(关键步骤,让系统识别新容量)
resize2fs /dev/vg_data/lv_data # ext4 文件系统使用该命令
# xfs_growfs /data # 若为 xfs 文件系统,需用此命令(xfs 不支持缩容)
# 4. 验证扩容结果
df -h /data
2. 场景 2:新增硬盘扩容(卷组无空闲空间,新增 /dev/sdc 硬盘)
# 1. 初始化新硬盘为 PV
pvcreate /dev/sdc
# 2. 将新 PV 加入现有卷组 vg_data
vgextend vg_data /dev/sdc
# 3. 后续步骤同场景 1(扩容 LV + 同步文件系统)
lvextend -L 50G /dev/vg_data/lv_data
resize2fs /dev/vg_data/lv_data
df -h /data
四、逻辑卷安全缩容(需卸载,谨慎操作)
缩容风险高于扩容,必须提前备份数据,且仅支持 ext4 等文件系统(xfs 不支持缩容),操作顺序不可颠倒。
1. 备份数据(关键前置步骤)
# 示例:用 tar 备份 /data 目录数据到 /backup
mkdir -p /backup
tar -zcvf /backup/data_backup.tar.gz /data
2. 卸载逻辑卷
umount /data # 若提示“设备正忙”,先关闭占用进程(fuser -m /data 查看进程,kill 进程号)
3. 检查文件系统完整性(避免缩容损坏数据)
e2fsck -f /dev/vg_data/lv_data # 强制检查,必须无错误
4. 缩容文件系统(先缩文件系统,再缩 LV)
resize2fs /dev/vg_data/lv_data 10G # 将文件系统缩容到 10G
5. 缩容逻辑卷(LV 容量需不小于文件系统实际占用容量)
lvreduce -L 10G /dev/vg_data/lv_data
6. 重新挂载并验证
mount /data
df -h /data # 确认容量已缩为 10G
ls /data # 验证数据未丢失
五、关键操作注意事项与故障规避
扩容顺序不可颠倒:必须先扩展逻辑卷(lvextend),再同步扩展文件系统(resize2fs),否则会导致文件系统损坏。
2. 缩容核心禁忌:xfs 文件系统仅支持扩容,不支持缩容;ext4 缩容前必须卸载并检查文件系统,且 LV 目标容量不能小于数据实际占用容量。
3. 数据安全优先:缩容前务必备份数据,避免操作失误导致数据丢失;在线扩容虽无需卸载,但建议在业务低峰期操作。
4. 设备占用处理:卸载 LV 时若提示 “设备正忙”,用 fuser -m /data 查看占用进程,通过 kill -9 进程号 关闭后再卸载,禁止强制卸载。
5. 卷组空间检查:扩容前通过 vgdisplay 确认卷组有足够空闲空间,新增硬盘需先初始化 PV 再加入卷组,避免直接扩容 LV 失败。
8455线路检测中心官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,8455线路检测中心整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。更多技术知识,8455线路检测中心期待与你一起探索。
售前咨询
售后咨询
备案咨询
二维码

TOP