集群、负载均衡集群、高可用集群简介,LVS工作结构、工作模式、调度算法和haproxy/nginx模式拓扑介绍

一.集群的定义

1.定义

2.分类

(1)负载均衡集群(LBC/LB)

(2)高可用集群(HAC)

二.使用集群的意义

1.高性价比和性能比

2.高可用性

3.可伸缩性强

4.持久和透明性高

三.常见的两种集群模式拓扑

1.LVS(-DR)集群模式

(1)工作架构

(2)LVS下的相关术语

(3)LVS的工作模式

VS/NAT:

VS/DR:

VS/TUN:

(4) LVS调度器算法

固定调度:

动态调度:

 2.haproxy/nginx模式

 四.常用集群软硬件列举

1.企业常用集群软件

2.企业常用集群硬件


 

一.集群的定义

1.定义

是一组协同工作的服务器,在外部访问者看来是一个整体。集群是一种并行或分布式系统,包括一个互连的整体计算机集合作为一种单一、同意的计算资源使用,使用集群管理服务,可以获得更高的性能、可靠性和灵活性,实现资源的高度可用。集群又可以分为负载均衡集群、高可用性集群、高性能计算机群、网络计算等类别。

2.分类

(1)负载均衡集群(LBC/LB)

也可以称服务器群,一般通过一个或多个前端负载均衡器将数据请求转发到后端部分服务器上,使客户访问请求压力在各服务器之间尽可能分摊,包括程序处理负载和网络流量负载,也可以实现访问请求在各节点间动态分配,灵活负载。

(2)高可用集群(HAC)

高可用集群下的服务器运行速度和响应速度较快,一般是已配置好的集群服务中有任意节点失效时,将其分配到的压力自动转移到其他正常节点上,一般情况下这个节点的失效不会影响整个集群的运行,如果主节点失效,次节点完全可以接替其身份和资源进一步正常处理主节点下的任务。

二.使用集群的意义

1.高性价比和性能比

以pc服务器或RISC服务器组成集群可以大规模降低部署成本,分开管理,在性能上也有很大的优势

2.高可用性

在硬件和软件上都有冗余,可以进一步检测到软硬件的故障,进而解决或屏蔽故障有正常运转的节点继续提供服务

3.可伸缩性强

集群系统的节点数可以到几千甚至几万个,在其上甚至可以简易地去开发应用程序

4.持久和透明性高

服务器对于客户端来说,部分服务器的加入和退出不会中断对用户的服务,对用户来说相对透明

三.常见的两种集群模式拓扑

1.LVS(-DR)集群模式

(1)工作架构

如图示,多台提供服务的服务器(组)和数据备份(共享存储)服务器位于局域网内,提供服务的服务器又连接到广域网,用户通过互联网/加速器能够进行访问。LVS模式下用户发出数据请求,LVS负载均衡服务器组收到后按自身算法1将请求通过广域网交给apache/nginx服务器组,apache/nginx服务器组处理好后直接将结果返还给用户,无需经过负载均衡组。

LVS-DR负载均衡服务器组所在层又可称为load balancer(包含director server),apache/nginx服务器群组所在层又可称为server array(包含real server——集群节点),后方的数据共享存储层可称为shared storage。

23f7cac734324b6d859ad077804a8da6.png

load balancer:位于整个集群系统最前端,由一台或多台负载调度器组成,LVS是安装在director server上的,其中包含有LVS功能设定的路由表,通过路由表把数据请求抓发给server array,还可以在direct server上安装对real server的监控板块,检测健康状态。

server array:由一组真实的应用服务器组成,每个real server之间通过lan或wan相连接,在真实场景中,director server可以充当real server。

shared storage:为所有的real server提供数据存储和空间共享服务,保持内容一致性,一般是由磁盘阵列设备、nfs文件共享系统、gfs文件系统或ocfs2文件系统等等组成

(2)LVS下的相关术语

虚拟IP地址——VIP,director server用来向客户端计算机提供服务的IP地址

真实IP地址——RIP,在集群节点上使用的IP地址

director server的IP地址——DIP,director用于连接外网的IP地址

客户端主机IP地址——CIP,客户端请求集群服务器的IP地址,用作发送给集群的数据请求的源IP地址

(3)LVS的工作模式

 LVS的IP负载均衡通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件。主要作用是:安
装在Director Server上,同时在Director Server上虚拟出一个IP地址,客户端访问时也要通过这个IP地址。这个虚拟IP一般称为LVS的VIP,访问的请求首先经过VIP到达负载调度器,然后由负载调度器从Real Server列表中选取一个服务节点响应用户的请求。当用户的请求到达负载调度器后,IPVS重点关注调度器如何将请求发送到提供服务的Real Server节点,Real Server节点如何返回数据给用户,IPVS实现负载均衡机制有DR、NAT、TUN三种。

VS/NAT:

