MINIO集群部署手册

news2024/9/21 10:37:09

为了满足电子仓库功能相关部署与扩容等操作,因此提供电子仓库部署手册。手册中我们以2个minio节点,每个节点2个盘来进行分布式部署;并且最终扩容成4个节点每个节点2个盘。
操作系统
由于在Windows下运行分布式Minio处于实验阶段,因此我们在Linux系统中搭建文件服务。
相关依赖
minio server
通过使用minio作为文件服务存储的载体,因此部署需要minio的server包;
nginx
以集群的方式部署minio,通过nginx作为请求转发到集群中不同的minio节点上。

minio下载与安装
对集群中的每个minio节点都要执行相同的操作,这里我们以节点1【192.168.80.128】为例执行安装与配置过程,节点2【192.168.80.129】需要与节点1保持一致的操作,这里不做展示。

1.进入minio官网下载页面 下载最新的linux版本的minio server,如下图所示:
在这里插入图片描述
2.将下载好的minio server包存放到每个节点的/home/dex/Minio/目录下,如下图所示:
在这里插入图片描述
3.cd 到minio server所在的目录(/home/dex/Minio),给minio server添加可执行权限用于启动minio

# 给予minio server可执行权限
chmod +x minio

4.开启minio的访问端口9000,方便后续访问

# 防火墙开放minio 9000端口
firewall-cmd --zone=public --add-port=9000/tcp --permanent
# 重新载入防火墙
firewall-cmd --reload

至此节点1上的minio就安装成功了,节点2需要按照同样的方式安装。

分布式部署
当节点1与节点2的minio都安装成功之后,以分布式的方式部署。2个节点每个节点两个盘(data1与data2)来进行分布式部署,具体过程如下所示:
minio秘钥环境变量设置
分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接。为了实现这个,在执行minio server命令之前,先将access秘钥和secret秘钥export成环境变量【每个节点都得设置】。

#设置minio的秘钥
export MINIO_ACCESS_KEY=minioadmin
export MINIO_SECRET_KEY=minioadmin

集群启动命令
minio双节点集群,每个节点俩磁盘data1与data2【磁盘里必须是干净的,里面没有数据,否则启动报错】。cd到minio server所在的目录(/home/dex/Minio),执行启动命令如下所示【每个节点都得运行如下命令】:

#分布式实例启动命令(命令1与命令2选择其一即可)
#命令1:
nohup ./minio server http://192.168.80.128/home/dex/MinioData/data1  http://192.168.80.128/home/dex/MinioData/data2  http://192.168.80.129/home/dex/MinioData/data1  http://192.168.80.129/home/dex/MinioData/data2 &
#命令2:如果ip地址连续,磁盘名称除了序号其他一致,可以使用命令2
hohup ./minio server http://192.168.80.{128...129}/home/dex/MinioData/data{1...2} &

所有的节点都执行完之后,访问每个节点的9000端口查看minio是否正常启动,如下图所示,节点1与节点2都正常访问:
节点1
在这里插入图片描述
节点2
在这里插入图片描述
上传文件测试
启动成功之后,节点1中创建桶并且上传文件,如果节点2也能看到创建的桶与文件数据,则证明分布式部署成功。创建桶newbucket,并且上传文件如下图所示:
在这里插入图片描述
节点二中的数据如下图所示:
在这里插入图片描述
至此分布式部署成功。

nginx配置请求转发
由于通过分布式的方式部署了多节点,我们需要通过配置nginx统一请求地址与端口,将请求转发到不同的minio节点上,nginx可以单独部署到一台服务器上,这里由于条件限制部署到节点1上。

1.修改nginx的配置文件nginx.conf添加如下数据:

upstream minioCluster{
         ip_hash;
         server 192.168.80.128:9000; #节点1
         server 192.168.80.129:9000; #节点2
     }
     #监听请求的9100端口,转发到节点1与节点2
    server {
      listen 9100;
      location / {
        proxy_pass http://minioCluster;
      }
    }

2.重启nginx

./nginx -s reload

3.开启nginx的监听端口9100,方便统一访问

# 防火墙开放 9100端口
firewall-cmd --zone=public --add-port=9100/tcp --permanent
# 重新载入防火墙
firewall-cmd --reload

