分布式 Minio 可以让你将多块硬盘或者多台服务器组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式 Minio 避免了单点故障。Minio分布式模式可以帮助你搭建一个高可用的对象存储服务,你可以使用这些存储设备,而不用考虑其真实物理位置
Minio分布式集群搭建
1、首先我们准备4台服务器:
节点 |
目录 |
192.168.1.1 |
/opt/minio/data |
192.168.1.2 |
/opt/minio/data |
192.168.1.3 |
/opt/minio/data |
192.168.1.4 |
/opt/minio/data |
从官网获取Minio:
https://dl.min.io/server/minio/release/linux-amd64/minio
2、创建目录:
mkdir -p /opt/minio/{run,data1,data2}
3、上传Minio到/opt/minio/run
可通过xftp或者rz命令(不懂者自行百度)进行上传
4、集群启动文件配置
# vim /opt/minio/run/run.sh
#!/bin/bash
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=adminbfd123
/opt/minio/run/minio server --config-dir /etc/minio \
--address :9029 \
http://192.168.1.1/opt/minio/data1 http://192.168.1.1/opt/minio/data2 \
http://192.168.1.2/opt/minio/data1 http://192.168.1.2/opt/minio/data2 \
http://192.168.1.3/opt/minio/data1 http://192.168.1.3/opt/minio/data2 \
http://192.168.1.4/opt/minio/data1 http://192.168.1.4/opt/minio/data2
Minio默认9000端口,在配置文件中加入–address “127.0.0.1:9029” 可更改端口
注意 :
MINIO_ACCESS_KEY:用户名,长度最小是5个字符
MINIO_SECRET_KEY:密码,密码不能设置过于简单,不然minio会启动失败,长度最小是8个字符
–config-dir:指定集群配置文件目录
5、创建Minio.server
# vim /usr/lib/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/home/data/minio/run
ExecStart=/home/data/minio/run/run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
6、权限修改
# chmod +x /usr/lib/systemd/system/minio.service && chmod +x /opt/minio/run/minio && chmod +x /opt/minio/run/run.sh
7、启动集群
# systemctl daemon-reload
# systemctl start minio
# systemctl enable minio
查看集群状态
# systemctl status minio.service
注意:启动集群时一定要检查自己的防火墙是否是关闭状态,如果不是关闭状态,则会出错。
8、测试搭建是否成功
浏览器访问IP和对应端口号即可进行访问,可创建bucket进行测试,如果创建失败,则说明集群某一步搭建不成功。
使用 nginx 负载均衡
前面单独对每个节点进行访问显然不合理,通过使用 nginx 代理,进行负载均衡则很有必要。简单的配置如下:
upstream http_minio {
server 192.168.222.10:9001;
server 192.168.222.10:9002;
server 192.168.222.10:9003;
server 192.168.222.10:9004;
}
server{
listen 8888;
server_name 192.168.222.10;
ignore_invalid_headers off;
client_max_body_size 0;
proxy_buffering off;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header Host $http_host;
proxy_connect_timeout 300;
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_ignore_client_abort on;
proxy_pass http://http_minio;
}
}
挂载为本地目录
1. s3fs安装
在milvus所在机器上
# yum install -y epel-release
# yum install -y s3fs-fuse
2. 启动
s3fs -o passwd_file=/etc/s3fs/passwd-s3fs -o use_path_request_style \
-o url=http://172.18.17.16:59030 -o allow_other -o cipher_suites=AESGCM \
-o kernel_cache -o max_background=1000 -o max_stat_cache_size=100000 \
-o multipart_size=128 -o parallel_count=30 -o multireq_max=30 \
-o dbglevel=warn -o bucket=ssl /data/share/ssl