赞
踩
minio 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
minio具备以下特点
数据保护
分布式minio采用 erasure code来防范多个节点宕机和位衰减bit rot。
分布式minio至少需要4个节点,使用分布式minio自动引入了纠删码功能。
高可用
单机minio服务存在单点故障,相反,如果是一个N节点的分布式minio,只要有N/2节点在线,你的数据就是安全的,可以正常进行读取对象操作。不过你需要至少有N/2+1个节点来创建新的对象
例如,一个8节点的minio集群,每个节点一块盘,就算4个节点宕机,这个集群仍然是可读的,不过你需要5个节点才能写数据。
限制
分布式minio单租户存在最少4个盘最多16个盘的限制(受限于纠删码)。这种限制确保了minio的简洁,同时仍拥有伸缩性。如果你需要搭建一个多租户环境,你可以轻松的使用编排工具(Kubernetes)来管理多个minio实例。
注意,只要遵守分布式minio的限制,你可以组合不同的节点和每个节点几块盘。比如,你可以使用2个节点,每个节点4块盘,也可以使用4个节点,每个节点两块盘,诸如此类。
一致性
minio在分布式和单机模式下,所有读写操作都严格遵守read-after-write一致性模型。
minio支持单机部署及分布式部署两种方式:
minio只支持纠删码冗余模式,纠删码是一种恢复丢失和损坏数据的数学算法, minio采用Reed-Solomon code将对象拆分成N/2数据和N/2 奇偶校验块。 这就意味着如果是12块盘,一个对象会被分成6个数据块、6个奇偶校验块,你可以丢失任意6块盘(不管其是存放的数据块还是奇偶校验块),你仍可以从剩下的盘中的数据进行恢复。
纠删码的工作原理和RAID或者复制不同,像RAID6可以在损失两块盘的情况下不丢数据,而minio纠删码可以在丢失一半的盘的情况下,仍可以保证数据安全。 而且minio纠删码是作用在对象级别,可以一次恢复一个对象,而RAID是作用在卷级别,数据恢复时间很长。 minio对每个对象单独编码,存储服务一经部署,通常情况下是不需要更换硬盘或者修复。minio纠删码的设计目标是为了性能和尽可能的使用硬件加速。
规格说明 | 参数说明 |
---|---|
最大驱动器数量 | 16 |
最小驱动器数量 | 4 |
读仲裁 | N / 2 |
写仲裁 | N / 2+1 |
Web浏览器上传大小限制 | 5 GB |
最大桶数 | 无限额 |
每桶最大对象数 | 无限额 |
最大对象大小 | 5 TB |
最小对象大小 | 0 B |
每次PUT操作的最大对象大小 | 5 GB |
每次上传的最大Part数量 | 10,000 |
Part 大小 | 5 MB到5 GB. 最后一个part可以从0 B到5 GB |
每次list parts请求可返回的part最大数量 | 1000 |
每次list objects请求可返回的object最大数量 | 1000 |
每次list multipart uploads请求可返回的multipart uploads最大数量 | 1000 |
yum install wget
wget https://dl.minio.io/server/minio/release/linux-amd64/minio
chmod +x minio
mv minio /usr/bin
直接关闭防火墙
[root@node27 ~]# systemctl stop firewalld
[root@node27 ~]# systemctl disable firewalld
开启防火墙,允许9000~9010端口或是9000端口访问
[root@node27 ~]# firewall-cmd --zone=public --add-port=9000:9010/tcp --permanent
[root@node27 ~]# firewall-cmd --zone=public --add-port=9000/tcp --permanent
[root@node27 ~]# firewall-cmd --reload
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
Minio是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL
执行minio server </local-path>
命令,可以将本地目录通过s3协议共享出去
默认访问端口为9000,访问对应IP地址即可,如http://172.16.21.27:9000
示例如下,将/disk01目录通过s3协议共享出去
minio server /disk01/
启动一个分布式minio实例,只需要把硬盘位置做为参数传给minio server命令即可,然后在所有其它节点运行同样的命令
示例:存在节点27、28、29、233、234、235六个节点,每个节点有两个磁盘,分别挂载在/disk01和/disk02目录下
所有节点下执行命令如下,之后访问任意节点的9000端口即可访问到分布式minio集群数据
export minio_ACCESS_KEY=user0001;
export minio_SECRET_KEY=user0001;
minio server http://10.0.0.27/disk01 http://10.0.0.27/disk02 http://10.0.0.28/disk01 http://10.0.0.28/disk02 http://10.0.0.29/disk01 http://10.0.0.29/disk02 http://10.0.0.233/disk01 http://10.0.0.233/disk02 http://10.0.0.234/disk01 http://10.0.0.234/disk02 http://10.0.0.235/disk01 http://10.0.0.235/disk02
1st disk is already being used in another erasure deployment.
export minio_ACCESS_KEY=user01;export minio_SECRET_KEY=user01;
export minio_STORAGE_CLASS_STANDARD=EC:3
minio Client (mc)为ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案。它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4)
直接下载二进制文件,拷贝至/usr/bin/目录运行即可
yum install wget
wget https://dl.minio.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/bin/
通用命令:mc config host add <storage-name> <s3-endpoint> <ACCESS_KEY> <SECRET_KEY>
参考示例如下:
mc config host add myminion http://10.0.0.27:9000 user0001 user0001
当与minio成功连接完成后,可通过以下命令进行访问操作
mc config host {}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。