Arq 是一个对 mac 和 windows 数据进行备份的软件,支持将 PC 本地数据备份至云端服务,AWS、Google Cloud,当然也支持备份至 S3 兼容的服务。
RustFS 作为 S3 兼容的分布式对象存储服务,可以将其作为 Arq 的数据备份存储后端。
前提
-
一个可用的 RustFS 实例;
-
安装配置好的 Arq;
配置
RustFS 安装
RustFS 支持多种安装方式,包括脚本、Docker、Helm Chart,一键即可完成安装。本文采用 Docker 安装方式,将如下内容写入 docker-compose.yml 文件:
services:
traefik:
image: traefik:v3.6.5
container_name: traefik
command:
- --log.level=DEBUG
- --accesslog=true
- --api.insecure=true
- --providers.docker=true
- --providers.docker.endpoint=unix:///var/run/docker.sock
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --providers.docker.network=rustfs
- --certificatesresolvers.le.acme.email=rustfs@com
- --certificatesresolvers.le.acme.storage=/etc/traefik/acme.json
- --entrypoints.web.http.redirections.entrypoint.to=websecure
- --entrypoints.web.http.redirections.entrypoint.scheme=https
- --certificatesresolvers.le.acme.httpchallenge=true
- --certificatesresolvers.le.acme.httpchallenge.entrypoint=web
ports:
- "80:80"
- "443:443"
- "8443:8443"
- "8080:8080" # Traefik Dashboard (http://localhost:8080)
labels:
- "traefik.enable=true"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./acme.json:/etc/traefik/acme.json
networks:
- rustfs
rustfs:
image: rustfs/rustfs:1.0.0-alpha.79
container_name: rustfs-traefik
hostname: rustfs
labels:
- "traefik.enable=true"
- "traefik.http.routers.rustfs.rule=Host(`example.rustfs.com`)"
- "traefik.http.routers.rustfs.entrypoints=websecure"
- "traefik.http.routers.rustfs.tls.certresolver=le"
- "traefik.http.services.rustfs.loadbalancer.server.port=9001"
- "traefik.http.routers.rustfs.tls=true"
- "traefik.http.routers.rustfs.priority=100"
environment:
- RUSTFS_VOLUMES=/data
- RUSTFS_ADDRESS=0.0.0.0:9000
- RUSTFS_CONSOLE_ENABLE=true
- RUSTFS_CONSOLE_ADDRESS=0.0.0.0:9001
- RUSTFS_ACCESS_KEY=rustfsadmin
- RUSTFS_SECRET_KEY=rustfsadmin
- RUSTFS_SERVER_DOMAINS=example.rustfs.com
- RUST_LOG=warn
ports:
- "9000:9000" # API endpoint
- "9001:9001" # Console
volumes:
- ./data:/data
networks:
- rustfs
networks:
rustfs:
driver: bridge
name: rustfs
注意 :
-
安装过程中使用了
volume对数据进行持久化,需要在同级目录下创建一个data目录,同时将其权限修改为10001:10001,否则启动会导致权限问题; -
需要将
example.rustfs.com、example@com替换为正确信息;
执行如下命令完成 RustFS 安装:
docker compose up -d
通过 https://example.rustfs.com 来访问 RustFS 实例,默认用户名和密码为 rustfsadmin/rustfsadmin。
配置 Arq
打开 Arq,点击 Create a backup plan
选择 Add Storage Location ,并选择 S3-Compatible Server ,然后输入 RustFS 的信息:
其中:
-
Server URL :RustFS 实例地址,比如
https://example.rustfs.com; -
Access Key ID/Secret Access Key:RustFS 密钥,均为
rustfsadmin/rustfsadmin; -
Bucket Name :存储数据的存储桶名称,这个需要提前在 RustFS 实例上创建好,比如就叫做 Arq;
点击 Continue ,输入加密需要的密码:
继续点击 Continue ,并选择你期望的备份计划:
以备份某个文件夹为例,选择 Add Folder ,创建一个需要备份的文件夹,此后此文件夹下面的数据会被备份至 RustFs 的 arq 存储桶下面,选择 Save 即可:
可以看到完整的备份计划:
开始备份
将需要备份的数据放在 arq 目录下,然后点击 Back Up Now 即可,可以看到备份过程和日志:
在 RustFS 上查看 arq 存储桶下面是否有数据:
可以看到 Arq 中的数据已经被备份到了 RustFS 实例。
当然,可以根据自身需求配置不同的备份计划,这样即使 PC 出现了问题,也不用担心数据丢失了。