跳转到主要内容
农光亮
LXD

LXD 快照、备份与容器迁移完整记录

数据无价。这篇笔记完整记录 LXD 容器的快照、离线备份与跨机迁移流程,都是我实际操作过的命令。

正文

容器跑多了,备份和迁移就是刚需。这篇笔记把 LXD 的快照、备份、迁移流程完整记录下来,都是实际操作过的命令。

快照:秒级的后悔药

# 创建快照
lxc snapshot my-container daily-20260705

# 查看快照
lxc list snapshots my-container

# 回滚到快照(先停容器)
lxc stop my-container
lxc restore my-container daily-20260705

# 删除快照
lxc delete my-container/daily-20260705

快照只存在本机,且占用增量空间,不是备份的替代品。

备份:导出到文件

# 导出容器(含快照)
lxc export my-container /backup/my-container-20260705.tar.gz

# 导入
lxc import /backup/my-container-20260705.tar.gz

lxc export 默认带压缩,几百 MB 的容器导出来一般就几十 MB。

定时备份脚本

配合 cron 每天自动备份:

#!/bin/bash
# /usr/local/bin/lxd-backup.sh
DATE=$(date +%F)
lxc export my-container /backup/${DATE}-my-container.tar.gz
find /backup -name "*.tar.gz" -mtime +14 -delete
chmod +x /usr/local/bin/lxd-backup.sh
crontab -e
# 每天凌晨 3 点执行
0 3 * * * /usr/local/bin/lxd-backup.sh

跨机迁移

LXD 容器迁移有两种方式:

方式一:导出导入(离线)

# 旧机器导出
lxc export my-container backup.tar.gz
# 传到新机器后导入
lxc import backup.tar.gz my-container

方式二:直连迁移(在线)

lxc remote add new-server https://new-server-ip:8443 --accept-certificate
lxc move my-container new-server:my-container

在线迁移要求两台机器网络互通,且宿主机都开启了 8443 端口。

迁移后检查清单

  1. lxc list 确认状态 RUNNING
  2. 检查网络 IP 是否变化,反代配置是否需要更新
  3. 验证数据完整性:数据库执行 CHECK TABLE 或跑一次业务自检
  4. 旧机器确认无误后再删除

小结

  • 快照救急、备份保命,两者都要
  • 定时备份脚本 + 保留周期(比如 14 天)
  • 跨机迁移优先用导出导入,简单可控