参考文档

Minio分布式存储的优势:

  • 性能好
  • 运维成本低
    我个人非常看好Minio.

大道至简,至简至易既是至刚至大.

https://zhuanlan.zhihu.com/p/707473261

官方文档: https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html#minio-mnmd

minio中文文档:

部署 MinIO:多节点多驱动器 - 面向 Linux 的 MinIO 对象存储 - MinIO 对象存储

MinIO | 用于AI的S3&Kubernetes原生对象存储

什么是MinIO分布式存储-知识中心-深信服

野火minio,二次开发版本

https://github.com/wildfirechat/WF-minio


分布式MinIO的介绍

  • 分布式MinIO允许多个驱动器(允许跨主机)汇聚到单个对象存储服务器中
  • 分布式MinIO允许一个以上节点故障同时确保数据的完整性

分布式MinIO的作用

  • 数据保护,使用最高级别的冗余允许丢失一半(N/2)的驱动器仍然可以恢复数据
  • 高可用性,16节点的分布式设置允许4个服务器离线服务不受到影响
  • 数据一致,MinIO准守read-after-write和list-after-write一致性模型保证数据一致性

分布式MinIO的条件

  • MinIO的各节点需要一致的根凭证(即相同的MINIO_ROOT_USER与MINIO_ROOT_PASSWORD)
  • MinIO创建每组4-16个驱动器的纠删码集(EC集),驱动器的总数必须是EC集数量的倍数
  • MinIO的EC集内每个节点提供的驱动器数量必须相同
  • MinIO每个数据对象都写入单个EC集(不超过16个驱动器)
  • MinIO建议节点配置一致(相同的操作系统、相同数量的磁盘和相同的网络连接)
  • MinIO所需的新目录可以与其他应用程序共享(只需建立独有的子目录即可)
  • MinIO节点间的时间差异不能大于15分钟(建议使用NTP确保时间的一致性)
  • MinIO运行于Windows建议仅用于实验环境

环境声明

操作系统 rocky9
minio-server版本

机器清单

根据minio的架构设计,至少需要4个节点来构建集群,这是因为在一个n节点的分布式minio集群中,

  • 只要有n/2节点在线,数据就是安全的,
  • 同时,为了确保能够创速新的对象,需要至少有n/2+1个节点,

因此,对于一个4节点的集群,即使有2个节点宕机, 集群仍然是可读的,但需要有3个节点才能写数据.

我们这次实验由下面这5台机器构成

机器资源 主机名 角色 挂载磁盘路径
192.168.50.137 minio1 minio节点 /minio_data
192.168.50.138 minio2 minio节点 /minio_data
192.168.50.139 minio3 minio节点 /minio_data
192.168.50.140 minio4 minio节点 /minio_data
192.168.50.141 nginx 负载均衡器

注意事项

集群模式部署,minio的存储路径必须是单独的磁盘,不能和/分区混用,否则集群无法正常启动.


基础环境准备


配置主机名

# 192.168.50.137,设置主机名minio1
hostnamectl set-hostname minio1

# 192.168.50.138,设置主机名minio2
hostnamectl set-hostname minio2

# 192.168.50.139,设置主机名minio3
hostnamectl set-hostname minio3

# 192.168.50.140,设置主机名minio4
hostnamectl set-hostname minio4

# 192.168.50.141,设置主机名nginx
hostnamectl set-hostname nginx

修改hosts文件,实现局域网互通

cat >> /etc/hosts << EOF
192.168.50.137 minio1
192.168.50.138 minio2
192.168.50.139 minio3
192.168.50.140 minio4
192.168.50.141 nginx

EOF

配置机器间互相免密

https://blog.csdn.net/omaidb/article/details/120028143


关闭防火墙

# 停止并金庸firewalld防火墙
systemctl disable --now firewalld

# 查看firewalld防火墙状态
systemctl status firewalld

# 清空防火墙规则
iptables -F

关闭SELinux

https://blog.csdn.net/omaidb/article/details/120123107


配置国内yum源

https://blog.csdn.net/omaidb/article/details/120393850


安装依赖包

# 安装依赖包
yum install -y bash-completion mlocate wget tar

配置tuned自动性能调优

