跳转到主内容
极星编程网:以代码为星,赴技术山海!

怎么在Linux利用Lvm-Pvresize在物理磁盘底层扩容后同步更新PV元数据

pvresize是唯一能安全同步更新PV元数据的命令,仅刷新LVM对已扩容设备的认知;需先在平台扩容磁盘并用partprobe或blockdev重读分区表,再执行pvresize /dev/sdX,最后用pvs验证PSize更新。 物理磁盘扩容后, pvresize 是唯一能安全、直接同步更新 PV 元数据的命令——它不修改数据,只刷新 LVM 对底层设备实际容量的认知。 先确认底层扩容已完成 pvresize 不会帮你扩大磁盘或分区,它只响应“已经变大”的设备。必须确保以下两步已执行完毕: 在虚拟化平台(如 VMware、Proxmox)或物理服务器上,已将磁盘容量调大(例如从 100G → 150G) 系统内核识别到新大小:运行 partprobe 或 blockdev --rereadpt /dev/sdX (如
blockdev --rereadpt /dev/sdb
),再用 lsblk 验证分区大小是否已更新(例如
/dev/sdb1
显示为 150G 而非旧的 100G) 运行 pvresize 同步 PV 容量 命令极简,通常无需参数: 对整个物理卷(如基于分区):
pvresize /dev/sdb1
对整块磁盘作为 PV:
pvresize /dev/sdb
若不确定设备路径,可省略目标,让 pvresize 扫描所有已知 PV:
pvresize
(慎用,仅限明确环境) 执行后,LVM 会自动读取设备当前大小,并更新 PV 的元数据中记录的 PSize 和 PFree 值。用
pvs
或
pvdisplay
即可看到 PSize 已变为新容量。 Docker Desktop(linux) 当前 Docker 最新稳定版本之一,主要针对稳定性和兼容性进行了修复优化,适合生产环境与日常开发使用。该版本继续强化 AI 开发支持、容器日志管理以及 Docker Engine 的安全能力,对 Windows/macOS/Linux 平台兼容性进行了进一步优化。 下载 验证是否生效并衔接后续步骤 同步成功后,新增空间会立即反映在卷组中: 运行
vgs
,观察 VG 的 VFree 是否增加(即新增的未分配空间) 若需扩展逻辑卷,接着用
lvextend -l +100%FREE /dev/vgname/lvname
最后一步不可跳过:根据文件系统类型执行扩容(
resize2fs /dev/vgname/lvname
或
xfs_growfs /mount/point
),否则
df -h
不会显示新空间 常见失败原因与规避方式 pvresize 报错,基本指向三个方向: 设备未重读分区表 :partprobe 未执行,或内核缓存未刷新;可尝试重启 udev 或重启机器(生产环境优先用 blockdev) 底层设备仍被占用 :例如该 PV 正用于 swap、LVM cache 或 dm 设备;先停用相关服务或设备 误对未扩容的设备执行 :pvresize 对未变大的设备无副作用,但若误操作缩容(用了
--setphysicalvolumesize
),可能触发拒绝操作或数据风险——除非明确缩容,否则永远不要加该参数

相关文章