一、基础环境

本文档采用二进制进行MINIO分布式集群搭建,根据官方建议要求,生产环境至少四块硬盘,这样的话可以做到,挂掉一块硬盘集群依然可以读写,挂掉两块硬盘集群依然可读。

二、四节点搭建方式

1、准备机器资源

每台主机分配两块硬盘,一块作为系统盘,另一块作为MINIO数据盘。分布式MINIO里的节点时间差不能超过3秒,你可以使用NTP来保证时间一致。

主机地址MINIO数据盘挂载路径操作系统
192.168.88.11/data/minio_dataCentOS 7.9
192.168.88.12/data/minio_dataCentOS 7.9
192.168.88.13/data/minio_dataCentOS 7.9
192.168.88.14/data/minio_dataCentOS 7.9

2、创建挂载路径

在所有的节点上创建挂载目录,并把磁盘挂载到目录上。关于磁盘的挂载,自行了解。需要注意的是分布式MINIO使用的磁盘里必须是干净的,里面没有数据。

为了便于扩容使用LVM对分区进行管理,PV为sdb1,VG为minio,LV为/dev/minio/data

mkdir -p /data/minio_data
mount /dev/minio/data /data/mini_data
记得修改/etc/fstab,开机自动挂载。

3、上传MINIO和创建启动脚本

所有节点使用统一的目录存放MINIO可执行文件和启动脚本。

mkdir -p /opt/minio

首先需要去下载MINIO:https://dl.minio.io/server/minio/release/linux-amd64/minio

将MINIO可执行文件上传到/opt/minio,然后在相同的目录创建启动脚本start.sh,脚本文件内容如下:

#!/bin/bash
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=test@minio
 
/opt/minio/minio server \
http://192.168.88.11/data/minio_data \
http://192.168.88.12/data/minio_data \
http://192.168.88.13/data/minio_data \
http://192.168.88.14/data/minio_data

另一种简洁的写法:

export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=test@minio
 
/opt/minio/minio server \
http://192.168.88.{11...14}/data/minio_data
分布式MINIO里所有的节点需要有同样的ACCESS_KEY和SECRET_KEY,这样这些节点才能建立联接。为了实现这个,你需要在执行minio server命令之前,先将ACCESS_KEY和SECRET_KEY引入环境变量。

另外别忘了需要赋予miniostart.sh这两个文件可执行权限。

为了方便管理MINIO,编写服务脚本,将MINIO注册为服务。

[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
 
[Service]
WorkingDirectory=/opt/minio/
ExecStart=/opt/minio/start.sh
 
Restart=on-failure
RestartSec=5
 
[Install]
WantedBy=multi-user.target

脚本编写完成后,执行下面的命令注册服务。

systemctl daemon-reload

4、启动集群

在所有节点上启动MINIO服务,并且配置为开机自动启动。

systemctl start minio.service
systemctl enable minio.service

5、访问集群

使用浏览器输入地址:http://任意节点IP:9000,用户名密码为前面设置的MINIO_ACCESS_KEYMINIO_SECRET_KEY,创建Bucket并上传文件测试。

常见的错误是Server not initialized, please try again,说明集群没有搭建成功,这个就需要你去根据日志排错了。

三、双节点、双挂载搭建方式

根据官方文档,对机器数量并没有硬性要求,只是对硬盘数量有要求,亦可采用双节点、双挂载的方式搭建,甚至可以单节点、四挂载。

这里说一下思路,如果使用两台机器搭建,那么每台机器挂载两块磁盘,启动两个MINIO进程,使用两个不同的端口即可。同理,一台机器上挂载四块磁盘,启动四个MINIO进程也是可以的。

下面的启动脚本示例,使用两台机器进行部署,两个脚本需要一起执行。

start1.sh

#!/bin/bash
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=test@minio

/opt/minio/minio server --address ":9001" \
http://192.168.88.11:9001/data/minio_data1 \
http://192.168.88.11:9002/data/minio_data2 \
http://192.168.88.12:9001/data/minio_data1 \
http://192.168.88.12:9002/data/minio_data2

start2.sh

export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=test@minio

/opt/minio/minio server --address ":9002" \
http://192.168.88.11:9001/data/minio_data1 \
http://192.168.88.11:9002/data/minio_data2 \
http://192.168.88.12:9001/data/minio_data1 \
http://192.168.88.12:9002/data/minio_data2

更多内容请阅读官方文档了解:https://docs.min.io/cn/minio-quickstart-guide.html

最后修改:2021 年 03 月 23 日 11 : 24 AM