RustFS安装

2025-12-09 09:07:43 324

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

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


特征和功能状态

  • 高性能:基于 Rust 构建,确保极致的速度和资源效率。

  • 分布式架构:可扩展且容错的设计,适用于大规模部署。

  • S3 兼容性:与现有的 S3 兼容应用和工具无缝集成。

  • 数据湖支持:专为高吞吐量的大数据和 AI 工作负载优化。

  • 完全开源:采用 Apache 2.0 许可证,鼓励社区贡献和商业使用。

  • 简单易用:设计简洁,易于部署和管理。


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

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

curl -O /install_rustfs.sh && bash install_rustfs.sh

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

RustFS 容器以非 root 用户 rustfs (UID 10001) 运行。如果您使用 Docker 的 -v 参数挂载宿主机目录,请务必确保宿主机目录的所有者已更改为 1000,否则会遇到权限拒绝错误。

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

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

docker compose --profile observability up -d

注意: 我们建议您在运行前查看 docker-compose.yaml 文件。该文件定义了包括 Grafana、Prometheus 和 Jaeger 在内的多个服务,有助于 RustFS 的可观测性监控。如果您还想启动 Redis 或 Nginx 容器,可以指定相应的 profile。

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/amd64linux/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 (或更高)。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题:
XML 地图