Minio分布式存储集群搭建(多节点多硬盘模式)

在部署集群前,要注意一个问题,就是不要把minio使用的数据目录放在系统盘上,如果环境服务器没有分配数据盘,去给服务器申请几个数据盘在部署吧,不然服务起不来。

本文主要分两个部分:
1.minio集群搭建
2.配置minio界面接入prometheus监控
实验环境简单说明:
三台centos7.9的服务器,IP地址分别是:
192.168.10.148
192.168.10.152
192.168.10.156

minio集群搭建
1.下载minio二进制文件以及minio的客户端mc,不要客户端mc可以不下载。

wget https://dl.min.io/server/minio/release/linux-amd64/minio && chmod +x minio && mv minio /usr/local/bin
wget https://dl.min.io/client/mc/release/linux-amd64/mc && chmod +x mc && mv mc /usr/local/bin

2.格式化磁盘:
说明,我这次的实验环境是三台服务器,每台额外分配五个数据盘,共计提供给minio集群使用为15个数据盘,因为是测试环境所以磁盘大小只给了50G,生产请自行评估,本次是将所有磁盘都格式化为xfs文件系统,格式化文件系统后我在根目录下分别创建了data1,data2,data3,data4,data5五个目录给这五个数据盘挂载,详细磁盘格式化以及挂载方法自行百度,这里不详细赘述,实在不懂就评论区问吧。

sdb               8:16   0   50G  0 disk /data1

sdc               8:32   0   50G  0 disk /data2

sdd               8:48   0   50G  0 disk /data3

sde               8:64   0   50G  0 disk /data4

sdf               8:80   0   50G  0 disk /data5

3.做好三台服务器的时间同步及hosts配置,关闭防火墙  以及selinux

vim /etc/security/limits.conf     #设置打开文件的数量限制

*       -       nofile  65535
root    -       nofile  65535

4.创建环境变量文件

vim /etc/default/minio    #minio服务的环境变量文件

MINIO_VOLUMES="http://192.168.10.148:9000/data1/minio http://192.168.10.148:9000/data2/minio http://192.168.10.148:9000/data3/minio http://192.168.10.148:9000/data4/minio http://192.168.10.148:9000/data5/minio http://192.168.10.152:9000/data1/minio http://192.168.10.152:9000/data2/minio http://192.168.10.152:9000/data3/minio http://192.168.10.152:9000/data4/minio http://192.168.10.152:9000/data5/minio http://192.168.10.156:9000/data1/minio http://192.168.10.156:9000/data2/minio http://192.168.10.156:9000/data3/minio http://192.168.10.156:9000/data4/minio http://192.168.10.156:9000/data5/minio"


MINIO_OPTS="--console-address :9001"    #minio服务监听端口号


MINIO_ROOT_USER=minioadmin     #minio网页端的登录账号


MINIO_ROOT_PASSWORD=minioadmin      #minio网页端的登录密码


MINIO_PROMETHEUS_AUTH_TYPE="public"
MINIO_PROMETHEUS_URL="http://192.168.10.148:9090"     #配置prometheus监控的服务器地址
#MINIO_SERVER_URL="http://192.168.192.163:9000"       #负载均衡地址,没有负载均衡就不要放开注释

#MINIO_VOLUMES变量更改说名:本示例使用三台服务器,每台服务器分五个磁盘供minio服务使用,所有这里要把所有节点使用的所有数据目录都写上

5.创建服务的系统管理文件

vim /etc/systemd/system/minio.service

[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local

User=root
Group=root
ProtectProc=invisible

EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not set in /etc/default/minio"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

Restart=always

LimitNOFILE=65536

TasksMax=infinity

TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

6.启动并设置服务为开机自动启动

systemctl enable minio.service --now 

配置minio界面接入prometheus监控

Prometheus官网下载地址:Download | Prometheus

下载适合自己的版本:

1.将下载好的安装包放到服务器上解压

2.将解压后的目录改名:

mv prometheus-2.49.1.linux-amd64 prometheus
cd prometheus

3.修改配置文件监控minip

vim prometheus.yml     #配置如下

  - job_name: minio-job
    metrics_path: /minio/v2/metrics/cluster
    scheme: http
    static_configs:
      - targets: ['192.168.10.148:9000', '192.168.10.152:9000', '192.168.10.156:9000']       #更改为自己的minio地址
  - job_name: node
    static_configs:
      - targets: ['192.168.10.148:9001', '192.168.10.152:9001', '192.168.10.156:9001']       #更改为自己的minio地址

4.注册系统管理服务

vim /etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus Monitoring
Wants=network-online.target
After=network-online.target


[Service]
User=root
Group=root
Type=simple
ExecStart=/opt/prometheus/prometheus 
    --config.file=/opt/prometheus/prometheus.yml 
    --storage.tsdb.path=/opt/prometheus/data 
    --web.console.templates=/opt/prometheus/consoles 
    --web.console.libraries=/opt/prometheus/console_libraries    #这一块注意更改为自己实际的服务路径

Restart=always

[Install]
WantedBy=multi-user.target

5.启动并设置服务开机自动启动

systemctl enable prometheus.service --now

6.最后访问minio服务的控制台,效果图如下:
访问地址:http://服务器IP:9001