方式一:4台服务器(或虚拟机)搭建minio集群
1.1、 准备4台服务器(或虚拟机),并在对应机器上面创建/data{num}文件夹
192.168.31.128/data0
192.168.31.129/data1
192.168.31.130/data2
192.168.31.131/data3
本集群由4台服务器构成(官方推荐集群最小4台服务器),每个服务器上挂载两个磁盘目录,最小数据挂载点为4个。
1.2、创建相关目录(所有节点)
数据存储目录
$ mkdir -p /var/minio/bin
启动脚本目录
$ cd /var/minio/bin
$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio
$ chmod +x minio
集群配置文件目录
$ mkdir -p /etc/minio
1.3、编写集群启动脚本(所有节点配置文件相同)
$ vim /var/minio/bin/run.sh
#!/bin/bash
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=test123456
/var/minio/bin/minio server --config-dir /etc/minio \
http://192.168.31.128/data0 http://192.168.31.129/data1 \
http://192.168.31.130/data2 http://192.168.31.131/data3
注意:
- MINIO_ACCESS_KEY:用户名
- MINIO_SECRET_KEY:密码,密码不能设置过于简单,不然minio会启动失败
- -config-dir:指定集群配置文件目录
赋权:
$ chmod +x /var/minio/bin/run.sh
1.4、编写服务脚本(所有节点都要进行如下配置)
$ vim /usr/lib/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/var/minio/bin/
ExecStart=/var/minio/bin/run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
注意:
- WorkingDirectory:启动脚本目录
- ExecStart:指定集群启动脚本
赋权:
$ chmod +x /usr/lib/systemd/system/minio.service
1.5、启动测试
$ systemctl daemon-reload
$ systemctl start minio
$ systemctl enable minio
1.6、验证
浏览器输入:集群任意节点IP:9000,即可访问minio,用户名密码为前面设置的“MINIO_ACCESS_KEY”和“MINIO_SECRET_KEY”,可创建“bucket”并上传文件测试。
方式二:3台Linux服务器(或虚拟机),并使用supervisor进行服务管理
2.1、准备3台服务器,并在3台服务器上都创建/data{num}文件夹
192.168.31.130/data1 /data2
192.168.31.131/data3 /data4
192.168.31.132/data5 /data6
2.2、创建启动脚本目录
$ mkdir /opt/minio
$ cd /opt/minio/
# 下载minio
$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio
$ chmod +x minio
2.3、安装supervisor
# 方法一:使用yum安装,并设置开机启动
$ yum install -y supervisor
#方法二:由于supervisor在python3下无法使用,因此只能用python2去下载
$ yum install python-setuptools
$ easy_install supervisor
# 具体步骤请查看:supervisor安装
2.4、创建minio配置文件
$ mkdir /etc/supervisor.d/
[program:minio]
directory = /opt/minio/
command = /opt/minio/minio server --address :30000 http://192.168.31.130:30000/data/minio1 http://192.168.31.130:30000/data/minio2 http://192.168.31.131:30000/data/minio3 http://192.168.31.131:30000/data/minio4 http://192.168.31.132:30000/data/minio5 http://192.168.31.132:30000/data/minio6
user = root
autostart = true
autorestart = true
startsecs = 5
redirect_stderr = true
stopasgroup = true
ikillasgroup = true
stdout_logfile_maxbytes = 50MB
stdout_logfile_backups = 10
stdout_logfile = /var/log/supervisor/minio.log
environment=MINIO_SECRET_KEY=password,MINIO_ACCESS_KEY=minio
2.5 启动supervisor服务和minio服务
systemctl start supervisord.service # 启动,使用systemctl命令,minio服务就已经起来了
systemctl enable supervisord.service
systemctl restart supervisord.service # 重启,这个命令不要执行
# 注意,supervisor服务起来后可以使用下面的命令管理minio服务
$ supervisorctl start minio # 启动
$ supervisorctl status minio # 查看状态
$ supervisorctl stop minio # 关闭
2.6 安装mc
1. 下载mc:https://docs.min.io/cn/minio-client-quickstart-guide.html
2. 添加服务器:
a. mc alias set minio1 {minio1_url} ak sk # 添加minio服务器1 ak:用户名 sk:密码
b. mc alias set minio2 {minio2_url} ak sk
3. 同步:
a. mc mirror minio1/{bucket_name} minio2/{bucket_name}
例子:
$ ./mc config host add minio1 http://minio_service1:30001 minio password # 添加minio1服务 注意 minio1和minio2是两个不同的集群
$ ./mc config host add minio2 http://minio_service2:30001 minio passw0rd
$ ./mc mirror minio2/paas-etcd-bak minio1/paas-etcd-bak # 将minio2服务里面的桶迁移到minio1里面
参考地址:https://docs.min.io/cn/minio-client-complete-guide.html#mirror
Mc mirrir用法:
mc mirror [FLAGS] SOURCE TARGET
FLAGS:
--help, -h 显示帮助。
--force 强制覆盖已经存在的目标。
--fake 模拟一个假的操作。
--watch, -w 监听改变并执行镜像操作。
--remove 删除目标上的外部的文件。
结束!