minio节点扩展_多节点部署定时任务

minio节点扩展_多节点部署定时任务1.概述分布式Minio可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式Minio避免了单点故障。在大数据领域,通常的设计理念都是无中心和分布式。Minio分布式模式可以帮助你搭建一个高可用的对象存储服务,你可以使用这些存储设备,而不用考虑其真实物理位置。数据保护分布式Minio采用纠删码来防范多个节点宕机和位衰减bitrot。分布式Minio至少需要4个硬盘,使用分布式Minio自动引入了纠删码功能。高可用单机Mi..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

目录

1.概述

2.windows分布式部署

2.1单节点多磁盘

2.1.1.创建目录

2.1.2启动脚本

2.1.3测试

2.2.多节点

2.2.1目录结构

2.2.2脚本

2.2.3启动测试

2.2.4nginx负载均衡

2.2.5测试

3.linux分布式部署

3.1 单节点部署多磁盘

3.2 多节点部署

3.2.1 部署脚本

3.2.2 部署注意点

3.2.3 使用 nginx 负载均衡


gitee:https://gitee.com/pythonloser/springboot-minio/tree/master

一.minio安装与使用:一.minio安装与使用_xixiyuguang的博客-CSDN博客

二.minio整合springboot、文件上传下载、增删改查bucket和object:二.minio整合springboot、文件上传下载、增删改查bucket和object_xixiyuguang的博客-CSDN博客_minio修改bucket名称

三.minio 的分布式部署、单节点多磁盘、多节点模式:三.minio 的分布式部署、单节点多磁盘、多节点模式_xixiyuguang的博客-CSDN博客_minio多节点

四.minio前端获取签名地址直传minio文件服务器(前端直传):四.minio前端获取签名地址直传minio文件服务器(前端直传)_xixiyuguang的博客-CSDN博客_minio 直传

1.概述

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

在大数据领域,通常的设计理念都是无中心和分布式。Minio分布式模式可以帮助你搭建一个高可用的对象存储服务,你可以使用这些存储设备,而不用考虑其真实物理位置。

数据保护

分布式Minio采用 纠删码来防范多个节点宕机和位衰减bit rot。

分布式Minio至少需要4个硬盘,使用分布式Minio自动引入了纠删码功能。

高可用

单机Minio服务存在单点故障,相反,如果是一个有N块硬盘的分布式Minio,只要有N/2硬盘在线,你的数据就是安全的。不过你需要至少有N/2+1个硬盘来创建新的对象。

例如,一个16节点的Minio集群,每个节点16块硬盘,就算8台服務器宕机,这个集群仍然是可读的,不过你需要9台服務器才能写数据。

注意,只要遵守分布式Minio的限制,你可以组合不同的节点和每个节点几块硬盘。比如,你可以使用2个节点,每个节点4块硬盘,也可以使用4个节点,每个节点两块硬盘,诸如此类。

一致性

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

2.windows分布式部署

2.1单节点多磁盘

2.1.1.创建目录

 四个目录模拟四个不同的磁盘。

minio节点扩展_多节点部署定时任务

2.1.2启动脚本

set MINIO_ROOT_USER=admin

set MINIO_ROOT_PASSWORD=12345678

minio.exe server   –console-address “127.0.0.1:9000”  –address “127.0.0.1:9090”   D:\minio\oneNodeManyData\data1 D:\minio\oneNodeManyData\data2 D:\minio\oneNodeManyData\data3 D:\minio\oneNodeManyData\data4

脚本解释:

首先设置临时环境变量,指定登录账号密码

–console-address “127.0.0.1:9000″:代表管理页面的ip和端口

–address “127.0.0.1:9090″:代表接口的ip和端口

然后跟四个目录

2.1.3测试

minio节点扩展_多节点部署定时任务

minio节点扩展_多节点部署定时任务

minio节点扩展_多节点部署定时任务

创建bucket,上传文件,发现data1、data2中均包含文件夹和文件

查看文件夹中的文件,发现是meta数据,

2.2.多节点

2.2.1目录结构

minio节点扩展_多节点部署定时任务

2.2.2脚本

解释:端口不同,数据盘目录均一致,需要执行四次

9001服务,api9091

set MINIO_ROOT_USER=admin

set MINIO_ROOT_PASSWORD=12345678

minio.exe server   –console-address “127.0.0.1:9001”  –address “127.0.0.1:9091”   ^

http://127.0.0.1:9091/D:/minio/manyNodeManyData/data1  ^

http://127.0.0.1:9092/D:/minio/manyNodeManyData/data2 ^

http://127.0.0.1:9093/D:/minio/manyNodeManyData/data3 ^

http://127.0.0.1:9094/D:/minio/manyNodeManyData/data4

9002服务,api9092

set MINIO_ROOT_USER=admin

set MINIO_ROOT_PASSWORD=12345678

minio.exe server   –console-address “127.0.0.1:9002”  –address “127.0.0.1:9092”   ^

