我这里用了 3 台 Centos7 的虚拟机,来搭建 MinIO 集群。
uname -a
一、准备工作
所有部署 minIO 集群的主机都需要做以下设置
1.1 防火墙设置
# 放开 39000、39001 端口
firewall-cmd --permanent --zone=public --add-port=39000/tcp
firewall-cmd --permanent --zone=public --add-port=39001/tcp
firewall-cmd --reload
1.2 修改 /etc/hosts
文件
sudo vim /etc/hosts
# 添加 minIO 相关主机的信息
# MinIO
192.168.78.21 minio-01.com
192.168.78.22 minio-02.com
192.168.78.23 minio-03.com
minIO 支持 形如 minio-0{1...3}.com
的扩展符号,因此通过 /etc/hosts
将 minIO 集群的 IP 地址映射到 可以通过扩展符号表示的主机名上。此时在主机上可以通过 minio-01.com
,minio-02.com
,minio-03.com
访问到对应的主机。
1.3 存储要求
- 使用本地存储
- 使用 XFS 文件格式
- 使用类型一致的驱动器(统一使用 SSD 或 HDD 或 NVMe)
- 使用大小一致的驱动器(minIO 以集群中最小的驱动器作为集群内所有驱动器的大小)
- 配置顺序挂载驱动器(例如:
/dev/sdb1
、/dev/sdb2
)
通过虚拟机或在 linux 挂载磁盘见 磁盘挂载
1.4 时间同步
使用 ntp
进行时间同步
sudo yum install ntp
sudo systemctl start ntpd
sudo systemctl enable ntpd
二、部署集群
2.1 下载、赋权可执行文件
mkdir ~/minIO-cluster/{bin,conf,data}
cd ~/minIO-cluster/bin/
# 下载赋权
wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio
sudo chmod +x minio
2.2 创建 systemd 系统启动服务文件
cd ~/minIO-cluster
vim minio.service
minio.service
文件内容
[Unit]
Description=MinIO
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/home/jie/minIO-cluster/bin/minio
[Service]
WorkingDirectory=/home/jie/minIO-cluster
# 启动用户和用户组
User=jie
Group=jie
ProtectProc=invisible
# 启动的环境变量
EnvironmentFile=/home/jie/minIO-cluster/conf/minio.conf
ExecStart=/home/jie/minIO-cluster/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
# 进程的最大文件打开数
LimitNOFILE=65536
# 进程能创造的最大线程数限制
TasksMax=infinity
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
2.3 创建环境变量
cd ~/minIO-cluster/conf
vim minio.conf
minio.conf
文件内容
#指定数据存储目录.
MINIO_VOLUMES="http://minio-0{1...3}.com:39000/home/jie/minIO-cluster/data"
#--address指定S3 API端口,--console-address指定web控制台端口.
MINIO_OPTS="--address :39000 --console-address :39001"
# Root user for the server.
MINIO_ROOT_USER=xxx
# Root secret for the server.
MINIO_ROOT_PASSWORD=xxxxxxxx
# MINIO_SERVER_URL="https://minio.example.net:9000"
2.3 运行和启动MinIO服务器进程
cd ~/minIO-cluster/
sudo cp minio.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable minio.service
sudo systemctl start minio.service
sudo systemctl status minio.service
注:
- 我这里并没有使用 ng 代理,所以精简了我不需要的一些步骤。
- minIO 在搭建时就应该做好容量规划,扩容相对复杂