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 端口。
迁移后检查清单
lxc list确认状态 RUNNING- 检查网络 IP 是否变化,反代配置是否需要更新
- 验证数据完整性:数据库执行
CHECK TABLE或跑一次业务自检 - 旧机器确认无误后再删除
小结
- 快照救急、备份保命,两者都要
- 定时备份脚本 + 保留周期(比如 14 天)
- 跨机迁移优先用导出导入,简单可控