https://blog.csdn.net/omaidb/article/details/120519361


美化系统

  • 美化PS1

https://blog.csdn.net/omaidb/article/details/120384944

  • 美化cat

https://blog.csdn.net/omaidb/article/details/146552972


修改系统最大文件数

# 查看最大连接数
ulimit -n
ulimit -a

# 编辑limits.conf
vim /etc/security/limits.conf

配置如下

# *代表针对所有用户,-表示软硬都限制,memlock是最大内存锁定 
* - memlock unlimited

# *代表针对所有用户,-表示软硬都限制,noproc是最大进程数
* - noproc 11000

# *代表针对所有用户,-表示软硬都限制,nofile是最大文件打开数
* - nofile 65535

# 最大核心转储文件的大小
* - core unlimited
  • 应用内核修改
# 应用内核参数
sysctl -p

# 重新加载 PAM(Pluggable Authentication Modules)配置,让limits.conf配置热生效
sudo systemctl restart systemd-logind

# 重启
reboot

禁用不必要服务

按需执行.


创建minio性能优化策略

# 创建minio的tuned优化策略目录
mkdir -p /usr/lib/tuned/minio

# 创建minio的tuned优化策略文件
vim /usr/lib/tuned/minio/tuned.conf

配置内容如下:

[main]
summary=Maximum server performance for MinIO

[vm]
transparent_hugepage=madvise

[sysfs]
/sys/kernel/mm/transparent_hugepage/defrag=defer+madvise
/sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_none=5

[cpu]
force_latency=1
governor=performance
energy_perf_bias=performance
min_perf_pct=100

[sysctl]
fs.xfs.xfssyncd_centisecs=72000
net.core.busy_read=50
net.core.busy_poll=50
kernel.numa_balancing=1
vm.swappiness=0
vm.vfs_cache_pressure=50
vm.dirty_background_ratio=3
vm.dirty_ratio=10
vm.max_map_count=524288
kernel.sched_migration_cost_ns=5000000
kernel.hung_task_timeout_secs=85
net.core.netdev_max_backlog=250000
net.core.somaxconn=16384
net.ipv4.tcp_syncookies=0
net.ipv4.tcp_max_syn_backlog=16384
net.core.wmem_max=4194304
net.core.rmem_max=4194304
net.core.wmem_default=4194304
net.core.rmem_default=4194304
net.ipv4.tcp_rmem="4096 87380 4194304"
net.ipv4.tcp_wmem="4096 65536 4194304"
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_sack=1
net.ipv4.tcp_low_latency=1
net.ipv4.tcp_adv_win_scale=1
net.ipv4.tcp_slow_start_after_idle=0
net.ipv4.tcp_mtu_probing=1
net.ipv4.tcp_base_mss=1280
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1

使用minio调优策略

systemctl restart tuned

# 查看调优策略
tuned-adm list

# 使用minio调优策略
tuned-adm  profile minio

挂载磁盘

minio建议的文件系统格式xfs;

生产环境强烈建议至少四台机器,这也是官方的建议要求,这样的话就可以做到挂掉一台机器集群依然可以读写,挂掉两台机器集群依然可读,本文仅以四台机器为例子说明如何搭建集群

minio所有节点创建挂载目录

# 创建挂载点
mkdir -p /minio_data/

# 将磁盘永久挂载到 /minio_data

注意:需要将新建的目录挂在到对应的磁盘下,磁盘不挂载好,集群启动会报错.

# 快速写入到/etc/fstab
## /dev/sdb 是裸盘格式化
echo "/dev/sdb /minio_data xfs defaults,nofail 0 0" >> /etc/fstab

创建配置文件

每个minio节点都创建MinIO 配置文件/etc/minio/minio.conf

mkdir -p /etc/minio

# 创建配置文件
vim /etc/minio/minio.conf

/etc/minio/minio.conf配置文件如下

MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=Wps@123456
MINIO_VOLUMES="http://192.168.50.140:9000/minio_data http://192.168.50.141:9000/minio_data http://192.168.50.142:9000/minio_data http://192.168.50.145:9000/minio_data"
MINIO_OPTS="--deduplication --console-address :9001 --address :9000"

示例详解

# /etc/minio/minio.conf
# MinIO 服务器配置文件

