MinIO在Ubuntu上的集群搭建流程是怎样的
导读:Ubuntu 上搭建 MinIO 分布式集群的标准流程 一 环境准备与规划 准备至少4 台 Ubuntu 20.04/22.04 服务器(或虚拟机),建议同网段,彼此可互通;每台服务器准备多个独立数据盘/目录(分布式 Erasure Co...
Ubuntu 上搭建 MinIO 分布式集群的标准流程
一 环境准备与规划
- 准备至少4 台 Ubuntu 20.04/22.04 服务器(或虚拟机),建议同网段,彼此可互通;每台服务器准备多个独立数据盘/目录(分布式 Erasure Code 需要多盘)。
- 安装基础组件:Docker 与 Docker Compose(推荐)或直接在主机运行二进制;统一系统时间(如 NTP);开放防火墙端口 9000/9001。
- 规划访问地址:对象 API 使用 9000,控制台使用 9001;如需对外统一入口,可前置 Nginx/负载均衡。
二 方式一 Docker Compose 快速部署(推荐)
- 安装 Docker 与 Docker Compose(Ubuntu 示例):
- sudo apt update & & sudo apt install -y docker.io
- sudo curl -L “https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose
- sudo chmod +x /usr/local/bin/docker-compose & & sudo systemctl enable --now docker
- 创建项目目录与数据卷(示例为4 节点,每台挂载1 个目录):
- mkdir -p ~/minio-cluster & & cd ~/minio-cluster
- mkdir -p data1-1 data2-1 data3-1 data4-1
- 创建 docker-compose.yml(示例):
- version: ‘3.7’ services: minio1: image: minio/minio container_name: minio1 volumes: [“./data1-1:/data1”] expose: [“9000”,“9001”] environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin command: server --console-address “:9001” http://minio{ 1…4} /data1 healthcheck: test: [“CMD”, “curl”, “-f”, “http://localhost:9000/minio/health/live”] interval: 30s; timeout: 20s; retries: 3 minio2: { image: minio/minio; volumes: [“./data2-1:/data1”]; expose: [“9000”,“9001”]; environment: { MINIO_ROOT_USER: minioadmin; MINIO_ROOT_PASSWORD: minioadmin } ; command: server --console-address “:9001” http://minio{ 1…4} /data1; healthcheck: same } minio3: { image: minio/minio; volumes: [“./data3-1:/data1”]; expose: [“9000”,“9001”]; environment: { MINIO_ROOT_USER: minioadmin; MINIO_ROOT_PASSWORD: minioadmin } ; command: server --console-address “:9001” http://minio{ 1…4} /data1; healthcheck: same } minio4: { image: minio/minio; volumes: [“./data4-1:/data1”]; expose: [“9000”,“9001”]; environment: { MINIO_ROOT_USER: minioadmin; MINIO_ROOT_PASSWORD: minioadmin } ; command: server --console-address “:9001” http://minio{ 1…4} /data1; healthcheck: same }
- 启动集群:
- docker compose up -d
- 访问控制台:打开浏览器访问 http://任意节点IP:9001,使用设置的 MINIO_ROOT_USER/MINIO_ROOT_PASSWORD 登录。
三 方式二 二进制部署与 systemd 管理
- 在所有节点下载并安装二进制:
- wget https://dl.min.io/server/minio/release/linux-amd64/minio
- chmod +x minio & & sudo mv minio /usr/local/bin/
- 创建数据与配置目录(每台建议多目录,示例为 data1/data2):
- sudo mkdir -p /opt/minio/{ data1,data2,run,etc}
- 创建启动脚本 /opt/minio/run/run.sh(所有节点一致,仅地址不同):
- #!/bin/bash
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=minioadmin
/usr/local/bin/minio server
–config-dir /etc/minio
–address “:9000”
–console-address “:9001”
http://192.168.1.101/opt/minio/data1 http://192.168.1.101/opt/minio/data2
http://192.168.1.102/opt/minio/data1 http://192.168.1.102/opt/minio/data2
http://192.168.1.103/opt/minio/data1 http://192.168.1.103/opt/minio/data2
http://192.168.1.104/opt/minio/data1 http://192.168.1.104/opt/minio/data2
- #!/bin/bash
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=minioadmin
/usr/local/bin/minio server
- 创建 systemd 服务 /etc/systemd/system/minio.service:
- [Unit] Description=MinIO Service After=network.target
- [Service] WorkingDirectory=/opt/minio/run ExecStart=/opt/minio/run/run.sh Restart=on-failure RestartSec=5
- [Install] WantedBy=multi-user.target
- 启动与开机自启:
- sudo systemctl daemon-reload
- sudo systemctl enable --now minio
- 访问控制台:打开 http://节点IP:9001。
四 网络与防火墙配置
- 开放端口(示例):
- sudo ufw allow 9000/tcp
- sudo ufw allow 9001/tcp
- 如使用主机网络或自定义端口,请同步放行对应端口。
- 主机名解析(可选,便于使用服务名互联):
- 在 /etc/hosts 增加条目,如:
- 192.168.1.101 minio1
- 192.168.1.102 minio2
- 192.168.1.103 minio3
- 192.168.1.104 minio4
- 在 /etc/hosts 增加条目,如:
- 如需对外统一域名/IP,可部署 Nginx/HAProxy 做 9000/9001 的负载均衡与 TLS 终止。
五 验证与常用运维
- 控制台检查:登录 http://任意节点IP:9001,在控制台查看节点列表与健康状态。
- 命令行验证(mc):
- mc alias set myminio http://任意节点IP:9000 minioadmin minioadmin
- mc admin info myminio
- mc mb myminio/test & & mc cp /etc/hosts myminio/test/hosts & & mc ls myminio/test
- 健康检查与日志:
- docker compose ps 或 systemctl status minio
- docker logs -f minio1 或 journalctl -u minio -f
- 常见问题速查:
- 节点无法加入或提示签名不一致:检查 时间同步、密钥一致性、访问地址可达性 与 防火墙;使用域名时确保解析一致。
- 目录权限:确保 MinIO 进程对数据目录具备读写权限(如属主为运行用户)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MinIO在Ubuntu上的集群搭建流程是怎样的
本文地址: https://pptw.com/jishu/789458.html
