天天看点

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;
	}
}           

继续阅读