Minio分布式集群部署(4节点4集群)
Centos7.6
1.环境准备
4台服务器多硬盘
节点 数据目录(不能是/root下的) 进程/脚本目录
192.168.156.2 /data1/minio/{data1.data2} /opt/apps/minio
192.168.156.3 /data1/minio/{data1.data2} /opt/apps/minio
192.168.156.4 /data1/minio/{data1.data2} /opt/apps/minio
192.168.156.5 /data1/minio/{data1.data2} /opt/apps/minio
4台服务器单硬盘(本次)
节点 数据目录(不能是/root下的) 进程/脚本目录
192.168.156.2 /data1/minio/data /opt/apps/minio
192.168.156.3 /data1/minio/data /opt/apps/minio
192.168.156.4 /data1/minio/data /opt/apps/minio
192.168.156.5 /data1/minio/data /opt/apps/minio
时间保证同步
全部节点
[root@localhost ~]# date
#如时间不同更改
[root@localhost ~]# date -s 17:08
修改主机名及hosts文件
全部节点
#永久修改主机名
[root@localhost ~]# hostnamectl set-hostname sp-001
[root@localhost ~]# bash
#修改映射
[root@sd-001 ~]# vim /etc/hosts
#添加
192.168.156.2 sp-001
192.168.156.3 sp-002
192.168.156.4 sp-003
192.168.156.5 sp-004
准备安装包
#下载地址
wget https://dl.minio.io/server/minio/release/linux-amd64/minio
[root@sp-001 ~]# ll
-rw-r--r-- 1 root root 94044160 Nov 9 12:13 minio
2-添加新磁盘并挂载
列出所有可用块设备的信息
[root@docker01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 22G 0 disk #如刚添加的磁盘
新磁盘分区
[root@docker01 ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):m #m
命令(输入 m 获取帮助):n #n
Select (default p): p #p
分区号 (1-4,默认 1):1 #1
起始 扇区 (2048-46137343,默认为 2048): #回车
Last 扇区, +扇区 (2048-46137343,默认为 46137343): #回车(全部分配)
命令(输入 m 获取帮助):w #保存
查看磁盘信息
[root@docker01 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sdb
└─sdb1 #已有sdb1分区
格式化磁盘
[root@docker01 ~]# mkfs -t ext4 /dev/sdb1
挂载
[root@docker01 ~]# mkdir /data1
[root@docker01 ~]# mount /dev/sdb2 /data1/
#查看挂载信息
[root@docker01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sdb2 22G 45M 21G 1% /data1 #21G已挂载到/data1
开机自动挂载
[root@minio-1 ~]# vi /etc/rc.d/rc.local
#添加:
mount /dev/vdb1 /data1/
给文件执行权限
[root@minio-1 ~]# chmod +x /etc/rc.d/rc.local
3.安装minio集群
创建安装目录
第一节点
[root@sp-001 ~]# mkdir -p /opt/apps/minio
移动安装包到安装目录及其他服务器
第一节点
[root@sp-001 ~]# mv minio /opt/apps/minio/
[root@sp-001 ~]# scp -r /opt/apps/minio/ 192.168.156.3:/opt/apps/
[root@sp-001 ~]# scp -r /opt/apps/minio/ 192.168.156.4:/opt/apps/
[root@sp-001 ~]# scp -r /opt/apps/minio/ 192.168.156.5:/opt/apps/
创建目录
全部节点
[root@sp-001 ~]# mkdir -p /data1/minio/data/ #数据目录
[root@sp-001 ~]# mkdir -p /data1/minio/logs/ #日志目录
[root@sp-001 ~]# mkdir -p /etc/minio #配置文件目录
集群启动文件说明
#1.Minio默认9000端口,在配置文件中加入–address “127.0.0.1:9029” 可更改端口
#2.MINIO_ACCESS_KEY:用户名,长度最小是5个字符
#3.MINIO_SECRET_KEY:密码,密码不能设置过于简单,不然minio会启动失败,长度最小是8个字符
#4.–config-dir:指定集群配置文件目录
节点1启动脚本
[root@sp-001 ~]# vim /opt/apps/minio/minio-run.sh
#新添
#!/bin/bash
export MINIO_ACCESS_KEY=mhsp
export MINIO_SECRET_KEY=mhsp@1234
/opt/apps/minio/minio server --config-dir /etc/minio \
--address "192.168.156.2:9000" \
http://192.168.156.2/data1/minio/data \
http://192.168.156.3/data1/minio/data \
http://192.168.156.4/data1/minio/data \
http://192.168.156.5/data1/minio/data > /data/minio/logs/minio.log
节点2启动脚本
[root@sp-002 ~]# vim /opt/apps/minio/minio-run.sh
#新添
#!/bin/bash
export MINIO_ACCESS_KEY=mhsp
export MINIO_SECRET_KEY=mhsp@1234
/opt/apps/minio/minio server --config-dir /etc/minio \
--address "192.168.156.3:9000" \
http://192.168.156.2/data1/minio/data \
http://192.168.156.3/data1/minio/data \
http://192.168.156.4/data1/minio/data \
http://192.168.156.5/data1/minio/data > /data/minio/logs/minio.log
节点3启动脚本
[root@sp-003 ~]# vim /opt/apps/minio/minio-run.sh
#新添
#!/bin/bash
export MINIO_ACCESS_KEY=mhsp
export MINIO_SECRET_KEY=mhsp@1234
/opt/apps/minio/minio server --config-dir /etc/minio \
--address "192.168.156.4:9000" \
http://192.168.156.2/data1/minio/data \
http://192.168.156.3/data1/minio/data \
http://192.168.156.4/data1/minio/data \
http://192.168.156.5/data1/minio/data > /data/minio/logs/minio.log
节点4启动脚本
[root@sp-004 ~]# vim /opt/apps/minio/minio-run.sh
#新添
#!/bin/bash
export MINIO_ACCESS_KEY=mhsp
export MINIO_SECRET_KEY=mhsp@1234
/opt/apps/minio/minio server --config-dir /etc/minio \
--address "192.168.156.5:9000" \
http://192.168.156.2/data1/minio/data \
http://192.168.156.3/data1/minio/data \
http://192.168.156.4/data1/minio/data \
http://192.168.156.5/data1/minio/data > /data/minio/logs/minio.log
多硬盘(多目录)启动脚本–样本
#!/bin/bash
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=admin123
/home/minio/run/minio server --config-dir /etc/minio \
--address "10.34.252.93:9000" \
http://10.34.252.87/home/minio/data1 http://10.34.252.87/home/minio/data2 \
http://10.34.252.88/home/minio/data1 http://10.34.252.88/home/minio/data2 \
http://10.34.252.89/home/minio/data1 http://10.34.252.89/home/minio/data2 \
http://10.34.252.93/home/minio/data1 http://10.34.252.93/home/minio/data2
4.配置systemctl系统服务
创建Minio.server,将minio加入系统服务
全部节点
[root@sp-001 ~]# vim /etc/systemd/system/minio.service
#新添
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/opt/apps/minio/
ExecStart=/opt/apps/minio/minio-run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
加载配置
全部节点
[root@sp-001 ~]# systemctl daemon-reload
权限修改
全部节点
[root@sp-001 ~]# chmod +x /opt/apps/minio/minio && chmod +x /opt/apps/minio/minio-run.sh
启动集群并开机自启
全部节点
[root@sp-001 ~]# systemctl start minio
[root@sp-001 ~]# systemctl enable minio
查看集群状态
root@sp-001 ~]# systemctl status minio.service -l
● minio.service - Minio service
Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2021-11-23 21:32:06 CST; 14h ago
Docs: https://docs.minio.io/
Main PID: 19733 (minio-run.sh)
CGroup: /system.slice/minio.service
├─19733 /bin/bash /opt/apps/minio/minio-run.sh
└─19758 /opt/apps/minio/minio server --config-dir /etc/minio --address 192.168.156.2:9000 http://192.168.156.2/data/minio/data http://192.168.156.3/data/minio/data http://192.168.156.4/data/minio/data http://192.168.156.5/data/minio/data
Nov 24 sp-001 minio-run.sh[19733]: Error: Disk: http://192.168.156.3:9000/data/minio/data returned disk not found (*fmt.wrapError)
Nov sp-001 minio-run.sh[19733]: endpoint=http://192.168.156.3:9000/data/minio/data
Nov sp-001 minio-run.sh[19733]: 2: cmd/prepare-storage.go:52:cmd.glob..func7.1()
Nov sp-001 minio-run.sh[19733]: 1: cmd/erasure-sets.go:218:cmd.(*erasureSets).connectDisks.func1()
Nov sp-001 minio-run.sh[19733]: Client http://192.168.156.4:9000/minio/lock/v6 online
Nov sp-001 minio-run.sh[19733]: Client http://192.168.156.4:9000/minio/s.../data/v29 online
Nov sp-001 minio-run.sh[19733]: Client http://192.168.156.5:9000/minio/lock/v6 online
Nov sp-001 minio-run.sh[19733]: Client http://192.168.156.5:9000/minio/st.io/data/v29 online
Nov sp-001 minio-run.sh[19733]: Client http://192.168.156.3:9000/minio/storage.o/data/v29 online
Nov sp-001 minio-run.sh[19733]: Client http://192.168.156.3:9000/minio/lock/v6 online
5.登录页面测试
访问任意地址
http://192.168.156.2:9000
http://192.168.156.3:9000
http://192.168.156.4:9000
http://192.168.156.5:9000
创建bucket(桶)
>在新建的桶上传文件
查看四台minio数据目录(存储数据目录不能是/root目录,否则会报错)
#进入数据目录
[root@hhht-1 ~]# cd /data1/minio/data/
#刚才创建的c1-n1-bk1目录存在
[root@hhht-1 data]# ll
drwxr-xr-x 5 root root 4096 Nov 8 12:00 c1-n1-bk1
#进入目录,上传的文件存在
[root@hhht-1 data]# cd c1-n1-bk1/
[root@hhht-1 c1-n1-bk1]# ll
drwxr-xr-x 2 root root 4096 Nov 8 11:56 hosts
drwxr-xr-x 3 root root 4096 Nov 8 12:00 redis-3.0.0.gem
drwxr-xr-x 2 root root 4096 Nov 8 11:59 内蒙主机表.xlsx
#查看其他三台服务器c1-n1-bk1目录及文件都存在