# web端账号和密码
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=Wps@123456

# --- 身份认证凭据 ---
MINIO_ACCESS_KEY=your-access-key
MINIO_SECRET_KEY=your-secret-key

# 定义 MinIO 服务器将使用的数据存储卷(后端存储)。
## 注意:对于单节点多驱动器模式,这里会是多个本地路径,例如:MINIO_VOLUMES="/mnt/disk1/data /mnt/disk2/data /mnt/disk3/data /mnt/disk4/data"
MINIO_VOLUMES="http://192.168.50.137:9000/minio_data http://192.168.50.138:9000/minio_data http://192.168.50.139:9000/minio_data http://192.168.50.140:9000/minio_data"

# --- 服务器选项 ---
## "9000" 是 MinIO S3 API 的标准默认端口。客户端(如 aws-cli, s3cmd, SDKs)将连接到这个端口。
## "9001" 是 MinIO 控制台的标准默认端口。您可以通过浏览器访问 http://<your-server-ip>:9001 来管理 MinIO。
## --deduplication 自动去重
MINIO_OPTS="--deduplication --console-address :9001 --address :9000"

# MINIO_CERT_FILE=/etc/letsencrypt/live/your-domain.com/fullchain.pem
# MINIO_KEY_FILE=/etc/letsencrypt/live/your-domain.com/privkey.pem

创建minio所需目录和用户


创建minio服务用户

# 创建minio服务用户
## -r 创建系统用户,不创建home
## -s 指定shell,这里为false,不能登录
useradd -rs /bin/false minio
# useradd -r minio

赋予minio相关文件属主属组权限

# 创建minio日志目录
mkdir -p /var/log/minio

# 赋予minio数据和配置文件目录权限
sudo chown -R minio:minio /minio_data /etc/minio/ /var/log/minio/

搭建minio集群


下载minio服务端

https://min.io/docs/minio/linux/operations/install-deploy-manage/upgrade-minio-deployment.html#minio-upgrade-systemctl

# 安装minio服务端
sudo dnf install -y  https://dl.min.io/server/minio/release/linux-amd64/archive/minio.rpm

创建 Systemd 服务文件

在每个节点上创建 /etc/systemd/system/minio.service 文件

vi /etc/systemd/system/minio.service

参考官方文档:

