本文围绕 Linux磁盘管理与LVM实用技巧:从分区到逻辑卷的完整实战指南,系统性讲解从分区布局到逻辑卷(LV)的整个流程。
1. 分区规划与设备识别
1.1 识别磁盘与分区布局
在进行磁盘管理前,首先需要明确可用的磁盘与分区情况。识别磁盘设备、分区表类型及挂载点是后续分区和LVM操作的基础。
常用命令包括 lsblk、blkid、fdisk,用于快速查看设备结构和分区信息。确保目标磁盘没有未保存的work数据。

lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT
blkid
fdisk -l /dev/sdb1.2 新建分区表与分区布局
在 LVM 场景中,通常会为新的逻辑卷创建独立分区,确保后续 PV 初始化只影响目标区域。分区表类型选择 GPT 更符合现代大容量磁盘。
为新磁盘准备分区后,可以通过分区工具对分区进行分配,例如把一个分区用于 PV,剩余空间留给后续扩展。
parted /dev/sdb mklabel gpt
parted /dev/sdb mkpart primary 1MiB 512MiB
parted /dev/sdb mkpart primary 512MiB 100%
parted print2. LVM前的准备:物理卷与卷组的创建
2.1 物理卷(PV)的初始化
PV 是 LVM 的底层抽象,所有数据都经过 PV 的物理卷进行管理。通过 pvcreate 将分区初始化为可供 LVM 使用的物理卷。
初始化后,可以用 pvs、pvdisplay 查看 PV 信息以及 VG 的初始状态。
pvcreate /dev/sdb1
pvs
pvdisplay /dev/sdb12.2 卷组(VG)的创建与扩展
接下来创建卷组 VG,它是 LVM 的集合单位,可以包含一个或多个物理卷。对存量 PV 进行组合后,VG 将提供逻辑卷的创建空间。
常用操作包括 vgcreate、vgextend、以及查看 VG 状态的命令。
vgcreate vg_data /dev/sdb1
vgs
vgdisplay vg_data
3. 构建逻辑卷并格式化
3.1 创建逻辑卷(LV)
逻辑卷(LV)是实际可分配的存储单位。通过 lvcreate 指定大小或占用 VG 中的容量,灵活管理存储需求。
要输出一份清晰的容量分配状态,可以同时查看 lvs、vgs、以及 pvs 的使用情况。
lvcreate -n data_lv -L 50G vg_data
lvs
lvdisplay /dev/vg_data/data_lv3.2 给 LV 格式化与挂载
创建 LV 之后,需要对其进行文件系统格式化。常见格式包括 ext4、xfs,选择应结合挂载需求与性能。
格式化完成后,记录挂载点并更新 /etc/fstab,以实现开机自动挂载。
mkfs.ext4 /dev/vg_data/data_lv
mkdir -p /mnt/data_lv
mount /dev/vg_data/data_lv /mnt/data_lv
df -h /mnt/data_lv4. 动态管理与快照
4.1 扩展逻辑卷与文件系统
为应对业务增长,可以动态扩展 LV 的容量,然后同步扩展文件系统容量。lvextend 与 resize2fs(ext4)或 xfs_growfs(XFS)配合使用。
扩展时,注意先扩展 LV 的容量,再扩展文件系统容量,以避免数据不一致。
lvextend -L +20G /dev/vg_data/data_lv
resize2fs /dev/vg_data/data_lv
# 如果使用 XFS
# xfs_growfs /mnt/data_lv4.2 快照与回滚
快照提供一个在某个时间点的只读/只写镜像,使得回滚变得可控。通过 lvcreate -s 创建快照。
快照创建后,如需回滚可以使用 lvconvert --merge 将快照合并回原始 LV。
lvcreate -s -n data_lv_snap -L 5G /dev/vg_data/data_lv
lvconvert --merge /dev/vg_data/data_lv_snap5. 监控、备份与恢复策略
5.1 监控 LV 与 VG 的使用情况
持续监控磁盘与卷组的容量使用,是保障系统稳定性的关键。使用 pvs、vgs、lvs,以及 df 等工具。
结合图形化监控或告警机制,可以在 容量接近阈值时自动通知运维,以便提前扩容。
pvs
vgs
lvs
df -h /mnt/data_lv5.2 备份、恢复与容错策略
除了快照,日常备份应覆盖 LV 所在的文件系统数据。结合 rsync、tar 或者快照的定期合并,实现容错备份。
在灾难性故障时,可以使用 vgscan 与 vgchange -a y 以及引导恢复策略进行快速修复。
rsync -a /mnt/data_lv /backup/data_lv.bak
tar czf /backup/data_lv.tar.gz -C /mnt/data_lv .
# 灾难后恢复
lvconvert --merge /dev/vg_data/data_lv_snap
mount /dev/vg_data/data_lv /mnt/data_lv 

