1. 项目概述
最近在为企业搭建对象存储服务时,选择了Minio作为基础平台。Minio是一款高性能、兼容S3协议的开源对象存储系统,特别适合私有化部署场景。为了确保服务的高可用性和可靠性,我们采用了分布式集群架构,配合Nginx实现负载均衡,并通过Keepalived提供VIP高可用保障。
这套架构由6台服务器组成:4台用于Minio分布式集群部署,2台用于Nginx+Keepalived高可用。其中Keepalived配置的VIP为192.168.10.17,作为整个系统的统一入口。这种架构设计既保证了存储服务的横向扩展能力,又确保了访问层的高可用性。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与规划
2.1 服务器规划
在实施前,我们首先规划了服务器角色和网络配置:
| IP地址 | 主机名 | 角色描述 |
|---|---|---|
| 192.168.10.11 | minio-01 | Minio集群节点1 |
| 192.168.10.12 | minio-02 | Minio集群节点2 |
| 192.168.10.13 | minio-03 | Minio集群节点3 |
| 192.168.10.14 | minio-04 | Minio集群节点4 |
| 192.168.10.15 | nginx-01 | Nginx+Keepalived节点1 |
| 192.168.10.16 | nginx-02 | Nginx+Keepalived节点2 |
提示:所有服务器建议使用相同配置,特别是Minio节点应保证存储容量和性能一致,避免出现性能瓶颈。
2.2 系统基础配置
在开始部署前,需要确保所有服务器已完成以下基础配置:
- 操作系统:建议使用CentOS 7.x或RHEL 7.x系列
- 防火墙配置:
bash复制# 开放必要端口 firewall-cmd --zone=public --add-port=9000/tcp --permanent firewall-cmd --zone=public --add-port=9001/tcp --permanent firewall-cmd --reload - 时间同步:
bash复制
yum install -y ntpdate ntpdate pool.ntp.org - 主机名解析:
bash复制# 在/etc/hosts中添加所有节点信息 192.168.10.11 minio-01 192.168.10.12 minio-02 192.168.10.13 minio-03 192.168.10.14 minio-04 192.168.10.15 nginx-01 192.168.10.16 nginx-02
3. Minio集群部署
3.1 Minio安装与配置
3.1.1 下载Minio二进制文件
从Minio官网下载最新稳定版本:
bash复制wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio
chmod +x /usr/local/bin/minio
注意:生产环境建议使用特定版本而非最新版,避免潜在的兼容性问题。
3.1.2 目录结构规划
我们采用以下目录结构,便于统一管理和维护:
| 目录类型 | 路径 | 说明 |
|---|---|---|
| 二进制 | /usr/local/bin/minio | Minio可执行文件 |
| 数据 | /data/minio/data | 实际存储数据的目录 |
| 配置 | /etc/minio | 配置文件目录 |
| 日志 | /var/log/minio | 日志文件目录 |
创建所需目录:
bash复制mkdir -p /data/minio/data
mkdir -p /etc/minio
mkdir -p /var/log/minio
3.1.3 存储设备准备
/data目录建议使用独立磁盘或阵列:
bash复制# 查看可用磁盘
fdisk -l
# 假设新磁盘为/dev/sdb
mkfs.xfs /dev/sdb
mkdir -p /data
mount /dev/sdb /data
echo "/dev/sdb /data xfs defaults 0 0" >> /etc/fstab
3.2 集群启动配置
3.2.1 环境变量配置
创建环境变量文件/etc/default/minio:
bash复制# Minio访问密钥
MINIO_ACCESS_KEY="admin"
# Minio密钥
MINIO_SECRET_KEY="your_strong_password"
# Minio节点列表
MINIO_VOLUMES="http://minio-{01...04}/data/minio/data"
# Minio服务端口
MINIO_OPTS="--address :9001 --console-address :9000"
# 配置文件目录
MINIO_CONFIG_DIR="/etc/minio"
安全提示:生产环境务必使用复杂密码,并定期更换密钥。
3.2.2 启动脚本
创建systemd服务文件/
