备份与恢复
安装脚本部署的核心数据在 PostgreSQL、webserver-data 持久卷、安装目录的 .env 和模型目录中。Redis 也使用持久卷,但缓存状态不能代替数据库备份。备份时记录运行的镜像版本;恢复到另一个版本前,应核对数据库迁移兼容性。
导出数据库
在安装目录执行(默认 /opt/llmpod)。输出是包含平台配置、租户、发布路由与运行记录的敏感文件:
cd /opt/llmpod
docker compose --env-file .env exec -T postgres \
sh -c 'pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB"' > llmpod-backup.sql
test -s llmpod-backup.sql
同时单独保存以下内容:
- 安装目录的
.env:数据库密码、服务地址和端口等配置。 webserver-data卷:初始管理员凭据、请求日志正文等应用数据。只做数据库导出不会包含卷内文件。MODEL_HOST_DIR指向的宿主机目录:本地模型权重和上传文件;体积较大时可使用独立的文件备份机制。- 自定义的 Compose 文件、反向代理配置以及实际镜像 tag。
数据库导出与文件备份应尽量处于同一维护窗口。持续写入期间分开复制卷和导出数据库,可能得到不一致的时间点;重要环境应暂停写入或使用一致性快照,并定期做恢复演练。
验证与恢复
先在隔离的测试环境恢复,而不是直接覆盖生产数据库。准备相同或兼容版本的 PostgreSQL 和镜像、配置文件及所需卷/模型目录。下面的命令把纯 SQL 备份导入一个新建的空数据库,保留现有 数据库作对照:
cd /opt/llmpod
docker compose --env-file .env up -d postgres redis
docker compose --env-file .env exec -T postgres \
sh -c 'createdb -U "$POSTGRES_USER" llmpod_restore'
docker compose --env-file .env exec -T postgres \
sh -c 'psql -X -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -d llmpod_restore' < llmpod-backup.sql
导入后检查表与关键记录,再把测试环境的 POSTGRES_DB 指向 llmpod_restore,启动同版本的控制面和网关,验证登录、节点、发布路由与 API 请求。若需正式切换,先停写并重新取得最终备份,再按演练过的步骤恢复;不要在运行中的生产实例上直接导入 SQL。