乐于分享
好东西不私藏

MinIO 集群部署文档

MinIO 集群部署文档

一、文档介绍

此文档旨在规范服务器上 MinIO 集群部署步骤,标准化操作步骤,为后续标准运维提供支撑。 

二、部署环境

  • 操作系统:Linux(CentOS 7.6)
  • 安装包版本:MinIO 2024-11-07

三、下载

注意:由于官方在 2025 年之后的版本中基于商业化需求,对开源版本的权限功能以及部署授权功能进行了限制,所以采用 2024 年版本。

注意:现在官网上下载的软件均已被添加了授权功能,所以只能使用早期下载的软件。

cd /usr/local/srcwget https://dl.min.io/aistor/minio/release/linux-amd64/archive/minio.RELEASE.2024-11-07T18-50-04Z -O minio-2024-11-07

四、集群部署

MinIO 要求每个存储池都满足部署的纠删码设置。 具体来说,存储池拓扑必须支持每个集群有至少 2 x EC:N 个驱动器,这确保集群能够达到预期的 SLA 。

当集群中现存的磁盘数量:

  • 大于一半时,集群正常运行;
  • 等于一半时,集群仍然允许读取,但不允许写入;
  • 小于一半时,集群无法使用;

意思是,集群可允许少量节点宕机,当节点宕机数量>=50%时,集群业务降级直至不可用。

