搭一个4个节点,16块硬盘的minio集群。
1.先做一些准备工作,新建了4个centos7的虚拟机,各新添加4块硬盘
我用的虚拟机软件是VirtualBox,
先搭建4个虚拟机,即4个节点, 建虚拟机就不讲了
用VirtualBox添加硬盘,这几台虚拟机硬盘我都添加过了,我用一个其他node35这个机器介绍硬盘添加
添加磁盘这块我也不是特别懂,但是在搭建minio集群的过程中我是这么做的,而且成功了
下一步,接着选择磁盘大小,我为了节省点空间只分配了5G
完成后
一个新的5G的磁盘就建好了
一个IDE控制器只能容纳4个盘,本来就有一个系统盘,只能这样在建三个盘,一个盘就是一个drive,奥插一句,为什么新建这磁盘,是因为minio的存储用的盘不能和系统盘在一起,它是要一个干净的盘。新建完3个盘后
小加号点不了了,只能再添加一个控制器,在新的控制器里添加第四块新盘了
同样建盘的步骤跟之前一样,点右边的小加号
至此一个虚拟机即一个节点的硬盘(drive)创建完成,完成后用虚拟机软件这里是virtualBox启动机器,启动时硬盘会自动创建
2.格式化磁盘,挂载目录
首先 lsblk 或者 fdisk -f
查看一下硬盘有没有添加成功,明显是添加成功了
格式化硬盘
创建硬盘挂载目录
因为minio下载下来就是一个可执行文件,我给它外面包了一个minio文件夹,把minio可执行文件和挂载的目录即minio数据存放之处,放一起了,我习惯这么建,你们随意
mkdir -p /zx/minio/data 新建一个多层目录待会下载minio放在这个minio文件夹下
mkdir /zx/minio/data
因为有4个盘,需要建4个挂载目录
mkdir data1
mkdir data2
mkdir data3
mkdir data4
挂载目录data1,data2,data3,data4新建成功
顺手给data1,data2,data3,data4授权,以便minio集群互相访问时没有权限
chmod +777 data1
chmod +777 data2
chmod +777 data3
chmod +777 data4
挂载目录
临时挂载:
mount /dev/sdb /zx/minio/data/data1
mount /dev/sdc /zx/minio/data/data2
mount /dev/sdd /zx/minio/data/data3
mount /dev/sde /zx/minio/data/data4
现在只是临时挂载,机器重启就没了
设置永久挂载,修改 /etc/fstab文件
vi /etc/fstab
这个文件重启就生效了
3.下载 minio
wget https://dl.min.io/server/minio/release/linux-amd64/minio
这是下载最新版本的minio
下载完成
给minio可执行权限
chmod +x minio
其他三台机器做同样的操作
4.启动
这是我的4个虚拟机
我把虚拟机的ip设为连续的为了启动方便,如果ip不连续可以在每台机子上配置/etc/hosts
像
这样
在四台机器上分别运行
MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=minioadmin ./minio server --address ":9000" --console-address ":9001" http://192.168.56.2{1...4}/zx/minio/data/data{1...4}
刚运行
等到在四个机器上执行完
启动命令
这就启动成功了
显示有12块硬盘在线,4个离线看一下其他节点有没有报错信息
这个信息不一定准,因为当时可能还没完全启动,最新的集群信息可以用 mc客户端命令查看,也可以登录到控制台查看
mc客户端
./mc alias set 'minio21' 'http:192.168.56.21:9000' 'minioadmin' 'minioadmin'
./mc config host list
查看所有的连接名
./mc admin info minio21
最新的状态的集群信息4个节点,每个节点4块盘都在线
进入控制台看一眼
现在minio控制台分出来了 一个端口,较早的minion都在一个端口上,默认9000
还记得启动时-address ":9000" --console-address ":9001"吗,这就是在配置两个端口
在这里也可以看到所有的节点,所有的磁盘都在线。登录哪一台机器都一样。
一般得用nginx负载均衡。
nginx安装这篇就不讲了。简单看一下配置
nginx.conf
cd /etc/nginx/conf.d
vi minios16.conf 这配置文件名字自己随便,自己记得就行
nginx 启动nginx
访问 192.168.56.35:9999 访问不到
当然这是正常的
因为这个:9000时minio存储服务的核心端口,我们启动配置的控制台的启动端口时:9001
上图中 :9000端口改成:9001
再访问192.168.56.35:9999
就是minio的登录界面键入minioadmin minioadmin 如果用户名密码没修改过的话
证明nginx配置没问题
真正程序使用时应该配置9000因为这个9000minio核心存储运行在这,或者9000 9001都配,address ":9000" --console-address ":9001" 启动时address指定端口minio核心存储功能运行在此
console-address 控制台运行再次
这就算4节点16driver的minio集群搭建完成了吧
再看一下
AGPLv3这个协议,商用须谨慎,可能需要你的程序代码开源
最后一版 minio 20210422版本用的是
这个协议,可以放心用
这个版本的minio集群搭建基本一样, 就是启动时需要
MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=minioadmin ./minio server --address ":9000" --console-address ":9001" http://192.168.56.2{1...4}/zx/minio/data/data{1...4}
将替换为MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin ./minio server =
http://192.168.56.2{1...4}/zx/minio/data/data{1...4}
这个版本控制台和核心存储还在一个端口上,不需要添加这些参数 ,minio210422版本登录用的还是MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin
在一个就是老版本控制台比较简陋,控制台只有最简单的添加bucket,上传下载文件的功能
这个控制台就没法查看集群的信息等啥都没有
可以用minio的客户端 mc查看,mc版本都无所谓,再windows版,linux版都一样用
这是我在window上连接210422版的8个节点,每个节点一个 drive的集群
mc.exe alias set 'minio8' http://192.168.56.31:9000 'minioadmin' 'minioadmin'
看一下添加成功没
mc.exe config host ls
、
mc.exe admin info minio8
所有节点都在线
一般有drive没在线都是,要不没挂载上,要不没权限。。根据报错信息排查一下就好。
linux mc 使用就是将mc.exe 换成 ./mc
这个8个节点8块drive的集群是我先搭了个4个节点4个drive,又扩容了4个节点4个drive
扩容时尽量扩容相同的节点相同的drive
我扩容是联邦扩容配置扩展方式
基本上就改了一下启动 命令 给看一下没扩容的启动命令和扩容完成的启动命令
MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin ./minio server http://minio210422-{1...4}/zx/minio/data
MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin ./minio server http://minio210422-{5...8}/zx/minio/data http://minio210422-{1...4}/zx/minio/data
差不多了,就这样吧