天天看點

minio的叢集與擴容

1、伺服器清單

IP 持載的盤
192.168.254.201 /data1/
data2/
192.168.254.202 /data1/
/data2/

2、下載下傳minio的服務端

wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio && chmod +x /usr/local/bin/minio           

如果下載下傳不下來,可以先下載下傳再上傳到對應的目錄,再給此檔案授權

chmod +x /usr/local/bin/minio           

3、下載下傳minio的用戶端

wget https://dl.min.io/client/mc/release/linux-amd64/mc -O /usr/local/bin/mc && chmod +x /usr/local/bin/mc           

如果下載下傳不下來,可以先在本機下下載下傳再上傳到對應的目錄再給此檔案授權

chmod +x /usr/local/bin/mc           

4、建立配置檔案/etc/default/minio

cat <<EOT >> /etc/default/minio
MINIO_VOLUMES=http://192.168.245.20{1...2}/data{1...2}
MINIO_OPTS="--address 0.0.0.0:9199"
MINIO_ACCESS_KEY=D99KGE6ZTQXSATTJWU24
MINIO_SECRET_KEY=QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ
MINIO_REGION="cn-south-1"
#MINIO_DOMAIN=minio.zmd.com
EOT           

說明:

MINIO_VOLUMES:是我們連接配接的伺服器位址           
MINIO_OPTS 指定監聽端口(也可以不監聽具體ip,隻寫 :9199即可)           
MINIO_ACCESS_KEY Access key,相當于賬号           
MINIO_SECRET_KEY Secret key,相當于密碼           
MINIO_REGION 區域值,這是完全自己寫的,比如你願意的話寫“abcd”也行,但标準格式是“國家-區域-編号”,  如“中國-華北-1号”就可寫成“cn-north-1”,又比如“美國-西部-2号”可寫成“us-west-1”           
MINIO_DOMAIN 域名           

5、設定開機自啟動

wget https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/distributed/minio.service -O /usr/lib/systemd/system/minio.service           

編輯minio.service

vi /usr/lib/systemd/system/minio.service           

把其中的 User Group 注釋掉,也可以指定具體使用者

#User=minio-user
#Group=minio-user           

重載minio.service檔案

systemctl daemon-reload           

6、配置用戶端資訊

mc config host add minio http://192.168.245.201:9199 D99KGE6ZTQXSATTJWU24 QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ           

7、檢視叢集資訊

# mc admin info minio
●  192.168.245.202:9199
   Uptime: 13 minutes 
   Version: 2021-04-22T15:44:28Z
   Network: 2/2 OK 
   Drives: 2/2 OK 

●  192.168.245.201:9199
   Uptime: 13 minutes 
   Version: 2021-04-22T15:44:28Z
   Network: 2/2 OK 
   Drives: 2/2 OK 

4 drives online, 0 drives offline


           

上傳一些資料,用于驗證擴容後資料可正常使用

mc mb minio/bucket01
mc cp * minio/bucket01
anaconda-ks.cfg:            1.21 KiB / 1.21 KiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 93.66 KiB/s 0s [root@minio-01 ~]# ░░░░░░░░░░░░░░░░░░░░░▓┃


           

登入控制台檢視上傳正常

minio的叢集與擴容

8、擴容

8.1、服務清單

IP 持載的盤 說明
192.168.254.201 /data1/ 原盤
/data2/
192.168.254.202 /data1/ 原盤
/data2/
192.168.254.203 /data1/ 擴容
/data2/
192.168.254.204 /data1/ 擴容
/data2/

在擴容叢集時用到了2組http://{...}的文法參數,是以舊叢集以及擴容都必須使用這種文法形式建立,指令行中的每組server稱為一個zone,此示例中有2 server pools,對于外部的寫資料請求,minio server會首先查找可用空間多的zone,然後再在zone内選擇set和disk drive。

注意:添加的每個zone必須具有與原始zone相同的set集大小,以便維持相同的資料備援SLA。例如,如果您的第一個zone是8個磁盤,則可以添加每個server pools包含16、32或1024個磁盤的zone。您隻需確定部署SLA是原始資料備援SLA的倍數。

8.2、停止原服務

在192.168.254.201與192.168.254.202停卡minio服務

systemctl stop minio.service           

8.3、在擴容的機器上192.168.254.203與192.168.254.203安裝minio

具體參考:上面2與3、5小節

8.4、修改原來192.168.254.201與192.168.254.202的配置檔案

vi /etc/default/minio
#把MINIO_VOLUMES=http://192.168.245.20{1...2}/data{1...2} 改為MINIO_VOLUMES=http://192.168.245.20{1...2}/data{1...2} http://192.168.245.20{3...4}/data{1...2}           

8.5、在新加的擴容機器192.168.254.203與192.168.254.203加入配置檔案

cat <<EOT >> /etc/default/minio
MINIO_VOLUMES=http://192.168.245.20{1...2}/data{1...2} http://192.168.245.20{3...4}/data{1...2}
MINIO_OPTS="--address 0.0.0.0:9199"
MINIO_ACCESS_KEY=D99KGE6ZTQXSATTJWU24
MINIO_SECRET_KEY=QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ
MINIO_REGION="cn-south-1"
#MINIO_DOMAIN=minio.zmd.com
EOT


           

8.6、啟動所有機器上面服務

systemctl start minio.service           

8.7、驗證配置

# mc admin info minio
●  192.168.245.202:9199
   Uptime: 1 hour 
   Version: 2021-04-22T15:44:28Z
   Network: 2/2 OK 
   Drives: 2/2 OK 

●  192.168.245.203:9199
   Uptime: 3 seconds 
   Version: 2021-04-22T15:44:28Z
   Network: 4/4 OK 
   Drives: 0/0 OK 

●  192.168.245.204:9199
   Uptime: 3 seconds 
   Version: 2021-04-22T15:44:28Z
   Network: 4/4 OK 
   Drives: 0/0 OK 

●  192.168.245.201:9199
   Uptime: 13 minutes 
   Version: 2021-04-22T15:44:28Z
   Network: 4/4 OK 
   Drives: 0/0 OK 

2 drives online, 0 drives offline
[root@minio-01 bin]# 


           

上傳一些資料,用于驗證擴容後資料可正常使用

#上傳以前建的桶
touch 123 > test.txt
mc cp test.txt minio/bucket01
 0 B / ? ┃░░░░░░░░░░░

#建立一個桶看新桶是否正常
mc mb minio/bucket02
Bucket created successfully `minio/bucket02`.

 mc cp test.txt minio/bucket02
 0 B / ? ┃░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓


           
minio的叢集與擴容

9、nginx配置互載代理

配置檔案如下,http

upstream minio-server {
	server 192.168.245.201:9199 weight=25 max_fails=2 fail_timeout=30s;
	server 192.168.245.202:9199 weight=25 max_fails=2 fail_timeout=30s;
	server 192.168.245.203:9199 weight=25 max_fails=2 fail_timeout=30s;
	server 192.168.245.204:9199 weight=25 max_fails=2 fail_timeout=30s;
}


server {
	listen 9000;
	server_name localhost;
	charset utf-8;
	default_type text/html;
	
	location / {
		proxy_set_header Host $http_host;
		proxy_set_header X-Forwarded-For $remote_addr;
		client_body_buffer_size 10M;
		client_max_body_size 10G;
		proxy_buffers 1024 4k;
		proxy_read_timeout 300;
		proxy_next_upstream error timeout http_404;
		proxy_pass http://minio-server;
	}
}           

繼續閱讀