备份与恢复
你的应用已在生产环境运行。立即备份。rdc 可以将整个仓库(应用、数据库、文件、配置)推送到外部存储,随时拉取回来。应对勒索软件、硬件故障,万无一失。
观看教程
三个步骤
- 配置存储提供商。
- 推送备份。
- 需要时恢复。
第一步:配置存储
你需要一个 rclone 配置文件。如果你已在使用 rclone,可以直接导入:
rdc config storage import --file rclone.conf 导入现有的 rclone 配置。rclone 支持 S3、Backblaze、Google Drive、Dropbox 等众多服务。如果你已经在使用 rclone,同一份配置可以直接导入。
支持 S3、B2、Google Drive、Dropbox 等众多存储服务。验证已配置的内容:
rdc config storage list 列出 CLI 当前已识别的存储。每个存储都是备份的目标位置。
第二步:推送备份
rdc repo push --name my-app -m <machine-name> --to my-storage 推送完整备份。整个 repository 将被上传,包括应用、数据库、文件和配置。由于 repository 在静止状态下已加密,备份同样是加密的,无需额外的密钥管理。
整个仓库(应用、数据库、文件,一切)都已备份。由于仓库本身是加密的,备份也是加密的。无需额外的密钥管理。
随时列出备份:
rdc repo backup list --from my-storage -m <machine-name> 列出此存储上可用的备份。在全新服务器上恢复只需一条命令:repo pull 命令。
为什么没有停机时间?
备份上传时应用保持运行。这是如何保证一致性的?
原理与 fork 相同。rdc 先 fork,然后上传 fork。fork 捕获了那一刻的状态,你的线上应用继续运行。无停机,无不一致。
第三步:恢复(真正的演练)
从未实际恢复过的备份只是一种期望,不算真正的备份。先将仓库下线:
rdc repo down --name my-app --machine <machine-name> --unmount 首先将 repository 下线:使用 repo down 命令停止服务并卸载加密卷。
直接从存储拉取备份:
rdc repo pull --name my-app --machine <machine-name> --from my-storage --force --yes 使用 repo pull 命令从存储中拉取备份。镜像将被获取并进行完整性校验。
然后重新挂载,完全恢复:
rdc repo mount --name my-app --machine <machine-name> 重新挂载 repository,它已完全恢复。同样的拉取操作在全新机器上也同样适用。
同样的 pull 命令在全新服务器上同样有效:设置好服务器,将其添加到 rdc,然后在那台机器上执行 pull:
rdc repo pull --name my-app -m new-server --from my-storage
rdc repo up --name my-app -m new-server
相同的数据,相同的容器,不同的机器。
更快的备份:机器到机器
你也可以直接在机器之间推送,无需经过云存储:
rdc repo push --name my-app -m my-server --to-machine backup-server
进阶提示。 机器到机器推送在首次之后只发送变更的数据块。增量传输教程有现场演示。
下一篇:网络与域名。