Linux 搭建部署Minio分布式集群

操作系统:Centos 8.5
安装介质Minio RELEASE.2023-01-31T02-24-19Z
说明:本文仅供参考。


不多说直接开整

前期准备

 各节点信息

        确保服务器池中的所有节点都使用具有相同容量(例如TB)的相同类型(NVMe、SSD 或 HDD)的驱动器。MinIO 不区分驱动器类型,也不受益于混合存储类型。此外。MinIO 将每个驱动器使用的大小限制为部署中的最小驱动器。例如,如果部署有 15 个 10TB 驱动器和 1 个 1TB 驱动器,MinIO 将每个驱动器的容量限制为 1TB

IP用途磁盘挂载点数据盘大小
192.168.0.61节点1/mnt/data1、/mnt/data2、/mnt/data3、/mnt/data4200G * 4
192.168.0.62节点2/mnt/data1、/mnt/data2、/mnt/data3、/mnt/data4200G * 4
192.168.0.63节点3/mnt/data1、/mnt/data2、/mnt/data3、/mnt/data4200G * 4
192.168.0.64节点4/mnt/data1、/mnt/data2、/mnt/data3、/mnt/data4200G * 4
192.168.0.100负载均衡

分布式Minio使用的磁盘里必须是干净的,里面没有数据。

时间同步

节点1-节点4

yum -y install ntp 
systemctl enable ntpd 
systemctl start ntpd 

timedatectl set-ntp yes ntpdate -u 192.168.0.200  ##使用自己的时间服务器或者替换国内时间服务器: cn.pool.ntp.org 
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

分布式Minio里的节点时间差不能超过3秒,你可以使用NTP 来保证时间一致。 

创建运行环境

节点1-节点4

mkdir -vp /opt/minio-server/{bin,log}

将 Minio RELEASE.2023-01-31T02-24-19Z 上传至/opt/minio-server/bin目录下

启动&停止

节点1

vi /opt/minio-server/bin/start.sh

export MINIO_ROOT_USER=admin 
export MINIO_ROOT_PASSWORD=12345678 
MINIO_HOME=/opt/minio-server 

nohup  ${MINIO_HOME}/bin/minio server --address ":9000" --console-address ":8000" \
http://192.168.0.61:9000/mnt/data1 http://192.168.0.61:9000/mnt/data2 \
http://192.168.0.61:9000/mnt/data3 http://192.168.0.61:9000/mnt/data4 \
http://192.168.0.62:9000/mnt/data1 http://192.168.0.62:9000/mnt/data2 \
http://192.168.0.62:9000/mnt/data3 http://192.168.0.62:9000/mnt/data4 \
http://192.168.0.63:9000/mnt/data1 http://192.168.0.63:9000/mnt/data2 \
http://192.168.0.63:9000/mnt/data3 http://192.168.0.63:9000/mnt/data4 \
http://192.168.0.64:9000/mnt/data1 http://192.168.0.64:9000/mnt/data2 \
http://192.168.0.64:9000/mnt/data3 http://192.168.0.64:9000/mnt/data4 > ${MINIO_HOME}/log/minio-9000.log 2>&1 &

请仔细看脚本中的启动顺序,结合自己服务器去修改,每个服务器4个磁盘分区

Nginx负载

负载均衡

