Minio 分布式集群部署

article/2025/9/10 7:58:33

在这里插入图片描述

文章目录

          • 一、分布式存储可靠性常用方法
            • 1. 概述
            • 2. 冗余
            • 3. 校验
          • 二、分布式Minio优势
            • 2.1. 数据保护
            • 2.2. 高可用
            • 2.3.一致性
          • 三、运行分布式Minio
            • 3.1. 启动方案简述
            • 3.2. 案例说明
            • 3.3. 制作分布式启动脚本
            • 3.4. 制作伪分布式启动脚本
            • 3.5. 登录minio
          • 四、分布式Minio负载均衡
            • 4.1. nginx安装
            • 4.2. 配置nginx
            • 4.3. 停止nginx服务
            • 4.4. 重新启动nginx
            • 4.5. 登录monio

分布式Minio可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式Minio避免了单点故障。
在这里插入图片描述

一、分布式存储可靠性常用方法
1. 概述

分布式存储,很关键的点在于数据的可靠性,即保证数据的完整,不丢失,不损坏。只有在可靠性实现的前提下,才有了追求一致性、高可用、高性能的基础。而对于在存储领域,一般对于保证数据可靠性的方法主要有两类,一类是冗余法,一类是校验法。

2. 冗余

冗余法最简单直接,即对存储的数据进行副本备份,当数据出现丢失,损坏,即可使用备份内容进行恢复,而副本 备份的多少,决定了数据可靠性的高低。这其中会有成本的考量,副本数据越多,数据越可靠,但需要的设备就越多,成本就越高。可靠性是允许丢失其中一份数据。当前已有很多分布式系统是采用此种方式实现,如 Hadoop 的文件系统(3个副本),Redis 的集群,MySQL 的主备模式等。

3. 校验

校验法即通过校验码的数学计算的方式,对出现丢失、损坏的数据进行校验、还原。注意,这里有两个作用,一个校验,通过对数据进行校验和( checksum )进行计算,可以检查数据是否完整,有无损坏或更改,在数据传输和保存时经常用到,如 TCP 协议;二是恢复还原,通过对数据结合校验码,通过数学计算,还原丢失或损坏的数据,可以在保证数据可靠的前提下,降低冗余,如单机硬盘存储中的 RAID技术,纠删码(Erasure Code)技术等。MinIO 采用的就是纠删码技术。

二、分布式Minio优势
2.1. 数据保护

分布式Minio采用 纠删码来防范多个节点宕机和位衰减 bit rot 。
分布式Minio至少需要4个硬盘,使用分布式Minio自动引入了纠删码功能。

2.2. 高可用

单机Minio服务存在单点故障,相反,如果是一个有N块硬盘的分布式Minio,只要有N/2硬盘在线,你的数据就是安全的。不过你需要至少有N/2+1个硬盘来创建新的对象。
例如,一个16节点的Minio集群,每个节点16块硬盘,就算8台服務器宕机,这个集群仍然是可读的,不过你需要9台服務器才能写数据。

2.3.一致性

Minio在分布式和单机模式下,所有读写操作都严格遵守read-after-write一致性模型

三、运行分布式Minio
3.1. 启动方案简述

启动一个分布式Minio实例,你只需要把硬盘位置做为参数传给minio server命令即可,然后,你需要在所有其它节点运行同样的命令。

  • 分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接。
    为了实现这个,你需要在执行minio server命令之前,先将access秘钥和secret秘钥export成环境
    变量。新版本使用MINIO_ROOT_USER&MINIO_ROOT_PASSWORD。
  • 分布式Minio使用的磁盘里必须是干净的,里面没有数据。
  • 下面示例里的IP仅供示例参考,你需要改成你真实用到的IP和文件夹路径。
  • 分布式Minio里的节点时间差不能超过3秒,你可以使用NTP 来保证时间一致。
  • 在Windows下运行分布式Minio处于实验阶段,请悠着点使用。
3.2. 案例说明

8个节点,每节点1块盘
启动分布式Minio实例,8个节点,每节点1块盘,需要在8个节点上都运行下面的命令:

