我先认输了,暂时还没办法用docker部署minio多节点,先用命令行部署先。
首先,部署minio多节点服务
因为我用我的虚拟机做实验环境,所以没有配置域名和硬盘,直接建目录测试。
虚拟机IP:
- 192.168.3.28
- 192.168.3.166
- 192.168.3.221
每台服务器上建2目录:
- /data/data1
- /data/data2
然后运行minio程序
export MINIO_ROOT_USER=minio_admin
export MINIO_ROOT_PASSWORD=minio_admin_password
./minio server \
http://192.168.3.28:9000/data/data1 \
http://192.168.3.28:9000/data/data2 \
http://192.168.3.166:9000/data/data1 \
http://192.168.3.166:9000/data/data2 \
http://192.168.3.221:9000/data/data1 \
http://192.168.3.221:9000/data/data2 \
--console-address ":9001" \
--address ":9000"
在每一台服务器上执行以上命令后,日志开始有报错。
配置mc连接
mc config host add nodes http://192.168.3.28:9000
输入用户密码后连接成功。
然后可以执行以下命令看最终结果:
mc admin info nodes
192.168.3.166:9000
Uptime: 31 minutes
Version: 2023-03-24T21:41:23Z
Network: 3/3 OK
Drives: 2/2 OK
Pool: 1
● 192.168.3.221:9000
Uptime: 33 minutes
Version: 2023-03-24T21:41:23Z
Network: 3/3 OK
Drives: 2/2 OK
Pool: 1
● 192.168.3.28:9000
Uptime: 33 minutes
Version: 2023-03-24T21:41:23Z
Network: 3/3 OK
Drives: 2/2 OK
Pool: 1
Pools:
1st, Erasure sets: 1, Drives per erasure set: 6
6 drives online, 0 drives offline
从以上信息可以看到部署成功,网络和硬盘都ok。
在集群上创建Bucket
上一步已经创建了主机连接,然后我们通过这个主机连接创建一个桶Bucket
mc mb nodes/mycloud
创建成功后创建用户
mc admin user add nodes
mc admin user info nodes mycloud
AccessKey: mycloud
Status: enabled
PolicyName:
MemberOf:
为这个用户创建策略可以连接桶mycloud
mc admin policy create nodes mycloud ./mycloud.json
mycloud.json就是让用户对桶mycloud有增删改的权限,内容如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::mycloud/*"
]
}
]
}
将权限mycloud授权给用户mycloud:
mc admin policy attach nodes mycloud --user mycloud
Policy `mycloud` successfully attached to user `mycloud`
授权成功后配置mycloud的主机连接
mc config host create mycloud http://192.168.3.28:9000
测试往mycloud上传下载文件:
mc cp 2.PNG mycloud/mycloud
mc ls mycloud/mycloud
结果是上传成功:
再把它下载下来看
mc cp 2.PNG mycloud/mycloud
下载成功:
也可以把它删除
mc rm mycloud/mycloud/2.PNG
总结
minio多节点多盘(MultiNodesMulitDrives)部署通过minio程序直接运行比较简单,而且可以严格控制权限,无需使用root权限执行,相对比较安全,其他使用起来跟单节点差不多。
下一步我们要实验的是在docker上部署NextCloud云盘,然后把云盘放在minio上,敬请期待!