目錄創建
mkdir -p /opt/minio/run && mkdir -p /etc/minio && mkdir -p /indata/disk_0/minio/data
- run:啟動腳本及二進制文件目錄
- /etc/minio:配置文件目錄
- data:數據存儲目錄
下載 minio
wget https://dl.min.io/server/minio/release/linux-amd64/minio -P /opt/minio/run/
配置啟動文件
vi /opt/minio/run/run.sh
#!/bin/bash
export MINIO_ROOT_USER=Minio
export MINIO_ROOT_PASSWORD=Test1234!
/opt/minio/run/minio server --config-dir /etc/minio --address ":9000" --console-address ":9001" \
http://192.168.1.1/indata/disk_0/minio/data \
http://192.168.1.2/indata/disk_0/minio/data \
http://192.168.1.3/indata/disk_0/minio/data
- MINIO_ROOT_USER : 用戶名,長度最小是5個字符 (對應棄用配置: MINIO_ACCESS_KEY)
- MINIO_ROOT_PASSWORD : 密碼,密碼不能設置過于簡單,不然minio會啟動失敗,長度最小是8個字符 (對應棄用配置: MINIO_SECRET_KEY)
- –config-dir :指定集群配置文件目錄
- 這里的用戶名和密碼既可以作為頁面的登錄用戶密碼,也可以作為連接 s3a 文件的密鑰
- –address “:9000” : 后端 API 服務監聽的網絡地址,: 表示監聽所有可用的網絡接口(即服務器上的所有 IP 地址);9000 是默認的 API 端口號
- –console-address “:9001” : 該參數指定 MinIO 內置管理控制臺(Web UI)監聽的網絡地址;同樣使用 : 表示監聽所有網絡接口;9001 是默認的控制臺端口號
如果使用棄用的 MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY 則會有告警:
INFO: WARNING: MINIO_ACCESS_KEY and MINIO_SECRET_KEY are deprecated. Please use MINIO_ROOT_USER and MINIO_ROOT_PASSWORD
如果服務器配置了代理(如 clash代理),則可能會導致啟動失敗,需要在 run.sh 中添加(啟動命令前):
unset http_proxy
unset https_proxy
這樣就可以在啟動 minio 時不走代理地址了~
配置為系統服務
vi /usr/lib/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/[Service]
WorkingDirectory=/indata/disk_0/minio/data
ExecStart=/opt/minio/run/run.shRestart=on-failure
RestartSec=5[Install]
WantedBy=multi-user.target
注意:這里的路徑要和前面的配置一致
啟動集群
systemctl daemon-reload
systemctl enable minio && systemctl restart minio
systemctl status minio
每個節點均返回如下結果則代表成功
可以通過查看端口進程進一步確認
這種方式返回的啟動日志可能不是很全,可以直接運行腳本查看更完整的日志
可以看到第一個啟動的節點會一直等待其他節點連接成功。
Web UI
瀏覽器輸入集群任意節點地址+9001 (輸入9000會自動跳轉到9001)端口,即可訪問minio:
http://192.168.1.1:9001/
http://192.168.1.2:9001/
http://192.168.1.3:9001/
登錄
創建Bucket
上傳文件
創建密鑰
保存密鑰
"accessKey":"uBoubbhrhXhfw8iQhfMc"
"secretKey":"S6N7xkZme3wGHgd3Y6kKSpqKnYAQRkPfyPWR7Lo7"
Nginx 代理
- 負載均衡:將客戶端請求平均分配到各個 MinIO 節點
- 統一入口:客戶端只需知道 Nginx 服務器地址,無需關心后端具體節點
安裝 Nginx 并啟動
yum install -y nginx
systemctl enable nginx && systemctl restart nginx && systemctl status nginx
配置代理
vi /etc/nginx/conf.d/minio.conf
upstream minio_web{server 192.168.1.1:9001;server 192.168.1.2:9001;server 192.168.1.3:9001;
} server {listen 80;listen [::]:80;server_name _;location / {proxy_pass http://minio_web;proxy_set_header Host $http_host;client_max_body_size 1000m;}
}
- 僅需代理 Web UI 端口即可
- 簡化訪問:使用 80 端口(默認 HTTP 端口)訪問 API 服務,無需指定端口
- 也可以根據實際情況代理為其他端口
重啟 Nginx
systemctl restart nginx