Minio 多节点配置
本文内容部分摘自https://www.cnblogs.com/luoyan01/p/9733837.html
minio分布式部署最少要求4个存储,我的环境是三台存储节点每台提供两块3.2T NVMe盘作为后端存储
export MINIO_ACCESS_KEY=admin export MINIO_SECRET_KEY=admin123 ./minio server \ http://192.168.3.1/mount1 \ http://192.168.3.1/mount11 \ http://192.168.3.2/mount2 \ http://192.168.3.2/mount22 \ http://192.168.3.3/mount3 \ http://192.168.3.3/mount33 后台启动 nohup ./minio server http://192.168.3.192/export2 http://192.168.3.193/export3 http://192.168.3.194/export4 http://192.168.3.195/export5 > /opt/data/minio/minio.log 2>&1 &
做成服务
mc 命令添加bucket连接
#要添加一个或多个与Amazon S3兼容的主机,请按照以下说明操作。mc将所有配置信息存储在~/.mc/config.json文件中。
mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> --api <API-SIGNATURE> --lookup <BUCKET-LOOKUP-TYPE>
<ALIAS>:别名,是云存储服务的简称,alias名称可以随意起
<YOUR-S3-ENDPOINT>:地址 minio服务的地址;本列是47.94.3.211:9000
<YOUR-ACCESS-KEY>:登陆AccessKey docker logs minio容器ID 可查看;
<YOUR-SECRET-KEY>:登陆SecretKey docker logs minio容器ID 可查看;
-- api <API-SIGNATURE>: 可选参数 默认情况下设置为S3v4;
--lookup <BUCKET-LOOKUP-TYPE>:可选参数,它用于指示服务器是否支持dns或路径样式url请求。它接受“dns”,“path”或“auto”作为有效值。
默认情况下,它设置为“auto“,SDK会自动确定要使用的URL查找类型。
本地使用的样例:
mc config host add <alias> http://172.20.0.3:9000 admin admin123456 [--api S3v4] mc config host add lemon01 http://172.20.0.1:9000 admin admin123456 mc config host add lemon02 http://172.20.0.2:9000 admin admin123456 --api S3v4 mc config host add lemon03 http://172.20.0.3:9000 admin admin123456 --api S3v2 #查看lemon01的文件,会发现里面的桶文件内容一致 mc ls lemon01 mc ls lemon02 mc ls lemon03
云存储示例:
1、Minio云存储
mc config host add minio http://47.94.3.211:9000 OUVC1I8KN22SHXVP02IX Uf5HvAsZYwHeXA02z2mdTtVcssZCYCMKJCQOLQAW
2、Amazon S3云存储
mc config host add s3 http://47.94.3.211:9000 OUVC1I8KN22SHXVP02IX Uf5HvAsZYwHeXA02z2mdTtVcssZCYCMKJCQOLQAW
3、Google云存储
mc config host add gcs http://47.94.3.211:9000 OUVC1I8KN22SHXVP02IX Uf5HvAsZYwHeXA02z2mdTtVcssZCYCMKJCQOLQAW --api S3v2
注意:Google云存储仅支持旧版签名版本2,因此您必须选择 - S3v2
测试:
我用的是Minio云存储
1、列出所有存储桶(bucket)
mc ls minio #mc ls 后接<alias>别名
2、创建bucket01桶
mc mb minio/bucket01 #在连接别名minio下创建bucket01桶
3、复制对象”
mc cp xxx minio/bucket01
mc policy set download lemon01/backup01 设置lemon01别名的backup01桶可下载属性
mc policy set upload lemon01/backup01 设置lemon01别名的backup01桶可上传属性
挂载
挂载通过s3fs-fuser,来进行挂载
两种方式都可以安装s3fs-fuse
- 二进制安装s3fs-fuse
yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel git clone https://github.com/s3fs-fuse/s3fs-fuse.git cd s3fs-fuse ./autogen.sh ./configure make&&make install
- yum 安装s3fs-fuse
yum install -y s3fs-fuse
如果服务器无法联网需要搭建 yum 离线源
搭建yum离线安装源
如果离线环境的话,需要下载依赖包来搭建离线yum源
创建repo仓库文件目录
mkdir -p /test1 yumdownloader --resolve --destdir /test1 automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel s3fs-fuse
#下载依赖包到 /test1
tar -zcvf s3fs-fuse.tar.gz /test1
#打个包上传到待装机器上
rpm -ivh createrepo
createrepo /test1
s3fs安装完成后,我们可以挂载backup01(bucket)桶作为本地存储使用
echo "echo admin:admin123456" >> /etc/passwd-s3fs
#设置minio服务认证的用户名密码
s3fs -o passwd_file=/etc/passwd-s3fs -o use_path_request_style -o endpoint=us-east-1 -o url=http://172.20.0.1:9000 -o bucket=backup01 /test5
s3fs -o use_path_request_style -o endpoint=us-east-1 -o url=http://172.20.0.1:9000 -o bucket=bucket01 /test5
#省略passwd_file选项执行效果也是一样的
s3fs -o use_path_request_style -o endpoint=us-east-1 -o url=http://172.20.0.3:9000 -o bucket=bucket01 /storage
passwd_file
# minio服务用户名密码文件,如果设置过了可以省略passwd_file参数,默认会从/etc/passwd-s3fs读取用户名密码
url
# Minio节点的URL
bucket
#
桶名