data MINIO_ROOT_USER=admin
data MINIO_ROOT_PASSWORD=12345678
MINIO_HOME=/root${MINIO_HOME}/minio server --address ":9000" --console-address ":50000" \
http://192.168.92.101:9000/mnt/data1 http://192.168.92.102:9000/mnt/data2 \
http://192.168.92.103:9000/mnt/data3 http://192.168.92.104:9000/mnt/data4 \
http://192.168.92.105:9000/mnt/data5 http://192.168.92.106:9000/mnt/data6 \
http://192.168.92.107:9000/mnt/data7 http://192.168.92.108:9000/mnt/data8 

在这里插入图片描述

4节点,每节点4块盘
启动分布式Minio实例,4节点,每节点4块盘,需要在4个节点上都运行下面的命令

data MINIO_ROOT_USER=admin
data MINIO_ROOT_PASSWORD=12345678
MINIO_HOME=/root${MINIO_HOME}/minio server --address ":9000" --console-address ":50000" \
http://192.168.92.101:9000/mnt/data1 http://192.168.92.101:9000/mnt/data2 \
http://192.168.92.101:9000/mnt/data3 http://192.168.92.101:9000/mnt/data4 \
http://192.168.92.102:9000/mnt/data1 http://192.168.92.102:9000/mnt/data2 \
http://192.168.92.102:9000/mnt/data3 http://192.168.92.102:9000/mnt/data4 \
http://192.168.92.103:9000/mnt/data1 http://192.168.92.103:9000/mnt/data2 \
http://192.168.92.103:9000/mnt/data3 http://192.168.92.103:9000/mnt/data4 \
http://192.168.92.104:9000/mnt/data1 http://192.168.92.104:9000/mnt/data2 \
http://192.168.92.104:9000/mnt/data3 http://192.168.92.104:9000/mnt/data4

在这里插入图片描述

3.3. 制作分布式启动脚本

脚本演示:4个节点,每个节点挂载4块磁盘。在实际的服务器上依次执行以下命令即可
案例演示:伪分布式模式

vim minio_cluster.sh
data MINIO_ROOT_USER=admin
data MINIO_ROOT_PASSWORD=12345678
MINIO_HOME=/rootnohup  ${MINIO_HOME}/minio server --address ":9000" --console-address ":50000" \
http://192.168.92.101:9000/mnt/data1 http://192.168.92.101:9000/mnt/data2 \
http://192.168.92.101:9000/mnt/data3 http://192.168.92.101:9000/mnt/data4 \
http://192.168.92.102:9000/mnt/data1 http://192.168.92.102:9000/mnt/data2 \
http://192.168.92.102:9000/mnt/data3 http://192.168.92.102:9000/mnt/data4 \
http://192.168.92.103:9000/mnt/data1 http://192.168.92.103:9000/mnt/data2 \
http://192.168.92.103:9000/mnt/data3 http://192.168.92.103:9000/mnt/data4 \
http://192.168.92.104:9000/mnt/data1 http://192.168.92.104:9000/mnt/data2 \
http://192.168.92.104:9000/mnt/data3 http://192.168.92.104:9000/mnt/data4 > ${MINIO_HOME}/minio-9000.log 2>&1 &
chmod u+x minio_cluster.sh
./minio_cluster.sh
3.4. 制作伪分布式启动脚本

案例演示:伪分布式模式案例

vim minio_cluster.sh
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678
MINIO_HOME=/root
MINIO_HOST=192.168.92.104for i in {01..04}; donohup  ${MINIO_HOME}/minio server --address ":90${i}" --console-address ":500${i}" http://${MINIO_HOST}:9001/mnt/data01 http://${MINIO_HOST}:9002/mnt/data02  http://${MINIO_HOST}:9003/mnt/data03  http://${MINIO_HOST}:9004/mnt/data04 > ${MINIO_HOME}/minio-90${i}.log 2>&1 &
done
chmod u+x minio_cluster.sh
./minio_cluster.sh

在这里插入图片描述

3.5. 登录minio

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、分布式Minio负载均衡
4.1. nginx安装

https://blog.csdn.net/weixin_40816738/article/details/119536779

