Minio 安装及相关API操作
一、安装Minio 1 2 3 4 5 6 我们安装集群主要服务器ip: 192.168.168.1 192.168.168.2 192.168.168.3 192.168.168.4 192.168.168.5
==准备工作:需要先在每个服务器节点上面的data路径下面创建存储minio数据的文件夹:data/minio/data==
==注意:Linux环境下我们选择RPM的方式安装。主要是为了搭建集群。==
RPM安装的一个好处是:能直接将minio作为系统服务直接启动,否则我们就需要自己写脚本启动
https://min.io/docs/minio/linux/index.html
Ⅰ、下载安装包 RPM下载地址命令:
1 2 3 4 5 6 7 8 # 创建安装包存放的地址并进入 cd /home/centos/soft/minio/ # 使用wget命令获取安装包rpm wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20240131202033.0.0-1.x86_64.rpm -O minio.rpm # 安装minio sudo dnf install minio.rpm
安装完minio以后,可以在/usr/local/bin/中找到可执行文件minio
Ⅱ、启动脚本 下面的操作均需要在五台服务器上面做相同的操作。 在/home/centos/soft/minio/路径下面新建一个run.sh文件
参数说明:
--address:配置的是Server地址
--console-address:配置的是控制台地址
1 2 3 4 # !/bin/bash export MINIO_ACCESS_KEY=minio export MINIO_SECRET_KEY=minioPassword /usr/local/bin/minio server --address ":9998" --console-address ":9999" http://192.168.168.1/data/minio/data http://192.168.168.2/data/minio/data http://192.168.168.3/data/minio/data http://192.168.168.4/data/minio/data http://192.168.168.5/data/minio/data
执行./run.sh可启动服务
Ⅲ、将minio作为job执行 用root用户sudo su 注意需要在五个节点都执行如下命令及其所有操作:
1 vim /usr/lib/systemd/system/minio.service
service服务内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [Unit] Description=Minio service Documentation=https://docs.minio.io/ [Service] # 安装包路径 WorkingDirectory=/home/centos/soft/minio # 启动命令路径 ExecStart=/home/centos/soft/minio/run.sh Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
加载服务:
1 [root@bgdc2020-file02 minio]# systemctl daemon-reload
将minio加入服务器启动后执行:
1 [root@bgdc2020-file02 minio]# systemctl enable minio
启动服务:
1 [root@bgdc2020-file02 minio]# systemctl start minio
停止服务:
1 [root@bgdc2020-file02 minio]# systemctl stop minio
查看服务状态:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [root@bgdc2020-file02 minio]# systemctl status minio ● minio.service - Minio service Loaded: loaded (/usr/lib/systemd/system/minio.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2024-02-02 11:24:38 CST; 1h 22min ago Docs: https://docs.minio.io/ Main PID: 23686 (run.sh) CGroup: /system.slice/minio.service ├─23686 /bin/bash /home/centos/soft/minio/run.sh └─23687 /usr/local/bin/minio server --address=192.168.168.1:9999 http://192.168.168.1/data/minio/data http://192.168.168.2/data/minio/data... Feb 02 11:27:17 bgdc2020-file02.novalocal run.sh[23686]: Copyright: 2015-2024 MinIO, Inc. Feb 02 11:27:17 bgdc2020-file02.novalocal run.sh[23686]: License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html> Feb 02 11:27:17 bgdc2020-file02.novalocal run.sh[23686]: Version: RELEASE.2024-01-31T20-20-33Z (go1.21.6 linux/amd64) Feb 02 11:27:17 bgdc2020-file02.novalocal run.sh[23686]: Use `mc admin info` to look for latest server/drive info Feb 02 11:27:17 bgdc2020-file02.novalocal run.sh[23686]: Status: 4 Online, 1 Offline. Feb 02 11:27:17 bgdc2020-file02.novalocal run.sh[23686]: S3-API: http://192.168.168.1:9999 Feb 02 11:27:17 bgdc2020-file02.novalocal run.sh[23686]: Console: http://192.168.168.1:42227 http://172.17.0.1:42227 http://127.0.0.1:42227 Feb 02 11:27:17 bgdc2020-file02.novalocal run.sh[23686]: Documentation: https://min.io/docs/minio/linux/index.html Feb 02 11:27:50 bgdc2020-file02.novalocal run.sh[23686]: Client 'http://192.168.168.5:9999/minio/peer-s3/v1' re-connected in 33.516010723s Feb 02 11:27:55 bgdc2020-file02.novalocal run.sh[23686]: Client 'http://192.168.168.5:9999/minio/peer/v36' re-connected in 38.587631893s
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # 启动minio systemctl start minio # 设置开机自启动 systemctl enable minio # 停止开机自启动 systemctl disable minio # 查看服务当前状态 systemctl status minio # 重新启动服务 systemctl restart minio # 查看所有已启动的服务 systemctl list-units --type=service
Ⅳ、访问 1 2 3 4 5 http://192.168.168.1:9999 http://192.168.168.2:9999 http://192.168.168.3:9999 http://192.168.168.4:9999 http://192.168.168.5:9999
Ⅴ、nginx设置代理minio集群 该前提是已经安装了nginx。
nginx安装的路径/usr/local/nginx
nginx可执行文件的位置:/usr/local/nginx/sbin/nginx
nginx配置文件nginx.conf的位置:/usr/local/nginx/conf/nginx.conf
配置文件内容如下: 注意配置文件仅摘取了部分重要内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 http { include mime.types; default_type application/octet-stream; #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; client_max_body_size 200M; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; #配置minio服务负载均衡 upstream minio-server{ server 192.168.168.1:9998 weight=25 max_fails=2 fail_timeout=30s; server 192.168.168.2:9998 weight=25 max_fails=2 fail_timeout=30s; server 192.168.168.3:9998 weight=25 max_fails=2 fail_timeout=30s; server 192.168.168.4:9998 weight=25 max_fails=2 fail_timeout=30s; server 192.168.168.5:9998 weight=25 max_fails=2 fail_timeout=30s; } #配置minio控制台负载均衡 upstream minio-console{ server 192.168.168.1:9999 weight=25 max_fails=2 fail_timeout=30s; server 192.168.168.2:9999 weight=25 max_fails=2 fail_timeout=30s; server 192.168.168.3:9999 weight=25 max_fails=2 fail_timeout=30s; server 192.168.168.4:9999 weight=25 max_fails=2 fail_timeout=30s; server 192.168.168.5:9999 weight=25 max_fails=2 fail_timeout=30s; } #Minio服务 server { listen 9898; server_name minio-server; # 允许在标头中使用特殊字符 ignore_invalid_headers off; # 允许任何大小的文件上传。 # 设置为1000m等值;将文件大小限制为特定值 client_max_body_size 0; # 禁用缓冲 proxy_buffering off; proxy_request_buffering off; location / { root html; 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 Host $http_host; proxy_connect_timeout 300; # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 proxy_http_version 1.1; proxy_set_header Connection ""; chunked_transfer_encoding off; proxy_pass http://minio-server; } } #Minio控制台 server { listen 9899; server_name minio-console; # 允许在标头中使用特殊字符 ignore_invalid_headers off; # 允许任何大小的文件上传。 # 设置为1000m等值;将文件大小限制为特定值 client_max_body_size 0; # 禁用缓冲 proxy_buffering off; proxy_request_buffering off; location / { root html; 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 Host $http_host; # This is necessary to pass the correct IP to be hashed # real_ip_header X-Real-IP; proxy_connect_timeout 300; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; chunked_transfer_encoding off; proxy_pass http://minio-console; } } }
nginx配置完成后:
1 2 3 4 5 6 7 8 9 10 # 进入可执行文件安装存放地址 [root@bgdc2020-file02 sbin]# cd /usr/local/nginx/sbin # 检查配置文件是否书写正确 ok 并且 successful 表示文件书写正确 [root@bgdc2020-file02 sbin]# ./nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful # nginx重新加载配置文件 [root@bgdc2020-file02 sbin]# ./nginx -s reload
后访问地址: http:192.168.168.1:9898