1综述
1.1 简介
MinIO 是在 Apache License v2.0 下发布的高性能对象存储。 它是与(亚马逊) Amazon S3 云存储服务兼容的 API。MinIO 是一个高性能的对象存储原生支持 Kubernetes 部署的解决方案。
MinIo 是一个非常轻量的服务,它可以存储⼤容量的⾮结构化数据,例如图⽚、视频、⽇志⽂件、备份数据和容器/虚拟机镜像等。对于⼤多数的企业来说,这可以说是最为理想的存储媒介了。而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。
1.2 基础概念
Object:存储到MinIo的基本对象,如文件字节流,Anything
Bucket:用来存储Object的逻辑空间。每个Bucket之间的数据是相互隔离的。对于客户端而言,就相当于一个存放文件的顶层文件夹。
Drive:即存储数据的磁盘,在MiniO启动时,以参数的方式传入。Minio中所有的对象数据都会存储在Drive里
Set:即-组Drive的集合,分布式部署根据集群规模自动划分一个或多个Set,每个Set中的Drive分布在不同位置。一个对象存储在一个Set上。一个对象存储在一个Set上,一个集群划分为多个Set,一个Set包含的Drive数量是固定的,默认由系统根据集群规模自动计算得出,一个Set中的Drive尽可能分布在不同的节点上。
1.3优点 特性
- 部署简单,支持各种平台
- 高性能海量存储,支持单个对象最大5TB
- 兼容 Amazon S3接口
- SDK 支持:有类似 Java、Python 或 Go 等语言的 sdk 支持
- 数据保护:即使损坏一般的磁盘依然可用数据恢复
- 高性能:作为一款高性能存储,在标准硬件条件下,其读写速率分别可以达到 55Gb/s 和 35Gb/s。并而 MinIO 支持一个对象文件可以是任意大小,从几kb到最大5T不等。
- 可扩展:不同MinIO集群可以组成联邦,并形成一个全局的命名空间,并跨越多个数据中心
- 云原生:容器化、基于K8S的编排、多租户支持
- Amazon S3兼容:Minio使用Amazon S3 v2 / v4 API。可以使用Minio SDK,Minio Client,AWS SDK和AWS CLI访问Minio服务器。
- 可对接后端存储: 除了Minio自己的文件系统,还支持DAS、 JBODs、NAS、Google云存储和Azure Blob存储。
- SDK支持: 基于Minio轻量的特点,它得到类似Java、Python或Go等语言的sdk支持
- GO SDK: https://github.com/minio/minio-go
- JavaSDK: https://github.com/minio/minio-java
- PythonSDK: https://github.com/minio/minio-py
- Lambda计算: Minio服务器通过其兼容AWS SNS / SQS的事件通知服务触发Lambda功能。支持的目标是消息队列,如Kafka,NATS,AMQP,MQTT,Webhooks以及Elasticsearch,Redis,Postgres和MySQL等数据库。
- 有操作页面
- 功能简单: 这一设计原则让MinIO不容易出错、更快启动
- 支持纠删码:MinIO使用纠删码、Checksum来防止硬件错误和静默数据污染。在最高冗余度配置下,即使丢失1/2的磁盘也能恢复数据
最近会分篇章详细介绍文件的存储,欢迎关注。