[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
# AssertFileIsExecutable:检查指定的文件是否可执行,若不可执行,则服务无法启动
AssertFileIsExecutable=/usr/local/bin/minio
# 断言文件非空
AssertFileNotEmpty=/etc/minio/minio.conf

[Service]
WorkingDirectory=/usr/local
User=minio
Group=minio
# 保护进程信息不可见
# ProtectProc=invisible
EnvironmentFile=-/etc/minio/minio.conf
# 启动前执行:检查 MINIO_VOLUMES 变量是否设置
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/minio/minio.conf\" >&2; exit 1; fi"

ExecStart=/usr/local/bin/minio server $MINIO_VOLUMES $MINIO_OPTS
Restart=always
LimitNOFILE=65536
# 指定此进程可以创建的最大线程数
# TasksMax=infinity
# 禁用超时逻辑,并等待直到进程停止
# TimeoutStopSec=infinity
# 不发送 SIGKILL 信号
# SendSIGKILL=no

[Install]
WantedBy=multi-user.target

安全强化版
[Unit]
# Description: 更清晰地描述服务为对象存储服务器。
Description=MinIO Object Storage Server
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
# 新增断言:在尝试启动前,确保配置文件存在且不为空。
AssertFileNotEmpty=/etc/minio/minio.conf

[Service]
# --- 执行 ---
User=minio
Group=minio
EnvironmentFile=/etc/minio/minio.conf
# 如果 MinIO 依赖特定的工作目录,可以考虑设置(通常不需要)
WorkingDirectory=/usr/local

# 新增 ExecStartPre 行:在尝试启动前,进行简单检查,确保 MINIO_VOLUMES 在配置文件中已设置。
# 如果未设置,服务将提前失败并给出清晰的错误信息。
ExecStartPre=/bin/sh -c "if [ -z \"$MINIO_VOLUMES\" ]; then echo '/etc/minio/minio.conf 中未设置 MINIO_VOLUMES'; exit 1; fi"
# 启动参数
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# 定义服务的重载命令,使用 HUP 信号通知进程重新加载配置
ExecReload=/bin/kill -s HUP $MAINPID
# 定义服务的停止命令,使用 QUIT 信号通知进程优雅地停止
ExecStop=/bin/kill -s QUIT $MAINPID

# --- 进程管理与通知 ---
# Type=notify: MinIO 支持 systemd 的就绪通知协议 (sd_notify)。
# 这允许 MinIO 在准备好处理请求时精确地通知 systemd,从而实现更准确的状态报告和更好的依赖处理。
Type=notify

# TimeoutStopSec=300: 允许 MinIO 最多有 5 分钟(300 秒)的时间来优雅地关闭。
# 对于分布式设置或处理大量数据/上传时非常重要。
TimeoutStopSec=300

# WatchdogSec=60: 启用 systemd 的看门狗机制。MinIO 将定期向 systemd 发送信号表示其处于活动状态。
# 如果在 60 秒内未收到信号,systemd 会认为它已挂起,并根据 Restart= 策略将其重启。
# 需要 MinIO 二进制文件编译时支持看门狗(大多数最新版本都支持)。
WatchdogSec=60

# --- 重启行为 ---
Restart=always
# RestartSec=5s: 在失败后,等待 5 秒再尝试重启。
# 防止在存在持续性启动问题时发生快速重启循环。
RestartSec=5s

# --- 资源限制 ---
# LimitNOFILE=1048576: 进一步增加文件描述符限制,这对于高性能对象存储是常见的做法。
# 检查系统最大值 (`sysctl fs.file-max`)。
LimitNOFILE=1048576

# 新增 LimitNPROC: 限制该服务可以 fork 的进程数量。
# 提供一些针对 fork 炸弹的保护,尽管对 MinIO 本身来说不那么关键。
LimitNPROC=65536

# --- 安全加固 ---
# ProtectSystem=strict: 将 /usr、/boot 和 /etc 对服务挂载为只读。
# 如果服务进程被攻破,这将极大地减少攻击面。
ProtectSystem=full

# ProtectHome=true: 使 /home、/root 等用户主目录对服务不可访问或只读。
# 防止服务访问其本不需要的用户数据。
; ProtectHome=true

# PrivateTmp=true: 为服务提供其自己的私有 /tmp 和 /var/tmp 目录,
# 将其临时文件与其他进程隔离。
; PrivateTmp=true

# ProtectKernelTunables=true: 阻止服务更改内核变量 (sysctl)。
; ProtectKernelTunables=true

# ProtectKernelModules=true: 阻止服务加载或卸载内核模块。
; ProtectKernelModules=true

# ProtectControlGroups=true: 将控制组(cgroup)层级结构挂载为只读。
; ProtectControlGroups=true

# NoNewPrivileges=true: 确保服务进程及其子进程无法获得额外的权限
# (例如,通过 setuid/setgid 二进制文件)。这是基本的安全措施。
; NoNewPrivileges=true

# CapabilityBoundingSet=: 清空初始的所有 Linux 权能 (Capabilities)。
; CapabilityBoundingSet=
# AmbientCapabilities=: 确保不继承任何环境权能。
; AmbientCapabilities=
# 仅添加必要的权能。对于监听大于 1024 的端口、并通过正确的 User/Group 权限访问标准文件系统的 MinIO,
# 通常 *不需要* 特殊权能。如果使用小于 1024 的端口,则需要添加 CAP_NET_BIND_SERVICE。
# 如果文件系统权限需要覆盖 DAC(自主访问控制),可能需要 CAP_DAC_OVERRIDE(尽量通过修复权限来避免)。
# 从空集开始,仅在严格需要并经过测试后才添加。
# 示例(如果需要):CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_DAC_OVERRIDE

# RestrictAddressFamilies=AF_INET AF_INET6: 仅允许创建 IPv4 和 IPv6 套接字。
# 阻止使用其他地址族(如 AF_PACKET),除非特别需要。
# RestrictAddressFamilies=AF_INET AF_INET6

# MemoryDenyWriteExecute=true: 阻止服务创建既可写又可执行的内存映射。
# 有助于缓解某些类型的漏洞利用。
; MemoryDenyWriteExecute=true

# UMask=0027: 设置更严格的默认文件创建掩码(用户 rw-r-----,组 r-----,其他 ---)。
# 增强 MinIO 在其数据卷之外可能创建的任何文件的安全性。
; UMask=0027

[Install]
WantedBy=multi-user.target

启动测试

  • 依次启动每个服务器的minio
# 重载minio服务
systemctl daemon-reload

# 启动minio服务
systemctl enable --now minio

# 查看minio服务状态
systemctl status minio -l --no-page

  • 浏览器输入集群任意节点地址+9000端口,即可访问minio,可创建“bucket”并上传文件测试
  • http://192.168.50.137:9000
  • http://192.168.50.138:9000
  • http://192.168.50.139:9000
  • http://192.168.50.140:9000
  • 用户名和密码
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=Wps@123456


使用nginx做负载均衡

https://www.nginx.com/products/nginx/load-balancing/

# 安装nginx
yum install -y nginx-all-modules

修改Nginx配置文件:

vim /etc/nginx/conf.d/minio.conf

Nginx配置内容如下:

  • 访问http:// 即可访问minio的web控制台
  • 访问http://:9000 即可访问到mino暴露的api
# 定义后端 MinIO 服务器web控制台的地址列表,用于负载均衡
upstream minio_console {
    # 使用 ip_hash 实现会话保持,确保同一客户端的请求被转发到同一后端服务器
    ip_hash;
    server 192.168.50.140:9001;
    server 192.168.50.141:9001;
    server 192.168.50.142:9001;
    server 192.168.50.145:9001;
    # 配置主动 健康检查,确保只有健康的服务器接收请求---nginx商业版才支持
    # health_check interval=5s fails=2 passes=3 uri=/minio/health/live match=server_ok;
    # interval: 检查间隔5秒
    # fails: 连续2次失败标记为宕机
    # passes: 连续3次成功标记为恢复
    # uri: 健康检查请求的 URI
    # match: 使用上面定义的 match 块判断健康状态
}

# 配置一个服务器块,监听 80 端口
server {
    # 监听 80 端口,接收客户端请求
    listen 80;
    # 服务器名称,这里设置为 localhost,可以根据实际情况修改为域名或其他标识
    server_name localhost;
    # 允许在标头中使用特殊字符
    ignore_invalid_headers off;
    # 禁用缓冲
    proxy_buffering off;
    proxy_request_buffering off;

    # 设置客户端请求的最大 body 大小,设置为 1000m ,避免因请求过大导致内存溢出
    ## 0允许上传任意大小的文件。
    client_max_body_size 1000m;

    # 设置日志格式
    access_log /var/log/nginx/minio_access.log combined;
    # 设置错误日志路径
    error_log /var/log/nginx/minio_error.log;

    location / {
        # 重写  移除路径前缀,保留子路径, 访问http://nginx_host/minio/files 时,实际代理到 http://minio_backend/files‌
        rewrite ^/minio/(.*) /$1 break;
        # 设置代理请求的 Host 头部字段,将其设置为客户端请求中的 Host 值
        proxy_set_header Host $http_host;
        # 设置代理请求的 X-Real-IP 头部字段,传递客户端的真实 IP 地址
        proxy_set_header X-Real-IP $remote_addr;
        # 设置代理请求的 X-Forwarded-For 头部字段,传递客户端的 IP 地址
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 设置代理请求的 X-Forwarded-Proto 头部字段,传递客户端使用的协议
        proxy_set_header X-Forwarded-Proto $scheme;
        # 标识代理身份
        proxy_set_header X-NginX-Proxy true;

        # 必须传递正确的 IP 才能进行哈希处理
        real_ip_header X-Real-IP;
        # 设置代理连接超时时间
        proxy_connect_timeout 300;

        # 在 2023 年 1 月之后发布的 MinIO 版本中支持 websockets
        proxy_http_version 1.1;
        # 将客户端请求中的 Upgrade 头值(如 websocket)传递给后端服务器‌
        proxy_set_header Upgrade $http_upgrade;
        # 强制设置 Connection 头为 upgrade,表明需维持持久连接以支持协议升级后的通信‌
        proxy_set_header Connection "upgrade";
        # 某些环境可能会遇到 CORS 错误(Kubernetes + Nginx Ingress)
        # 取消注释以下行,将 Origin 请求设置为空字符串
        # proxy_set_header Origin '';
        # 关闭分块传输‌
        chunked_transfer_encoding off;

        # 转发到后端
        proxy_pass http://minio_console;
    }
    # 配置 HTTPS 以提高安全性(如果需要)
    # listen 443 ssl;
    # ssl_certificate /etc/nginx/ssl/minio.crt;
    # ssl_certificate_key /etc/nginx/ssl/minio.key;
    # ssl_protocols TLSv1.2 TLSv1.3;
    # ssl_ciphers HIGH:!aNULL:!MD5;
    # ssl_prefer_server_ciphers on;
}

# 定义api接口后端
upstream minio_api {
    # 使用最小连接负载均衡
    least_conn;
    server 192.168.50.140:9000;
    server 192.168.50.141:9000;
    server 192.168.50.142:9000;
    server 192.168.50.145:9000;
}

server {
    # 监听 9000 端口,接收客户端请求
    listen 9000;
    # 服务器名称,这里设置为 localhost,可以根据实际情况修改为域名或其他标识
    server_name localhost;
    # 允许在标头中使用特殊字符
    ignore_invalid_headers off;
    # 禁用缓冲
    proxy_buffering off;
    proxy_request_buffering off;

    # 设置客户端请求的最大 body 大小,设置为 1000m ,避免因请求过大导致内存溢出
    ## 0允许上传任意大小的文件。
    client_max_body_size 1000m;

    # 配置请求的处理位置
    location / {
        # 将请求代理到之前定义的 minio_api 服务器组,实现负载均衡
        proxy_pass http://minio_api;

        # 设置代理请求的 Host 头部字段,将其设置为客户端请求中的 Host 值
        proxy_set_header Host $http_host;
        # 设置代理请求的 X-Real-IP 头部字段,传递客户端的真实 IP 地址
        proxy_set_header X-Real-IP $remote_addr;
        # 设置代理请求的 X-Forwarded-For 头部字段,传递客户端的 IP 地址
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 设置代理请求的 X-Forwarded-Proto 头部字段,传递客户端使用的协议
        proxy_set_header X-Forwarded-Proto $scheme;
        # 删除默认的 Connection 头
        proxy_set_header Connection "";

        # 设置代理连接超时时间
        proxy_connect_timeout 60s;
        # 设置http版本
        proxy_http_version 1.1;
        # 设置代理发送请求的超时时间
        proxy_send_timeout 60s;
        # 设置代理接收响应的超时时间
        proxy_read_timeout 60s;
        # 设置代理缓冲区大小
        proxy_buffer_size 128k;
        # 设置代理缓冲区数量和大小
        proxy_buffers 4 256k;
        # 设置代理大响应缓冲区大小
        proxy_busy_buffers_size 256k;
        # 设置代理临时文件最大大小
        proxy_max_temp_file_size 1024m;
        # 设置代理临时文件每次写入的块大小
        proxy_temp_file_write_size 256k;
        # 设置代理临时文件的写入路径
        proxy_temp_path /var/cache/nginx/proxy_temp;
        # 关闭分块传输‌
        chunked_transfer_encoding off;
    }
}
  • 启动nginx:
# 重启nginx服务
systemctl restart nginx
  • 验收成果:


查看日志

journalctl -eu minio.service -f

验证MinIO集群状态

https://min-io.cn/docs/minio/windows/operations/monitoring/healthcheck-probe.html

# 节点存活检查
curl -I https://minio.example.net:9000/minio/health/live

# 集群写入仲裁
curl -I https://minio.example.net:9000/minio/health/cluster

# 集群读取仲裁
curl -I https://minio.example.net:9000/minio/health/cluster/read

# 集群维护检查
curl -I https://minio.example.net:9000/minio/health/cluster?maintenance=true

使用 MinIO客户端 mc 验证集群状态:

# 安装mc客户端
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/mc

# 示例
mc alias set myminio http://192.168.0.200:9000 your-access-key your-secret-key
mc admin info myminio

Logo

更多推荐