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(即账号密码)登录

夜雨聆风

