perf(storage): optimize internode RPC transfer path (#2262) Co-authored-by: momoda693 momoda693@gmail.com
perf(storage): optimize internode RPC transfer path (#2262)
Co-authored-by: momoda693 momoda693@gmail.com
RustFS 是一个基于 Rust 构建的高性能分布式对象存储系统。
快速开始 · 文档 · 报告 Bug · 社区讨论
English | 简体中文 | Deutsch | Español | français | 日本語 | 한국어 | Portuguese | Русский
RustFS 是一个基于 Rust 构建的高性能分布式对象存储系统。Rust 是全球最受开发者喜爱的编程语言之一,RustFS 完美结合了 MinIO 的简洁性与 Rust 的内存安全及高性能优势。它提供完整的 S3 兼容性,完全开源,并专为数据湖、人工智能(AI)和大数据负载进行了优化。
与其他存储系统不同,RustFS 采用更宽松、商业友好的 Apache 2.0 许可证,避免了 AGPL 协议的限制。以 Rust 为基石,RustFS 为下一代对象存储提供了更快的速度和更安全的分布式特性。
压力测试环境参数:
https://github.com/user-attachments/assets/2e4979b5-260c-4f2c-ac12-c87fd558072a
在 GitHub 上为 RustFS 点赞,即可第一时间收到新版本发布通知。
请按照以下步骤快速上手 RustFS:
curl -O https://rustfs.com/install_rustfs.sh && bash install_rustfs.sh
RustFS 容器以非 root 用户 rustfs (UID 10001) 运行。如果您使用 Docker 的 -v 参数挂载宿主机目录,请务必确保宿主机目录的所有者已更改为 10001,否则会遇到权限拒绝错误。
rustfs
10001
-v
# 创建数据和日志目录 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.yml
docker compose --profile observability up -d
注意: 我们建议您在运行前查看 docker-compose.yaml 文件。该文件定义了包括 Grafana、Prometheus 和 Jaeger 在内的多个服务,有助于 RustFS 的可观测性监控。如果您还想启动 Redis 或 Nginx 容器,可以指定相应的 profile。
docker-compose.yaml
适用于希望从源码构建支持多架构 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 脚本支持:
docker-buildx.sh
linux/amd64
linux/arm64
为了方便起见,您也可以使用 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 (或更高)。
ulimit -n
cargo zigbuild
./build-rustfs.sh --platform ...
ProcessFdQuotaExceeded
ulimit -n 4096
请按照 Helm Chart README 上的说明在 Kubernetes 集群上安装 RustFS。
http://localhost:9000
rustfsadmin
注意: 如果您希望通过 https 访问 RustFS 实例,请参考 TLS 配置文档。
https
有关详细文档,包括配置选项、API 参考和高级用法,请访问我们的 官方文档。
如果您有任何问题或需要帮助:
RustFS 是一个社区驱动的项目,我们感谢所有的贡献。请查看 贡献者 页面,看看那些让 RustFS 变得更好的了不起的人们。
Apache 2.0
RustFS 是 RustFS, Inc. 的商标。所有其他商标均为其各自所有者的财产。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
RustFS 是一个基于 Rust 构建的高性能分布式对象存储系统。
快速开始 · 文档 · 报告 Bug · 社区讨论
English | 简体中文 | Deutsch | Español | français | 日本語 | 한국어 | Portuguese | Русский
RustFS 是一个基于 Rust 构建的高性能分布式对象存储系统。Rust 是全球最受开发者喜爱的编程语言之一,RustFS 完美结合了 MinIO 的简洁性与 Rust 的内存安全及高性能优势。它提供完整的 S3 兼容性,完全开源,并专为数据湖、人工智能(AI)和大数据负载进行了优化。
与其他存储系统不同,RustFS 采用更宽松、商业友好的 Apache 2.0 许可证,避免了 AGPL 协议的限制。以 Rust 为基石,RustFS 为下一代对象存储提供了更快的速度和更安全的分布式特性。
特征和功能状态
RustFS vs MinIO 性能对比
压力测试环境参数:
https://github.com/user-attachments/assets/2e4979b5-260c-4f2c-ac12-c87fd558072a
RustFS vs 其他对象存储
提供全面的管理界面。
通常功能过于简单或缺失关键特性。
天生的内存安全。
存在内存 GC 停顿或内存泄漏的潜在风险。
防止未经授权的数据跨境传输。完全符合 GDPR (欧盟/英国)、CCPA (美国) 和 APPI (日本) 等法规。
可能存在法律风险和隐蔽的数据遥测(Telemetry)。
商业友好,无“毒丸”条款。
存在许可证陷阱和知识产权污染的风险。
适用于任何云提供商和客户端,随处运行。
虽然支持 S3,但可能缺乏对本地云厂商或特定 API 的支持。
非常适合安全、创新的边缘设备。
对于边缘网关来说通常过于沉重。
免费社区支持,稳定的商业定价。
1PiB 的成本可能高达 250,000 美元。
清晰的知识产权,商业使用安全无忧。
知识产权归属模糊及使用限制风险。
保持领先
在 GitHub 上为 RustFS 点赞,即可第一时间收到新版本发布通知。
快速开始
请按照以下步骤快速上手 RustFS:
1. 一键安装脚本 (选项 1)
2. Docker 快速启动 (选项 2)
RustFS 容器以非 root 用户
rustfs(UID10001) 运行。如果您使用 Docker 的-v参数挂载宿主机目录,请务必确保宿主机目录的所有者已更改为10001,否则会遇到权限拒绝错误。您也可以使用 Docker Compose。使用根目录下的
docker-compose.yml文件:注意: 我们建议您在运行前查看
docker-compose.yaml文件。该文件定义了包括 Grafana、Prometheus 和 Jaeger 在内的多个服务,有助于 RustFS 的可观测性监控。如果您还想启动 Redis 或 Nginx 容器,可以指定相应的 profile。3. 源码编译 (选项 3) - 进阶用户
适用于希望从源码构建支持多架构 RustFS Docker 镜像的开发者:
docker-buildx.sh脚本支持:linux/amd64,linux/arm64为了方便起见,您也可以使用 Make 命令:
4. 使用 Helm Chart 安装 (选项 4) - 云原生环境
请按照 Helm Chart README 上的说明在 Kubernetes 集群上安装 RustFS。
访问 RustFS
http://localhost:9000进入 RustFS 控制台。rustfsadmin/rustfsadmin注意: 如果您希望通过
https访问 RustFS 实例,请参考 TLS 配置文档。文档
有关详细文档,包括配置选项、API 参考和高级用法,请访问我们的 官方文档。
获取帮助
如果您有任何问题或需要帮助:
链接
联系方式
贡献者
RustFS 是一个社区驱动的项目,我们感谢所有的贡献。请查看 贡献者 页面,看看那些让 RustFS 变得更好的了不起的人们。
Star 历史
许可证
Apache 2.0
RustFS 是 RustFS, Inc. 的商标。所有其他商标均为其各自所有者的财产。