其他 S3 兼容存储
你可以使用自己运行的 S3 服务器,比如 Ceph 或 SeaweedFS,或者任何其他支持 S3 协议、但在设置程序中没有预设的服务。它必须支持条件写入,设置程序会测试这一点。参见选择存储。
如果你想备份到自己的机器上,又不想维护 S3 服务器,自托管更简单,它只需要 SSH。
#在设置程序中
运行 frost init,选择 S3-compatible,再选择 Other S3-compatible。
| 设置程序的问题 | 回答 |
|---|---|
| What is the S3 endpoint? | 服务器或服务商文档中给出的主机名。只写主机名而不带 https:// 时,按 HTTPS 连接 |
| Which region? | 只有服务器或服务商要求时才填写,否则留空 |
| What is the bucket name? | 存储桶的名称,与创建时完全一致。存储桶必须已经存在 |
| Paste the Access Key ID. | 来自服务器或服务商的控制台 |
| Paste the Secret Access Key. | 来自服务器或服务商的控制台 |
Frost 会把备份放在存储桶中的 frost 文件夹里。
#你自己运行的服务器
| 服务器 | 需要了解 |
|---|---|
| Ceph | 它的 RADOS Gateway 支持条件写入。把网关的地址和端口告诉设置程序 |
| SeaweedFS | 它的 S3 网关文档说明了条件写入。把它的地址告诉设置程序,比如 http://<server>:8333 |
| MinIO | 支持条件写入,但已不再维护,所以不会再有修复。现有服务器只要通过设置程序的检查,就仍然可以使用。把它的地址告诉设置程序,比如 https://<server>:9000 |
| Garage | 不支持条件写入,所以 Frost 无法使用它 |
请先用服务器自带的工具创建存储桶和访问密钥。
#不使用 TLS 的服务器
对于运行在你自己电脑或网络中的服务器,可以用 http:// 开头的端点,比如 http://localhost:9000。这会让所有请求都不使用 TLS,所以只在你信任的网络中这样做。把 storage.s3.insecure 设为 true 会让未指定协议的端点使用 HTTP。明确指定的 https:// 或 http:// 优先于这项设置。
#存储桶中的文件夹
Frost 把所有内容放在存储桶中的一个文件夹里,默认是 frost。全屏设置界面不会询问这一项。
完成设置后,如果想在第一次备份之前改用另一个文件夹,或者使用存储桶的顶层:
- 运行
frost config edit,修改[storage.s3]下的prefix。留空表示使用存储桶的顶层。Frost 会提醒你那里还没有备份。输入yes仍然保存。 - 再运行一次
frost init。确认界面会提醒你这将开始一组新的独立备份。按[s]继续。
如果你已经有备份,请改为迁移它们,方法见迁移备份。