http://127.0.0.1:9091/D:/minio/manyNodeManyData/data1  ^

http://127.0.0.1:9092/D:/minio/manyNodeManyData/data2 ^

http://127.0.0.1:9093/D:/minio/manyNodeManyData/data3 ^

http://127.0.0.1:9094/D:/minio/manyNodeManyData/data4

9003服务,api9093

set MINIO_ROOT_USER=admin

set MINIO_ROOT_PASSWORD=12345678

minio.exe server   –console-address “127.0.0.1:9003”  –address “127.0.0.1:9093″   ^

http://127.0.0.1:9091/D:/minio/manyNodeManyData/data1  ^

http://127.0.0.1:9092/D:/minio/manyNodeManyData/data2 ^

http://127.0.0.1:9093/D:/minio/manyNodeManyData/data3 ^

http://127.0.0.1:9094/D:/minio/manyNodeManyData/data4

9004服务,api9094

set MINIO_ROOT_USER=admin

set MINIO_ROOT_PASSWORD=12345678

minio.exe server   –console-address “127.0.0.1:9004”  –address “127.0.0.1:9094″   ^

http://127.0.0.1:9091/D:/minio/manyNodeManyData/data1  ^

http://127.0.0.1:9092/D:/minio/manyNodeManyData/data2 ^

http://127.0.0.1:9093/D:/minio/manyNodeManyData/data3 ^

http://127.0.0.1:9094/D:/minio/manyNodeManyData/data4

2.2.3启动测试

minio节点扩展_多节点部署定时任务

2.2.4nginx负载均衡

前面单独对每个节点进行访问显然不合理,通过使用 nginx 代理,进行负载均衡则很有必要。简单的配置如下:

server{

    listen       8888;

    server_name  127.0.0.1;

    ignore_invalid_headers off;

    client_max_body_size 0;

    proxy_buffering off;

    location / {

        proxy_set_header   X-Real-IP $remote_addr;

        proxy_set_header   X-Forwarded-Host  $host:$server_port;

        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header   X-Forwarded-Proto  $http_x_forwarded_proto;

        proxy_set_header   Host $http_host;

        proxy_connect_timeout 300;

        proxy_http_version 1.1;

        chunked_transfer_encoding off;

        proxy_ignore_client_abort on;

        proxy_pass http://http_minio;

    }

}

2.2.5测试

minio节点扩展_多节点部署定时任务

通过日志可以发现,轮循访问四个不同的节点

3.linux分布式部署

转载:MinIO 的分布式部署 – Mason技术记录 – 博客园

3.1 单节点部署多磁盘

在启动 MinIO 时,若传入参数是多个目录,则会以纠删码的形式运行,即具备高可靠性意义。即在一个服务器(单节点)上对,多个磁盘上运行 MinIO。

运行命令也很简单,参数传入多个目录即可:

MINIO_ACCESS_KEY=${ACCESS_KEY} MINIO_SECRET_KEY=${SECRET_KEY} nohup ${MINIO_HOME}/minio server --address "${MINIO_HOST}:${MINIO_PORT}" /opt/min-data1 /opt/min-data2 /opt/min-data3 /opt/min-data4 > ${MINIO_LOGFILE} 2>&1 &

注意替换命令中的变更,运行后输出信息如下:

启动

可见 MinIO 会创建一个1个 set,set 中有4个 drive ,其中它会提示一个警告,提示一个节点的 set 中存在多于2个的drive,如果节点挂掉,则数据都不可用了,这与 EC 码的规则一致。

3.2 多节点部署

3.2.1 部署脚本

为了防止单点故障,分布式存储自然是需要多节点部署,以达到高可靠和高可用的能力。MinIO 对于多节点的部署,也是在启动时通过指定有 Host 和端口的目录地址,即可实现。下面在单台机器上,通过不同的端口模拟在4台机器节点上运行,存储目录依然是 min-data14,而对应的端口是90019004。脚本如下:

RUNNING_USER=root
MINIO_HOME=/opt/minio
MINIO_HOST=192.168.222.10
#accesskey and secretkey
ACCESS_KEY=minio 
SECRET_KEY=minio123

for i in {01..04}; do
    START_CMD="MINIO_ACCESS_KEY=${ACCESS_KEY} MINIO_SECRET_KEY=${SECRET_KEY} nohup ${MINIO_HOME}/minio  server --address "${MINIO_HOST}:90${i}" http://${MINIO_HOST}:9001/opt/min-data1 http://${MINIO_HOST}:9002/opt/min-data2 http://${MINIO_HOST}:9003/opt/min-data3 http://${MINIO_HOST}:9004/opt/min-data4 > ${MINIO_HOME}/minio-90${i}.log 2>&1 &"
    su - ${RUNNING_USER} -c "${START_CMD}"
done

本示例中,minio 的启动命令运行了4次,相当于在四台机器节点上都分别运行一个minio实例,从而模拟四个节点。运行结果如下:

