前言

本教程基于飞牛系统 fnOS 0.9.35Docker Compose 功能进行搭建。

简介

RustFS 是一款基于 Rust 语言开发的高性能分布式对象存储系统,定位为企业级存储解决方案,尤其适合 AI/ML、大数据、边缘计算等场景。以下是其核心特点的简要介绍:

技术特性与架构

  1. 分布式架构与弹性扩展

    采用去中心化的分布式网格设计,节点间无主从角色划分,通过纠删码技术(如 8+4 配置)实现数据冗余,支持动态扩展至 EB 级存储容量。存储池可横向扩展,新节点加入时自动进行负载均衡,确保数据均匀分布。

  2. 极致性能优化

    • ​零 GC 设计​:Rust 语言的内存安全特性消除了运行时垃圾回收(GC)带来的延迟抖动,实测在 4K 随机读写场景下 IOPS 达 1580K,比 MinIO 提升 42%。

    • ​异步 I/O 与零拷贝​:深度集成 Linux 的 io_uring​ 接口,减少系统调用开销,大文件顺序写吞吐量可达 98.4GB/s,P99 延迟低至 0.78ms。

    • ​元数据引擎革新​:自研基于 LSM-Tree 的元数据存储,将随机写转换为顺序写,大幅提升海量小文件处理效率,写入性能比 MinIO 翻倍。

  3. 安全与合规性

    • ​加密与访问控制​:集成 RustyVault 提供端到端加密,支持 WORM(一次写入多次读取)模式,满足金融、政务等场景的不可篡改需求。

    • ​国产化适配​:通过麒麟、统信等国产操作系统认证,支持鲲鹏、海光等芯片,符合信创要求。

功能与生态

  1. 协议兼容性

    100% 兼容 S3 协议,可无缝对接现有云原生工具链(如 Kubernetes、Spark),支持与 AWS S3、阿里云 OSS 等多云存储互通。

  2. 企业级功能

    • ​版本控制与审计:自动为每个对象版本分配唯一标识符,支持通过 API 或控制台管理历史版本;提供操作日志审计功能。

    • ​高可用性与灾难恢复​:数据多副本(支持同步 / 异步复制)和跨云部署能力,确保故障恢复时间(RTO)低于 2 分钟,数据持久性达 99.999999999%(11 个 9)。

  3. 轻量化与易部署

    单节点二进制文件小于 100MB,支持 Docker 容器化部署和 Kubernetes 编排,适配边缘设备(如树莓派)和信创硬件。通过简单的 docker run​ 命令即可快速启动服务,控制台默认地址为 http://localhost:9000​。

应用场景

  • AI/ML 训练​:针对海量小文件优化,AI 训练集群吞吐提升 28%,GPU 利用率从 55% 提升至 92%。

  • 边缘计算​:ARM 版支持工业设备日志实时存储,结合数据压缩技术节省 60% 传输带宽。

  • 金融与合规存储​:WORM 模式和审计日志满足等保 2.0 要求,某银行案例显示跨区域容灾 RPO 小于 5 分钟。

开源与社区

RustFS 采用 Apache 2.0 协议开源,代码完全透明且无商业限制,适合企业二次开发。截至 2025 年 10 月,GitHub 仓库已吸引超 1.5k 星标,并获得多家科技公司和开发者社区的贡献支持。官方提供详尽的文档在线沙箱,方便用户快速上手。

与 MinIO 的对比

相较于 MinIO,RustFS 在性能(尤其小文件场景)、内存占用(减少 67%)、国产化适配等方面表现突出,且避免了 AGPL 协议的限制。不过,MinIO 生态更成熟,企业级功能(如多站点复制)更完善,而 RustFS 目前处于快速发展期,部分高级特性(如智能分层存储)仍在开发中。

部署

  1. 打开Docker管理器,选择「Compose」,点击右上角「新增项目」。

  2. 在创建项目窗口中填写「项目名称」和选择数据存放「路径」,然后选择「创建docker-compose.yml」,将下列代码根据自己实际情况修改后复制粘贴进去。

    version: "3.8"
    
    services:
      rustfs:
        image: rustfs/rustfs:latest
        container_name: rustfs
        ports:
          - "9010:9000"   # S3 API 对外端口
          - "9011:9001"   # 控制台对外端口
        environment:
          - RUSTFS_CONSOLE_ENABLE=true
          # CORS 设置,控制台与 S3 API 都放开来源
          - RUSTFS_CORS_ALLOWED_ORIGINS=*
          - RUSTFS_CONSOLE_CORS_ALLOWED_ORIGINS=*
          # 访问密钥(生产环境请修改为强密码)
          - RUSTFS_ACCESS_KEY=rustfsadmin
          - RUSTFS_SECRET_KEY=p@ssw0rd
          # 日志级别
          - RUSTFS_LOG_LEVEL=info
    
        volumes:
          # 存储数据卷
          - ./data:/data
          # 日志目录
          - ./data/logs:/app/logs

    勾选「创建项目后立即启动」,最后点击「确定」。

  3. 等待构建完成,然后在浏览器中输入IP:Port​访问。

使用

请参照官方文档 RustFS Doc(https://docs.rustfs.com/zh/