网络地址翻译技术实现虚拟服务器,当用户请求到达调度器时,调度器将请求报文的目标地址(虚拟IP地址)改写成选定的Real Server地址,同时报文的目标端口也改成选定的Real Server的相应端口,最后将报文请求发送到选定的Real Server。在服务器端得到数据后,Real Server要原路经过负载调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户。

VS/DR:

直接路由技术实现虚拟服务器,应用最多,要求Director Server与Real Server都有一块网卡连在同一物理网段上。它的连接调度和管理与VS/NAT相同,但VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户,节省了开销,性能最好。

VS/TUN:

IP隧道技术实现虚拟服务器,应用较少不要求Director Server与Real Server都有一块网卡连在同一物理网段上。它的连接调度和管理与VS/NAT方式相同,但调度器采用IP隧道技术将用户请求转发到某个Real Server,而这个Real Server将直接响应用户的请求,不再经过前端调度器,调度器只处理用户的报文请求,吞吐量较高。

(4) LVS调度器算法

调度器在收到入站请求时需要立即做出决定将请求分配给哪个服务器(节点)

固定调度:

rr:常用调度算法之一,轮询调度,在real server中均摊请求,此算法适用于处理性能相差不大的情况。

wrr:常用调度算法之一,加权轮循调度,依据不同real server的权重值分配任务,权值较高的real

server将优先分配,分配到的连接数也比权值较低的real server多,如果权值相同那么real serve

得到相同数目的连接。

dh:目的哈希调度,以目的地址为关键字查找一个静态hash表来分配real server。

sh:源地址哈希调度,以源地址为关键字查找一个静态hash表来分配real server。

动态调度:

lc:常用调度算法之一,最小连接数调度,会把新的连接请求发送到IPVS表中连接数最小的real

server。

wlc:常用调度算法之一,加权最小连接数调度,依次选取“TCP连接数/权重值”为最小的real server

作为下一个分配节点。

lblc:基于地址的最小连接数调度,如果这一台设备仍然可以处理请求就将来自同一目的地址的请

求分配给同一台real server,否则分配给连接数最小的real server,作为下次分配请求的首选real

server。

lblcr:基于地址带重复最小连接数调度,目的地址会对应一个real server子集,为请求分配子集中

连接数最小real server,如果服务器中所有子集均已满载,则从集群中选择一个连接数较小服务

器,将它加入到这个子集并分配连接,一定时间内不干预就会将子集中负载最大的节点从子集中移

除。

SED:最短期望的延迟算法,基于wlc算法,将连接交给wlc结果最小的real server。假如A、B、C

分别权重为1、2、3,连接数分别是1、2、3,使用sed算法后运算式如下:A(1+1)/1、B(1+2)/2、

C(1+3)/3,就会交给C服务器。

NQ:最少队列调度,如果有台real server的连接数=0就直接分配过去,此时不想需要进行SED运

算,如果不处于空闲状态需要进行SED的运算。

 2.haproxy/nginx模式

如图示,大体与LVS差不多,但是haproxy/nginx模式下apache/nginx/图片服务器处理好的结果需要经过请求的原路返回给用户 

dcf3586bcf574698b270e946213b3415.png

 四.常用集群软硬件列举

1.企业常用集群软件

LVS,keepalived,haproxy,nginx,apache,heartbeat

2.企业常用集群硬件

F5,Netscaler,Radware

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像去雨-雨线清除-图像处理-(计算机作业附代码)

背景 多年来,图像去雨已经被广泛研究,使用传统方法和基于学习的方法。然而,传统方法如高斯混合模型和字典学习方法耗时,并且无法很好地处理受到严重雨滴影响的图像块。 算法 通过考虑雨滴条状特性和角度分布,这个问…

Mybatis查询数据库返回任意形式的返回结构

Mybatis查询数据库返回任意形式的返回结构 mapper的接口mapper.xml mapper的接口 假如有多个记录,可以将map放到 arraylist里 mapper.xml 主要是通过resultMap定义好映射格式

尼科彻斯定理-C语言/Java

描述 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 例如: 1^31 2^335 3^37911 4^313151719 输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。&…

vscode远程连接Linux失败,提示过程试图写入的管道不存在(三种解决办法)

vscode报错如下: 一、第一种情况 原因是本地的known_hosts文件记录服务器信息与现服务器的信息冲突了,导致连接失败。 解决方案就是把本地的known_hosts的原服务器信息全部删掉,然后重新连接。 二、第二种情况 在编写配置文件config时&…

RequestRespons

文章目录 Request&Respons1 Request和Response的概述2 Request对象2.1 Request继承体系2.2 Request获取请求数据2.2.1 获取请求行数据2.2.2 获取请求头数据2.2.3 获取请求体数据2.2.4 获取请求参数的通用方式 2.3 IDEA快速创建Servlet2.4 请求参数中文乱码问题2.4.1 POST请…

stable diffusion基础

