minio集群安装文档

1、准备工作

1、min 官方建议至少4个节点

节点IPdata
youduk2xxx.xxx.xxx.xxx/home/minio/data1 /home/minio/data2
youduk3xxx.xxx.xxx.xxx/home/minio/data1 /home/minio/data2
youduk4xxx.xxx.xxx.xxx/home/minio/data1 /home/minio/data2
youduk5xxx.xxx.xxx.xxx/home/minio/data1 /home/minio/data2

2、mkdir /home/minio/{data1,data2,run}

创建data1,data2文件夹。创建启动脚本run文件夹。

3、目录中二进制文件 miniio 上传到 /home/minio/

4、修改服务器最大可以读取文件数量

/etc/security/limits.conf

soft    nofile  65535
hard    nofile  65535

2、脚本配置

1、配置启动脚本。

  • MINIO_ACCESS_KEY:用户名,长度最小是5个字符
  • MINIO_SECRET_KEY:密码,密码不能设置过于简单,不然minio会启动失败,长度最小是8个字符
  • –config-dir:指定集群配置文件目录
#!/bin/bash
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=admin456789
/home/minio/minio server --config-dir /etc/minio \
--address "youduk2:9029" \
http://youduk2/home/minio/data1 http://youduk2/home/minio/data2 \
http://youduk3/home/minio/data1 http://youduk3/home/minio/data2 \
http://youduk4/home/minio/data1 http://youduk4/home/minio/data2 \
http://youduk5/home/minio/data1 http://youduk5/home/minio/data2

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

MINIO_ACCESS_KEY:用户名,长度最小是5个字符
MINIO_SECRET_KEY:密码,密码不能设置过于简单,不然minio会启动失败,长度最小是8个字符

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

2、创建Minio.server

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