4.2. 配置nginx
cd /usr/local/nginx/conf/
worker_processes  1;
events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;upstream minio {server 192.168.92.104:9001;server 192.168.92.104:9002;server 192.168.92.104:9003;server 192.168.92.104:9004;} upstream console {ip_hash;server 192.168.92.104:50001;server 192.168.92.104:50002;server 192.168.92.104:50003;server 192.168.92.104:50004;} server {listen 9000;server_name localhost;ignore_invalid_headers off;client_max_body_size 0;proxy_buffering off;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;proxy_connect_timeout 300;proxy_http_version 1.1;proxy_set_header Connection "";chunked_transfer_encoding off;proxy_pass http://minio;}} server {listen 50000;server_name localhost;ignore_invalid_headers off;client_max_body_size 0;proxy_buffering off;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;proxy_set_header X-NginX-Proxy true;proxy_connect_timeout 300;proxy_http_version 1.1;proxy_set_header Connection "";chunked_transfer_encoding off;`在这里插入代码片`proxy_pass http://console;}}
}
4.3. 停止nginx服务
ps -ef |grep nginx
kill -9  进程号1 进程号2
4.4. 重新启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
4.5. 登录monio

真实后端控制台端口:50001~5004,
现在访问50000自动负载到50001~5004的任意一个端口

http://192.168.92.104:50000/

账号密码:admin/12345678
在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/k8qu9h2B.shtml

相关文章

【集群分布式问题】分布式集群时钟同步问题及解决方案

文章目录 一、 时钟不同步导致的问题二、集群时钟同步配置1. 分布式集群中各个服务器节点都可以连接互联⽹2. 分布式集群中一个节点或每个节点都不能访问互联网 一、 时钟不同步导致的问题 时钟此处指服务器时间,如果集群中各个服务器时钟不⼀致势必导致⼀系列问题&…

hadoop-spark完全分布式集群搭建

hadoop-spark完全分布式集群搭建 一、解压spark文件二、修改spark-env.sh文件四、分发给各节点五、主节点配置环境六、启动 本次采用的系统为centos7 hadoop版本为2.7.7 spark版本为2.1.1 链接:https://pan.baidu.com/s/1j4M21s6rURvl2uvZC_wxtQ 提取码:…

minio分布式集群部署

minio分布式集群部署 分布式 Minio 可以让你将多块硬盘或者多台服务器组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式 Minio 避免了单点故障。MinioMinio分布式模式可以帮助你搭建一个高可用的对象存储服务,你可以使用这些存储设备&#xff…

Ubuntu20.04下搭建Hadoop伪分布式集群

Ubuntu虚拟机的安装 VW ware安装Ubuntu虚拟机及环境配置 关闭防火墙 为了减少搭建集群的复杂性,关闭防火墙如果对防火墙很了解可以可以不用关闭开放相应端口即可。借助ufw软件包使操作更方便。 # 安装防火墙工具 sudo apt-get install ufw# 开启 sudo ufw enabl…

Hadoop伪分布式集群的搭建

一、准备虚拟机 1.从网上将VMware下载下来 https://www.vmware.com/content/dam/digitalmarketing/vmware/en/images/gallery/banners/content/hero-generic-1400x350.jpg 2.下载centos https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/isos/x86_64/ 二、配置网络&…

Hadoop完全分布式集群环境搭建

一、实验环境 主机操作系统:Windows7 以上(64 位)虚拟机软件:Oracle VM VirtualBox客户机操作系统:CentOS-6.8(64 位)JDK:1.8(Linux 版)SSH 连接客户端&…

基于ubuntu的hadoop完全分布式集群搭建

借鉴网址1 借鉴网址2 hadoop官方配置教程 搭建虚拟机,克隆(或者先配置JAVA和Hadoop环境再克隆,之后要改主机名和映射以及SSH免密) 可以利用xsync集群分发脚本一台机器配置其他机器分发 修改主机名和ip映射 检查 配置ssh免密登录…

Linux 部署Hadoop伪分布式集群教程

首先:我们需要下载一些关于Hadoop伪分布式集群需要的工具与tar包 链接: https://pan.baidu.com/s/1oUw1jDCxfghWsnaWauSHKg 提取码:6s5a 接下来打开虚拟机终端,先创建一个文件夹用来解压Hadoop的tar包 接着使用xshell远程连接到…