4.前端统一访问9100,如下图所示:
在这里插入图片描述
扩容
MinIO支持通过命令,指定新的集群来扩展现有集群(纠删码模式);已有节点1(128)与节点2(129),扩容添加节点3(130)与节点4(131)实现由俩节点扩容为四节点操作【节点3与节点4提前安装好minio,设置秘钥,并且开放9000端口】,具体步骤入下:

1.扩容启动命令

#分布式实例启动命令
nohup ./minio server http://192.168.80.{128...129}/home/dex/MinioData/data{1...2} http://192.168.80.{130...131}/home/dex/MinioData/data{1...2} &

当四个节点每个节点都如下图显示,集群中八个盘都显示在线则启动成功
在这里插入图片描述
现在整个集群就扩展了4个磁盘,总磁盘变为8个,新的对象上传请求会自动分配到最少使用的集群上。通过以上策略来实现磁盘扩展。重新配置后重启集群,会立即在集群中生效,并对现有集群无影响,如下图所示:
扩容的节点3
在这里插入图片描述
扩容的节点4
在这里插入图片描述
2.nginx配置修改

由于添加了新的节点(节点3与节点4),因此nginx的配置中加入这俩节点信息,如下所示:

upstream minioCluster{
         ip_hash;
         server 192.168.80.128:9000; #节点1
         server 192.168.80.129:9000; #节点2
         server 192.168.80.130:9000; #节点3(新加入)
         server 192.168.80.131:9000; #节点4(新加入)
     }
     #监听请求的9100端口,转发到节点1、节点2、节点3、节点4
    server {
      listen 9100;
      location / {
        proxy_pass http://minioCluster;
      }
    }

3.重启nginx,前端重新访问即可。

./nginx -s reload

注意项
添加的每个区域必须具有与原始区域相同的磁盘数量(纠删码集)大小,以便维持相同的数据冗余SLA。 例如,第一个区有8个磁盘,可以将集群扩展为16个、32个或1024个磁盘的区域,只需确保部署的SLA是原始区域的倍数即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1941166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web前端浅谈ArkTS组件开发

本文由JS老狗原创。 有幸参与本厂APP的鸿蒙化改造,学习了ArkTS以及IDE的相关知识,并有机会在ISSUE上与鸿蒙各路大佬交流,获益颇丰。 本篇文章将从一个Web前端的视角出发,浅谈ArkTS组件开发的基础问题,比如属性传递、插…

定积分与不定积分

定积分与不定积分 引言正文不定积分理解角度1理解角度2 定积分 引言 可能大家看到这个标题会不屑一顾,觉得这个还用你教我吗,高等数学最简单的内容。今天突然想到一个问题,就是为什么不定积分会有一个常数 C C C 出现,这个常数 …

继电器驱动电路的可靠性设计分析

