侧边栏壁纸
博主头像
运维贼船的技术小站 博主等级

行动起来,活在当下

  • 累计撰写 35 篇文章
  • 累计创建 21 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

MINIO集群搭建

aoarasi
2026-03-09 / 0 评论 / 0 点赞 / 3 阅读 / 0 字

1.背景

在本地搭建一个稳定的文件服务器,采用集群的方式建设,实现本地化文件存储的安全性和稳定性,此方案可借鉴使用至生产环境。

2.搭建

2.1 地址分配

本次演示2台机器做minio集群,列表地址为:

序号

节点名称

IP

需要开放端口

1

minio1

10.0.0.204

9000,9001

2

minio2

10.0.0.205

9000,9001

minio1和minio2主机上分别安装好docker和docker-compose,此处不再做安装演示。

2.2 配置集群

在两台主机上配置本地域名解析,执行以下命令。确保两台主机能够相互ping通。

cat >> /etc/hosts << EOF
10.0.0.204 minio1
10.0.0.205 minio2
EOF

创建一个docker-compose.yml文件,放置于项目目录下,比如我把项目目录放置于/opt/minio_group下,执行以下命令:

# 创建项目文件夹
mkdir -p /opt/minio_group
​
# 进入项目目录,创建docker-compose.yml文件
cd /opt/minio_group
touch docker-compose.yml

将以下内容填入docker-compose.yml文件中,在minio1机器上执行:

version: "3"
​
services:
  minio1:
    image: minio/minio:RELEASE.2021-06-07T21-40-51Z
    container_name: minio-node1
    restart: always
    extra_hosts:
      - "minio1:10.0.0.204"
      - "minio2:10.0.0.205"
    volumes:
      - ./data1:/data1
      - ./data2:/data2
    ports:
      - "9000:9000"  # 端口与minio2区分
    environment:
      MINIO_ACCESS_KEY: minio
      MINIO_SECRET_KEY: minio123
    command: server http://minio{1...2}/data{1...2}
    network_mode: host
    healthcheck:
      test: ["CMD", "curl", "-f", "http://0.0.0.0:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

执行项目启动:

docker-compose up -d

在minio2机器上执行:

version: "3"
​
services:
  minio2:
    image: minio/minio:RELEASE.2021-06-07T21-40-51Z
    container_name: minio-node2
    restart: always
    extra_hosts:
      - "minio1:10.0.0.204"
      - "minio2:10.0.0.205"
    volumes:
      - ./data1:/data1
      - ./data2:/data2
    ports:
      - "9000:9000"  # 端口与minio2区分
    environment:
      MINIO_ACCESS_KEY: minio
      MINIO_SECRET_KEY: minio123
    command: server http://minio{1...2}/data{1...2}
    network_mode: host
    healthcheck:
      test: ["CMD", "curl", "-f", "http://0.0.0.0:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3
​
​

注意network_mode: host需要加上,否则可能出现使用容器内部IP导致集群不上线。完成后执行项目启动:

docker-compose up -d

开启后,需要保证防火墙开启状态,且允许转发,且开放9000端口,所有主机执行命令如下:

# 开启转发
firewall-cmd --add-masquerade --permanent
firewall-cmd --add-masquerade 
firewall-cmd --reload
​
# 放行minio 端口
firewall-cmd --add-port=9000/tcp --permanent
firewall-cmd --reload
​

3.测试集群

使用web登录至minio1平台上,可以看到系统反馈了一个提示:

Server not initialized, please try again

则需要确定minio使用的集群地址,是否与实际地址一致(比如容器网络是否用的桥接,而不是host模型)。

处理后,重新登录,系统正常。

往minio-node1平台上创建桶和文件,然后在minio-node2上浏览,发现数据已经正常同步过去了。

最后

双节点搭建集群,仅建议在测试或小集群上使用,其存储效率可类比于RAID1,每存储一个文件,将存储2份数据,即可容错一个节点故障。

建议在生产环境下,使用4节点以保证容错效果。

0

评论区