一、minio的特征
1、高性能
MinIO 是一种高性能、S3 兼容的对象存储。它专为大规模 AI/ML、数据湖和数据库工作负载而构建,并且它是由软件定义的存储。不需要购买任何专有硬件,就可以在云上和普通硬件上拥有分布式对象存储。MinIO拥有开源 GNU AGPL v3 和商业企业许可证的双重许可。
2、简单
简单性是百万兆次级数据基础设施的基础 - 无论是在技术上还是在操作上。MinIO使用和部署非常简单,没有其他对象存储可以让您在最快的时间内实现下载到生产环境的部署。
3、高速率
MinIO 是世界上最快的对象存储,没有之一。在 32 个 NVMe 驱动器节点和 100Gbe 网络上发布的 GET/PUT 结果超过 325 GiB/秒和 165 GiB/秒。
4、公有云、私有云支持
通过原生 Kubernetes 运营商集成,MinIO 支持公共云、私有云和边缘云上所有主要的 Kubernetes 发行版。
5、高可靠性
Minio是轻量级的软件,所以架构上也没有这么复杂,他使用操作系统的文件系统作为存储介质,我们在向任意节点写数据的时候,minIO会自动同步数据到另外的节点,而机制叫做erasure code(纠删码)来保证集群的稳定,保证数据可用,所以我们建议至少使用4个节点来构建集群。
如果一个N节点的分布式MinIO,只要有N/2节点在线,数据就是安全的。不过至少需要N/2+1个节点才能进行写操作。比如:我们的集群有3个节点,每个节点上一块盘,就算有1两个节点宕机,这个集群仍然是可读的,但是,我们需要2个节点才能让集群写数据。这就是为什么我们至少要有3个以上的节点来构建集群。
Minio采用Reed-solomon code将对象拆分成N/2数据和N/2奇偶检验快,这就意味着如果是12块盘,一个对象将会被分成6个数据块、6个奇偶检验快,可以丢失任意6块盘(不管存放的数据快还是奇偶检验快),当然可以从剩下的盘中的数据恢复。
6、去中心化
Minio采用去中心化的无共享架构,对象数据被打散存放在不同节点的多块硬盘,对外提供统一命名空间访问,并通过负载均衡或者DNS轮询在各个服务器之间实现负载均衡。MINIO整个集群是由多个角色完全相同的节点组成,没有特殊节点,任何一个节点宕机,都不会影响整个集群,对象被分片打散之后存放在不同节点的多块硬盘上,对外提供统一的命名空间,通过Web负载均衡或DNS轮询(Round Robin)的方式在各个节点上实现负载均衡。每个节点都能兼容S3接口
7、统一域名访问
Minio集群扩展加入了新的集群或者桶后,对象存储的客户端程序需要通过统一的域名/url来访问数据对象,这个过程涉及了etcd与CoreDns
8、lambda计算与持续备份
Minio支持lambda计算通知机制,即桶中的对象支持事件通知机制。当前支持的事件类型有:对象上传、对象下载、对象删除、对象复制等。当前支持事件接受系统有:redis、NATS、AMQP、Kafka、mysql、elasticsearch等。
对象通知机制增强了Minio的扩展性,可以让用户通过自行开发来实现某些Minio未实现的功能。比如基于元数据的检索、与用户业务相关的计算等。同时也可以通过这个机制进行快速有效的增量备份。
9、对象存储网关
Minio除了可以作为存储系统服务外,还可以作为网关,后端可以与NAS系统、HDFS系统等分布式文件系统或者S3、OSS这样的第三方存储系统。有了Minio网关,就可以为这些后端系统添加S3兼容的API,便于管理和移植,因为S3API已经是对象存储界事实的标注。
10、统一的命名空间
Minio有两种集群部署方式,一种是常见的本地分布式集群部署,一种是联盟模式部署。本地分布式集群部署即在多个本地服务器节点部署Minio服务,并将其组成单套分布式存储集群,并提供统一命名空间和标注的S3访问接口。联盟部署则是将多个本地Minio集群在逻辑上组成了统一命名空间,实现近乎无线的扩展与海量的数据规模管理,这些集群都可以在本地或者分布在不同地域的数据中心。
Minio详解:https://www.minio.org.cn/
二、单点minio存储搭建
1、下载minio镜像
https://dl.min.io/server/minio/release/linux-amd64/minio
2、创建保存的目录,并赋予权限
/home/minio:将下载的minio放入此目录
/home/mindata:指定minio存储数据的目录
3、编辑/etc/systemd/system/minio.service,输入以下内容
[Unit]
Description=MinioService
Documentation=https://docs.minio.io/
[Service]
Environment=“MINIO_ACCESS_KEY=admin”
Environment=“MINIO_SECRET_KEY=12345678”
ExecStart=/home/minio/minio server /home/mindata/
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
配置说明:
1.1 配置用户为admin:Environment=“MINIO_ACCESS_KEY=admin”
1.2 配置用户密码为12345678:Environment=“MINIO_SECRET_KEY=12345678”
1.3 配置启动minio文件的路径以及存储数据的目录:ExecStart=/home/minio/minio server /home/mindata/
1.4 配置启动失败重启:Restart=on-failure RestartSec=15
4、启动Minio服务
(1)启动服务:systemctl start minio.service
(2)查看启动日志:journalctl -u minio.service –f
(3)查看mino服务状态:systemctl status minio.service
5、登录minio的管理端
(1)打开IE浏览器,在地址栏输入http://192.168.0.101:9000
(2)出现以下登录界面,输入/etc/systemd/system/minio.service配置文件中定义的用户名和密码
(4)登录后的状态,如下图:
6、开启防火墙对应的端口号:
本文至此结束,后续完成集群部署,再分享部署环境。