在温度-30℃到85℃、供电电源9V-16V范围条件下,保证外部继电器能正常作动,且不发生负载能力降低的情况。(注:需要详细的外部继电器规格说明) 对于控制多路输出而且要求负载同时打开的模块,必须以50ms(10ms…

C++_单例模式

目录 1、饿汉方式实现单例 2、懒汉方式实现单例 3、单例模式的总结 结语 前言: 在C中有许多设计模式,单例模式就是其中的一种,该模式主要针对类而设计,确保在一个进程下该类只能实例化出一个对象,因此名为单例。而…

OpenCV 图像旋转和平移 数学和代码原理详解

文章目录 数学原理旋转矩阵平移和旋转合成变换矩阵应用在OpenCV中的实现 代码关键点解读完整代码C代码:Python代码: 在OpenCV中进行图像旋转涉及到一些基本的几何变换和图像处理操作。 数学原理 在图像旋转中,背后的数学原理主要涉及二维欧…

嵌入式硬件-Xilinx FPGA DDR4 接口配置基础(PG150)

1. 简介 1.1 DDR4 SDRAM 控制器主要特点 支持8到80位接口宽度的组件(支持 RDIMM、LRDIMM、UDIMM 和 SODIMM) 最大组件限制为9,此限制仅适用于组件,不适用于 DIMM。密度支持 最高支持 32 GB 的组件密度,64 GB 的 LRDI…

步步精慕尼黑上海电子展完美收官,感恩所有相遇,期待下次再会

2024年7月11日至13日,慕尼黑上海电子展圆满落幕,步步精科技(以下简称步步精)在此次展会上取得了丰硕的成果。作为连接器行业的重要制造商,步步精携带其最新产品和连接器技术方案亮相展会,吸引了大量参观者的…

【HarmonyOS】HarmonyOS NEXT学习日记:六、渲染控制、样式结构重用

【HarmonyOS】HarmonyOS NEXT学习日记:六、渲染控制、样式&结构重用 渲染控制包含了条件渲染和循环渲染,所谓条件渲染,即更具状态不同,选择性的渲染不同的组件。 而循环渲染则是用于列表之内的、多个重复元素组成的结构中。 …

RK3568笔记四十二:OLED 屏幕驱动(模拟I2C)

若该文为原创文章,转载请注明原文出处。 本篇记录使用GPIO模拟I2C驱动OLED屏幕,显示界面效果如下。 主要流程是,修改设备树,使用普通IO口,驱动模拟I2C方式,应用程直接传输数据控制。 1、修改设备 2、编写…

Go语言 Import导入

本文主要介绍Go语言import导入使用时注意事项和功能实现示例。 目录 Import 创建功能文件夹 加法 减法 主函数 优化导入的包名 .引入方法 总结 Import 创建功能文件夹 做一个计算器来演示,首先创建test文件夹。 加法 在test文件夹中创建add文件夹&#xff…

数据预处理在建模中的重要性与常见方法(三):特征工程篇

数据预处理在建模中的重要性与常见方法(三):特征工程篇 特征工程是数据预处理中至关重要的一步,通过构建、转换和选择最能代表数据特性的特征,以提高模型的性能和准确性。常见的特征工程方法包括特征选择、特征提取和特…

前端-模拟请求数据mook第三方插件 json-server的使用

大纲 第一步下载第二配置mook的数据源第三配置启动命令第四运行模拟服务第五测试接口如果要进行更复杂的操作 第一步下载 npm install json-server -D"devDependencies": {"json-server": "^1.0.0-beta.1"}第二配置mook的数据源 在项目的根目录…

某指挥调度系统功能展示(下)

照片管理 拍照是普通执勤巡检中很常用的信息记录功能。 通过此功能可以看到设备本地拍摄的照片,此平台分成了两部分: 一部分是设备上的,需要设备在线才可以访问;支持上传到平台,并且在设备端有相应的选择&#xff0…

人、智能、机器人……

在遥远的未来之城,智能时代如同晨曦般照亮了每一个角落,万物互联,机器智能与人类智慧交织成一幅前所未有的图景。这座城市,既是科技的盛宴,也是人性与情感深刻反思的舞台。 寓言:《智光与心影》 在智能之…

Linux性能分析之-CPU篇

开发车载软件app,除了常用Android操作系统外,还可能是基于Linux系统开发。对于web应用基本也都部署在Linux系统上,所以,进行系统性能分析,很大情况下都是对Linux系统进行性能分析。此篇博客将重点介绍如果收集CPU相关指…

GPT-4o mini是什么?

今天,全网都知道 OpenAI 发现货了! GPT-4o mini 取代 GPT 3.5,从此坐上正主之位。 从官网信息来看,OpenAI 最新推出的 GPT-4o mini 重新定义了 AI 成本效益的标准,其性能优于前代模型 GPT-3.5 Turbo,且成本…

SpringBoot系列—4.SpringBoot 整合Mybatis、MP(MyBatis-Plus)

SpringBoot系列—1.IDEA搭建SpringBoot框架 SpringBoot系列—2.SpringBoot拦截器篇 SpringBoot系列—3.SpringBoot Redis篇 SpringBoot系列—4.SpringBoot 整合Mybatis、MP(MyBatis-Plus) SpringBoot系列—5.SpringBoot 整合Mybatis-Plus分页 **1.pom.xm…

设计模式-Git-其他

目录 设计模式? 创建型模式 单例模式? 啥情况需要单例模式 实现单例模式的关键点? 常见的单例模式实现? 01、饿汉式如何实现单例? 02、懒汉式如何实现单例? 03、双重检查锁定如何实现单例&#xff…

【扩散模型(五)】IP-Adapter 源码详解3-推理代码

系列文章目录 【扩散模型(一)】中介绍了 Stable Diffusion 可以被理解为重建分支(reconstruction branch)和条件分支(condition branch)【扩散模型(二)】IP-Adapter 从条件分支的视…

前端JS特效第48集:terseBanner焦点图轮播插件

terseBanner焦点图轮播插件&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下(全部代码在文章末尾)&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatibl…