pvresize是唯一能在线安全同步更新pv元数据的命令,仅刷新lvm对已扩容设备容量的认知;需先在存储侧扩容并用rescan/partprobe重读设备,再执行pvresize /dev/sdx,最后用pvs验证psize更新。

物理存储底层(如 SAN LUN 或云平台磁盘)扩容后,LVM 的 PV 元数据不会自动感知新容量。pvresize 是唯一能在线、安全地同步更新 PV 逻辑元数据的命令——它不碰数据,只刷新 LVM 对设备当前大小的认知。
确认底层扩容已完成且系统已识别
pvresize 不会扩大磁盘或分区,它只响应“已经变大”的设备。必须先确保:
- 在存储侧(如 VMware、阿里云控制台、SAN 管理界面)已完成 LUN/磁盘扩容操作(例如从 200G → 300G)
- 主机端执行重扫描:对 SCSI 设备运行 echo 1 > /sys/class/block/sdX/device/rescan(sdX 替换为实际设备名,如 sdb)
- 验证内核是否识别新大小:用 lsblk 或 fdisk -l /dev/sdX 查看设备总容量是否已更新;若使用分区(如 /dev/sdb1),还需运行 partprobe /dev/sdb 或 blockdev --rereadpt /dev/sdb 刷新分区表
执行 pvresize 同步 PV 元数据
该命令直接读取设备当前容量,并更新 PV 头部中记录的 PSize(物理卷大小)和 PFree(空闲空间),整个过程在线、无需停业务:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 若 PV 基于整块磁盘(如 /dev/sdb):pvresize /dev/sdb
- 若 PV 基于分区(如 /dev/sdb1):pvresize /dev/sdb1
- 不确定路径或需批量处理(仅限明确环境):pvresize(无参数,将扫描所有已知 PV)
执行后立即生效,无需重启或 reload 服务。
验证 PV 和 VG 空间是否更新
同步成功后,新增容量会立刻反映在卷组中:
- 运行 pvs 或 pvdisplay /dev/sdb1:确认 PSize 已变为新容量(如 300G),PFree 显著增加
- 运行 vgs 或 vgdisplay vg_name:观察 VFree(卷组空闲空间)是否同步增长
- 若 VFree 未变,说明 pvresize 未成功——常见原因是分区表未重读,或设备路径错误
衔接后续:分配空间给 LV 并扩展文件系统
PV 元数据更新只是第一步,要让应用真正用上空间,还需继续:
- 用 lvextend -l +100%FREE /dev/vg_name/lv_name 将新增空间分配给目标逻辑卷
- 根据文件系统类型扩展文件系统:
• ext4/ext3:运行 resize2fs /dev/vg_name/lv_name
• xfs:运行 xfs_growfs /mount/point(注意是挂载点,不是设备路径) - 最后用 df -h 和 lvdisplay 交叉验证,两者显示的可用空间必须一致










