MinIO-基本介绍(一)基本概念、特点、适用场景

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 流程中的制品仓库
  • 数据湖底层存储

    • MinIO 支持多引擎数据湖架构(如 Hive、Presto、Spark),提供统一的对象存储接口。可与 Snowflake、SQL Server 等数据分析平台集成,无需移动数据即可查询
相关推荐
golang学习记3 小时前
Go 1.25 新特性:正式支持 Git 仓库子目录作为 Go 模块
后端
Penge6663 小时前
一文读懂 ucrypto.Md5
后端
Terio_my5 小时前
Spring Boot 缓存集成实践
spring boot·后端·缓存
Broken Arrows5 小时前
k8s学习(一)——kubernetes重要基础概念概述
学习·容器·kubernetes
hello_2505 小时前
云原生架构与GitOps技术栈介绍
云原生·架构
karry_k5 小时前
JMM与Volatitle
后端
数字化顾问6 小时前
“AMQP协议深度解析:消息队列背后的通信魔法”之核心概念与SpringBoot落地实战
开发语言·后端·ruby
武子康7 小时前
大数据-115 - Flink DataStream Transformation Map、FlatMap、Filter 到 Window 的全面讲解
大数据·后端·flink
用户4099322502127 小时前
转账不翻车、并发不干扰,PostgreSQL的ACID特性到底有啥魔法?
后端·ai编程·trae