rustfs/rustfs

RustFS is an open-source, S3-compatible high-performance object storage system supporting migration and coexistence with other S3-compatible platforms such as MinIO and Ceph.

RustFS – 高性能分布式对象存储(Rust)

简介 – RustFS 是一个用 Rust 编写的开源、Apache-2.0 许可的对象存储系统。它旨在结合 MinIO 的易用性和 Rust 提供的内存安全与原始速度。该服务支持 S3 API(核心功能、版本控制、加密、生命周期等),还支持 OpenStack Swift、SFTP/FTPS/WebDAV 和 Web 控制台。

对 AI/ML 的重要性 – 现代 AI 管道需要快速、可靠的对象存储来存储训练数据、模型工件和推理结果。RustFS 宣传“数据湖支持”和“针对高吞吐量大数据和 AI 工作负载进行优化”,使其成为数据密集型 ML 工作负载存储层的候选方案。


主要特性(如 README 中所述)

  • 高性能 – 用 Rust 构建,实现低开销、内存安全执行。
  • 分布式、容错架构 – 可使用纠删码池作为单节点或多节点集群运行。
  • 广泛的 S3 兼容性 – 核心 S3 操作、版本控制、对象锁定(WORM)、服务器端加密、生命周期/ILM、存储桶复制、事件通知等。
  • OpenStack Swift API 和 Keystone 身份验证 – 原生支持 Swift 及其身份验证模型。
  • 其他协议 – FTPS、WebDAV、SFTP(可选 Cargo 功能)。
  • KMS 集成 – Vault(KV2/Transit)和 AWS KMS 后端;本地/静态后端用于测试。
  • 可观测性 – 内置日志、Prometheus 指标、Grafana 仪表板、Jaeger 追踪。
  • Web 控制台 – 用于存储桶和对象管理的图形界面。
  • Helm 图表、Docker 镜像、Nix flake 和 x-cmd 安装程序 – 多种部署选项。
  • 宽松的 Apache-2.0 许可证 – 无“病毒性”AGPL 限制。

典型用例

用例 RustFS 的帮助
AI/ML 数据湖 为大型训练数据集和模型检查点提供 S3 兼容的高吞吐量存储。
边缘/IoT 网关 占用空间小的 Rust 二进制文件,无遥测,适合本地或边缘部署。
混合云 可在本地或容器/Kubernetes 中运行,提供与现有云工具配合使用的私有 S3 端点。
企业合规 Apache-2.0 许可证,GDPR/CCPA/APPI 友好,无隐藏遥测,支持 OIDC/SSO 实现细粒度 IAM。
备份/归档 支持存储桶复制、版本控制和对象锁定以实现不可变存储。

入门(快速开始选项)

  1. 一键脚本 – curl -O https://rustfs.com/install_rustfs.sh && bash install_rustfs.sh
  2. Docker – 运行官方镜像(非 root 用户 rustfs UID/GID 10001:10001)。示例:
    mkdir -p data logs && chown -R 10001:10001 data logs
    docker run -d -p 9000:9000 -p 9001:9001 \
        -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:latest
    
    如有必要,将 latest 替换为特定版本标签。
  3. Docker Compose – 现成的 docker-compose-simple.yml 包含 RustFS 以及 Prometheus、Grafana 和 Jaeger,用于可观测性。
  4. Helm 图表 – 通过 https://charts.rustfs.com/ 处的图表在 Kubernetes 集群上安装。
  5. 从源码构建 – 使用提供的 docker-buildx.sh 脚本或 make 目标构建多架构 Docker 镜像,或使用 Cargo 直接编译二进制文件。
  6. Nix flake / x-cmd – 适用于 NixOS 用户或喜欢 x-cmd 安装程序的用户。

管理要点

  • 控制台 – 可在 http://localhost:9001 访问(默认凭据 rustfsadmin / rustfsadmin)。
  • TLS – 挂载证书目录并设置 RUSTFS_TLS_PATH 以启用。
  • 通知 – 通过 RUSTFS_NOTIFY_* 环境变量支持 Webhook;外部连接必须通过 RUSTFS_OUTBOUND_ALLOW_ORIGINS 进行白名单。
  • 池扩展 – 单节点单磁盘部署无法就地扩展;多驱动器池需要仔细的几何配置(请参阅池布局兼容性文档)。
  • OIDC – 支持 Microsoft Entra ID 的可选角色声明映射;通过 RUSTFS_IDENTITY_OPENID_* 环境变量进行配置。

许可证

  • Apache License 2.0 – 宽松、商业友好,无“病毒性”条款。

了解更多


TL;DR

RustFS 是一个基于 Rust 的 Apache-2.0 许可对象存储系统,提供完整的 S3 兼容性、分布式容错操作和 Web 控制台。它面向高吞吐量 AI/ML 数据湖工作负载,同时提供边缘友好的部署选项(Docker、Helm、Nix 等)和强大的安全性/合规性保证。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目