MINIO (三)分布式部署

分部署MINIO简介单机分布式部署MINO多机分布式MINIO部署分布式MINIO注意事项

分部署MINIO简介

分布式部署MINIO主要是多机多磁盘照应MINIO。

 高性能:作为高性能对象存储,在标准硬件条件下它能达到55GB/s的读、35GG/s的写速率

 可扩容:不同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支持

 Lambda计算: Minio服务器通过其兼容AWS SNS / SQS的事件通知服务触发Lambda功能。支持的目标是消息队列,如Kafka,NATS,AMQP,MQTT,Webhooks以及 Elasticsearch,Redis,Postgres和MySQL等数据库。

 有操作页面

 功能简单: 这一设计原则让MinIO不容易出错、更快启动

 支持纠删码:MinIO使用纠删码、Checksum来防止硬件错误和静默数据污染。在最高冗余度配置下,即使丢失1/2的磁盘也能恢复数据

为了了解它的构造 和原理,我将进行几次部署和测试,以下展示过程。

单机分布式部署MINO

经过多次实验,MINIO分布式部署也是需要基于单机部署。

分布式搭建的流程和单节点基本一样,Minio服务基于命令行传入的参数自动切换成单机模式还是分布式模式。

分布式Minio单租户存在最少4个盘最多16个盘的限制(受限于纠删码)。这种限制确保了Minio的简洁,同时仍拥有伸缩性。如果你需要搭建一个多租户环境,你可以轻松的使用编排工具(Kubernetes)来管理多个Minio实例。

经过文档和网络资料,分布式部署需要同意管理员用户和密码。并且设置磁盘地址(可访问),要求是磁盘内没有任何数据或者文件。

以下是我的单机部署代码:

set MINIO_ACCESS_KEY=minioadmin

set MINIO_SECRET_KEY=minioadmin

minio.exe server http://localhost/D:MINIO/DATA1 http://localhost/D:MINIO/DATA2

http://localhost/D:MINIO/DATA3 http://localhost/D:MINIO/DATA4

解释下,单机部署的挂接了4块磁盘,把D盘MINIO文件夹下添加了4个子文件夹,每个文件夹当作一个磁盘挂接到MINIO的服务器上去,对于MINIO来说就是拿到了4个磁盘,可以进行纠删码对照,服务方可正常启动。

运行完了以后,我们按照之前单磁服务器的方法,创建一个Bucket,上传文件,去查看磁盘储存情况。 首先,这是我上传的文件信息:

可以看到大小425KB左右。 接下来去查看服务器磁盘的存储情况:

每个磁盘里都有这个testbk的文件,每个文件夹下面都有一个关于我上传的文件的同名子文件夹。 子文件夹中,存在一个坐标文件和一个Part数据,数据的样式为下图: 我们可以看到这个part.1文件大小是213KB,大概是我们上传的文件的一半,所以可以猜测一下分布式部署的原理,以及他的纠错和恢复功能,哪怕是磁盘丢失一半的数据,也是可以恢复出文件的,这样会更加安全。

多机分布式MINIO部署

有了单机分布式部署的经验,多机实现起来就比较简单了。

首先我们还是在一台机器上设置好MINIO的服务以及文件夹。 我们先运行起来一个服务器,设置如下:

set MINIO_ACCESS_KEY=minioadmin

set MINIO_SECRET_KEY=minioadmin

minio.exe server http://localhost/D:MINIO/DATA1 http://localhost/D:MINIO/DATA2

http://10.23.215.87/D:MINIO/DATA1 http://10.23.215.87/D:MINIO/DATA2

运行以后没有报错,但是出现了以下画面:

意思大概是有2块磁盘还没有上线,在等待上线中。

我们需要在另外一台服务器上使用相同的配置来运行。

这里直接跳过相同的操作步骤,来看看结果: 两台服务器的结果是一样的,只是IP地址不同,分别是两台服务器的IP。 我们来实验一下: IP1: IP2: 可以看到两个IP都是可以访问的,那么登录进去看看。

上传一个微信程序试试,看看服务器的存储情况: 接下来是结果: 我们可以看到结果是一样的,无论用哪个IP地址登录,存储是一样的,这说明服务器之间MINIO是实时通信的,这样对于我们来说,分布式存储不仅提供了更加方便,而且是更加安全的选择,无论是文件的存储还是文件的安全,有一定的保障。

分布式MINIO注意事项

运行分布式MinIO的所有节点都需要具有相同的访问密钥和密钥才能连接节点。为此,在执行MinIO服务器命令之前,必须在所有节点上将访问密钥和密钥作为环境变量MINIO_ACCESS_KEY和MINIO_SECRET_KEY导出。

运行分布式MinIO的所有节点都需要处于同构环境中,即相同的操作系统,相同数量的磁盘和相同的互连。

如果需要设置域,则应定义并导出MINIO_DOMAIN环境变量,域名,详见

MinIO分布式模式需要新目录。如果需要,可以与其他应用程序共享驱动器。您可以使用minio独有的子目录来完成此操作。例如,如果已在/ export下挂载卷,则将/ export / data作为参数传递给MinIO服务器。

运行分布式MinIO实例的服务器应该相隔不到3秒。您可以使用NTP作为最佳实践,以确保跨服务器的一致时间。

截至目前,在Windows上运行Distributed MinIO是实验性的。请谨慎行事。

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: