温馨提示×

怎样备份linux overlay数据

小樊
52
2026-09-09 13:19:55
栏目: 智能运维

在 Linux 中,overlay(OverlayFS)常用于容器(Docker、Kubernetes)、Live CD、只读根文件系统等场景。备份 overlay 数据时要区分“底层只读层”“上层可写层”和“工作目录”,否则容易备份错或备份不完整。

下面按使用场景说明备份方法。


一、先确认 overlay 结构

典型 overlay 挂载:

mount | grep overlay

输出类似:

overlay on /merged type overlay (
  lowerdir=/lower,
  upperdir=/upper,
  workdir=/work
)

关键目录:

  • lowerdir:只读层(不需要备份,通常可重建)
  • upperdir:可写层(⚠️ 真正需要备份的数据)
  • workdir:临时工作目录(不要备份

二、容器场景(Docker / Kubernetes)

1️⃣ Docker 数据备份(推荐)

Docker 的 overlay 数据在:

/var/lib/docker/overlay2/

正确做法:备份容器或卷,而不是 overlay 目录

备份容器

docker export <container_id> > container.tar

备份卷

docker run --rm \
  -v myvolume:/data \
  -v $(pwd):/backup \
  busybox tar czf /backup/volume.tar.gz -C /data .

备份整个 Docker(停机方式)

systemctl stop docker
tar czf docker-backup.tar.gz /var/lib/docker
systemctl start docker

2️⃣ Kubernetes(overlay 在容器运行时)

如果是 containerd:

/var/lib/containerd/

✅ 推荐:

  • 备份 PV / 数据库
  • 不要直接拷贝 overlay

三、手动 overlay(非容器)

✅ 只备份 upperdir(最重要)

tar czf overlay-upper.tar.gz -C /upper .

恢复:

tar xzf overlay-upper.tar.gz -C /upper

⚠️ 注意:

  • 不要备份 workdir
  • lowerdir 应单独管理(系统镜像 / 基础文件)

✅ 整体一致性备份(需停机)

如果服务在跑:

systemctl stop yourapp
tar czf overlay-full.tar.gz /upper /lower
systemctl start yourapp

四、使用 rsync 增量备份

适合大目录:

rsync -aAXH --delete /upper/ /backup/upper/

⚠️ 不建议备份 /work


五、常见错误 ❌

错误做法 原因
直接 tar /merged 可能包含重复/挂载点
备份 workdir 临时数据,会破坏 overlay
热备份 running overlay 数据不一致
只备份 lowerdir 没有可写数据

六、总结建议 ✅

  • 容器:备份容器 / 卷 / 镜像
  • 手动 overlay:只备份 upperdir
  • 必须停机再整体备份
  • 不要碰 workdir

如果你能告诉我:

  • 是 Docker?K8s?还是自己 mount 的 overlay?
  • 想备份的是系统还是业务数据?

我可以给你精确的一条命令方案

0