minio集群部署

发布时间 2023-11-25 10:27:55作者: 锅巴编程

minio集群部署

1.说明:

安装前需要再添加一个磁盘后将磁盘挂载到/opt/minio目录,minio集群部署需要独占磁盘分区,不能使用文件夹代替。

运行分布式 MinIO 实例的服务器时间差不应超过15分钟
所有运行分布式 MinIO 设置的节点都是同构的,即相同的操作系统、相同数量的磁盘和相同的网络互连 。
MinIO 的节点需要具有相同的访问密钥和秘密密钥才能连接,即access key 和 MINIO secret key 都要一样。

2.创建目录

  mkdir -p /opt/minio/{run,data} && mkdir -p /etc/minio

3.挂载新的硬盘

  挂载/opt/minio目录,忘记的话,搜linux挂载新硬盘


挂载完后,记得配置文件 /etc/fstab 也需要增加,不然服务器重启之后,就掉盘了
/dev/sdb1 /opt/minio ext4 defaults 0 0

4.下载Minio到/opt/minio/run

  cd /opt/minio/run
  wget https://dl.min.io/server/minio/release/linux-amd64/minio

5.创建启动脚本文件

  vim /opt/minio/run/run.sh
  #Minio默认9000端口,在配置文件中加入–address “127.0.0.1:9029” 可更改端口
  #注意 :
  #MINIO_ROOT_USER:用户名,长度最小是5个字符
  #MINIO_ROOT_PASSWORD:密码,密码不能设置过于简单,不然minio会启动失败,长度最小是8个字符
  #–config-dir:指定集群配置文件目录
  #!/bin/bash
  export MINIO_ROOT_USER=admin
  export MINIO_ROOT_PASSWORD=adminbfd123

/opt/minio/run/minio server --config-dir /etc/minio
--address "0.0.0.0:9029" --console-address ":9000"
http://172.16.11.1:9029/opt/minio/data
http://172.16.11.2:9029/opt/minio/data > minio_server.log

6.创建停止脚本文件

  cat <<EOF > /opt/minio/run/stop.sh

!/bin/bash

MinIO停止脚本

ps -ef | grep minio | grep -v 'grep' | awk '{print $2}'| xargs kill -9

if $? != 0;then
echo "minio service stop failed."
exit 1
fi
EOF

7.创建Minio.server

cat <<EOF > /etc/systemd/system/minio.service

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

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

Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

8、权限修改

chmod +x /etc/systemd/system/minio.service && chmod +x /opt/minio/run/minio && chmod +x /opt/minio/run/run.sh && chmod +x /opt/minio/run/stop.sh

9.启动集群(依次执行命令)

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

10.配置nginx代理

vim   minio-cluster.conf 
配置文件内容:
     # websocket
    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }
upstream minio_console {
    server 172.16.11.1:9000 max_fails=3 fail_timeout=5s;
    server 172.16.11.2:9000 max_fails=3 fail_timeout=5s;

}
upstream minio_api {
    server 172.16.11.1:9029 max_fails=3 fail_timeout=5s;
    server 172.16.11.2:9029 max_fails=3 fail_timeout=5s;

}

server {
    listen          80;
    listen         443 ssl;
    server_name     cons.minio.com;
    
    ssl_certificate keys/abcty6/server.crt;
    ssl_certificate_key keys/abcty6/server.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    client_max_body_size     1G;   #如果上传文件大于1G,就需要更改这个参数
    client_header_timeout    1m;
    client_body_timeout      1m;
    proxy_connect_timeout    60s;
    proxy_read_timeout       1m;
    proxy_send_timeout       1m;
    
    location / {
        proxy_next_upstream     http_500 http_502 http_503 http_504 error timeout invalid_header;
        proxy_set_header        Host  $host;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_http_version 1.1;
        proxy_pass              http://minio_console;
        expires                 0;
 
}
}

server {
    listen          80;
    listen         443 ssl;
    server_name     apapi.minio.com;

    ssl_certificate keys/abcty6/server.crt;
    ssl_certificate_key keys/abcty6/server.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    client_max_body_size     1G;
    client_header_timeout    1m;
    client_body_timeout      1m;
    proxy_connect_timeout    60s;
    proxy_read_timeout       1m;
    proxy_send_timeout       1m;

    location / {
        proxy_next_upstream     http_500 http_502 http_503 http_504 error timeout invalid_header;
        proxy_set_header        Host  $host;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass              http://minio_api;
        expires                 0;
    }
}
  重载配置
  ./nginx -s reload
  至此,集群成功!

11.数据迁移

### 11.1下载mc
wget https://dl.min.io/client/mc/release/linux-amd64/mc

chmod +x mc
./mc --help

./mc config host add hk http://172.16.11.1:9029

11.2给远程主机批量创建桶名

11.3拷贝文件和对象到新的服务器

文章参考:https://blog.csdn.net/weixin_42324463/article/details/126442490