整合包下载:秋叶大佬 【AI绘画8月最新】Stable Diffusion整合包v4.2发布! 参照:基础04】目前全网最贴心的Lora基础知识教程! VAE 作用:滤镜微调 VAE下载地址:C站(https://civitai.com/models…

Oracle将与Kubernetes合作推出DevOps解决方案!

导读Oracle想成为云计算领域的巨头,但它不是推出自己品牌的云DevOps软件,而是将与CoreOS在Kubernetes端展开合作。七年前,Oracle想要成为Linux领域的一家重量级公司。于是,Oracle主席拉里埃利森(Larry Ellison&#xf…

Lnton羚通关于【PyTorch】教程:torchvision 目标检测微调

torchvision 目标检测微调 本教程将使用Penn-Fudan Database for Pedestrian Detection and Segmentation 微调 预训练的Mask R-CNN 模型。 它包含 170 张图片,345 个行人实例。 定义数据集 用于训练目标检测、实例分割和人物关键点检测的参考脚本允许轻松支持添加…

【环境配置】Windows 10 安装 PyTorch 开发环境,以及验证 YOLOv8

Windows 10 安装 PyTorch 开发环境,以及验证 YOLOv8 最近搞了一台Windows机器,准备在上面安装深度学习的开发环境,并搭建部署YOLOv8做训练和测试使用; 环境: OS: Windows 10 显卡: RTX 3090 安…

STM32 F103C8T6学习笔记9:0.96寸单色OLED显示屏—自由取模显示—显示汉字与图片

今日学习0.96寸单色OLED显示屏的自由取模显示: 宋体汉字比较复杂,常用字符可以直接复制存下来,毕竟只有那么几十个字母字符,但汉字实在太多了,基本不会全部放在单片机里存着,一般用到多少个字就取几个字的模&#xff…

codesys和HMI通讯

codesys可视化有2种: 网页web // 类似于路由器管理那样,登录网页就能操作 本地HMI // 其他品牌的触摸屏 符号配置: 1 编译需要的变量 2 导出XML文件 3 触摸屏软件加载XML文件

从零实战SLAM-第八课(非特征点的视觉里程计)

在七月算法报的班,老师讲的蛮好。好记性不如烂笔头,关键内容还是记录一下吧,课程入口,感兴趣的同学可以学习一下。 --------------------------------------------------------------------------------------------------------…

Eclipse集成MapStruct

Eclipse集成MapStruct 在Eclipse中添加MapStruct依赖配置Eclipse支持MapStruct①安装 m2e-aptEclipse Marketplace的方式安装Install new software的方式安装(JDK8用到) ②添加到pom.xml 今天拿到同事其他项目的源码,导入并运行的时候抛出了异…

使用 Ansible Galaxy 安装角色

使用 Ansible Galaxy 安装角色 使用 Ansible Galaxy 和要求文件 /home/curtis/ansible/roles/requirements.yml 。从以下 URL 下载角色并安装到 /home/curtis/ansible/roles : http://rhgls.area12.example.com/materials/haproxy.tar 此角色的名称应当为 balancer …

每日一题leetcode--使循环数组所有元素相等的最少秒数

相当于扩散,每个数可以一次可以扩散到左右让其一样,问最少多少次可以让整个数组都变成一样的数 使用枚举,先将所有信息存到hash表中,然后逐一进行枚举,计算时间长短用看下图 考虑到环形数组,可以把首项n放…

Mac鼠标增强工具Smooze Pro

Smooze Pro是一款Mac上的鼠标手势增强工具,可以让用户使用鼠标手势来控制应用程序和系统功能。 它支持多种手势操作,包括单指、双指、三指和四指手势,并且可以自定义每种手势的功能。例如,您可以使用单指向下滑动手势来启动Expos视…

Ant Design Pro 前端脚手架 配置混合导航

Ant Design Pro脚手架 点击查看阅读 混合导航: 顶部导航和侧边栏导航实现联动效果,点击不同的顶部导航按钮会显示对应的子菜单项。 实现点: 1. 路由的配置 菜单展示 我们可以在 route 中进行 menu 相关配置,来决定当前路由是否…

kubernetes(namespace、pod、deployment、service、ingress)

NameSpace NameSpace名称空间 用来隔离资源,但是不隔离网络 使用命令行: kubectl create ns hello #创建 kubectl delete ns hello #删除 kubectl get ns #查看使用配置文件: vi hello.yamlapiVersion: v1 kind: Namespace metadata:name…

Freertos学习

一、概念 实时操作系统,要求一个高的实时性,就不是像在一个死循环中放俩函数了。而是创建俩任务,也叫做俩进程,高速的轮流执行,提高实时性。 堆栈的申请是任务的基础。 二、创建任务 创建任务又两种方式,…

【图像分类】理论篇(2)经典卷积神经网络 Lenet~Resenet

目录 1、卷积运算 2、经典卷积神经网络 2.1 Lenet 网络构架 代码实现 2.2 Alexnet 网络构架 代码实现 2.3 VGG VGG16网络构架 代码实现 2.4 ResNet ResNet50网络构架 代码实现 1、卷积运算 在二维卷积运算中,卷积窗口从输入张量的左上角开始&#xff…