Minio开始割开源的韭菜了?
最早发现MinIO,也是在寻找亚马逊S3的开源替代版,而MinIO也不负所望地凭借它免费开源(AGPLv3许可证)和简洁易用部署方便的特点成为了我的对象存储解决方案。然而最近发现它的docker服务会时不时的中断,虽然重启就能解决问题,但总在关键时刻掉链子的感觉还是非常难受。于是在今天重启看到版本太旧的提示后,就自然而然地拉取了最新版(RELEASE.2025-05-24T17-08-30Z
)。
2025-06-18 18:01:41
You are running an older version of MinIO released 3 months before the latest release
然后我就被最近版的Web UI吓了一跳。
不是,我的那些熟悉管理界面呢?密钥管理、权限管理、策略管理通通消失了,只剩查看Buckets的功能。赶紧再启动旧版本看一眼:
确实变了,后台管理页面现在只剩“后台”没得“管理”了。赶紧又查看了官方文档,发现配置方式发生了改变,新增了config.env
文件进行管理,于是我一度以为是自己配置出了问题。 直到我在反复尝试无果后查看了他们的issue board (https://github.com/minio/object-browser/issues/3546#issuecomment-2911118119)
翻译一哈说是:
“最初官方给社区版搞了个基础的管理界面,但现在我们突然发现,给社区版和商业版分别搞一套图形化控制台,简直难如登天。为啥呢?因为搞一个控制台可不只是前端后端写写代码这么简单,还得有设计、用户体验,甚至还要做安全测试,这得一个大团队齐心协力才能搞定。所以,我们现在只能推出一个功能增强的浏览器,把之前没人维护的管理 UI 直接砍掉。”
(哎等等,那你就别搞两套UI啊?就用一套一样的呀)
(再等等,那你好歹留着旧代码,为什么要全删除啊?)
这位老哥继续补充说:
“和 S3 RESTful API 那种安全措施到位的设计相比,当前的管理控制台那些操作的安全防护简直弱爆。要是没人好好维护,那代码迟早得出问题,分分钟就引入安全漏洞,还可能让用户对社区版的功能产生不切实际的幻想。之前就出过“控制台文件名掩码漏洞”和“元数据存储桶名称绕过”这种问题。”(这……能把自己项目的bug说得这么正义凛然……)
但是,他代表MinIO 团队也表了个态:
“只要社区有人愿意站出来,长期负责管理控制台的开发和安全维护,他们也欢迎大家提交 pull request。而且还信誓旦旦地说会对符合要求的 PR 进行仔细审查。”(这话说得漂亮……那你干嘛删除已有的代码?)
现在让我介绍下,这位印度老哥 —— Harshavardhana, 是 MinIO 的联合创始人之一。他与 Anand Babu Periasamy、Garima Kapoor 于 2014 年 11 月共同创立了 MinIO,并在早期主导了 MinIO 的开发工作,对 MinIO 的技术架构和发展方向起到了关键作用。
既然创始人都这么说了,看来是大局已定。但一众拥护开源的用户们肯定无法接受。
下面两位老哥说出了大家的心声:
cobycloud:
这段发言听起来更像是:
我们故意让所有人都用不了这些高级功能,因为我们不想增加任何额外的工作量去区分免费和付费的版本。
我们对开源贡献不感兴趣了,这就是为什么我们删除了代码,打所有人一个措手不及,并且没有给用户留下一个可以作为社区进行 “长期开发” 的实际切入点。
— Minio我一点也不惊讶地发现有数百人正在寻找替代方案并努力寻找替代品。
hexxone:
你们声称对社区贡献持开放态度,但却没有提前公告这一变化。你们没有以任何方式提前向社区寻求帮助或征询意见。
现在,你们正在擅自移除、关闭并结束有关该主题的讨论,提供相同的复制粘贴式回答。 这违背了开源开发和透明决策过程的原则。
你们之所以选择 “先斩后奏” 是因为你们很清楚会有什么后果。
不难想象,MinIO希望通过削弱社区版的功能,来凸显其商业版的优势,从而引导用户购买付费版本。好那我们看下商业版的起步价:96,000!刀乐!每年!
好好好!这下亚马逊S3(甚至是国内大厂的S3)反而更有性价比了,返璞归真了属于是。
我们没本事根除bug
但是,借根除bug之名敛财的胆子
还是有,而且很大!
1.Solution / 怎么办
现在有四个办法:
- 付钱(供企业家金主和土豪选择)
- 退回到最后拥有管理UI的版本
RELEASE.2025-04-22T22-12-26Z
(短期内推荐) - 使用硬核mc命令行工具 (中期内推荐)
- 寻找替代项目(Garage、Ceph、SeaweedFS、OpenIO、JuiceFS和Apache Ozone等; 长远考虑推荐)
2.退回版本
最简单直接的办法是拉取最近一个带有后台管理功能的版本,也就是在2025年4月22日发布的RELEASE.2025-04-22T22-12-26Z
。然而,随着时间的推移,被发现的bug所带来的风险将逐渐积累,相应的功能也会逐渐落后。因此有中长期部署或应用场景的,还得及早选择替代方案(或者花费$96000/Year享受VIP待遇)。
docker pull reg.orcy.net.cn:5000/library/minio:v0.1
# 私有仓库,旧版本docker镜像
3.mc命令行工具
是的,目前的MinIO只是移除了UI管理界面,实际上依然可以通过mc命令行工具进行设置。但是既然MinIO迈出了第一步,很难说他们会不会在后续进一步压缩社区版的操作管理空间,所以可作为中短期内的过渡性措施。
具体操作命令可以参考官方文档(https://min.io/docs/minio/linux/reference/minio-mc.html)
其中关于access key的操作方法总结如下:
查看 Access Key
- 可以使用
mc alias list
命令查看已配置的服务别名及其关联的 S3 服务 URL。
管理 Access Key
- 添加新的 Access Key(通过配置新的服务别名) :
使用 mc alias set
命令可以添加新的服务别名,并在过程中提供新的 Access Key 和 Secret Key。例如:
mc alias set ALIAS HOSTNAME ACCESS_KEY SECRET_KEY
-
将
ALIAS
替换为要关联到 S3 服务的名称。 -
将
HOSTNAME
替换为 S3 服务的 URL 终端节点或 IP 地址。 -
将
ACCESS_KEY
和 `SECRET_KEY 替换为 S3 服务上用户的访问密钥和秘密密钥。 -
修改现有的 Access Key:
如果需要修改已配置的服务别名的 Access Key,可以先删除旧的服务别名,然后重新配置新的 Access Key 和 Secret Key 。例如:
mc alias remove ALIAS
mc alias set ALIAS HOSTNAME NEW_ACCESS_KEY NEW_SECRET_KEY
- 设置权限:
权限管理通常在 MinIO Server 端进行。可以在 MinIO Server 的管理界面或通过 mc admin
命令来设置用户权限。例如,使用 mc admin user add
命令添加用户并分配策略:
mc admin user add ALIAS/ACCESS_KEY SECRET_KEY
mc admin policy set ALIAS POLICY --user=ACCESS_KEY
- 其中
POLICY
是要分配给用户的策略名称,如readwrite
、admin
等。
4.替代工具
(1)object-browser
从官方提供的“炸裂更新”中可以看到,原生UI控制台功能被转移到了一个新项目object-browser 中。理论上按照该项目的安装部署方式,可以访问到MinIO服务并进行后台管理。那么这应该是目前最接近“原生”的管理体验了。我看了下,没有尝试,因为没有看到docker版发布,不便于在NAS上部署。
顺便喵了眼issue,果然一大堆被强制关闭的声讨檄文:
(2)Garage
Garage被认为是最有可能替代MinIO的选项,不过它目前缺乏Web管理界面,但有一个名为Garage Web UI的开源项目正在填补这一空白。
有兴趣的同学可以进一步了解。我先用上述方案凑合用了。
(3)RUSTFS(国产,现已开源)|更新于25年7月3日
RustFS 是一款用 Rust 语言开发的国产开源对象存储方案,因此理论上可以继承 Rust的内存安全和高性能的特性。它的设计理念本身就是为了对标 MinIO,提供高性能、兼容 S3 协议的国产化替代方案。之前对RustFS的了解主要来自官网,虽然宣称开源但一直没有真开放,普通用户也无法测试部署。
但在昨天(25年7月2日),他真的开源了。github:https://github.com/rustfs/rustfsgithub.com/rustfs/rustfs镜像也在上个月底悄悄上线(https://quay.io/repository/rustfs)。
quay.io/rustfs/rustfs
文档链接放这:Linux 安装 RustFS | RustFS
推荐大家尝试。过阵子我也会尝试部署看看效果。