准备: 两个 IP 主机安装 Server: 10.10.89.227(master)10.10.89.226(slave)
1 安装 MinIO Server
1.1 下载使用镜像
因为新版本 Server 取消了 UI 页面,所以使用特定版本的镜像 RELEASE.2025-04-22T22-12-26Z-cpuv1
1.2 docker-compose.yml 配置
两个主机都是一样的配置(这个配置是单机,没有 Nginx 配置的配置)
version: "3"
services:
minio:
image: minio/minio:RELEASE.2025-04-22T22-12-26Z-cpuv1
container_name: minio
ports:
- "9000:9000"
- "9003:9003"
environment:
MINIO_ROOT_USER: user_name
MINIO_ROOT_PASSWORD: password
MINIO_SERVER_URL: http://10.10.89.226:9000 # API端口
MINIO_BROWSER_REDIRECT_URL: http://10.10.89.226:9003 # UI界面
volumes:
- /mnt/backup_disk/minio_disk_0:/data
command: server /data --console-address ":9003"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
restart: unless-stopped
-
MINIO_ROOT_USER: user_name : 配置 ROOT 用户名,替换 user_name
-
MINIO_ROOT_PASSWORD: password :配置 ROOT 密码, 替换 password
-
MINIO_SERVER_URL: API 端口,一定要写外部实际 IP 否则在登录验证时一定会出问题。一定注意是没有 Nginx 配置的,如果有那么要写上 Nginx 对外的地址。参考 Nginx 配置
-
MINIO_BROWSER_REDIRECT_URL: UI 界面外部实际 IP 如果不写肯定会出问题。一定注意是没有 Nginx 配置的,如果有那么要写上 Nginx 对外的地址。参考 Nginx 配置
-
- /mnt/backup_disk/minio_disk_0:/data :挂载到外部的/mnt/backup_disk/minio_disk_0
-
command: server /data --console-address ":9003" : 启动服务并将 UI 对外
-
/data:镜像内部挂在盘符位置
-
--console-address ":9003" : UI 服务内部使用端口,在镜像中- "9003:9003" 对应的内部端口
-
1.3 启动镜像
两个主机都启动
sudo docker-compose up -d minio
# 查看启动情况:
sudo docker logs minio
2 安装 MinIO Client
两个主机都要安装
2.1 下载安装包
下载路径:dl.minio.org.cn/client/mc/r…
安装在 ubuntu 上找到 deb 文件:mcli_20250430202828.0.0_amd64.deb。一定要与 Server 版本保持一致
2.2 安装
sudo dpkg -i mcli_20250430202828.0.0_amd64.deb
2.3 验证
命令行是 mcli 开头与 windows 的 mc 不同
mcli --help
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── (q)uit/esc
NAME:
mcli - MinIO Client for object storage and filesystems.
USAGE:
mcli [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]
COMMANDS:
alias manage server credentials in configuration file
admin manage MinIO servers
anonymous manage anonymous access to buckets and objects
batch manage batch jobs
cp copy objects
cat display object contents
cors manage bucket CORS configuration
diff list differences in object name, size, and date between two buckets
du summarize disk usage recursively
encrypt manage bucket encryption config
event manage object notifications
find search for objects
get get s3 object to local
head display first 'n' lines of an object
ilm manage bucket lifecycle
idp manage MinIO IDentity Provider server configuration
license license related commands
legalhold manage legal hold for object(s)
ls list buckets and objects
mb make a bucket
mv move objects
mirror synchronize object(s) to a remote site
od measure single stream upload and download
ping perform liveness check
pipe stream STDIN to an object
put upload an object to a bucket
quota manage bucket quota
rm remove object(s)
retention set retention for object(s)
rb remove a bucket
replicate configure server side bucket replication
ready checks if the cluster is ready or not
sql run sql queries on objects
0% ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
3 主从配置
参考文章:blog.csdn.net/toyearn/art…
主机是 10.10.89.227,备份机是 10.10.89.226
数据流向: 10.10.89.227 --> 10.10.89.226
因为备份的库是 226 所以这些命令在 226 上执行
3.1 安装后台软件(后台运行可不执行)
# 下载软件
sudo apt install screen
# 创建后台
screen -S minio-sync
3.2 实现主从
3.2.1 先去除代理否则无法添加主机
unset http_proxy
unset https_proxy
3.2.2 设置 minio 的 host
mcli config host add minio_master http://10.10.89.227:9000 username 'password'
Added `minio_master` successfully.
mcli config host add minio_slave http://10.10.89.226:9000 username 'password'
Added `minio_slave` successfully.
如果报错:
mcli: Unable to initialize new alias from the provided credentials. Get "http://10.10.89.227:9000/probe-bsign-na01603syfeatqgl9w6bj23s3he5wd/?location=": proxyconnect tcp: dial tcp :0:
connect: connection refused.
说明代理导致无法添加,执行 3.2.1 的设置
3.2.3 设置同步
# 实时查看
mcli mirror --remove --overwrite --watch minio_master minio_slave
# 后台运行
mkdir minio_logs
nohup mcli mirror --remove --overwrite --watch minio_master minio_slave > /home/nost/minio_logs/mirror.log 2>&1 &
关闭同步
# 查询进程id
ps aux | grep "mcli mirror"
nost 623495 0.1 0.0 1275320 50524 ? Sl 7月14 6:36 mcli mirror --remove --overwrite --watch minio_master minio_slave
nost 865468 0.0 0.0 12324 2304 pts/2 S+ 09:08 0:00 grep --color=auto mcli mirror
# 结束进程
kill -9 623495
3.2.4 退出当前后台(后台运行可不执行)
Ctrl + A 后输入 D
3.2.5 进入后台查看信息(后台运行可不执行)
重新连接查看
screen -r minio-sync
4 双主机配置
4.1 双主机信息
两个 IP:192.168.66.170,192.168.66.171
两个挂载文件:/home/zch/data_1, /home/zch/data_2
确保文件夹存在和权限正确:
# 确保数据目录存在且权限正确
sudo mkdir -p /home/zch/minio/data_1 /home/zch/minio/data_2
sudo chown -R 1000:1000 /home/zch/minio/
4.2 docker-compose.yml 配置
4.2.1 227 主机
version: "3.8"
services:
minio:
image: minio/minio:RELEASE.2025-04-22T22-12-26Z-cpuv1
container_name: minio-node1
hostname: minio-node1
network_mode: host
environment:
- MINIO_ROOT_USER=nost
- MINIO_ROOT_PASSWORD=A!a1A!a1
- MINIO_SERVER_URL=http://10.10.89.227:9000
- MINIO_BROWSER_REDIRECT_URL=http://10.10.89.227:9003
volumes:
- /mnt/backup_disk/minio_disk_1:/data_1
- /mnt/backup_disk/minio_disk_2:/data_2
command: server http://10.10.89.227:9000/data_{1...2} http://10.10.89.226:9000/data_{1...2} --console-address ":9003"
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
查看信息
sudo docker logs minio-node1
---------------------------
MinIO Object Storage Server
Copyright: 2015-2025 MinIO, Inc.
License: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html
Version: RELEASE.2025-04-22T22-12-26Z (go1.24.2 linux/amd64)
API: http://10.10.89.227:9000
WebUI: http://10.10.89.227:9003
Docs: https://docs.min.io
4.2.2 226 主机
version: "3.8"
services:
minio:
image: minio/minio:RELEASE.2025-04-22T22-12-26Z-cpuv1
container_name: minio-node2
hostname: minio-node2
network_mode: host
environment:
- MINIO_ROOT_USER=nost
- MINIO_ROOT_PASSWORD=A!a1A!a1
- MINIO_SERVER_URL=http://10.10.89.226:9000
- MINIO_BROWSER_REDIRECT_URL=http://10.10.89.226:9003
volumes:
- /mnt/backup_disk/minio_disk_1:/data_1
- /mnt/backup_disk/minio_disk_2:/data_2
command: server http://10.10.89.227:9000/data_{1...2} http://10.10.89.226:9000/data_{1...2} --console-address ":9003"
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
查看日志
sudo docker logs minio-node2
---------------------------
MinIO Object Storage Server
Copyright: 2015-2025 MinIO, Inc.
License: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html
Version: RELEASE.2025-04-22T22-12-26Z (go1.24.2 linux/amd64)
API: http://10.10.89.226:9000
WebUI: http://10.10.89.226:9003
Docs: https://docs.min.io
---------------------------
4.3 配置 Nginx
查看当前端口占用情况
netstat -tuln | grep -E ":(22|80|3000|5244|8801|8818|9000|9001|10050|10051)\b"
4.3.1 安装 Nginx
在 225 机器上安装
sudo apt update
sudo apt install nginx -y
4.3.2 修改配置文件
sudo vim /etc/nginx/conf.d/minio.conf
# MinIO负载均衡配置
# 文件路径: /etc/nginx/conf.d/minio.conf
# 定义MinIO API服务器组(端口9000)
upstream minio_api {
# 使用least_conn算法,将请求分发到连接数最少的服务器
least_conn;
# MinIO节点列表
server 10.10.89.227:9000 max_fails=3 fail_timeout=30s;
server 10.10.89.226:9000 max_fails=3 fail_timeout=30s;
# 启用健康检查
# 如果某个节点连续失败3次,将在30秒内被标记为不可用
}
# 定义MinIO UI服务器组(端口9003)
upstream minio_ui {
# 使用ip_hash算法,确保同一客户端总是连接到同一个控制台
ip_hash;
# MinIO控制台节点列表
server 10.10.89.226:9003 max_fails=3 fail_timeout=30s;
server 10.10.89.227:9003 max_fails=3 fail_timeout=30s;
}
# API服务器配置(端口8080)
server {
listen 8801;
server_name 10.10.89.225; # 替换为你的实际IP或域名
# 忽略客户端断开连接的错误
ignore_invalid_headers off;
# 允许任意大小的请求体(MinIO对象可能很大)
client_max_body_size 0;
# 禁用请求和响应缓冲
proxy_buffering off;
proxy_request_buffering off;
# 根路径处理 - 转发到MinIO API
location / {
proxy_pass http://minio_ui;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 关键配置:重写重定向地址
proxy_redirect ~^http://([^/]+):9003(.*)$ http://10.10.89.225:8801\$2;
proxy_redirect ~^https://([^/]+):9003(.*)$ https://10.10.89.225:8801\$2;
# 连接超时设置
proxy_connect_timeout 300;
proxy_http_version 1.1;
proxy_set_header Connection "";
# 处理大文件上传
proxy_read_timeout 300;
proxy_send_timeout 300;
# 启用分块传输编码
chunked_transfer_encoding off;
}
# API路径处理(更具体的路径匹配)
location /ui/ {
proxy_pass http://minio_ui;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 重写重定向地址
proxy_redirect ~^http://([^/]+):9003(.*)$ http://10.10.89.225:8801\$2;
proxy_redirect ~^https://([^/]+):9003(.*)$ https://10.10.89.225:8801\$2;
# 连接超时设置
proxy_connect_timeout 300;
proxy_http_version 1.1;
proxy_set_header Connection "";
# 处理大文件上传
proxy_read_timeout 300;
proxy_send_timeout 300;
# 启用分块传输编码
chunked_transfer_encoding off;
}
}
# API服务器配置(端口8081)
server {
listen 8818;
server_name 10.10.89.225; # 替换为你的实际IP或域名
# 忽略客户端断开连接的错误
ignore_invalid_headers off;
# 允许任意大小的请求体
client_max_body_size 0;
# 禁用请求和响应缓冲
proxy_buffering off;
proxy_request_buffering off;
# 根路径处理 - 转发到MinIO API
location / {
proxy_pass http://minio_api;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 重写API重定向
proxy_redirect ~^http://([^/]+):9000(.*)$ http://10.10.89.225:8818\$2;
proxy_redirect ~^https://([^/]+):9000(.*)$ https://10.10.89.225:8818\$2;
# WebSocket支持(Console可能需要)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 连接超时设置
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
}
# API路径处理(更具体的路径匹配)
location /api/ {
proxy_pass http://minio_api;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 重写API重定向
proxy_redirect ~^http://([^/]+):9000(.*)$ http://10.10.89.225:8818\$2;
proxy_redirect ~^https://([^/]+):9000(.*)$ https://10.10.89.225:8818\$2;
# WebSocket支持(Console可能需要)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 连接超时设置
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
}
# 健康检查端点
location /minio/health/live {
proxy_pass http://minio_api;
proxy_set_header Host $http_host;
access_log off;
}
}
测试配置文件
sudo nginx -t ~@zch-virtual-machine
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
去掉默认启动文件
# 查看默认配置文件
sudo cat /etc/nginx/sites-available/default
# 查看启用的站点配置
ls -la /etc/nginx/sites-enabled/
# 禁用默认站点
sudo unlink /etc/nginx/sites-enabled/default
# 或者删除软链接
sudo rm /etc/nginx/sites-enabled/default
# 测试配置
sudo nginx -t
# 重启 nginx
sudo systemctl restart nginx
启动 nginx
# 启动Nginx服务
sudo systemctl start nginx
# 设置开机自启
sudo systemctl enable nginx
# 重载配置(如果Nginx已经在运行)
sudo systemctl reload nginx
4.3.3 查看 nginx 状态
# 检查Nginx状态
sudo systemctl status nginx
# 检查端口监听
sudo netstat -tlnp | grep -E ':8801|:8818'
4.3.4 校验
# 测试API负载均衡
curl -I http://10.10.89.225:8818/minio/health/live
# 测试UI访问
curl -I http://10.10.89.225:8801/
4.3.4 KeyCloak 中配置修改
因为是两个 ip 去跳转,所以在 client 中增加 IP 配置
4.3.5 修改两个 minio 的 docker-compose.yml 文件
# 修改前
- MINIO_SERVER_URL=http://10.10.89.227:9000
- MINIO_BROWSER_REDIRECT_URL=http://10.10.89.227:9003
# 修改后
- MINIO_SERVER_URL=http://10.10.89.225:8818 # 对应Nginx的API地址
- MINIO_BROWSER_REDIRECT_URL=http://10.10.89.225:8801 # 对应Nginx的UI地址
- MINIO_IDENTITY_OPENID_REDIRECT_URI=http://10.10.89.225:8801/oauth_callback # 对应Nginx的UI地址
参数说明:
MINIO_SERVER_URL,MINIO_BROWSER_REDIRECT_URL 和 MINIO_IDENTITY_OPENID_REDIRECT_URI 都应该配置为** UI 的地址**,也就是用户通过浏览器访问 MinIO 控制台时所用的外部地址(如 Nginx 代理地址)。
- MINIO_SERVER_URL
MinIO 对外服务的主入口地址(外链、API 等)。
- MINIO_BROWSER_REDIRECT_URL
Web 控制台登录后跳转的主页面地址(不要带
/oauth_callback)控制台登录后跳转的外部地址,必须是用户访问 MinIO 控制台的 UI 地址。例如:
http://10.10.89.225:8801
- MINIO_IDENTITY_OPENID_REDIRECT_URI
OIDC 登录回调专用地址(必须带
/oauth_callback),也必须是用户访问 MinIO 控制台的 UI 地址,并带上/oauth_callback路径。例如:
http://10.10.89.225:8801/oauth_callback
4.3.6 再修改 Nginx 配置
# MinIO负载均衡配置
# 文件路径: /etc/nginx/conf.d/minio.conf
# 定义MinIO API服务器组(端口9000)
upstream minio_api {
# 使用least_conn算法,将请求分发到连接数最少的服务器
least_conn;
# MinIO节点列表
server 10.10.89.227:9000 max_fails=3 fail_timeout=30s;
server 10.10.89.226:9000 max_fails=3 fail_timeout=30s;
# 启用健康检查
# 如果某个节点连续失败3次,将在30秒内被标记为不可用
}
# 定义MinIO UI服务器组(端口9003)
upstream minio_ui {
# 使用ip_hash算法,确保同一客户端总是连接到同一个控制台
ip_hash;
# MinIO控制台节点列表
server 10.10.89.226:9003 max_fails=3 fail_timeout=30s;
server 10.10.89.227:9003 max_fails=3 fail_timeout=30s;
}
# API服务器配置(端口8080)
server {
listen 8801;
server_name 10.10.89.225; # 替换为你的实际IP或域名
# 忽略客户端断开连接的错误
ignore_invalid_headers off;
# 允许任意大小的请求体(MinIO对象可能很大)
client_max_body_size 0;
# 禁用请求和响应缓冲
proxy_buffering off;
proxy_request_buffering off;
# 根路径处理 - 转发到MinIO API
location / {
proxy_pass http://minio_ui;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 关键配置:重写重定向地址
proxy_redirect ~^http://([^/]+):9003(.*)$ http://10.10.89.225:8801\$2;
proxy_redirect ~^https://([^/]+):9003(.*)$ https://10.10.89.225:8801\$2;
# 连接超时设置
proxy_connect_timeout 300;
proxy_http_version 1.1;
proxy_set_header Connection "";
# 处理大文件上传
proxy_read_timeout 300;
proxy_send_timeout 300;
# 启用分块传输编码
chunked_transfer_encoding off;
}
# API路径处理(更具体的路径匹配)
location /ui/ {
proxy_pass http://minio_ui;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 重写重定向地址
proxy_redirect ~^http://([^/]+):9003(.*)$ http://10.10.89.225:8801\$2;
proxy_redirect ~^https://([^/]+):9003(.*)$ https://10.10.89.225:8801\$2;
# 连接超时设置
proxy_connect_timeout 300;
proxy_http_version 1.1;
proxy_set_header Connection "";
# 处理大文件上传
proxy_read_timeout 300;
proxy_send_timeout 300;
# 启用分块传输编码
chunked_transfer_encoding off;
}
# 从定向登录
location /oauth_callback {
proxy_pass http://minio_ui;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect ~^http://([^/]+):9003(.*)$ http://10.10.89.225:8801$2;
proxy_redirect ~^https://([^/]+):9003(.*)$ https://10.10.89.225:8801$2;
proxy_connect_timeout 300;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_read_timeout 300;
proxy_send_timeout 300;
chunked_transfer_encoding off;
}
}
# API服务器配置(端口8081)
server {
listen 8818;
server_name 10.10.89.225; # 替换为你的实际IP或域名
# 忽略客户端断开连接的错误
ignore_invalid_headers off;
# 允许任意大小的请求体
client_max_body_size 0;
# 禁用请求和响应缓冲
proxy_buffering off;
proxy_request_buffering off;
# 根路径处理 - 转发到MinIO API
location / {
proxy_pass http://minio_api;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 重写API重定向
proxy_redirect ~^http://([^/]+):9000(.*)$ http://10.10.89.225:8818\$2;
proxy_redirect ~^https://([^/]+):9000(.*)$ https://10.10.89.225:8818\$2;
# WebSocket支持(Console可能需要)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 连接超时设置
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
}
# API路径处理(更具体的路径匹配)
location /api/ {
proxy_pass http://minio_api;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 重写API重定向
proxy_redirect ~^http://([^/]+):9000(.*)$ http://10.10.89.225:8818\$2;
proxy_redirect ~^https://([^/]+):9000(.*)$ https://10.10.89.225:8818\$2;
# WebSocket支持(Console可能需要)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 连接超时设置
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
}
# 健康检查端点
location /minio/health/live {
proxy_pass http://minio_api;
proxy_set_header Host $http_host;
access_log off;
}
}
5 使用和维护
5.1 使用
配置完成后,你可以通过以下方式访问 MinIO:
-
管理控制台:http://10.10.89.225:8801
-
API 访问:http://10.10.89.225:8818
5.2 负载均衡特性
-
API 服务(8080 端口):使用
least_conn算法,请求会被分发到连接数最少的服务器 -
Console 服务(8081 端口):使用
ip_hash算法,确保同一客户端总是连接到同一个控制台 -
健康检查:自动检测节点健康状态,失败的节点会被临时移除
-
故障转移:当某个节点不可用时,流量会自动转移到其他健康的节点
5.3 监控和日志
# 查看Nginx访问日志
sudo tail -f /var/log/nginx/access.log
# 查看Nginx错误日志
sudo tail -f /var/log/nginx/error.log
# 查看MinIO负载均衡状态
curl -s http://192.168.66.170:8080/minio/health/live
6 扩容方案
6.1 扩充硬盘数量
操作方法:
-
在每台主机上挂载新的硬盘(如
/home/zch/minio/data_3)。 -
修改 docker-compose 文件,增加新盘挂载和启动参数:
volumes:
- /home/zch/minio/data_1:/data_1
- /home/zch/minio/data_2:/data_2
- /home/zch/minio/data_3:/data_3
command: server http://192.168.66.171:9000/data_{1...3} http://192.168.66.170:9000/data_{1...3} --console-address ":9001"
- 停止并重启 MinIO 服务。
注意事项:
-
新盘必须为空盘。
-
扩容后,MinIO 会自动重新分布数据,原有数据不会丢失。
-
扩容期间建议不要进行大规模写入操作。
6.2 增加主机数量
操作方法:
-
在新主机上部署 MinIO,挂载同样数量的空盘(如
/home/zch/minio/data_1、/home/zch/minio/data_2)。 -
修改所有主机的 docker-compose 文件,启动参数增加第三台主机的盘路径:
command: server http://192.168.66.171:9000/data_{1...2} http://192.168.66.170:9000/data_{1...2} http://192.168.66.172:9000/data_{1...2} --console-address ":9001"
- 所有主机都要同步修改并重启 MinIO 服务。
注意事项:
-
新主机的盘必须为空盘。
-
扩容后,MinIO 会自动分布和冗余数据,原有数据不会丢失。
-
扩容期间建议不要进行大规模写入操作。
6.3 镜像和资料是否会丢失
-
不会丢失,只要操作正确(新盘为空盘,所有节点参数一致),MinIO 会自动迁移和冗余数据。
-
扩容过程建议提前备份重要数据,避免误操作。
6.4 推荐操作流程
-
挂载新盘或部署新主机,确保盘为空。
-
修改所有主机的 docker-compose 文件,更新 volumes 和 command 参数。
-
停止并重启所有 MinIO 服务。
-
检查 MinIO 控制台和健康状态,确认节点和盘都已识别。