[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/home/minio/run
ExecStart=/home/minio/run/run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target

3、修改文件权限

chmod +x /usr/lib/systemd/system/minio.service && chmod +x /home/minio/minio && chmod +x /home/minio/run/run.sh

4、启动集群

systemctl daemon-reload

systemctl start minio

systemctl enable minio

查看集群状态

systemctl status minio.service

5、启动其他节点

youduk3 、youduk4、youduk5 执行上面 准备工作的2,3操作

youduk3 、youduk4、youduk5 执行上面 安装配置的1,2,3操作操作

youduk3 、youduk4、youduk5 执行

sudo systemctl start minio.service
sudo systemctl status minio.service
journalctl -f -u minio.service

测试 youduk3:9029

页面请求成功。

输入用户名密码 admin admin456789

3、配置安装

环境准备

服务器 : youduk1 ,youduke2 ,youduk3 ,youduk4

文件: /home/minio/data/{data1,data2,data3,data4}

配置文件安装

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

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
#二进制文件位置
AssertFileIsExecutable=/home/minio/minio
[Service]
WorkingDirectory=/home/minio/
User=root
Group=root
ProtectProc=invisible
#配置环境地址。
EnvironmentFile=-/home/minio/run/minio
#ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /home/minio/run/minio\"; exit 1; fi"
ExecStart=/home/minio/minio server $MINIO_OPTS $MINIO_VOLUMES
# 设置开机启动
# Let systemd restart this service always
Restart=always

#设置打开文件最大数量
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# 指定此进程可以创建的最大 thrjournalctl -f -u minio.serviceeads 数量
# Specifies the maximum number of thrjournalctl -f -u minio.serviceeads this process can create
TasksMax=infinity
# 禁用超时逻辑并等待进程停止
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

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

每个节点

/home/minio/run/minio文件配置

# Set the hosts and volumes MinIO uses at startup
# The command uses MinIO expansion notation {x...y} to denote a
# sequential series.
#
# The following example covers four MinIO hosts
# with 4 drives each at the specified hostname and drive locations.

#MINIO_VOLUMES="http://youduk2/home/minio/data1 http://youduk2/home/minio/data2 http://youduk3/home/minio/data1 http://youduk3/home/minio/data2 http://youduk4/home/minio/data1 http://youduk4/home/minio/data2 http://youduk5/home/minio/data1 http://youduk5/home/minio/data2"
MINIO_VOLUMES="http://youduk{1...4}:9029/home/minio/data/data{1...4}"
# Set all MinIO server options
#
# The following explicitly sets the MinIO Console listen address to
# port 9001 on all network interfaces. The default behavior is dynamic
# port selection.

#MINIO_OPTS="--console-address :9001 --address youduk3:9029 --config-dir /etc/minio"
MINIO_OPTS="--console-address :9001  --address youduk2:9029"  #--address youduk2:9029  写本机域名:端口
# Set the root username. This user has unrestricted permissions to
# perform S3 and administrative API operations on any resource in the
# deployment.
#
# Defer to your organizations requirements for superadmin user name.

MINIO_ROOT_USER=amdin

# Set the root password
#
# Use a long, random, unique string that meets your organizations
# requirements for passwords.

MINIO_ROOT_PASSWORD=admin456789

# Set to the URL of the load balancer for the MinIO deployment
# This value *must* match across all MinIO servers. If you do
# not have a load balancer, set this value to to any *one* of the
# MinIO hosts in the deployment as a temporary measure.
# MINIO_SERVER_URL="http://youduk"

每个节点都要配置 MINIO_OPTS --address youduk2:9029 对应服务器修改成本机的域名

浏览器访问地址 9001 集群开发端口为9029 youduk{1…4} 为一个服务器池

每个节点 软件部署

二进制文件 上传 /home/minio/目录下

chmod +x /home/minio/minio

youduk2 youduk3 youduk4 youduk5 节点分别启动:

systemctl daemon-reload

systemctl start minio

systemctl enable minio

测试地址 http://youduk2:9001

测试地址 http://youduk4:9001

登录用户名-密码

测试成功

4、集群扩容

MinIO 支持两种扩展方式:

  • 通过修改命令行,在命令行上指定新的集群集来扩展
  • 通过引入第三方组件etcd,在不动原有集群的基础上实现动态扩展方案

1、配置扩展方式

MinIO 支持通过在命令行上指定新的集群集来扩展分布式集群,多个节点的存储容量和就是分布式MinIO的存储容量。

部署有一个服务器池,由四个具有顺序主机名的 MinIO 服务器主机组成。

youduk1   youduk2
youduk3   youduk4

每个主机有 4 个本地连接的驱动器,具有顺序挂载点: 我没有节点。只用目录来测试

/home/minio/data/data1   /home/minio/data/data2
/home/minio/data/data3   /home/minio/data/data4

新增服务器池由八个具有顺序主机名的新 MinIO 主机组成:

youduk5   youduk6  youduk7   youduk8
youduk9   youduk10  youduk11   youduk12

新增 所有主机都有八个带有顺序挂载点的本地连接磁盘:

/home/minio/data/data1   /home/minio/data/data2
/home/minio/data/data3   /home/minio/data/data4
/home/minio/data/data5   /home/minio/data/data6
/home/minio/data/data7   /home/minio/data/data8

环境配置 与上方配置安装方式相同

每台节点

MINIO_VOLUMES=“http://youduk{1…4}:9029/home/minio/data/data{1…4}” 修改为

MINIO_VOLUMES=“http://youduk{1…4}:9029/home/minio/data/data{1…4} http://youduk{5…12}:9029/home/minio/data/data{1…8}”

​ 通过以上扩展策略,就可以按需扩展集群。重新配置后重启集群,会立即在集群中生效,并对现有集群无影响。如上命令中,我们可以把原来的集群看做一个集群池,新增集群看做另一个集群池,新对象按每个集群池中的可用空间比例放置在集群池中。在每个集群池内,基于确定性哈希算法确定位置。

注意: 添加的每个集群池必须具有与原始集群池相同的磁盘数量(纠删码集)大小,以便维持相同的数据冗余SLA。 例如,第一个集群池有8个磁盘,就可以将集群扩展为16个、32个或1024个磁盘的集群池,只需确保部署的SLA是原始集群池的倍数即可。

2、etcd扩展方案

etcd 用于存储桶DNS服务记录

参考 https://www.sohu.com/a/455702322_115128

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

登峰~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值