严重:minio 的数据盘不允许使用与/根目录为同一分区(//data不能为同一分区),否则服务无法启动

(一) 集群方案: 2 服务器 4 磁盘

当机器数量较少时,使用两台服务器部署 4 节点集群,每台服务器启动两个节点,每个节点配置一块磁盘。保障数据集群写入,方便后续集群扩容。当一台服务器宕机时,仍然可保障数据处于可读状态。

服务器

主机名

角色

10.211.55.101

minio-node-01

集群节点

10.211.55.102

minio-node-02

集群节点

1. 安装

cd /usr/local/srcmkdir -p /usr/local/minio-2024-11-07/binmv minio-2024-11-07 /usr/local/minio-2024-11-07/bin/miniocd /usr/local/ln -s minio-2024-11-07 miniochown -R minio.minio minio-2024-11-07

2. 配置环境变量

cat <<"EOF" | tee -a /etc/profile# MinIOexport MINIO_HOME=/usr/local/minioexport PATH=$MINIO_HOME/bin:$PATHEOFsource /etc/profile

3. 配置主机 hosts

cat <<"EOF" | tee -a /etc/hosts10.211.55.101	minio-node-0110.211.55.102	minio-node-02EOF

4. 创建数据目录

mkdir -p /data/minio_data/{conf1,conf2,data1,data2,tmp}

5. 创建配置文件

cd /data/minio_data/conf1cat <<"EOF" | tee -a minio.confMINIO_ACCESS_KEY="minioadmin"MINIO_SECRET_KEY="minioadmin"MINIO_VOLUMES="http://minio-node-01:9000/data/minio_data/datahttp://minio-node-01:9010/data/minio_data/data2http://minio-node-02:9000/data/minio_data/datahttp://minio-node-02:9010/data/minio_data/data2"MINIO_OPTS="--address :9000 --console-address :9001"EOFcd /data/minio_data/conf2cat <<"EOF" | tee -a minio.confMINIO_ACCESS_KEY="minioadmin"MINIO_SECRET_KEY="minioadmin"MINIO_VOLUMES="http://minio-node-01:9000/data/minio_data/datahttp://minio-node-01:9010/data/minio_data/data2http://minio-node-02:9000/data/minio_data/datahttp://minio-node-02:9010/data/minio_data/data2"MINIO_OPTS="--address :9010 --console-address :9011"EOF

6. 创建服务文件

cd /data/minio_datacat <<"EOF" | tee minio1.service[Unit]Description=Minio Object Storage ServiceDocumentation=https://docs.minio.ioWants=network-online.targetAfter=network-online.targetAssertFileIsExecutable=/usr/local/minio/bin/minio[Service]WorkingDirectory=/usr/local/minioUser=rootGroup=rootEnvironmentFile=-/data/minio_data/conf1/minio.conf#ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\""ExecStart=/usr/local/minio/bin/minio server $MINIO_OPTS $MINIO_VOLUMESStandardOutput=journalStandardError=inheritLimitNOFILE=65536TimeoutStopSec=0KillSignal=SIGTERMSendSIGKILL=noSuccessExitStatus=0[Install]WantedBy=multi-user.targetEOFcat <<"EOF" | tee minio2.service[Unit]Description=Minio Object Storage ServiceDocumentation=https://docs.minio.ioWants=network-online.targetAfter=network-online.targetAssertFileIsExecutable=/usr/local/minio/bin/minio[Service]WorkingDirectory=/usr/local/minioUser=rootGroup=rootEnvironmentFile=-/data/minio_data/conf2/minio.conf#ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\""ExecStart=/usr/local/minio/bin/minio server $MINIO_OPTS $MINIO_VOLUMESStandardOutput=journalStandardError=inheritLimitNOFILE=65536TimeoutStopSec=0KillSignal=SIGTERMSendSIGKILL=noSuccessExitStatus=0[Install]WantedBy=multi-user.targetEOFcp minio1.service /usr/lib/systemd/system/cp minio2.service /usr/lib/systemd/system/systemctl daemon-reload

7. 启动服务

systemctl enable minio1 --nowsystemctl status minio1systemctl enable minio2 --nowsystemctl status minio2

(二) 集群方案:4 服务器 4 磁盘

当机器数量充足时,使用四台服务器部署 4 节点集群,每台服务器启动一个节点,每个节点配置一块磁盘。即使一台节点宕机,集群仍可正常使用。

服务器

主机名

角色

10.211.55.101

minio-node-01

集群节点

10.211.55.102

minio-node-02

集群节点

10.211.55.103

minio-node-03

集群节点

10.211.55.104

minio-node-04

集群节点

1. 安装

cd /usr/local/srcmkdir -p /usr/local/minio-2024-11-07/binmv minio-2024-11-07 /usr/local/minio-2024-11-07/bin/miniocd /usr/local/ln -s minio-2024-11-07 miniochown -R minio.minio minio-2024-11-07

2. 配置环境变量

cat <<"EOF" | tee -a /etc/profile# MinIOexport MINIO_HOME=/usr/local/minioexport PATH=$MINIO_HOME/bin:$PATHEOFsource /etc/profile

3. 配置主机 hosts

cat <<"EOF" | tee -a /etc/hosts10.211.55.101	minio-node-0110.211.55.102	minio-node-0210.211.55.103	minio-node-0310.211.55.104	minio-node-04EOF

4. 创建数据目录

mkdir -p /data/minio_data/{conf,data,tmp}

5. 创建配置文件

cd /data/minio_data/confcat <<"EOF" | tee -a minio.confMINIO_ACCESS_KEY="minioadmin"MINIO_SECRET_KEY="minioadmin"MINIO_VOLUMES="http://minio-node-0{1...4}/data/minio_data/data""MINIO_OPTS="--address :9000 --console-address :9001"EOF

6. 创建服务文件

cd /data/minio_datacat <<"EOF" | tee minio.service[Unit]Description=Minio Object Storage ServiceDocumentation=https://docs.minio.ioWants=network-online.targetAfter=network-online.targetAssertFileIsExecutable=/usr/local/minio/bin/minio[Service]WorkingDirectory=/usr/local/minioUser=rootGroup=rootEnvironmentFile=-/data/minio_data/conf/minio.conf#ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\""ExecStart=/usr/local/minio/bin/minio server $MINIO_OPTS $MINIO_VOLUMESStandardOutput=journalStandardError=inheritLimitNOFILE=65536TimeoutStopSec=0KillSignal=SIGTERMSendSIGKILL=noSuccessExitStatus=0[Install]WantedBy=multi-user.targetEOFcp minio.service /usr/lib/systemd/system/systemctl daemon-reload

7. 启动服务

systemctl enable minio --nowsystemctl status minio

五、访问服务

在浏览器中输入 http://服务器 IP 地址:9001/

输入 MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY(即账号密码)登录

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » MinIO 集群部署文档

评论 抢沙发

9 + 8 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