Ubuntu Overlay如何轻松实现无限扩容?
- 内容介绍
- 文章标签
- 相关推荐
说起来,

痛点概述
硬盘空间不足往往导致服务异常、容器频繁重启。甚至业务中断,传统的扩容方式需要停机、重新分区或迁移数据,过程繁琐且风险高。怎么说呢,如果能在不中断业务的前提下实现OverlayFS 上层目录和工作目录的无感知扩容将极大提高运维效率。
OverlayFS 扩容的本质
OverlayFS 本身不支持在线动态扩容,真正需要做的事是扩大 upperdir 所在的底层块设备或文件程序容量。说起来,要注意的观点是,
- workdir 必须与 upperdir 位于同一文件程序否则会出现“invalid argument”错误。
- 底层设备必须支持在线扩容,否则会强制要求下线。
从方案一来看,基于 LVM 的 Upperdir 动态扩容
步骤 1 – 创建或 LVM 逻辑卷
使用 lvcreate -L +50G -n overlay_lv vg_name 新建一个足够大的逻辑卷。或使用 lvextend -L +100G /dev/vg_name/overlay_lv 在已有卷上追加空间。
步骤 2 – 格式化并挂载新卷
# mkfs.ext4 /dev/vg_name/overlay_lv
# mkdir -p /mnt/overlay_new
# mount /dev/vg_name/overlay_lv /mnt/overlay_new
确保挂载点所在文件程序与目标工作目录相同。说起来,

痛点概述
硬盘空间不足往往导致服务异常、容器频繁重启。甚至业务中断,传统的扩容方式需要停机、重新分区或迁移数据,过程繁琐且风险高。怎么说呢,如果能在不中断业务的前提下实现OverlayFS 上层目录和工作目录的无感知扩容将极大提高运维效率。
OverlayFS 扩容的本质
OverlayFS 本身不支持在线动态扩容,真正需要做的事是扩大 upperdir 所在的底层块设备或文件程序容量。说起来,要注意的观点是,
- workdir 必须与 upperdir 位于同一文件程序否则会出现“invalid argument”错误。
- 底层设备必须支持在线扩容,否则会强制要求下线。
从方案一来看,基于 LVM 的 Upperdir 动态扩容
步骤 1 – 创建或 LVM 逻辑卷
使用 lvcreate -L +50G -n overlay_lv vg_name 新建一个足够大的逻辑卷。或使用 lvextend -L +100G /dev/vg_name/overlay_lv 在已有卷上追加空间。
步骤 2 – 格式化并挂载新卷
# mkfs.ext4 /dev/vg_name/overlay_lv
# mkdir -p /mnt/overlay_new
# mount /dev/vg_name/overlay_lv /mnt/overlay_new
确保挂载点所在文件程序与目标工作目录相同。
