LVM管理的swap逻辑卷无法在线无损扩展,必须停用后重建;但可通过lvextend扩容、swapoff/mkswap/swapon三步实现无数据丢失、不重启、业务影响极小的扩容。

不能在线无损扩展 LVM 管理的 swap 逻辑卷 —— swap 不支持“在线扩容”,必须停用后重建。这是由 swap 的工作机制决定的:内核在启用状态下会持续读写该设备,不允许动态调整结构。但整个过程可做到**无数据丢失、无需重启系统、业务影响极小**(仅 swap 切换瞬间不可用,通常毫秒级)。
确认卷组有足够空闲空间
先检查当前 VG 是否能直接划出 20G:
- 运行 vgdisplay 或 vgs,关注 Free PE / Size 行
- 若空闲容量 ≥ 20G(如显示 Free PE / Size 20.00 GiB),可跳过添加磁盘步骤
- 若不足,需先添加物理磁盘(或虚拟机中扩展虚拟盘),再执行:
pvcreate /dev/sdX && vgextend your_vg_name /dev/sdX
扩展 swap 逻辑卷大小
假设 swap LV 路径为 /dev/centos/swap,卷组名为 centos:
- 执行 lvextend -L +20G /dev/centos/swap
(注意是 -L,不是 -l;+20G 表示“增加 20GiB”,非设为 20G) - 成功后运行 lvs | grep swap,确认 LV Size 已更新
停用 → 重制 → 启用 swap
这是关键三步,顺序不可错:
-
sync && swapoff /dev/centos/swap
(sync 确保缓存落盘,swapoff 安全卸载) -
mkswap /dev/centos/swap
(重新初始化 swap 区域,识别新容量;会提示 wiping old signature,属正常) -
swapon /dev/centos/swap
(立即启用,无需修改 fstab)
验证扩容结果
最后确认是否生效:
- free -h:查看 Swap 行的 total 值是否增加 20G
- swapon --show:确认设备路径、type、size 与预期一致
- cat /proc/swaps:检查 priority 和 filename 是否正常挂载
整个操作全程不触碰根文件系统、不中断任何进程,只要 swapoff 阶段系统内存充足(即未频繁触发 swap),业务几乎无感。建议在低峰期执行,并提前用 free -h 观察当前 swap 使用率,确保切换时不会因内存紧张导致 OOM。

















