MinIO集群搭建部署

环境:VMware虚拟机
节点1:10.0.0.1
节点2:10.0.0.2
节点3:10.0.0.3
节点4:10.0.0.4

因为MinIO官方建议最少4个节点,这里是测试,所以就一个节点一块盘。
在第一次实施过程中遇到了个坑,其实也不算是坑,而是没有仔细操作,只是想偷懒。MinIO要求的是盘,而我这里使用的是一个目录,单机运行的时候没有问题,但是在集群的时候就不行了,提示

Disk /data/minio_data is a root disk. Please ensure the disk is mounted properly, refusing to use root disk.


主要问题就是MinIO数据存储使用的是目录,而不是重新挂载的硬盘。
重新在VMware里添加一块硬盘挂载上系统就可以解决这个问题。


大概的步骤就是:
1、lsblk查看硬盘名称,比如/dev/sdb b在这里是个序号,你系统硬盘多,就顺延,比如到e之类。
2、新硬盘创建分区:fdisk /dev/sdb,根据提示输入n,然后后面只管确认就行,整块sdb就会被分为一个区。
3、格式化新分区,我这里使用的是centos7,格式为xfs,mkfs.xfs /dev/sdb,具体什么格式,你可以查看原系统的,lsblk -f,或者df -Th都可以看到分区格式。
4、挂载:mount /dev/sdb /data1

这样就可以开始部署MinIO了,直接去官网下载,虽然慢了一点,但贵在靠谱:


https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio


每台机器都要这样操作,也就是每个节点上都要有MinIO的程序。
设置MinIO的用户名和密码:
这里使用的是两个变量:
export MINIO_ACCESS_KEY=username
export MINIO_SECRET_KEY=password

一个是访问MinIO的用户名,一个是密码,同样的每台机器都要操作。你可以写脚本也可以敲命令也可以改profile。


下面开始启动:
./minio server http://10.0.0.1/data1 http://10.0.0.2/data2 http://10.0.0.3/data3 http://10.0.0.4/data4


我这里为了区分方便,把挂载的目录名编了号,这个根据个人习惯来定。
启动成功后,就像单机启动完成后一样,提示你访问地址账号密码以及API。
最终显示是这样,每个节点都是一样:

All MinIO sub-systems initialized successfully
Status: 4 Online, 0 Offline.
Endpoint: http://10.0.0.1:9000 http://127.0.0.1:9000
AccessKey: username
SecretKey: password
Waiting for all MinIO IAM sub-system to be initialized.. lock acquired

Browser Access:
http://10.0.0.1:9000 http://127.0.0.1:9000

Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc alias set myminio http://10.0.0.1:9000 username password

Object API (Amazon S3 compatible):
Go: https://docs.min.io/docs/golang-client-quickstart-guide
Java: https://docs.min.io/docs/java-client-quickstart-guide
Python: https://docs.min.io/docs/python-client-quickstart-guide
JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
.NET: https://docs.min.io/docs/dotnet-client-quickstart-guide

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据