Linux服务器LVM逻辑卷管理与磁盘动态扩容实战配置

LVM(Logical Volume Manager)是Linux服务器运维中管理磁盘存储的核心工具。相比传统分区,LVM支持卷的在线动态扩容、跨物理磁盘整合、快照备份等功能,在云服务器和物理机架设场景中几乎成为标准配置。生产环境中数据库存储、日志分区、Docker数据目录等经常需要动态扩容,LVM可以在不中断服务的情况下完成扩容操作。

LVM三层架构:物理卷PV、卷组VG、逻辑卷LV

LVM将物理磁盘抽象为三层结构。物理卷(PV)是底层物理分区或整块磁盘的封装,卷组(VG)将多个PV组成一个存储池,逻辑卷(LV)从VG中分配空间创建可挂载的卷。这种架构使得空间分配不受物理磁盘边界限制。

# 查看当前磁盘和分区情况
lsblk
fdisk -l

# 场景:新增一块100GB磁盘/dev/sdb,创建LVM并挂载到/data
# 第一步:创建物理卷
pvcreate /dev/sdb
pvdisplay

# 第二步:创建卷组
vgcreate vg_data /dev/sdb
vgdisplay

# 第三步:创建逻辑卷,分配全部空间
lvcreate -l 100%FREE -n lv_data vg_data
lvdisplay

逻辑卷格式化与挂载配置

创建LV后需要格式化文件系统并挂载:

# 格式化为ext4
mkfs.ext4 /dev/vg_data/lv_data

# 格式化为xfs(CentOS/RHEL默认,支持在线扩容)
mkfs.xfs /dev/vg_data/lv_data

# 创建挂载点并挂载
mkdir -p /data
mount /dev/vg_data/lv_data /data

# 写入fstab实现开机自动挂载
# 获取LV的UUID
blkid /dev/vg_data/lv_data

# 编辑/etc/fstab
# UUID=xxxx-xxxx-xxxx /data xfs defaults 0 0

逻辑卷在线扩容:不停服务增加存储空间

场景一:VG内剩余空间充足,直接扩展LV

# 查看VG剩余空间
vgs

# 假设vg_data还有50GB剩余空间,给lv_data增加30GB
lvextend -L +30G /dev/vg_data/lv_data

# ext4文件系统在线扩容
resize2fs /dev/vg_data/lv_data

# xfs文件系统在线扩容
xfs_growfs /data

场景二:VG空间不足,新增磁盘加入VG后扩展LV

# 新增磁盘/dev/sdc,先创建PV
pvcreate /dev/sdc

# 将新PV加入现有VG
vgextend vg_data /dev/sdc

# 确认VG空间已增加
vgs

# 扩展LV使用全部新增空间
lvextend -l 100%FREE /dev/vg_data/lv_data

# 扩展文件系统
xfs_growfs /data

# 验证扩容结果
df -h /data
lvs

LVM快照:零停机数据备份方案

LVM快照创建时只记录元数据,不立即拷贝数据。当原始卷数据变更时,变更前的块通过写时复制(Copy-On-Write)保存到快照卷。这种方式下创建快照几乎瞬时完成,适合数据库热备份:

# 创建快照卷,大小为原LV的10%-20%(取决于备份期间预计变更量)
lvcreate -L 10G -s -n lv_data_snapshot /dev/vg_data/lv_data

# 挂载快照进行备份
mkdir -p /mnt/snapshot
mount /dev/vg_data/lv_data_snapshot /mnt/snapshot

# 使用rsync或tar备份快照数据
rsync -avz /mnt/snapshot/ /backup/data_$(date +%Y%m%d)/

# 备份完成后移除快照
umount /mnt/snapshot
lvremove -f /dev/vg_data/lv_data_snapshot

LVM条带化与镜像:性能与冗余配置

多个物理磁盘组成的VG可以配置条带化(striping)提升I/O性能,或配置镜像(mirroring)提升数据冗余:

# 条带化创建LV(跨2个PV,条带大小64KB)
lvcreate -i 2 -I 64 -L 100G -n lv_striped vg_data

# 镜像创建LV(2副本,类似RAID1)
lvcreate -m 1 -L 50G -n lv_mirrored vg_data

# 查看LV详细布局
lvs -a -o name,devices,stripes,segtype

LVM运维常见故障排查

VG丢失或PV失效恢复

磁盘故障或UUID变更可能导致PV丢失。恢复流程:

# 查看VG状态
vgscan
vgdisplay

# 如果VG显示为partial,尝试恢复
vgreduce --removemissing vg_data

# 如果PV的UUID变更(如磁盘克隆后),修复
pvdisplay
# 找到冲突的PV,重新设置UUID
pvchange -u /dev/sdb

逻辑卷无法激活排查

# 尝试激活LV
lvchange -ay /dev/vg_data/lv_data

# 查看详细错误
lvchange -ay -v /dev/vg_data/lv_data

# 如果快照空间耗尽导致LV不可用
# 快照使用率100%时自动失效,需删除后重建
lvs -a
lvremove -f /dev/vg_data/lv_data_snapshot

LVM与文件系统扩容注意事项

ext4和xfs都支持在线扩容,但只有ext4支持在线缩容(需卸载后操作)。xfs不支持缩容,如需减小LV空间需先备份、删除LV、重建。

扩容操作顺序固定为:先扩展LV(lvextend),再扩展文件系统(resize2fs/xfs_growfs)。反向操作会导致文件系统数据损坏。

生产环境中建议为VG预留10%-15%的未分配空间,用于快照和紧急扩容。监控VG剩余空间的脚本可以集成到Prometheus或Zabbix告警体系中,当剩余空间低于阈值时自动通知运维人员处理。

原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/linux-fu-wu-qi-lvm-luo-ji-juan-guan-li-yu-ci-pan-dong-tai/

(0)
小编小编
上一篇 5小时前
下一篇 5小时前

相关推荐