Linux分区:如何利用LVM进行动态分区管理
导读:LVM动态分区管理实操指南 一、核心概念与适用场景 通过三层结构实现弹性存储:PV(物理卷)→VG(卷组)→LV(逻辑卷)。LV 可跨越多块磁盘统一管理与分配,支持在线扩容;缩容需按文件系统谨慎操作。 关键术语:PE(Physical E...
LVM动态分区管理实操指南
一、核心概念与适用场景
- 通过三层结构实现弹性存储:PV(物理卷)→VG(卷组)→LV(逻辑卷)。LV 可跨越多块磁盘统一管理与分配,支持在线扩容;缩容需按文件系统谨慎操作。
- 关键术语:PE(Physical Extent)为最小分配单元,默认4MB;同一 VG 内所有 PV 的 PE 大小一致;**LE(Logical Extent)**与 PE 一一对应。
- 文件系统差异:ext4支持在线扩容与离线缩容;XFS仅支持在线扩容,不支持缩容。
- 适用场景:服务器数据盘、需要后期弹性扩容的业务、跨盘合并使用等。
- 容量边界:默认 PE=4MB、最大 65536 个 PE,单个 VG 的理论上限约为256GB;创建 VG 时可用 -s 调整 PE 大小(如 -s 16M)。
二、从零搭建 LVM 的标准流程
- 准备磁盘与分区
- 查看设备:lsblk、fdisk -l;云盘常见命名:/dev/vd[b-z];大于 2TB 建议使用 GPT 分区表。
- 安装 LVM 工具
- CentOS/RHEL:sudo yum install -y lvm2;Debian/Ubuntu:sudo apt-get install -y lvm2。
- 初始化并创建
- 初始化 PV:pvcreate /dev/sdX /dev/sdY(或整盘 /dev/sdX)。
- 创建 VG:vgcreate vg0 /dev/sdX /dev/sdY(可选:-s 16M 设定 PE 大小)。
- 创建 LV:lvcreate -L 100G -n lv_data vg0(或使用 -l 100%FREE 使用全部空闲空间)。
- 创建文件系统与挂载
- ext4:mkfs.ext4 /dev/vg0/lv_data;XFS:mkfs.xfs /dev/vg0/lv_data。
- 挂载:mkdir -p /data;mount /dev/vg0/lv_data /data;写入 /etc/fstab 实现开机自动挂载(建议使用 UUID)。
三、在线扩容与缩容的标准操作
- LV 扩容(通用)
- 扩展 LV:lvextend -L +50G /dev/vg0/lv_data 或 lvextend -l +100%FREE /dev/vg0/lv_data。
- 扩展文件系统:
- ext4:resize2fs /dev/vg0/lv_data(可在线)。
- XFS:xfs_growfs /mount/point(必须已挂载到具体目录)。
- LV 缩容(仅 ext4,需卸载)
- 卸载:umount /data。
- 检查:e2fsck -f /dev/vg0/lv_data。
- 先缩文件系统:resize2fs /dev/vg0/lv_data 50G。
- 再缩 LV:lvreduce -L 50G /dev/vg0/lv_data。
- 重新挂载:mount /dev/vg0/lv_data /data。
- 重要提示:XFS 不支持缩容;缩容务必先备份,严格按“文件系统→逻辑卷”的顺序执行。
四、卷组扩容与云盘场景
- 新增磁盘扩容 VG
- 初始化新盘:pvcreate /dev/vdd。
- 加入卷组:vgextend vg0 /dev/vdd;用 vgs/vgdisplay 查看 VFree 是否增加。
- 云盘在线扩容后同步 PV
- 先在云控制台将云盘容量扩容(如从 10GB→20GB)。
- 识别新容量:fdisk -l;确认系统已看到更大磁盘。
- 扩展 PV:pvresize -v /dev/vdb(使 PV 容量与磁盘一致)。
- 再按上文步骤扩容 LV 与文件系统。
- 典型流程总结:控制台扩容云盘 → 主机识别 → pvresize → lvextend → resize2fs/xfs_growfs。
五、常用命令速查与最佳实践
- 常用命令
| 目标 | 命令示例 |
|---|---|
| 查看磁盘/分区 | lsblk、fdisk -l |
| 初始化 PV | pvcreate /dev/sdX |
| 查看 PV | pvs、pvdisplay |
| 创建 VG | vgcreate vg0 /dev/sdX /dev/sdY(-s 16M) |
| 查看 VG | vgs、vgdisplay |
| 扩展 VG | vgextend vg0 /dev/sdZ |
| 创建 LV | lvcreate -L 100G -n lv_data vg0 或 -l 100%FREE |
| 查看 LV | lvs、lvdisplay |
| 扩展 LV | lvextend -L +50G /dev/vg0/lv_data |
| 扩展文件系统 | resize2fs(ext4,可在线)/ xfs_growfs(XFS,挂载点) |
| 缩容 LV(ext4) | umount → e2fsck -f → resize2fs → lvreduce → mount |
| 删除对象 | lvremove /dev/vg0/lv_data;vgremove vg0;pvremove /dev/sdX |
| 云盘容量同步 | pvresize -v /dev/vdb |
- 最佳实践与风险提示
- 操作前做好完整备份;缩容务必先备份、先检查。
- 生产环境建议为关键数据配置快照或上层冗余(LVM 本身不提供数据冗余)。
- 使用 UUID 在 /etc/fstab 挂载,避免设备名变化导致启动异常。
- 大于 2TB 磁盘使用 GPT;云盘场景下遵循“控制台扩容→主机识别→pvresize→LV/FS 扩容”的顺序。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux分区:如何利用LVM进行动态分区管理
本文地址: https://pptw.com/jishu/758669.html
