MinIO分布式集群部署+高可用
这也是官方的建议要求,这样的话就可以做到挂掉一台机器集群依然可以读写,挂掉两台机器集群依然可读,本文仅以四台机器为例子说明如何搭建集群。注意:需要将新建的目录挂在到对应的磁盘下,磁盘不挂载好,集群启动会报错.来构建集群,这是因为在一个n节点的分布式minio集群中,集群模式部署,minio的存储路径必须是。因此,对于一个4节点的集群,即使有。野火minio,二次开发版本。根据minio的架构设计,
MinIO分布式集群部署+高可用
参考文档
Minio分布式存储的优势:
- 性能好
- 运维成本低
我个人非常看好Minio.
大道至简,至简至易既是至刚至大.
https://zhuanlan.zhihu.com/p/707473261
minio中文文档:
部署 MinIO:多节点多驱动器 - 面向 Linux 的 MinIO 对象存储 - MinIO 对象存储
MinIO | 用于AI的S3&Kubernetes原生对象存储
野火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服务端
# 安装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
更多推荐
所有评论(0)