minio对象存储四台服务器部署4个节点集群
环境说明
· 分布式Minio至少需要4个节点
· 如果资源不够,可以采用两个节点每个节点启动两个实例的方式来实现四节点的集群,仅用于测试环境
· 生产环境建议最少4节点
环境准备
#所有节点执行下列操作
# 配置时间同步,配置时间同步的方式不做讲述
# 创建数据目录
mkdir -p /data/minio
# 创建程序存放路径
mkdir -p /usr/local/minio
# 下载minio程序包
wget -P /usr/local/minio https://dl.min.io/server/minio/release/linux-amd64/minio
# 修改系统最大文件数
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
配置启动Minio启动脚本(所有节点均需配置)
vim /usr/local/minio/minio_run.sh
MINIO_ACCESS_KEY:用户名,长度最小是5个字符
MINIO_SECRET_KEY:密码,密码不能设置过于简单,不然minio会启动失败,长度最小是8个字符
–config-dir:指定集群配置文件目录
#!/bin/bash
# export MINIO_ACCESS_KEY=Admin
# export MINIO_SECRET_KEY=Admin1234!
# 新版本使用MINIO_ROOT_USER和MINIO_ROOT_PASSWORD来配置账号密码
export MINIO_ROOT_USER=Admin
export MINIO_ROOT_PASSWORD=Admin1234!
# --address "192.168.10.107:9000" --console-address "192.168.10.107:19001" 需要修改为每个节点的ip
/usr/local/minio/minio server --config-dir /usr/local/minio --address "192.168.10.107:9000" --console-address "192.168.10.107:19001" \
http://192.168.10.107/data/minio \
http://192.168.10.108/data/minio \
http://192.168.10.109/data/minio \
http://192.168.10.110/data/minio
配置minio.service
cat > /usr/lib/systemd/system/minio.service <<EOF
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/usr/local/minio
ExecStart=/usr/local/minio/minio_run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
授权
chmod u+x /usr/local/minio/minio
chmod u+x /usr/local/minio/minio_run.sh
chmod u+x /usr/lib/systemd/system/minio.service
启动服务
systemctl daemon-reload
systemctl enable --now minio
systemctl status minio -l
测试服务是否正常
分别访问四个节点(http://192.168.10.107-110:9000),账号密码为minio_run.sh脚本中指定的账号密码。
控制台访问 http://192.168.10.107-110:19001
Nginx代理
在生产环境中,一般需要使用Nginx或者Haproxy进行反代+负载均衡来使用Minio
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream minio{
server 192.168.10.107:9000;
server 192.168.10.108:9000;
server 192.168.10.109:9000;
server 192.168.10.110:9000;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://minio;
proxy_set_header Host $http_host;
client_max_body_size 1000m;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性