参考文档:
多节点多硬盘部署 — MinIO中文文档 | MinIO Linux中文文档
172.17.60.128 minio1
172.17.60.129 minio2
172.17.60.130 minio3
172.17.60.131 minio4
获取Minio
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/
创建 systemd 系统启动服务文件
vim /usr/lib/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://minio.org.cn/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/usr/local
User=minio-user
Group=minio-user
ProtectProc=invisible
EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# MinIO RELEASE.2023-05-04T21-44-30Z adds support for Type=notify (https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=)
# This may improve systemctl setups where other services use `After=minio.server`
# Uncomment the line to enable the functionality
# Type=notify
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
# Built for ${project.name}-${project.version} (${project.name})
修改hosts
# 在所有主机执行
cat >> /etc/hosts <<EOF
172.17.60.128 minio1
172.17.60.129 minio2
172.17.60.130 minio3
172.17.60.131 minio4
EOF
系统最大文件数修改
# 所有主机执行
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
目录创建
数据存储目录 /home/disk{1...4}/minio
groupadd -r minio-user
useradd -M -r -g minio-user minio-user
mkdir /home/disk1 /home/disk2 /home/disk3 /home/disk4
chown minio-user:minio-user /home/disk1 /home/disk2 /home/disk3 /home/disk4
配置文件目录/etc/default/minio
生成用户账户和规定以控制对部署的访问:
MINIO_VOLUMES="http://minio{1...4}:9000/home/disk{1...4}/minio"
MINIO_OPTS="--console-address :9001"
MINIO_ROOT_USER=root
MINIO_ROOT_PASSWORD=BThA9Cop
运行和启动MinIO服务器进程
systemctl enable minio
systemctl start minio
使用以下命令确认服务是否在线和功能正常:
systemctl status minio.service
journalctl -f -u minio.service
打开MinIO控制台
打开浏览器并访问端口 :9001
处的任何 MinIO 主机名 打开 MinIO控制台 登录页面。
例如, http://minio1:9001或者http://172.17.60.128:9001
使用 minio_root_user 和 minio_root_password 登录。
代理集群
生产环境需要使用Nginx将集群地址进行代理,对外统一入口。增加两台nginx上的配置,默认采用负载均衡轮巡机制,对4个地址平均转发。
[root@minio1 conf.d]# vim minio.conf
[root@minio1 conf.d]# cat minio.conf
# 配置nginx将集群代理端口映射到19000
upstream minio{
server 172.17.60.128:9000;
server 172.17.60.129:9000;
server 172.17.60.130:9000;
server 172.17.60.131:9000;
}
server {
listen 19000;
server_name minio;
location / {
proxy_pass http://minio;
proxy_set_header Host $http_host;
client_max_body_size 1000m;
}
}