运行数据
SynapS3 将配置、元数据和缓存对象数据存储在本地磁盘。应把这些数据放在可靠存储上。可用的备份必须让数据库和缓存处于同一恢复时间点。
默认本地布局
~/.synaps3/
config.toml
admin-initial-password
db/
synaps3.db
synaps3.db-shm
synaps3.db-wal
cache/SQLite WAL 和 SHM 文件是正常现象。显式配置的 database.dsn 和 cache.dir 优先于默认值。
Docker 布局
容器使用 /var/lib/synaps3:
/var/lib/synaps3/
config.toml
admin-initial-password
db/
cache/Docker 部署通过 synaps3-data volume 挂载该路径。Docker 专用的生命周期和备份命令见 Docker 部署。
必须持久保存的数据
| 数据 | 原因 |
|---|---|
config.toml | 保存未由环境变量管理的稳定运行设置。 |
admin-initial-password | 保存非交互 init 和密码重置生成的 Admin 密码。保持 0600 权限;安全保存密码后,只在本地 CLI 仍需自动读取时保留。 |
db/ | 保存存储桶、对象、版本、后台任务、S3 用户和存储元数据。 |
cache/ | 保存本地持久化的对象字节,用于 Filecoin 上传和读取回填。 |
| 环境密钥 | 可能保存 Filecoin 私钥和部署特定覆盖项。 |
让 config.toml、.env、凭据文件和导出的密钥保持 0600 权限。不要把钱包私钥提交到仓库或放进未受保护的归档。
备份前检查
- 检查
curl http://127.0.0.1:9090/healthz,并记录任何非ok结果。 - 运行
synaps3 admin task stats和synaps3 admin task list --status failed,检查活动任务和失败任务。 - 使用当前部署方式的服务管理器停止 SynapS3,避免备份过程中对象数据、元数据和任务状态继续变化。
不要在 SynapS3 仍在运行时创建文件系统归档。
SQLite 备份
SQLite 是默认数据库。停止 SynapS3 后,备份完整运行数据目录,让数据库、WAL/SHM 文件、配置和缓存处于同一恢复时间点。以下示例使用源码部署的默认路径:
tar czf synaps3-data.tgz -C "$HOME/.synaps3" .
tar tzf synaps3-data.tgz >/dev/null
sha256sum synaps3-data.tgz > synaps3-data.tgz.sha256
sha256sum -c synaps3-data.tgz.sha256当 database.dsn 或 cache.dir 指向其他路径时,替换上述路径,并把这些位置纳入同一恢复时间点。归档列表和校验和验证必须成功退出。将 synaps3-data.tgz 与 synaps3-data.tgz.sha256 一起保存到受保护的备份存储。
PostgreSQL 备份
如果部署使用 PostgreSQL,停止 SynapS3 后:
- 使用
pg_dump、托管数据库快照,或部署批准的 PostgreSQL 备份工具创建数据库原生备份。 - 单独备份 SynapS3 配置和缓存数据卷。
- 为数据库备份和数据卷归档标记相同的恢复时间点。
- 验证两个备份产物后再重启服务。
PostgreSQL 原生备份代替复制 SQLite 数据库目录,但不能代替配置和缓存备份。
重启并验证
备份成功后,使用当前部署方式的服务管理器启动 SynapS3,然后运行:
curl http://127.0.0.1:9090/healthz
synaps3 admin task stats/healthz 应返回 {"status":"ok"}。恢复 S3 流量前,先排查 setup 或 unhealthy。
恢复顺序
恢复 SQLite 归档前,先验证保存的副本:
sha256sum -c synaps3-data.tgz.sha256- 停止 SynapS3,并保持 S3 流量关闭。
- 验证归档校验和,确认数据库与缓存带有相同的恢复时间点标记。
- 把运行数据卷恢复到空的替换位置。PostgreSQL 部署先恢复数据库原生备份,再连接匹配的配置和缓存数据。
- 确认恢复后的配置和凭据文件权限为
0600,并允许 SynapS3 运行账户读取。 - 启动 SynapS3,检查
/healthz、任务统计和失败任务,再通过 S3 API 读取一个已知对象。
不要把一个时间点的数据库备份与另一个时间点的缓存数据混用。
只使用兼容的 SynapS3 版本恢复备份。如果启动时报告数据库不兼容,请保持备份不变,并按升级与恢复处理。