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

目录

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.创建目录

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

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测试

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

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

2.2.多节点

2.2.1目录结构

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启动测试

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测试

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

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_PORT}" /opt/min-data1 /opt/min-data2 /opt/min-data3 /opt/min-data4 >

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

可见 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}:9001 到http://{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.cn/184455.html原文链接:https://javaforall.cn

原文地址:https://cloud.tencent.com/developer/article/2154309

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

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340