lvm通过pv→vg→lv三层结构实现磁盘资源解耦与灵活管理:pv将物理设备标准化,vg聚合为存储池,lv按需分配并支持在线扩容、迁移和快照。

Linux 多磁盘管理,核心在于解耦物理设备与逻辑使用——LVM(Logical Volume Manager)正是为此而生。它不直接操作/dev/sda、/dev/sdb,而是把它们“标准化”为可统一调度的资源,再按需分配。关键不是堆磁盘,而是建好 PV → VG → LV 这三层结构,后续扩容、迁移、快照才真正灵活。
物理卷(PV):把磁盘或分区变成“标准积木”
无论是整块新硬盘(如 /dev/sdb),还是已有磁盘上的分区(如 /dev/sda2),都必须先用 pvcreate 初始化,写入 LVM 元数据,才能被识别为物理卷。这一步相当于给砖头打上编号和规格标签。
- 对整盘操作:pvcreate /dev/sdb
- 对分区操作:pvcreate /dev/sda2(注意:该分区类型应设为 8e,即 Linux LVM)
- 查看结果:pvdisplay 或 pvs
卷组(VG):合并多个 PV 成一个“存储池”
卷组是真正的资源池。你可以把 /dev/sdb、/dev/sdc1、甚至 RAID 设备全部加入同一个 VG,容量自动累加。系统不再关心数据存在哪块盘上,只看池里还剩多少空间。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 新建卷组:vgcreate vg_data /dev/sdb /dev/sdc1
- 扩容卷组(加新盘):vgextend vg_data /dev/sdd
- 查看空闲空间:vgs 或 vgdisplay vg_data
逻辑卷(LV):从池中按需切出“可用磁盘”
LV 是最终挂载使用的设备,比如 /dev/vg_data/lv_home。它的大小可以随时调整,且不依赖某一块具体磁盘——数据由 LVM 自动条带化或镜像分布到后端所有 PV 上。
- 创建 LV:lvcreate -L 20G -n lv_home vg_data
- 格式化并挂载:mkfs.ext4 /dev/vg_data/lv_home && mount /dev/vg_data/lv_home /home
- 动态扩容(不卸载):lvextend -l +100%FREE /dev/vg_data/lv_home && resize2fs /dev/vg_data/lv_home(ext4)或 xfs_growfs /home(xfs)
实战中最常用的三个扩展场景
多磁盘的价值,往往在扩容时才真正体现:
- 加新硬盘扩容:插上 /dev/sde → pvcreate → vgextend → lvextend + 文件系统调整,全程在线
- 虚拟机磁盘扩容:先在平台扩大虚拟磁盘 → 内核重读分区表(echo 1 > /sys/class/block/sda/device/rescan)→ fdisk 重建 LVM 分区(保持起始扇区不变)→ pvresize 激活新增空间
- 跨盘迁移数据:新加磁盘进 VG 后,用 pvmove /dev/sdb 把旧盘数据自动迁移到其他 PV,再用 vgreduce 安全移除旧盘










