RustFS 1.0.0 深度解析:GA 之后,它值得替代 MinIO 吗?

简介: RustFS 1.0.0 于2026年9月16日正式发布。本文梳理其许可证、功能与性能,说明替代 MinIO 的兼容性和迁移限制,并介绍 1Panel、Docker 部署方式

大家好,我是程序员天天困。

RustFS 终于迎来了 1.0.0 正式版。对关注 MinIO 替代方案的人来说,这是个值得认真评估的节点。对象存储承载着业务数据,能不能替换现有系统,还得看接口兼容性、故障恢复能力和迁移成本。

下面先看它为什么值得关注,再看功能、性能和迁移限制,最后动手部署。

一、GA 发布了,意味着什么

RustFS 的 1.0.0 GA 公告 发布于 2026 年 9 月 16 日,GitHub 也有对应的 1.0.0 Release。GA 是 General Availability,通常表示产品正式面向用户发布。

按官方公告,项目从 2024 年 2 月开始开发,2025 年 7 月开源,2026 年 4 月进入 Beta、8 月进入 RC,最终在 9 月发布 GA。从第一行代码算起约两年零七个月,从开源算起约十四个月,两者的起点不同。

公告还列出了 32,000+ GitHub stars、1,000 万+ Docker Hub 镜像拉取和 270 万+ 部署实例。这些是公告发布时的官方统计,其中部署实例数未交代统计方法,不能直接等同于活跃用户数或生产客户数。

官方对 GA 的定位是:核心对象存储引擎已经稳定,可用于生产负载。 对使用者来说,这是一个重要信号,具体业务上线前仍需验证兼容性、性能和故障恢复。

二、为什么它会成为 MinIO 的替代候选

1. 许可证与维护状态,影响长期采用成本

2021 年 4 月,MinIO 服务端项目从 Apache-2.0 转向 AGPLv3。2025 年 5 月 24 日的发布说明又宣布调整内置 Console,转向 object-browser。截至本文核查日,MinIO 社区版仓库 显示已于 2026 年 4 月 25 日归档,README 明确标注不再维护。社区版用户因此需要重新考虑从哪里获取补丁、如何升级,以及由谁负责长期维护。

这里要分清产品:归档的是社区版仓库,MinIO AIStor 的许可、功能和支持应另行评估。AIStor 产品线也提供采用免费许可的单机版本,因此社区版归档不意味着 MinIO 全线停止维护。

许可证也容易被讲偏。AGPLv3 不等于“用了 MinIO,整个业务系统都必须开源”。 第 13 条主要要求:修改程序后,如果用户通过网络与该修改版本交互,应向这些用户提供获取相应源代码的途径。其他代码是否受影响,要结合修改、组合和分发方式判断,不能只凭调用了 S3 API 下结论。

RustFS 使用宽松的 Apache-2.0 许可,通常更便于商业集成和再分发,也不要求因此公开独立的自有业务代码。但再分发仍需保留许可证及相关声明、标明修改,并遵守适用的 NOTICE 要求。

AGPLv3 与 Apache-2.0 许可差异的示意图

用两条路线比喻许可证带来的采用成本差异,具体义务仍以许可证条款为准。

2. Rust 提供实现优势,性能仍要看负载

对象存储需要持续处理并发请求、磁盘 I/O 和大量缓冲区。安全 Rust 的所有权和借用检查可以防止多类内存错误;RustFS 也不依赖 Go 那样的追踪式垃圾回收(GC),因此没有这类 GC 带来的停顿。

不过,没有 GC 不等于没有延迟尖峰,也不能直接推出 P99 更低。 磁盘排队、网络抖动、锁竞争和线程调度都可能拖慢请求;Go 的 GC 也主要与程序并发运行。unsafe、外部库接口和依赖仍需要审计,语言优势不能代替系统设计与测试。

选型时应同时看吞吐量、错误率和尾延迟。P99 表示约 99% 的请求延迟不超过该值,有助于观察慢请求,但比较双方时必须使用相同负载与配置。

GC 停顿、平均延迟与 P99 尾延迟的示意图

曲线用于概念说明,并非 RustFS 与 MinIO 的实测结果;无 GC 也可能出现延迟尖峰。

3. 架构是否合适,要结合存储需求判断

RustFS 与 MinIO 都主要面向 S3 对象存储,采用对等节点设计,不需要额外部署专用的中心元数据服务器。Ceph 则同时覆盖块、文件和对象存储,功能面更广,部署和运维涉及的组件也更多。

