Files
rustfs/README_ZH.md
T
majinghe a2ec13ab04 fix(otel): fix container unhealty issue caused by healthy check (#4145)
* fix: fix container unhealty issue caused by healthy check

* update readme file

---------

Co-authored-by: houseme <housemecn@gmail.com>
2026-07-01 21:56:26 +08:00

14 KiB
Raw Blame History

RustFS

RustFS 是一个基于 Rust 构建的高性能分布式对象存储系统。

CI 构建并推送 Docker 镜像 GitHub 提交活跃度 Github 最新提交 Featured|HelloGitHub

rustfs%2Frustfs | Trendshift ROSS Index - Fastest Growing Open-Source Startups in Q4 2025 | Runa Capital

快速开始 · 文档 · 报告 Bug · 社区讨论

English | 简体中文 | Deutsch | Español | français | 日本語 | 한국어 | Portuguese | Русский

RustFS 是一个基于 Rust 构建的高性能分布式对象存储系统。Rust 是全球最受开发者喜爱的编程语言之一,RustFS 结合了 MinIO 的简洁性与 Rust 的内存安全及高性能优势。它为已支持功能提供广泛的 S3 API 兼容性,完全开源,并专为数据湖、人工智能(AI)和大数据负载进行了优化。

与其他存储系统不同,RustFS 采用更宽松、商业友好的 Apache 2.0 许可证,避免了 AGPL 协议的限制。以 Rust 为基石,RustFS 为下一代对象存储提供了更快的速度和更安全的分布式特性。

特征和功能状态

  • 高性能:基于 Rust 构建,确保极致的速度和资源效率。
  • 分布式架构:可扩展且容错的设计,适用于大规模部署。
  • S3 兼容性:与常见 S3 兼容应用和工具集成,当前覆盖范围见 S3 兼容矩阵
  • 数据湖支持:专为高吞吐量的大数据和 AI 工作负载优化。
  • 完全开源:采用 Apache 2.0 许可证,鼓励社区贡献和商业使用。
  • 简单易用:设计简洁,易于部署和管理。
功能 状态 功能 状态
S3 核心功能 可用 Bitrot (防数据腐烂) 可用
上传 / 下载 可用 单机模式 可用
版本控制 可用 存储桶复制 可用
日志功能 可用 生命周期管理 🚧 测试中
事件通知 可用 分布式模式 🚧 测试中
K8s Helm Chart 可用 OPA (策略引擎) 🚧 测试中

RustFS vs MinIO 性能对比

压力测试环境参数:

类型 参数 备注
CPU 2 核 Intel Xeon (Sapphire Rapids) Platinum 8475B , 2.7/3.2 GHz
内存 4GB  
网络 15Gbps  
硬盘 40GB x 4 IOPS 3800 / Drive

https://github.com/user-attachments/assets/2e4979b5-260c-4f2c-ac12-c87fd558072a

RustFS vs 其他对象存储

特性 RustFS 其他对象存储
控制台体验 功能强大的控制台
提供全面的管理界面。
基础/简陋的控制台
通常功能过于简单或缺失关键特性。
语言与安全 基于 Rust 开发
天生的内存安全。
基于 Go 或 C 开发
存在内存 GC 停顿或内存泄漏的潜在风险。
数据主权 无遥测 / 完全合规
防止未经授权的数据跨境传输。完全符合 GDPR (欧盟/英国)、CCPA (美国) 和 APPI (日本) 等法规。
潜在风险
可能存在法律风险和隐蔽的数据遥测(Telemetry)。
开源协议 宽松的 Apache 2.0
商业友好,无“毒丸”条款。
受限的 AGPL v3
存在许可证陷阱和知识产权污染的风险。
兼容性 S3 核心兼容
适配常见 S3 兼容客户端,覆盖范围以兼容矩阵为准。
兼容性不一
虽然支持 S3,但可能缺乏对本地云厂商或特定 API 的支持。
边缘与 IoT 强大的边缘支持
非常适合安全、创新的边缘设备。
边缘支持较弱
对于边缘网关来说通常过于沉重。
成本 稳定且免费
免费社区支持,稳定的商业定价。
高昂成本
1PiB 的成本可能高达 250,000 美元。
风险控制 企业级风险规避
清晰的知识产权,商业使用安全无忧。
法律风险
知识产权归属模糊及使用限制风险。

保持领先

在 GitHub 上为 RustFS 点赞,即可第一时间收到新版本发布通知。

快速开始

请按照以下步骤快速上手 RustFS

1. 一键安装脚本 (选项 1)

curl -O https://rustfs.com/install_rustfs.sh && bash install_rustfs.sh

2. Docker 快速启动 (选项 2)

RustFS 容器以非 root 用户 rustfs (UID/GID 10001:10001) 运行。如果您通过 Docker 或 Compose 绑定挂载宿主机目录,请务必确保所有挂载路径都对该用户可写,否则启动时可能出现权限拒绝错误。这不仅适用于数据目录和日志目录,也适用于启用 RUSTFS_TLS_PATH 时挂载的 TLS 证书目录。

# 创建数据和日志目录
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

# 使用指定版本运行
docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:1.0.0-beta.8

如果您通过绑定挂载启用 TLS 证书目录,也请用同样方式准备该目录:

mkdir -p certs
chown -R 10001:10001 certs

您也可以使用 Docker Compose。使用根目录下的 docker-compose-simple.yml 文件:

docker compose -f docker-compose-simple.yml up -d

在使用 Compose 且包含宿主机绑定挂载时,请先确认:

  • 所有挂载到容器内的宿主机路径都对 10001:10001 可写。
  • 如果启用了 TLS,挂载到 /opt/tls 的证书目录也需要对 10001:10001 可读。
  • 如果不方便调整宿主机目录归属,可以为 rustfs 服务显式设置 user: "<host-uid>:<host-gid>"
  • docker-compose-simple.yml 为命名 volume 提供了 volume-permission-helper 服务;docker-compose-simple.yml 使用宿主机绑定挂载,因此需要您在启动前自行准备目录权限。

3. 源码编译 (选项 3) - 进阶用户

适用于希望从源码构建支持多架构 RustFS Docker 镜像的开发者:

# 在本地构建多架构镜像
./docker-buildx.sh --build-arg RELEASE=latest

# 构建并推送到仓库
./docker-buildx.sh --push

# 构建指定版本
./docker-buildx.sh --release v1.0.0 --push

# 构建并推送到自定义仓库
./docker-buildx.sh --registry your-registry.com --namespace yourname --push

docker-buildx.sh 脚本支持:

  • 多架构构建: linux/amd64, linux/arm64
  • 自动版本检测: 使用 git tags 或 commit hash
  • 灵活的仓库支持: 支持 Docker Hub, GitHub Container Registry 等
  • 构建优化: 包含缓存和并行构建

为了方便起见,您也可以使用 Make 命令:

make docker-buildx                    # 本地构建
make docker-buildx-push               # 构建并推送
make docker-buildx-version VERSION=v1.0.0  # 构建指定版本
make help-docker                      # 显示所有 Docker 相关命令

注意 (macOS 交叉编译): macOS 默认的 ulimit -n 限制为 256,因此在使用 cargo zigbuild./build-rustfs.sh --platform ... 交叉编译 Linux 版本时,可能会因 ProcessFdQuotaExceeded 失败。构建脚本会尝试自动提高限制,但如果您仍然看到警告,请在构建前在终端运行 ulimit -n 4096 (或更高)。

4. 使用 Helm Chart 安装 (选项 4) - 云原生环境

请按照 Helm Chart README 上的说明在 Kubernetes 集群上安装 RustFS。

5. Nix Flake (Option 5)

如果你已经 启用了 Nix Flakes 功能:

# 直接运行,无需安装
nix run github:rustfs/rustfs

# 编译二进制文件
nix build github:rustfs/rustfs
./result/bin/rustfs --help

# 或者从本地检出的代码库运行/编译
nix build
nix run

6. X-CMD (Option 6)

如果你是 x-cmd 用户:

# 直接运行,无需安装
x rustfs

# 下载二进制文件并安装到全局环境中
x env use rustfs
rustfs --help

访问 RustFS

  1. 访问控制台: 打开浏览器并访问 http://localhost:9001 进入 RustFS 控制台。
    • 默认账号/密码: rustfsadmin / rustfsadmin
  2. 创建存储桶: 使用控制台为您​​的对象创建一个新的存储桶 (Bucket)。
  3. 上传对象: 您可以直接通过控制台上传文件,或使用 S3 兼容的 API/客户端与您的 RustFS 实例进行交互。

注意: 如果您希望通过 https 访问 RustFS 实例,请参考 TLS 配置文档

文档

有关详细文档,包括配置选项、API 参考和高级用法,请访问我们的 官方文档

获取帮助

如果您有任何问题或需要帮助:

  • 查看 FAQ 寻找常见问题和解决方案。
  • 加入我们的 GitHub Discussions 提问并分享您的经验。
  • 在我们的 GitHub Issues 页面提交 Bug 报告或功能请求。

链接

联系方式

贡献者

RustFS 是一个社区驱动的项目,我们感谢所有的贡献。请查看 贡献者 页面,看看那些让 RustFS 变得更好的了不起的人们。

Contributors

Star 历史

Star History Chart

许可证

Apache 2.0

RustFS 是 RustFS, Inc. 的商标。所有其他商标均为其各自所有者的财产。