Jmeter分布式集群

一、背景 JMeter是一款非常不错的开源压力测试工具,但在使用过程中也会遇到比较多问题排查,例如:起压机(客户端)请求并发数无法达到既定目标量、报内存溢出错误、错误事务数过高; JMeter有两种运行模式&a…

hadoop分布式集群搭建

Hadoop入门 1. 了解Hadoop 1.1 Hadoop 的优势(4高) 高可靠性:存在多个数据副本,即使某个元素或存储出现故障,也不会导致数据的丢失 高拓展性:在集群见分配任务数据,可方便的拓展数以千计的节…

一文快速学会hadoop完全分布式集群搭建,很详细

文章目录 前言一、准备工作二、克隆三台虚拟机并进行网络配置克隆虚拟机克隆引导修改网络配置验证验证方式一验证方式二 三、安装jdk和hadoop四、ssh免密登录配置概述生成公钥和私钥把公钥拷贝到三台虚拟机上面去验证把hadoop103 和 hadoop104的免密登录配置安装上面的操作再做…

搭建Hadoop分布式集群的详细教程

目录 写在前面 一、创建虚拟机,安装Centos 二、VMware VMnet8模式共享主机网络配置 三、克隆集群节点HadoopSlave1与HadoopSlave2 四、Linux系统配置 五、Hadoop的部署配置 六、Hadoop集群的启动 写在前面 搭建Hadoop集群的过程比较复杂,本文旨在…

五大分布式集群架构问题解决方案

前言 什么是分布式集群? 这里有两个概念:分布式和集群。 分布式:分布式是指将不同的业务分布在不同的地方或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题。分布式中的每一个节点&#xf…

redis分布式集群搭建

一、软件环境信息 1、redis版本要求:3.0及之后版本 2、服务节点个数要求: 至少3个主节点,其中主节点不少于节点总数的一半;至多16384个节点;每个主节点至少有一个从节点,故redis集群模式至少需要6个服务节点。 3、…

大数据Hadoop集群搭建 1(伪分布式集群)

目录 Hadoop集群简介 Hadoop集群具体来说包含两个集群:HDFS集群和YARN集群。 Hadoop集群的部署方式分为三种,分别是单机模式、伪分布式模式和完全分布式模式。 环境搭建 1.修改主机名 2.修改时区 4.配置ssh免密 5.安装Hadoop 目录结构 配置文件说…

HADOOP 伪分布式集群搭建

一 linux 环境的搭建 由于笔者这里使用的是vmware 虚拟机 采用centos7 linux 操作系统进行搭建,所以一下示例均以centos7进行示例 1. 搭建vmware 虚拟机 (1)创建好虚拟机后采用linux ISO镜像文件启动安装centos7操作系统(其它…

Zookeeper分布式集群部署

文章目录 一:zookeeper安装包下载安装1.下载安装包2.上传安装包3.解压安装包4.改名 二:zookeeper集群配置1.修改zoo.cfg配置文件2.创建myid文件3.配置系统环境变量4.分发zookeeper相关文件至从节点slave1,slave2 三:zookeeper服务…

漫话:如何给女朋友解释什么是分布式和集群?

作者 | 漫小画 公号 | 漫话编程 漫小画 擅长漫话 程小员 擅长编程 某天,下班较早,我正在玩吃鸡,已经到决赛圈了,这时候,女朋友满脸求知欲的朝我走过来。 上次他们都说你给我讲的面向对象太简单了。 那你想怎样&#xf…

什么是分布式集群?

首先来说一下集群的概念,集群是指将多台服务器集中起来一起进行同一种服务。相比一台服务器,集群的优势在于将负载均衡到每台服务器上,可以承载更高的访问量。 分布式又是什么呢,分布式指的是将工作进行业务拆分,然后…

什么是分布式,分布式和集群的区别又是什么?这一篇让你彻底明白!

1. 什么是分布式 ? 分布式系统一定是由多个节点组成的系统。 其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的。 这些连通的节点上部署了我们的节点,并且相互的操作会有协同。 分布式系统对于用户而言&a…