
MinIO基本介绍
- MinIO是一款高性能/分布式 的对象存储 系统
对象存储:适合存储非结构化数据,比如图片、视频
- MinIO基于GO开发,兼容Amazon S3 API,简单轻量级
- MinIO是kubernetes的原生产品 ,广泛应用在云原生场景下,可以在使用在公共云、kubernetes发行版、私有云、边缘设备上
MinIO特点
优点
-
高性能对象存储
- 支持55GB/s读、35GB/s写。其读写速度在标准硬件上通常能达到接近网络带宽的极限。
- 对象存储,适合存储非结构化数据,比如图片、视频、音频等
-
兼容Amazon S3
- MinIO完全兼容Amazon S3 API,便于迁移和集成
- 兼容Amazon S3 API,避免供应商锁定,减少开发和运维学习成本
-
云原生友好
- MinIO 是 CNCF 的成员,提供了官方的 MinIO Operator 和 KES(MinIO 密钥加密服务),可以无缝地在 Kubernetes 上部署、管理和扩展。
- 提供唯一官方 Kubernetes Operator,对Prometheus 监控支持友好
- 原生 Operator + Helm Chart,支持 K8s 存储类(StorageClass),支持 CSI Driver,可替代本地 hostPath 做持久卷。
- 完美地融入了现代应用开发和部署范式,支持声明式配置和自动化运维。
-
纠删码技术
- 在保证数据可靠性的同时,比多副本机制拥有更高存储效率和更快重建速度
- 使用纠删码技术实现数据冗余,冗余仅需要 1.5倍磁盘容量,即可容忍1/2节点或磁盘掉线,比 3 副本冗余省 50% 磁盘
-
简单轻量级
- MinIO 是一个单一的静态二进制文件,部署和运维极其简单。通过极简的命令行参数即可启动一个生产可用的集群。
- 与Ceph 等重量级存储系统相比,MinIO 的学习曲线和运维成本要低得多。
-
强大的安全特性
- 支持静态数据加密(SSE-S3, SSE-C, SSE-KMS),与外部 KMS(如 HashiCorp Vault)集成。
- 支持 TLS/SSL 传输加密、基于策略的访问控制(IAM、STS)等。
缺点
-
功能范围限于对象存储
- MinIO 仅支持对象存储接口(S3),不支持块存储(如 iSCSI)或文件存储(如 NFS/SMB)协议。
- 如果你需要一个统一存储后端来同时满足虚拟机、容器和文件共享的需求,Ceph 可能是更合适的选择。
-
元数据搜索能力有限
- 虽然对象有标签,但 MinIO 本身不提供像 Elasticsearch 那样强大的元数据检索和查询引擎。
- 要实现"按内容查找文件",通常需要在外围构建索引服务。
-
社区版与企业版的差异
- 一些高级功能,如图形化操作台、直接式驱动器支持、防火墙功能、连续复制等,仅在商业企业版中提供。
-
自建运维责任
- 选择自建 MinIO,就意味着内部团队需要自行承担起运维、监控、升级和故障处理的全套责任,这与使用完全托管的云服务(如 AWS S3)的"免运维"体验不同。
延伸问题:Amazon S3是什么,兼容Amazon S3有什么好处?

Amazon S3是什么
- Amazon S3 API是一套基于Http/Https的Restful接口API标准
- 操作标准 :这套Restful接口API用于实现对象存储 所需的增删改查等 操作,如
CreateBucket (创建桶)
PutObject (上传一个文件到存储桶)
PUT(上传对象)
GET(下载对象)
DELETE(删除对象)
LIST(列出桶内对象)
设置权限/生命周期
分片上传
- ...
- 数据格式 :除了操作定义,这套API也定义了请求与响应的数据格式
头部信息
主体内容的格式
- 认证方式 :验证身份的方式
访问秘钥
签名
兼容Amazon S3的好处
-
可移植性和灵活性 (写一次到处可跑)
Amazon S3 API是对象存储领域的通用语言
,当一个软件或者云服务商兼容了Amazon S3之后,意味着完全可以理解和接收兼容Amazon S3的其他软件的交互指令不再绑定在某个固定的供应商身上
,只要兼容Amazon S3就可以移植迁移,几乎无迁移成本自由选择多云和混合云策略
,可以在 AWS S3、Google Cloud Storage、Microsoft Azure Blob Storage(兼容层)、阿里云 OSS、Backblaze B2 以及众多私有部署的存储解决方案(如 MinIO, Ceph)之间轻松迁移数据和工作负载。可以根据成本、性能、地理位置或服务特性选择最佳的后端存储,而无需重写代码。
-
丰富的生态系统
Amazon S3 API 已经成为对象存储领域事实上的标准
,已经有庞大的软件生态系统围绕它建立起来无缝集成现有工具
,已经有大量应用、程序库、媒体处理库都对Amazon S3提供了内置支持,只要自己的软件服务兼容Amazon S3,就能做到开箱即用
-
开发运维成本降低
成熟开发库
,基本所有主流编程语言都有成熟的AWS SDK库,可以直接使用用于开发统一技能
,因为Amazon S3 是一套统一标准,所以对于技术团队开发和运维而言,使用的技能都是统一的,减少培训学习成本代码复用
,因为Amazon S3是一套统一标准,所以不需要为了不同的云服务商编写不同的代码程序,可以做到一次编写,到处运行
MinIO适用场景
-
分布式对象存储-多媒体内容存储
- 适合存储
图片、视频、音频、备份
等非结构化数据 - 分布式冗余仅需要
1.5倍
磁盘容量,即可容忍1/2
的节点或磁盘掉线,比3副本
冗余节省50%磁盘
开销
- 适合存储
-
大数据/AI/机器学习后端存储
与 HDFS 的互补性
。作为 Hadoop HDFS、Spark、TensorFlow、PyTorch 等大数据和 AI 框架的后端存储,用于存放海量的训练数据、模型文件、中间结果和日志。卓越的 S3 兼容性
。MinIO 可以作为 HDFS 的替代或补充。与 HDFS 相比,MinIO 在对象存储模式下,解决了 HDFS 的 NameNode 单点瓶颈问题,并提供了更好的扩展性。高性能读写
。AI 训练通常是 I/O 密集型的,需要高速读取大量小文件或大文件。MinIO 针对高性能进行了优化,能够满足 GPU 集群对数据吞吐的苛刻要求。成本效益
。相比于昂贵的商业存储方案,使用 MinIO 在标准服务器上构建存储层可以显著降低成本,同时保持高性能。
-
云原生后端存储
- 在 Kubernetes 环境中,作为
有状态应用
的持久化存储后端
。- 如自建网盘
- 内容管理系统
- 用户文件上传服务
- Kubernetes 中的微服务应用
- DevOps CI/CD 流程中的制品仓库
- 在 Kubernetes 环境中,作为
-
数据湖底层存储
- MinIO 支持多引擎数据湖架构(如 Hive、Presto、Spark),提供统一的对象存储接口。可与 Snowflake、SQL Server 等数据分析平台集成,无需移动数据即可查询