方式一:4台服務器(或虛擬機)搭建minio集群
1.1、 准備4台服務器(或虛擬機),並在對應機器上面創建/data{num}文件夾
192.168.31.128/data0 192.168.31.129/data1 192.168.31.130/data2 192.168.31.131/data3
本集群由4台服務器構成(官方推薦集群最小4台服務器),每個服務器上掛載兩個磁盤目錄,最小數據掛載點為4個。
1.2、創建相關目錄(所有節點)
數據存儲目錄 $ mkdir -p /var/minio/bin 啟動腳本目錄 $ cd /var/minio/bin $ wget https://dl.minio.io/server/minio/release/linux-amd64/minio $ chmod +x minio 集群配置文件目錄 $ mkdir -p /etc/minio
1.3、編寫集群啟動腳本(所有節點配置文件相同)
$ vim /var/minio/bin/run.sh
#!/bin/bash export MINIO_ACCESS_KEY=minio export MINIO_SECRET_KEY=test123456 /var/minio/bin/minio server --config-dir /etc/minio \ http://192.168.31.128/data0 http://192.168.31.129/data1 \ http://192.168.31.130/data2 http://192.168.31.131/data3
注意:
- MINIO_ACCESS_KEY:用戶名
- MINIO_SECRET_KEY:密碼,密碼不能設置過於簡單,不然minio會啟動失敗
- -config-dir:指定集群配置文件目錄
賦權:
$ chmod +x /var/minio/bin/run.sh
1.4、編寫服務腳本(所有節點都要進行如下配置)
$ vim /usr/lib/systemd/system/minio.service
[Unit] Description=Minio service Documentation=https://docs.minio.io/ [Service] WorkingDirectory=/var/minio/bin/ ExecStart=/var/minio/bin/run.sh Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
注意:
- WorkingDirectory:啟動腳本目錄
- ExecStart:指定集群啟動腳本
賦權:
$ chmod +x /usr/lib/systemd/system/minio.service
1.5、啟動測試
$ systemctl daemon-reload
$ systemctl start minio
$ systemctl enable minio
1.6、驗證
瀏覽器輸入:集群任意節點IP:9000,即可訪問minio,用戶名密碼為前面設置的“MINIO_ACCESS_KEY”和“MINIO_SECRET_KEY”,可創建“bucket”並上傳文件測試。
方式二:3台Linux服務器(或虛擬機),並使用supervisor進行服務管理
2.1、准備3台服務器,並在3台服務器上都創建/data{num}文件夾
192.168.31.130/data1 /data2 192.168.31.131/data3 /data4 192.168.31.132/data5 /data6
2.2、創建啟動腳本目錄
$ mkdir /opt/minio
$ cd /opt/minio/
# 下載minio $ wget https://dl.minio.io/server/minio/release/linux-amd64/minio $ chmod +x minio
2.3、安裝supervisor
# 方法一:使用yum安裝,並設置開機啟動 $ yum install -y supervisor #方法二:由於supervisor在python3下無法使用,因此只能用python2去下載 $ yum install python-setuptools $ easy_install supervisor # 具體步驟請查看:supervisor安裝
2.4、創建minio配置文件
$ mkdir /etc/supervisor.d/
[program:minio] directory = /opt/minio/ command = /opt/minio/minio server --address :30000 http://192.168.31.130:30000/data/minio1 http://192.168.31.130:30000/data/minio2 http://192.168.31.131:30000/data/minio3 http://192.168.31.131:30000/data/minio4 http://192.168.31.132:30000/data/minio5 http://192.168.31.132:30000/data/minio6 user = root autostart = true autorestart = true startsecs = 5 redirect_stderr = true stopasgroup = true ikillasgroup = true stdout_logfile_maxbytes = 50MB stdout_logfile_backups = 10 stdout_logfile = /var/log/supervisor/minio.log environment=MINIO_SECRET_KEY=password,MINIO_ACCESS_KEY=minio
2.5 啟動supervisor服務和minio服務
systemctl start supervisord.service # 啟動,使用systemctl命令,minio服務就已經起來了
systemctl enable supervisord.service
systemctl restart supervisord.service # 重啟,這個命令不要執行
# 注意,supervisor服務起來后可以使用下面的命令管理minio服務
$ supervisorctl start minio # 啟動
$ supervisorctl status minio # 查看狀態
$ supervisorctl stop minio # 關閉
2.6 安裝mc
1. 下載mc:https://docs.min.io/cn/minio-client-quickstart-guide.html 2. 添加服務器: a. mc alias set minio1 {minio1_url} ak sk # 添加minio服務器1 ak:用戶名 sk:密碼 b. mc alias set minio2 {minio2_url} ak sk 3. 同步: a. mc mirror minio1/{bucket_name} minio2/{bucket_name}
例子:
$ ./mc config host add minio1 http://minio_service1:30001 minio password # 添加minio1服務 注意 minio1和minio2是兩個不同的集群 $ ./mc config host add minio2 http://minio_service2:30001 minio passw0rd $ ./mc mirror minio2/paas-etcd-bak minio1/paas-etcd-bak # 將minio2服務里面的桶遷移到minio1里面
參考地址:https://docs.min.io/cn/minio-client-complete-guide.html#mirror Mc mirrir用法: mc mirror [FLAGS] SOURCE TARGET FLAGS: --help, -h 顯示幫助。 --force 強制覆蓋已經存在的目標。 --fake 模擬一個假的操作。 --watch, -w 監聽改變並執行鏡像操作。 --remove 刪除目標上的外部的文件。
結束!