维度 RustFS MinIO 社区版 Ceph
主要用途 S3 兼容对象存储 S3 兼容对象存储 块、文件、对象存储
主要实现语言 Rust Go C++
许可证 Apache-2.0 AGPLv3 主体为 LGPL-2.1 或 LGPL-3,部分组件另有许可
评估重点 所需功能、GA 验证与迁移成本 现有兼容性与归档后的维护来源 统一存储需求与团队运维能力

Ceph 的对象存储由 RGW 在 RADOS 之上提供,MDS 则用于 CephFS 文件系统,不能把 MDS 当成其对象存储的中心元数据服务。Ceph 通过 CRUSH 计算数据位置,也避免了对中心对象位置查询表的依赖。

因此,只需要 S3 服务、重视宽松许可的团队,可以重点评估 RustFS;同时需要块、文件和对象存储的团队,则更有理由考虑 Ceph。无论选择哪种系统,都要检查节点、访问入口和共享基础设施是否存在单点故障。

So what?选型还得看业务需求

三、1.0.0 有哪些功能,边界在哪里

理解了许可证和架构差异,再来看实际功能。GA 公告列出的主要能力如下,具体使用时仍需核对启用条件和兼容范围:

类别 官方列出的主要能力
数据管理 桶与对象管理、分片上传、纠删码、数据分层、生命周期、S3 Tables
安全与访问 IAM、OIDC、STS 临时凭证、KMS 集成、服务端加密、审计、mTLS
可用性与扩展 分布式部署、存储池扩容、再平衡、自愈、站点复制与桶复制
运维 事件通知、OpenTelemetry、容量与健康检查、存储池退役

比功能名称更重要的是支持范围。S3 兼容不代表覆盖 AWS S3 的全部行为。 1.0.0 的兼容性说明列出了具体限制:例如不支持 ACL 授权,桶访问日志和表单上传校验和处理等方面仍有测试未通过。已有应用如果依赖这些行为,应先查对应版本的兼容性矩阵。

S3 Tables 是一个值得关注的扩展:RustFS 将 Apache Iceberg REST Catalog 集成到存储服务中,管理表的命名空间、元数据和快照提交,数据文件仍通过 S3 接口读写。采用这套 Catalog 时,可以少维护一个独立服务,查询和计算仍由 Spark 等引擎完成。不过,支持 Iceberg REST 协议并不意味着覆盖了 AWS S3 Tables 的全部 API 和托管能力。

S3 Tables 架构示意:Catalog 管理表元数据,数据文件经 S3 接口读写,计算由外部引擎完成(来源:RustFS 官方,RC 阶段示意)

多协议支持也需要分开看:WebDAV、FTP/FTPS 在标准构建中提供,但默认不启动相应服务;Swift 是可选编译功能;MCP(模型上下文协议)则通过独立适配组件,让 AI 应用访问 S3 存储,需要另外部署。当前 MCP 文档还提示旧构建入口可能失效,使用前应确认对应组件的位置和安装方法。

站点复制与桶复制也不同:前者涉及 RustFS 站点之间的身份、桶及元数据等状态协调,后者可将对象复制到符合要求的 S3 目标。两个系统都支持 S3,并不意味着它们能直接建立站点复制关系。实际选型时,先列出业务必需的功能,再验证接口、权限和异常处理,比单纯比较功能数量更有意义。

四、性能报告怎么看:写入亮眼,读取有差异

本文引用的 官方性能报告 发布于 2026 年 7 月 17 日,比较的是 RustFS 1.0.0-beta.10 与 MinIO AIStor 商业版 RELEASE.2026-06-06T02-44-06Z。它不是 GA 版对 MinIO 社区版的测试。

报告使用 Azure 上的 4 节点集群,每节点 4 块 300GB 磁盘、8 核 CPU、16GB 内存,系统为 Ubuntu 24.04。测试工具为 warp,覆盖 11 种对象尺寸,64 并发,每轮运行 5 分钟。

按报告结果,RustFS 的 PUT(写入)在全部 11 种对象尺寸上领先,比值为 1.05~2.85;GET(读取)则有快有慢。下面选取几个代表性尺寸:

对象尺寸 PUT 比值:RustFS / AIStor GET 比值:RustFS / AIStor
1KiB 1.49 1.04
4KiB 2.00 1.03
100KiB 2.60 0.72
1MiB 2.17 0.23
4MiB 2.85 1.26

