demo/rustfs
四节点 RustFS 分布式对象存储示例,使用 MINIO 模块统一部署、置备和监控。
demo/rustfs 显式设置 minio_type: rustfs,在四个节点上部署一套 RustFS S3 兼容对象存储集群。它沿用 MINIO 模块的身份、TLS、mcli、存储桶与用户置备接口,但使用独立的 RustFS 软件包、证书目录、数据格式和原生 OTLP 指标。
配置概览
- 配置名称:
demo/rustfs - 节点数量:4 个对象存储节点;首节点同时承担单节点 INFRA
- 集群身份:
minio_cluster: rustfs - 数据目录:每个节点使用
/data/rustfs - 客户端入口:
https://rustfs-1.pigsty:9000,别名为rustfs - 资源置备:创建
pgsql、meta、data三个桶及对应示例用户 - 软件仓库:通过
repo_extra_packages: [rustfs]显式纳入 RustFS 软件包
./configure -c demo/rustfs
./deploy.yml
也可以只对已完成 NODE/INFRA 初始化的四个成员执行:
./minio.yml -l minio
-l minio 是模板中的 Ansible 分组名;实际成员身份由 minio_cluster: rustfs 决定。
配置内容
源文件地址:pigsty/conf/demo/rustfs.yml
---
#==============================================================#
# File : rustfs.yml
# Desc : Four-node RustFS cluster managed by MINIO module
#==============================================================#
all:
children:
infra:
hosts:
10.10.10.10: { infra_seq: 1 }
minio:
hosts:
10.10.10.10: { minio_seq: 1 }
10.10.10.11: { minio_seq: 2 }
10.10.10.12: { minio_seq: 3 }
10.10.10.13: { minio_seq: 4 }
vars:
minio_type: rustfs
minio_cluster: rustfs
minio_data: /data/rustfs
minio_alias: rustfs
minio_endpoint: https://rustfs-1.pigsty:9000
minio_buckets:
- { name: pgsql }
- { name: meta, versioning: true }
- { name: data }
minio_users:
- { access_key: pgbackrest, secret_key: S3User.Backup, policy: pgsql }
- { access_key: s3user_meta, secret_key: S3User.Meta, policy: meta }
- { access_key: s3user_data, secret_key: S3User.Data, policy: data }
vars:
version: v4.5.0
admin_ip: 10.10.10.10
region: default
repo_extra_packages: [ rustfs ]
minio_access_key: minioadmin
minio_secret_key: S3User.MinIO
...
配置解读
- 多节点卷地址由 MINIO 角色根据四个
minio_seq与/data/rustfs自动生成。 - RustFS 默认每 15 秒把原生
rustfs_*指标通过 OTLP/HTTP 推送到第一个infra节点的 VictoriaMetrics,并另外注册 HTTPS 就绪探测。 minio_endpoint直接指向第一个成员,不是高可用入口;生产环境应按故障预算增加经过验证的负载均衡或 VIP。- 模板中的访问密钥都是公开演示值,部署前必须替换。
- RustFS 与 Silo/MinIO 只共享 S3 与模块接口,不共享可原地互换的数据格式;已有集群切换引擎必须使用经过验证的数据迁移和回滚流程。
参数、监控与迁移边界见 MINIO 模块 与 RustFS 监控说明。