Minio高可用安装

157 阅读1分钟

1.说明

Minio参照官网文档,使用Docker安装minio只能做到单机多磁盘的方式,这样存在单点故障的问题, 只能参考文档使用Linux上原生安装了。 官方文档如下图: 本次使用的版本为:2023-09-23T03:47:50Z 部署模式:双机四磁盘的模式,机器ip分别为192.168.50.245与192.168.50.18 双机四磁盘在一台机器挂了,就变为2了,不满足N/2+1的存活,集群就不可用了,所以调整部署策略为3机6磁盘, 机器ip分别为192.168.50.245、192.168.50.18、192.168.50.9

2.安装

2.1 文件目录创建

在245机器执行如下命令,创建minio存储目录

mkdir -p /home/minio/data1
mkdir -p /home/minio/data2

在18机器执行如下命令,创建minio存储目录

mkdir -p /home/minio/data3
mkdir -p /home/minio/data4

在9机器执行如下命令,创建minio存储目录

mkdir -p /home/minio/data5
mkdir -p /home/minio/data6

2.2 制作启动脚本

创建脚本工作目录mkdir -p /home/minio,执行vi /home/minio/run.sh进行脚本创建,填入如下内容

#!/bin/bash
export MINIO_ROOT_USER=linxixi
export MINIO_ROOT_PASSWORD=3er4#ER$
/home/minio/minio server \
http://192.168.50.245/home/minio/data1 \
http://192.168.50.245/home/minio/data2 \
http://192.168.50.18/home/minio/data3 \
http://192.168.50.18/home/minio/data4 \
http://192.168.50.9/home/minio/data5 \
http://192.168.50.9/home/minio/data6  --console-address ":10000"

2.3 将minio制作成服务

vim /usr/lib/systemd/system/minio.service填入如下内容:

[Unit]
Description=Minio service
Documentation=https://docs.minio.io/

[Service]
WorkingDirectory=/opt/
ExecStart=/home/minio/run.sh

Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

2.4 赋予权限

将下载的minio文件放到/home/minio/目录下。

chmod +x /usr/lib/systemd/system/minio.service
chmod a+x /home/minio/minio
chmod a+x /home/minio/run.sh

2.5 启动服务并检查

systemctl daemon-reload
systemctl start minio
systemctl enable minio
systemctl status minio.service

说明:需要两台机器都启动后,minio server建立连接后,即可以正常访问了。如遇到部署异常,需要检查相应脚本与程序部署的位置,同时systemctl restart minio让两个server重新建立连接。

2.6 nginx进行对外访问

添加Nginx的配置如下:

upstream minio{
        server 192.168.50.18:9000;
        server 192.168.50.245:9000;
        server 192.168.50.9:9000;
      
}

 location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-For $remote_addr;
    client_body_buffer_size 10M;
    client_max_body_size 10G;
    proxy_buffers 1024 4k;
    proxy_read_timeout 300;
    proxy_next_upstream error timeout http_404;
    proxy_pass http://minio;
 }

需要做到Nginx的高可用,可以参考另外一篇Nginx的高可用部署。