分布式启动

查看进程ps -ef |grep minio

分布式进程

3.2.2 部署注意点

  • 所有运行分布式 MinIO 的节点需要具有相同的访问密钥和秘密密钥才能连接。建议在执行 MINIO 服务器命令之前,将访问密钥作为环境变量,MINIO access key 和 MINIO secret key 导出到所有节点上 。
  • Minio 创建4到16个驱动器的擦除编码集。
  • Minio 选择最大的 EC 集大小,该集大小除以给定的驱动器总数。 例如,8个驱动器将用作一个大小为8的 EC 集,而不是两个大小为4的 EC 集 。
  • 建议所有运行分布式 MinIO 设置的节点都是同构的,即相同的操作系统、相同数量的磁盘和相同的网络互连 。
  • 运行分布式 MinIO 实例的服务器时间差不应超过15分钟。

运行起来后,使用 http://${MINIO_HOST}:9001http://${MINIO_HOST}:9004 均可以访问到 MinIO 的使用界面。

3.2.3 使用 nginx 负载均衡

前面单独对每个节点进行访问显然不合理,通过使用 nginx 代理,进行负载均衡则很有必要。简单的配置如下:

upstream http_minio {
    server 192.168.222.10:9001;
    server 192.168.222.10:9002;
    server 192.168.222.10:9003;
    server 192.168.222.10:9004;
}

server{
    listen       8888;
    server_name  192.168.222.10;

    ignore_invalid_headers off;
    client_max_body_size 0;
    proxy_buffering off;

    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-Host  $host:$server_port;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto  $http_x_forwarded_proto;
        proxy_set_header   Host $http_host;

        proxy_connect_timeout 300;
        proxy_http_version 1.1;
        chunked_transfer_encoding off;
        proxy_ignore_client_abort on;

        proxy_pass http://http_minio;
    }
}

其中主要是 upstream 及 proxy_pass 的配置。如此,即可使用http://${MINIO_HOST}:8888 进行访问。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184455.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机专业选Java和Python哪个前景好点?[通俗易懂]

    计算机专业选Java和Python哪个前景好点?[通俗易懂]对于学习计算机专业的小伙伴,面对大二选课,开始陷入Java和python的纠结中,从以后的发展来看,这两个编程语言肯定是要通吃的,但前期的学习,可以有一个侧重点,说一下我自己的观点。应很多小伙伴的要求,我们从就业应用前景和学习难易度来分析一下:一、Java1、就业应用前景从目前的招聘量上来看,Java在编程语言中可以说是常胜将军,经常有各种新出的编程语言向它发起挑战,但是Jav…

    2022年7月8日
    21
  • java中的stringbuffer是什么_java string类

    java中的stringbuffer是什么_java string类之前回答过这个两个的区别,直接拷过来,希望对你有所帮助!关于这两个类,文档里面列的很明确了,注意养成经常查文档的好习惯!话不多说开始:区别一:在Java中字符串使用String类进行表示,但是String类表示字符串有一个最大的问题:“字符串常量一旦声明则不可改变,而字符串对象可以改变,但是改变的是其内存地址的指向。”所以String类不适合于频繁修改的字符串操作上,所以在这种情况下,往往可以使用…

    2022年9月21日
    4
  • Oracle 11g Rac搭建「建议收藏」

    Oracle 11g Rac搭建「建议收藏」Oracle11gRac搭建(RedHat6.9+Oracle11.2.0.4)系统安装规划网络规划用户组规划存储规划配置yum源,网络规划,hosts文件等(双节点执行)如果是64bit,需要检查以下的Packages。以下重复包名称的部分是64bit,注明32bit的是32bitpackages。如果是32bitOS,那么重复包名的只需要32…

    2022年9月26日
    3
  • 什么是Java虚拟机_Java SDK

    什么是Java虚拟机_Java SDKJAVASDK就是JDK,JDK是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GN…

    2022年10月8日
    3
  • 项目部署、配置、查错常用到的Linux命令

    项目部署、配置、查错常用到的Linux命令

    2020年11月12日
    259
  • 电平转换芯片_电平转换芯片无方向

    电平转换芯片_电平转换芯片无方向电平转换芯片**在混合信号系统中,经常能看到电瓶转换电路,目前市面上应用较多的处理器都是采用3.3V电源供电,但是产品外围器件多数都采用5伏电源供电,这种情况下就必须使用转换电路。目前应用比较多的两类电平转换电路是用MOS管搭建的电平转换电路,和用电平转换芯片实现的电路。为了降低产品的功耗,通常都采用低工作电压值的高速逻辑器件,这也进一步导致了产品内部同时存在多种电压,因此搭建稳定可靠的电平转换电路,尤为重要。如要求低成本,可以用MOSFET管自己搭建一个电平转换电路。用MOSFET管搭建电平转换电

    2022年8月10日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号