Nginx代理Minio集群

本文介绍了Minio对象存储系统,其特点、元数据管理以及在多节点部署中的性能问题。还详细展示了如何使用Nginx代理Minio服务,包括安装、配置和性能优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx代理Minio集群

MinIO对象存储介绍

Minio是GlusterFS创始人之一Anand Babu Periasamy发布新的开源项目。基于Apache License v2.0开源协议的对象存储项目,采用Golang实现,客户端支Java,Python,Javacript, Golang语言。

其设计的主要目标是作为私有云对象存储的标准方案。主要用于存储海量的图片,视频,文档等。非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

对象存储的元数据

在对象存储里,元数据包括 account(用户), bucket, bucket index等信息。Minio没有独立的元数据服务器。元数据都保存在底层的本地文件系统中。这个涉及和GlusterFs的架构设计很类似。

在本地文件系统里,一个bucket对应本地文件系统中的一个目录。一个对象Object对应bucket目录下的一个子目录(在EC的情况下对应多个part文件)。该子目录下保存着对象相关的数据和元数据。

image.png

如上图所示:在Erasure Set中有4个磁盘:Disk1,Disk2,Disk3,Disk4,四个磁盘组成一个Erasure Set。每个bucket对应一个相应桶名称的目录,每个对象对应bucket的一个目录:目录里保存着对应的数据和元数据文件。

创建bucket的元数据操作:对于Erasure Set(2+2)为例:创建一个bucket,对应底层文件系统的4次目录创建。创建一个文件,需要对应底层4次目录创建和8次文件创建操作。对于小文件,数据和元数据都保存在meta文件中,也需要4次目录创建和4次文件创建操作。由此可推断,minio在对应大量小文件的场景下性能非常差。

Minio对象存储部署

官方文档:
https://min.io/docs/minio/linux/operations/installation.html

官方文档中写了有三种模式:
1、单节点单驱动:一个Minio进程/节点,并且只有一个驱动目录
2、单节点多驱动:一个Minio进程/节点,有多个驱动目录
3、多节点多驱动:多个Minio进程/节点,并且每个节点有多个驱动目录
我这里就操作一下多节点多驱动模式的

部署环境:
两台Linux部署
服务器1:192.168.2.10
服务器2:192.168.2.20

1、两台服务器分别下载minio二进制程序包

wget https://dl.min.io/server/minio/release/linux-amd64/minio && mv minio /usr/local/bin && chmod +x /usr/local/bin/minio

2、下载完成后,需要在两台服务器上分别创建驱动目录

mkdir -pm 755 /mnt/data{1..5} && mkdir -pm 755 /mnt/minio

3、设置两台主机的hosts域名映射

cat <<EOF > /etc/hosts
192.168.2.10 node1
192.168.2.20 node2
EOF

4、运行启动脚本

#!/bin/env bash
export MINIO_ROOT_USER=Minio
export MINIO_ROOT_PASSWORD=Minio123456
minio server --config-dir /mnt/minio \
  --console-address ":9001" \
  http://node{1..2}/mnt/data{1..5}

5、设置systemd

cat <<EOF > /usr/lib/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/

[Service]
WorkingDirectory=/mnt/
ExecStart=/mnt/start.sh

Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

重载systemd

systemctl daemon-reload

6、启动minio

systemctl start minio

Nginx代理到minio

1、安装nginx

yum安装或者编译安装都可以

yum -y install nginx

如果yum源中没有nginx,可以去官网复制一份
官网地址:https://nginx.org

2、配置文件

cat <<EOF > /etc/nginx/conf.d/minio_proxy.conf
upstream minio_console {
   least_conn;
   server 192.168.2.10:9001;
   server 192.168.2.20:9001;
}

server {
   listen       80;
   server_name 192.168.22.22;
   ignore_invalid_headers off;
   client_max_body_size 0;
   proxy_buffering off;
   proxy_request_buffering off;
   access_log /var/log/nginx/minio.access.log;

   location / {
  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;
  # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
  proxy_http_version 1.1;
  proxy_connect_timeout 300;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "Upgrade";
  chunked_transfer_encoding off;
  proxy_pass http://minio_console;
   }
}
EOF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张有为886

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值