比值大于 1 表示该项测试中 RustFS 领先,小于 1 表示 AIStor 领先。 2.85 倍表示约高出 185%,不是“提升 285%”。原表未明确标注绝对数值的计量单位,因此这里仅引用比值。

GET 的完整结果中,RustFS 在 1KiB~16KiB 各档小幅领先,在 32KiB、100KiB 和 1MiB 三档落后,在 4MiB 及以上测试档位再次领先。其中 1MiB 读取的 AIStor 原始数值约为 RustFS 的 4.4 倍,不能只看写入优势而略过这个差距。

这份报告说明,当时的 RustFS 写入表现值得关注,读取表现则明显受对象尺寸影响。由于测试由项目方提供,且使用的是 Beta 版本,这些结果更适合作为 GA 复测的参考,而非所有业务都会更快的依据。

备份、归档场景应同时测写入与恢复读取;图片服务和训练数据场景应重视 GET、混合负载及尾延迟。AI 训练并不天然“写多读少”,数据准备和训练读取要分开看。对象分布、缓存、并发、纠删码参数和网络条件,都应尽量贴近实际业务。

五、纠删码与迁移:数据可靠性要讲清楚

1. “12+4”有明确前提

看完读写性能,还要考虑磁盘故障后能否恢复数据,这就涉及纠删码。RustFS 将对象拆成数据分片,并计算校验分片,再把这些分片分散存放到同一纠删码集合的磁盘上。按官方 纠删码配置文档,默认校验分片数取决于每个集合的磁盘数:例如 4~5 盘集合默认有 2 个校验分片,8~16 盘集合默认有 4 个。

以 16 盘组成一个集合、采用 EC:4 为例,对应的就是“12 个数据分片 + 4 个校验分片”。在其余分片完整的前提下,可恢复最多 4 个缺失分片,理论数据容量占比为 12/16,即 75%。实际容量还要扣除文件系统和元数据开销,并预留修复空间。

如果这 16 块盘均匀分布在 4 台服务器上,一台离线就会失去 4 个分片。换一种分布,节点容错能力也会变化;能否继续读写,还取决于对应的 quorum,也就是读写所需的最少在线分片数。

单节点单磁盘没有 RustFS 层面的磁盘冗余;单节点多磁盘仍面临整机故障风险。需要节点级容错时,应规划多节点部署,并演练故障和恢复。纠删码不能替代独立备份。

2. 原地迁移有方案,加密对象尤其要注意

RustFS 在 2026 年 3 月发布过二进制替换迁移方案,示例使用的是 1.0.0-alpha.89,并列出站点复制、事件通知、在线配置和 LDAP/OIDC 等不能自动迁移的项目。这只能说明当时已有迁移路线,不能直接当作 1.0.0 的完整支持承诺。

更关键的是,1.0.0 默认发布构建不能直接读取 MinIO 的服务端加密对象,包括 SSE-S3、SSE-KMS 和 SSE-C。 对象能够列出、显示大小,不代表内容能够解密读取。特定迁移构建有额外支持,但也受源端密钥方案限制,详见 1.0.0 数据格式兼容说明。

因此,原地迁移前要核对源版本、目标版本、加密方式、历史版本和权限配置。完成备份后,先在副本上演练,再停止旧服务并切换。

另一条路线是通过源端 S3 接口读取数据,复制到新集群;加密对象由源端解密、目标端按需重新加密。普通复制未必保留全部历史版本、锁定信息和管理配置,切换前还需停止或控制源端写入,完成最后的增量同步与核验。

接口兼容、磁盘格式兼容和管理配置兼容是三件事。回退方案同样需要验证,不能默认 RustFS 写入的数据还能由 MinIO 直接读取。

六、动手验证:1Panel 与 Docker 两种方式

明确了功能和迁移边界,就可以搭建测试实例了。下面以 Ubuntu 云服务器为例,介绍两种安装方式,任选一种即可。先验证建桶、上传、下载和客户端连接,生产集群的容错与恢复还需另行验收。

方式一:通过 1Panel 应用商店安装

已有 1Panel 的读者可以直接进入应用商店。尚未安装时,可按 1Panel v2 安装文档 下载并执行脚本:

curl -fSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh -o quick_start.sh
sudo bash quick_start.sh

1Panel 安装示例

使用阿里云 ECS 时,也可以查看系统运维管理 OOS 的公共扩展程序。下图展示了 1Panel 安装入口,安装前确认扩展程序版本和适用系统即可。

阿里云 OOS 中的 1Panel 安装入口