vi  /home/nginx/conf/nginx.conf

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #添加配置
    include  /home/nginx/nginx/conf/conf.d/*.conf;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
}

nginx.conf 中默认配置不动,只添加include 即可

vi /home/nginx/nginx/conf/conf.d/minio.conf

upstream minio {
     server 192.168.0.61:9000;
     server 192.168.0.62:9000;
     server 192.168.0.63:9000;
     server 192.168.0.64:9000;
}
upstream console {
     ip_hash;
     server 192.168.0.61:8000;
     server 192.168.0.62:8000;
     server 192.168.0.63:8000;
     server 192.168.0.64:8000;
}

server {
     listen 9000;
     server_name localhost;
     ignore_invalid_headers off;
     client_max_body_size 0;
     proxy_buffering off;
location / {
     proxy_set_header Host $http_host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Forwarded-Proto $scheme;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header X-NginX-Proxy true;
     proxy_set_header Connection "upgrade";
     proxy_next_upstream     http_500 http_502 http_503 http_504 error timeout invalid_header;
     proxy_connect_timeout 300;
     proxy_http_version 1.1;
     proxy_set_header Connection "";
     chunked_transfer_encoding off;
     proxy_pass http://minio;
     }
}

server {
     listen 8000;
     server_name localhost;
     ignore_invalid_headers off;
     client_max_body_size 0;
     proxy_buffering off;
location / {
     proxy_set_header Host $http_host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Forwarded-Proto $scheme;
     proxy_set_header X-NginX-Proxy true;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection "upgrade";
     proxy_next_upstream     http_500 http_502 http_503 http_504 error timeout invalid_header;
     proxy_connect_timeout 300;
     proxy_http_version 1.1;
     proxy_set_header Connection "";
     chunked_transfer_encoding off; 
     proxy_pass http://console;
     }
}

借鉴了各路大神的代理方式,发现访问不了桶上传后的文件,结合自己实际情况加上了相关参数

访问

浏览器访问  http://192.168.0.100:8000/login 密码start.sh、stop.sh 中已经配置好了

admin/12345678

登陆界面

监控指标

 创建桶

 查看上传文件内容

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,下面是使用docker搭建minio分布式集群的详细步骤: 1. 安装Docker和Docker Compose 您需要在您的机器上安装Docker和Docker Compose。如果您还没有安装,请先安装。 2. 创建docker-compose.yml文件 在您的工作目录下创建一个名为docker-compose.yml的文件,并将以下内容复制到文件中。 ``` version: '3' services: minio1: image: minio/minio container_name: minio1 command: server http://minio{1...4}/data{1...4} ports: - "9001:9000" volumes: - ./data1:/data1 environment: MINIO_ACCESS_KEY: YOUR_ACCESS_KEY MINIO_SECRET_KEY: YOUR_SECRET_KEY restart: always minio2: image: minio/minio container_name: minio2 command: server http://minio{1...4}/data{1...4} ports: - "9002:9000" volumes: - ./data2:/data2 environment: MINIO_ACCESS_KEY: YOUR_ACCESS_KEY MINIO_SECRET_KEY: YOUR_SECRET_KEY restart: always minio3: image: minio/minio container_name: minio3 command: server http://minio{1...4}/data{1...4} ports: - "9003:9000" volumes: - ./data3:/data3 environment: MINIO_ACCESS_KEY: YOUR_ACCESS_KEY MINIO_SECRET_KEY: YOUR_SECRET_KEY restart: always minio4: image: minio/minio container_name: minio4 command: server http://minio{1...4}/data{1...4} ports: - "9004:9000" volumes: - ./data4:/data4 environment: MINIO_ACCESS_KEY: YOUR_ACCESS_KEY MINIO_SECRET_KEY: YOUR_SECRET_KEY restart: always ``` 3. 启动集群 在您的工作目录中运行以下Docker Compose命令,以启动Minio集群。 ``` docker-compose up -d ``` 这将在您的机器上启动四个Minio容器,每个容器都有一个自己的数据卷,并且它们都在同一网络中。 4. 访问Minio UI 您可以在浏览器中访问http://localhost:9001/,并使用您的访问密钥和秘密密钥登录Minio UI。您将看到一个名为“data1”的存储桶已经被创建。 5. 添加其他节点 如果您需要添加其他节点,请在docker-compose.yml文件中添加另一个服务,并使用相同的access key和secret key。您还需要在Minio UI中添加新的节点。 这些是使用Docker Compose搭建Minio分布式集群的基本步骤。如果您需要更详细的指导,请查看Minio官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猛买家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值