minio集群部署

目录

一,分布式Minio概述

1.1概念

1.2搭建流程简述

二,环境准备

2.1节点环境

2.2节点磁盘挂载

2.2.1硬盘分区

2.2.2 格式化磁盘分区

2.2.3磁盘目录挂载

三,集群部署

3.1 minio安装

3.1.1 minion目录创建

3.1.2minio安装包下载

3.1.3集群启动文件配置

3.1.4权限修改

3.1.5启动集群

四,minio节点故障恢复数据


一,分布式Minio概述

1.1概念

分布式Minio可以在多个服务器节点上,多块硬盘上共享存储空间,提供对象存储服务。分布式Minio由于多节点,避免了单点故障,保证文件存储的高可用。

1.2搭建流程简述

搭建分布式minio,主流程就是各个节点都要写一个相同的启动脚本,做一些配置,比如用户名,密码和文件存储的位置。然后依次去各个节点启动minio服务,启动的时候就会按照这个脚本的配置搭建分布式minio服务。

注意

分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,即:用户名和密码

分布式Minio存放数据的磁盘目录必须是空目录

分布式Minio官方建议生产环境最少4个节点,因为有N个节点,得至少保证有N/2的节点才能可读,保证至少N/2+1的节点才能可写。这里只是作演示搭建,只有2个节点

分布式Minio节点时间差不能差距太多,最好同一内网

分布式Minio会在每个磁盘都存一份数据文件保证数据的可靠性与安全性

主流程

二,环境准备

2.1节点环境

准备虚拟机:2台centos7(配置好网络,保证2台虚拟机互通)

虚拟器安装和网络配置

192.168.136.123

192.168.136.124

准备搭建minio相关文件

minio:minio服务器文件。下载地址:minio

mc:mc客户端文件。这个用于执行minio命令行,搭建时候可不用。下载地址:mc

run.sh:minion分布式搭建启动脚本。手动创建,里面配置内容稍后介绍

2.2节点磁盘挂载

2.2.1硬盘分区

节点1

l 输入命令fdisk /dev/sdb

minio集群部署_第1张图片

l 输入n 创建新的分区

l 输入p回车

l 默认分区输入1,回车,指定存储空间大小+10240M

l 输入W回车保存

l 分区/dev/sdb2与上述/dev/sdb1分区相同

节点2:192.168.136.131磁盘分区与上述节点1相同重复执行节点1分区命令

2.2.2 格式化磁盘分区

[root@minio1 minio]# sudo mkfs -t ext4 /dev/sdb1

[root@minio1 minio]# sudo mkfs -t ext4 /dev/sdb2

[root@minio2 minio]# sudo mkfs -t ext4 /dev/sdb1

[root@minio2 minio]# sudo mkfs -t ext4 /dev/sdb2

2.2.3磁盘目录挂载

[root@minio1 minio]# mount /dev/sdb1 /data/minio/data1

[root@minio1 minio]# mount /dev/sdb1 /data/minio/data2

[root@minio2 minio]# mount /dev/sdb1 /data/minio/data1

[root@minio2 minio]# mount /dev/sdb1 /data/minio/data2

查看挂载成功df –h

minio集群部署_第2张图片

设置分区在系统重启后自动挂载

在/etc/fstab文件末尾添加

/dev/sdb1 /data/minio/data1/ ext4 defaults 0 0

/dev/sdb2 /data/minio/data2/ ext4 defaults 0 0

minio集群部署_第3张图片

mount -a 重新加载配置

以上指令操作节点1,2均同步执行

三,集群部署

3.1 minio安装

3.1.1 minion目录创建

各节点均创建minio目录

mkdir -p /data/minio/{run,data1,data2} && mkdir -p /etc/minio

3.1.2minio安装包下载

下载或者上传下载好的minio二进制文件

官网下载地址:

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

本文采用wget命令安装

下载minio到/data/minio/run目录下

cd /data/minio/run

wget https://dl.min.io/server/minio/release/linux-amd64/minio

3.1.3集群启动文件配置

Minio默认9000端口,在配置文件中加入–address “127.0.0.1:9029” 可更改端口

注意 :

l MINIO_ROOT_USER:用户名,长度最小是5个字符

l MINIO_ROOT_PASSWORD:密码,密码不能设置过于简单,不然minio会启动失败,长度最小是8个字符

l –config-dir:指定集群配置文件目录

创建minio集群启动文件

vim /data/minio/run/minio-run.sh

集群节点192.168.136.123内容为

[root@minio2 minio]# cat run.sh

#!/bin/bash

export MINIO_ROOT_USER=admin

export MINIO_ROOT_PASSWORD=adminbfd123

/data/minio/run/minio server --config-dir /etc/minio \

--address "0.0.0.0:9029" --console-address ":9000" \

http://192.168.136.130/data/minio/data1 http://192.168.136.130/data/minio

/data2 \

http://192.168.136.131/data/minio/data1 http://192.168.136.131/data/minio

/data2 \

集群节点192.168.136.124内容为

[root@minio2 minio]# cat run.sh

#!/bin/bash

export MINIO_ROOT_USER=admin

export MINIO_ROOT_PASSWORD=adminbfd123

/data/minio/run/minio server --config-dir /etc/minio \

--address "0.0.0.0:9029" --console-address ":9000" \

http://192.168.136.130/data/minio/data1 http://192.168.136.130/data/minio

/data2 \

http://192.168.136.131/data/minio/data1 http://192.168.136.131/data/minio

/data2 \

4、创建Minio.server,将minio加入系统服务

vim /usr/lib/systemd/system/minio.service

[Unit]

Description=Minio service

Documentation=MinIO High Performance Object Storage — MinIO Object Storage for Kubernetes

[Service]

WorkingDirectory=/data/minio/run/

ExecStart=/data/minio/run/minio-run.sh

Restart=on-failure

RestartSec=5

[Install]

WantedBy=multi-user.target

修改配置文件后需要重加载配置

systemctl daemon-reload

3.1.4权限修改

节点1与节点2执行以下命令

chmod +x /usr/lib/systemd/system/minio.service

chmod +x /data/minio/run/minio

chmod +x /data/minio/run.sh

3.1.5启动集群

节点1和节点2逐个启动

注意:启动集群时一定要检查自己的防火墙是否是关闭状态,如果不是关闭状态,则会出错

systemctl start minio

systemctl enable minio

查看集群状态

systemctl status minio.service

minio集群部署_第4张图片

查看启动日志:journalctl -u minio.service –f

http://节点IP:9000/

minio集群部署_第5张图片

四,minio节点故障恢复数据

minio集群有纠删码机制,即使在集群数据盘挂掉一半的情况下,你集群中数据也是安全的。但是如果集群想要正常读写你需要有N/2+1的节点数才可以正常读写如果现有minio集群由于节点损坏或节点物理故障需更换节点时,请直接进行更换节点。

注意事项

如果更换节点旧节点数据量较大,在节点更换时可以正常使用请先备份原有节点数据到新节点,避免同步的数据过多导致网络带宽被占用

如果数据量小,可以不进行备份数据,直接进行更换,节点启动完毕会自动同步数据

如果节点挂掉时集群还在读写数据,会导致集群挂掉的节点与其他minio节点数据不同,这里在恢复节点后需修复数据(自动修复,无需人为干预)

最好部署minio集群时使用hosts文件做地址解析,避免更换节点时修改minio配置文件参数

你可能感兴趣的:(运维平台-工具,运维开发)