在应用商店搜索 RustFS,按当前模板设置管理员凭证、端口和数据目录。官方商店条目支持 amd64、arm64;latest 镜像会随时间变化,安装前应确认实际版本。

1Panel 应用商店安装 RustFS 示例,界面以当前版本为准

默认情况下,9000 是 S3 API,9001 是控制台。通过可信网络访问 http://服务器IP:9001,使用设置的凭证登录;如果修改了映射端口,就使用修改后的地址。

如果容器反复重启,日志出现 Permission denied,应检查挂载目录权限。1.0.0 官方镜像以 UID/GID 10001:10001 运行,但其他镜像或面板模板可能覆盖用户设置。应先确认实际运行用户,再调整专用数据目录的属主,不要直接照搬旧教程里的 1000。

面板底层也是容器部署,排查时仍要回到镜像版本、运行用户和挂载配置,不能简单记成“1Panel 用 1000,Docker 用 10001”。

方式二:使用 Docker 部署

以下命令依据 RustFS Docker 文档 整理,镜像固定为 1.0.0。准备好 Docker Engine(文档要求至少 20.10),确认 9000、9001 端口未被占用。

先拉取镜像并创建持久化数据卷:

docker pull rustfs/rustfs:1.0.0
docker volume create rustfs-data

将两个凭证占位符替换为自己的值后再执行:

docker run -d \
  --name rustfs \
  --restart unless-stopped \
  -p 127.0.0.1:9000:9000 \
  -p 127.0.0.1:9001:9001 \
  -v rustfs-data:/data \
  -e RUSTFS_ACCESS_KEY='<your-access-key>' \
  -e RUSTFS_SECRET_KEY='<your-secret-key>' \
  -e RUSTFS_ADDRESS=':9000' \
  -e RUSTFS_CONSOLE_ADDRESS=':9001' \
  -e RUSTFS_CONSOLE_ENABLE=true \
  rustfs/rustfs:1.0.0 \
  /data

镜像名后的 /data 是数据目录参数。这里将端口绑定到服务器本机,云服务器用户可在自己的电脑上建立 SSH 转发;先替换用户名、服务器地址,并确认本地端口可用:

ssh -N -o ExitOnForwardFailure=yes \
  -L 9000:127.0.0.1:9000 \
  -L 9001:127.0.0.1:9001 \
  <ssh-user>@<server-ip>

保持连接,在电脑浏览器打开 http://127.0.0.1:9001;本地客户端通过 http://127.0.0.1:9000 连接 S3 API。需要长期远程访问时,再配置 HTTPS 和访问范围。

如果改用主机目录挂载,可以先创建供本实例使用的目录:

sudo install -d -o 10001 -g 10001 -m 0750 /srv/rustfs-data

然后把 -v rustfs-data:/data 换成 -v /srv/rustfs-data:/data。已有目录还需检查内部文件权限。

在服务器上检查运行状态与健康接口:

docker ps --filter name=rustfs
curl --fail http://127.0.0.1:9000/health

最后创建一个桶,上传文件后再下载,比较前后内容是否一致,并在重启容器后确认数据仍可读取。这个示例只有一个数据卷,属于单节点单磁盘形态,不提供 RustFS 层面的磁盘冗余。

RustFS 控制台的桶管理界面(来源:RustFS 1.0.0 GA 官方公告)

凭证配置别忽略

rustfsadmin / rustfsadmin 是公开的默认凭证,必须主动替换。1.0.0 的容器入口对缺失或默认凭证会告警,但仍可能继续启动,不能依赖它自动阻止不安全配置。

Access Key 建议使用大写字母和数字,不要直接使用可能含 / 的 Base64 字符串,否则会干扰 AWS SigV4 凭证作用域解析。Secret Key 应使用独立的强随机值;应用日常访问应使用限定权限的账号,而非管理员凭证。

多节点还涉及 RUSTFS_RPC_SECRET。未显式设置时,它由管理员凭证对派生,默认 Secret Key rustfsadmin 不能用于这条派生路径。各节点应使用一致的管理员凭证;若单独配置 RPC 密钥,应使用与管理员 Secret Key 不同的强随机值,并在所有节点保持一致。

七、我的判断:值得评估,是否替换要看验证结果

RustFS 1.0.0 已经值得进入 MinIO 替代方案的候选名单。宽松许可便于商业集成,S3 接口有助于接入现有应用,集成式 Iceberg Catalog 则为数据分析场景提供了新的选择。

真正决定能否替换的,还是三件事:现有应用能否正常工作,故障后能否按预期恢复,迁移与维护成本能否接受。对已经使用 MinIO 的团队,尤其要先清点加密对象、版本控制、权限和复制规则;对新项目,则可以从非关键数据开始验证。

GA 是一个正式的生产版本起点。把兼容性、业务负载和恢复流程测清楚,再决定替换范围,比单看语言、版本号或一张跑分表更可靠。


我是程序员天天困,持续分享编程干货。觉得有用的话,欢迎点赞、收藏和关注。你现在用的是什么对象存储?如果考虑换成 RustFS,最想先验证哪项能力?

相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
相关文章
|
17天前
|
前端开发 安全 中间件
《AgentScope 2.0实战指南》01 - 国内项目数最多的Agent框架
《AgentScope 2.0实战指南》是面向国产主流Agent框架的入门到生产落地教程,聚焦国内项目数最多的AgentScope 2.0——阿里通义实验室开源的生产级多智能体平台。全系列11节实战,从模型接入、工具调用、RAG知识库、跨会话长期记忆(ReMe)到带Web界面的完整问答助手,覆盖安全、高效、灵活、完备四大核心能力,助你零基础构建企业级智能体应用。
359 1
|
19天前
|
人工智能 数据可视化 数据挖掘
告别丑图表!2026最新数据可视化软件推荐
本文介绍2026年阿里云瓴羊Quick BI——集50+专业图表、AI智能小Q(问数/解读/报告Agent)、企业级数据溯源与MCP联动能力于一体的数据可视化平台。支持自然语言分析、一键美化、多源集成及钉钉/企微嵌入,已在能源、教育、零售等领域实现业务提效90%+。(239字)
|
6月前
|
弹性计算 人工智能 搜索推荐
阿里云服务器ECS独享型199元一年:u1实例2核4G,5M带宽,80G云盘,续费不涨价
2026年阿里云的“云服务器低价长效”特惠活动继续,云服务器ECS通用算力型u1实例2核4G配置199元/年,续费同价至2027年3月31日,适用于Web应用、企业办公、数据分析等场景。同时提供轻量应用服务器限时抢购,2核2G配置38元/年起,2核4G配置支持OpenClaw镜像快速部署AI助理。此外,还有经济型e实例等多款云服务器特惠。用户可根据需求选择,建议根据身份、技术能力、业务场景和长期规划综合考量。
|
存储 Kubernetes 调度
|
安全 BI 数据安全/隐私保护
分享三款性价比超高的AD域管理工具
目前很多企业利用Active Directory (AD )来确保网络环境安全并维护更便捷的管理用户帐户。但还是有很多复杂的问题需要工具来辅助解决,在选择什么样的工具这个问题上,企业通常需要遵守严格的预算限制。
1300 1
分享三款性价比超高的AD域管理工具
|
SQL 监控 数据可视化
完全开源!国内首个完全开源JAVA企业级低代码平台
随着新兴技术的快速发展,企业面临前所未有的机遇与挑战。JeeLowCode 是一款专为企业打造的 Java 企业级低代码开发平台,通过五大核心引擎和四大服务体系,简化开发流程,降低技术门槛,提高研发效率,助力企业加速数字化转型。平台支持多端适配、国际化、事件绑定等功能,广泛应用于 OA、ERP、IOT 等领域,提供强大的技术支持和灵活的解决方案。
763 5
|
机器学习/深度学习 人工智能 编解码
AI视觉新突破:多角度理解3D世界的算法原理全解析
多视角条件扩散算法通过多张图片输入生成高质量3D模型,克服了单图建模背面细节缺失的问题。该技术模拟人类多角度观察方式,结合跨视图注意力机制与一致性损失优化,大幅提升几何精度与纹理保真度,成为AI 3D生成的重要突破。
1798 0
|
Prometheus 监控 Cloud Native
Gin 集成 prometheus 客户端实现注册和暴露指标
Gin 集成 prometheus 客户端实现注册和暴露指标
728 0
|
SQL 存储 NoSQL
附PPT下载|DTCC演讲:降本增效,阿里云一站式数据库上云最佳实践
在第十三届中国数据库技术大会(DTCC 2022)上,阿里云数据库高级解决方案架构师王林平从上云路径、云上数据库使用实践及使用进阶等方案深入介绍了阿里云一站式数据库上云最佳实践。 本文内容根据演讲录音以及PPT整理而成。
附PPT下载|DTCC演讲:降本增效,阿里云一站式数据库上云最佳实践

热门文章

最新文章