LVS(Linux Virtual Server)集群

news2024/10/6 12:25:05

Cluster:集群,为了解决某个特定问题将多台计算机组合起来形成的单个系统。

集群分为三种类型:

LB(Load Balancing),负载均衡,多个主机组成,每个主机只承担一部分访问请求

HA(High Availiablity),高可用,避免单点故障

HPC(High-performance computing),高性能

轮询(Round Robin):将收到的访问请求按照顺序轮流分配给群集中的各节点。

加权轮询(Weighted Round Robin):根据调度器设置的权重值来分发请求,权重值越高,越优先获得任务并且分配的请求越多。

最少连接(Least Connections):根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。

加权最少连接数(Weighted Least Connections):在服务器节点的性能差异较大的情况下,调度器根据节点服务器负载自动调整权重。

集群:同一个业务系统,部署在多台服务器上。

集群设计原则:

可扩展性—集群的横向扩展能力

可用性—无故障时间

性能—访问响应时间

容量—单位时间内的最大并发吞吐量

软件:

lvs:阿里四层SLB使用四层的nginx负载均衡软件,内核中的功能性能强,功能少,百万级别的并发。

nginx:支持七层调度,阿里七层SLB使用Tengine,4层,3-6w并发

haproxy:支持七层调度,反向,十万级别(不太会用到)

LVS:调度器,负载均衡软件,类似于nginx,4层协议的代理

IPVS sheduler调度算法

LVS,负载调度器,内核集成。阿里的四层SLB是基于LVS+keepalived实现。

LVS集群中的术语:

VS(Virtual Server,VS)代理服务器,DS(Director Server),Dispatcher调度器

RS(real Server,RS)真实服务器:upstream server(nginx),backend server(paproxy),真实服务器

CIP(Client IP):客户机IP

VIP(Virtual Server IP):代理服务器的IP,外网IP

DIP(Director IP)VS内网的IP,代理服务器的IP

RIP(Real server IP):真实服务器的IP地址

LVS调度算法,调度算法分为两种,静态方法和动态方法。

静态方法就是不管后端真实服务器的状态,根据自身算法进行调度。

动态方法是会根据后端服务器的状态来进行调度。

仅根据算法本身进行调度。

静态:

RR:RoundRobin,轮询,常用
WRR:加权轮询,常用,先算总权重,再用自己的权重去除以总权重

SH,实现session sticky,源IP地址hash,将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定

DH,目的地址哈希,第一次轮询调度至RS

动态:

一个参考值来确定服务器是否忙,值越小代表服务器越空闲,就会优先调度个空闲的服务器
根据RS当前的负载状态及调度算法进行调度Overhead=value值,小的值被调度

1.LC:适用于长连接应用,最小连接数,不考虑权重

公式:Overhead=activeconns*256+inactiveconns

值=活动连接*256+非活动连接。没有权重

2.WLC:带权重的,weight,默认调度,加权最小连接数,第一轮不合理,都是一样的优先级

公式:Overhead=(activeconns*256+inactiveconns)/weight

值=(活动连接*256+非活动连接)/权重。有权重

3.SED:初始连接高权重优先,只检查活动连接,而不考虑非活动连接,权重小的,空闲的
公式:Overhead=(activeconns+1)*256/weight

值=(活动连接+1)*256/权重。

4.NQ:第一轮均匀分配,后续SED

ipvsadm 工具,选项说明

-A:添加虚拟服务器

-D:删除整个虚拟服务器

-s:指定负载调度算法

-a:添加真实服务器(节点服务器)

-d:删除某一个节点

-t:指定VIP地址及TCP端口

-r:指定RIP地址及TCP端口

-m:表示使用NAT群集模式


ipvsadm -C #清空

ipvsadm -R #重载
ipvsadm -A -t 12.0.0.1:80 -s rr   #添加虚拟服务器,代理服务器

#添加真实服务器

ipvsadm -a -t 12.0.0.1:80 -r 192.168.114.20:80 -m

ipvsadm -a -t 12.0.0.1:80 -r 192.168.114.30:80 -m

通过yum安装:
yum install ipvsadm -y
 

NAT模式,LVS负载均衡部署

需要四台机子

7-1作为LVS是调度服务器,7-2作为真实服务器1,7-3作为真实服务器2,7-4作为客户端。

一次访问可能是192.168.114.20,那么下一次可能是192.168.114.30

systemctl stop firewalld

setenforce 0

在7-2和7-3真实服务器上配置httpd,准备主页文件。和指定网关

[root@Node3 ~]#:yum install -y httpd

[root@Node3 ~]#:systemctl start httpd
[root@Node3 ~]#:echo "7-3" > /var/www/html/index.html

7-2同理:

[root@Node2 ~]#:yum install -y httpd

[root@Node2 ~]#:systemctl start httpd
[root@Node2 ~]#:echo "7-2" > /var/www/html/index.html

这里,网页主页就配置好了,还需要修改两台的网关,设置为调度服务器的ens33网卡的地址

[root@Node3 ~]#:vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=192.168.114.30
NETMASK=255.255.255.0
GATEWAY=192.168.114.10

[root@Node3 ~]#:systemctl restart network

7-2同理:

[root@Node2 ~]#:vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=192.168.114.20
NETMASK=255.255.255.0
GATEWAY=192.168.114.10

[root@Node2 ~]#:systemctl restart network

总结:httpd服务,主页面配置。网络配置,指定网关。

7-1上LVS调度服务器

添加一块网卡,设为仅主机模式

修改ens36网卡:(刚添加的网卡,我这里叫ens36)

[root@Node1 ~]#:cd /etc/sysconfig/network-scripts/

[root@Node1 network-scripts]#:cp ifcfg-ens33 ifcfg-ens36 -a

[root@Node1 network-scripts]#:vim ifcfg-ens36

#把UUID删了,修改网卡名称为ens36
IPADDR=12.0.0.1
NETMASK=255.255.255.0
GATEWAY=12.0.0.1

[root@Node1 network-scripts]#:systemctl restart network

#开启路由转发:

[root@Node1 network-scripts]#:vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p[root@Node1 network-scripts]#:sysctl -p
net.ipv4.ip_forward = 1


#添加真实服务器和虚拟服务器(节点服务器)

[root@Node1 ~]#:yum install -y ipvsadm

[root@Node1 ~]#:systemctl start ipvsadm
Job for ipvsadm.service failed because the control process exited with error code. See "systemctl status ipvsadm.service" and "journalctl -xe" for details.

#需要这个文件目录
[root@Node1 ~]#:ipvsadm-save > /etc/sysconfig/ipvsadm 
[root@Node1 ~]#:systemctl start ipvsadm

#添加虚拟服务器:

[root@Node1 ~]#:ipvsadm -A -t 12.0.0.1:80 -s rr

#添加两个真实服务器:

[root@Node1 ~]#:ipvsadm -a -t 12.0.0.1:80 -r 192.168.114.20:80 -m
[root@Node1 ~]#:ipvsadm -a -t 12.0.0.1:80 -r 192.168.114.30:80 -m

7-4作为客户端

改成主机模式:点确定

[root@Node4 ~]#:vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=12.0.0.100
NETMASK=255.255.255.0
GATEWAY=12.0.0.1

#重启网络

[root@Node4 ~]#:systemctl restart network

测试:

实现NAT模式LVS负载均衡

------end------

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

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

相关文章

101.qt qml-自定义日历控件2-附带动画效果

黑色风格截图如下所示: 白色风格如下所示: GIF效果如下所示: 1.控件使用介绍 QianWindow2.5版本及以上提供,源码位于:qrc:/common/qmlQianDateTime/QianCalendarInputField.qml QianWindow2.5版本及以上提供,示例使用代码位于:qrc:/pages/QianControlPages/QianDateTimeP…

Excel批量删除括号里内容,帮你轻松应对!

某次,刘小生从系统导出的人员信息中,“姓名”字段信息中包含了工号信息,需要将“原姓名”中的“工号、括号”信息删除,如果一个一个删除工作量很大,刘小生想到可以用“通配符*”批量替换,解放双手&#xff…

UniVue更新日志:SuperGrid组件的使用

github仓库 稳定版本仓库:https://github.com/Avalon712/UniVue 开发版本仓库:https://github.com/Avalon712/UniVue-Develop UniVue扩展框架-UniVue源生成器仓库:https://github.com/Avalon712/UniVue-SourceGenerator SuperGrid组件的实现…

Selenium - 启动后报org.openqa.selenium.InvalidArgumentException: invalid argument错

● 出现的异常: Build info: version: 3.141.59, revision: e82be7d358, time: 2018-11-14T08:25:48 System info: host: DESKTOP-H7TOMMO, ip: 192.168.64.1, os.name: Windows 10, os.arch: amd64, os.version: 10.0, java.version: 1.8.0_131 Driver info: dr…

Excel小技巧| 批量多列多行转为一列

前期刘小生Star分享了Excel批量一列转多列多行,你学会了嘛! 前期刘小生遇到需“对多列对行数据合并并找到唯一不重复的信息”,今天举一反三,继续沿用“替换等号”方法,将多列多行转为一列! 下面一个模拟案…

理解并应用:JavaScript响应式编程与事件驱动编程的差异

背景介绍 在现代JavaScript开发中,响应式编程(Reactive Programming)和事件驱动编程(Event-Driven Programming)是两种非常重要且常用的编程范式。虽然它们都用于处理异步操作,但在理念和实现方式上存在显…

新书速览|抖音账号运营实践

《抖音账号运营实践》 本书内容 抖音是一个最受欢迎的短视频平台,拥有10亿用户,聚合了企业、网红、自媒体、普通用户。抖音已经形成了一个生态圈,用户使用抖音不仅可以解决衣、食、住、行的生活问题,还能解决吃、喝、玩、乐的娱乐…

7.无代码爬虫八爪鱼采集器软件——采集规则/项目的创建与网址输入

接上篇 6.零代码网页爬虫软件基础实操——下载与安装八爪鱼采集器 八爪鱼免费爬虫软件下载: 八爪鱼采集器下载 小白数据采集神器​​https://affiliate.bazhuayu.com/retrieve 直接复制粘贴要采集的网站在这里就可以进入采集规则的设计器 自定义任务 通过这个功能…

3d模型怎么加室外场景渲染的步骤---模大狮模型网

在进行3D模型渲染时,将其放置在室外场景中可以提高渲染效果和真实感。以下是将3D模型加入室外场景的步骤: 1. 选择合适的场景:首先需要选择合适的室外场景,例如城市街道、森林、海滩等等。选择场景时需要考虑模型的大小和比例&…

各大APP自动化运行插件开发需要用到的源代码有哪些?

在当今数字化时代,自动化运行插件的开发在各大APP中扮演着至关重要的角色,这些插件不仅提升了APP的功能性和效率,同时也为用户带来了更加便捷的使用体验。 在开发这些自动化运行插件的过程中,源代码的选择与使用显得尤为关键&…

微型丝杆的耐用性和延长使用寿命的关键因素!

无论是机械设备,还是精密传动元件,高精度微型丝杆是各种机械设备中不可或缺的重要组件。它的精度和耐用性直接影响着工作效率和产品品质,在工业技术不断进步的情况下,对微型丝杆的性能要求也越来越高,如何提升微型丝杆…

渲染农场:设计师提高工作效率的得力助手

在当今数字化设计时代,设计师们面临着前所未有的创作挑战。随着项目复杂度的攀升,高质量的视觉效果成为标配,而这也意味着渲染任务日益繁重。渲染,这一将设计构想转化为真实感图像的过程,往往是创意实现中的瓶颈。在此…

云动态摘要 2024-06-17

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [低至1折]腾讯混元大模型产品特惠 腾讯云 2024-06-06 腾讯混元大模型产品特惠,新用户1折起! 云服务器ECS试用产品续用 阿里云 2024-04-14 云服务器ECS试用产品续用…

算法02 递归算法及其相关问题【C++实现】

递归 在编程中,我们把函数直接或者间接调用自身的过程叫做递归。 递归处理问题的过程是:通常把一个大型的复杂问题,转变成一个与原问题类似的,规模更小的问题来进行求解。 递归的三大要素 函数的参数。在用递归解决问题时&…

小白入手实现AI客服机器人demo

一、环境准备 1 安装python 2 安装vscode 3 安装相关python库 pip install flask flask_cors openai 4.在vscode里安装TONGYI Lingma(AI编程助手) 二、后端搭建 创建一个后端文件夹chatbot,再新建一个app.py的python文件 from flask import Flask, requ…

Windows10笔记本如何系统重装?64位电脑重装系统需小心!一键安装超详细步骤!

在日常生活和工作中,我们有时会遇到Windows 10笔记本系统运行缓慢、频繁出现错误或受到病毒攻击等问题。这时,重装系统就成了解决这些问题的最佳选择。然而,对于许多用户来说,尤其是64位电脑用户,重装系统可能是一项既…

梳理Y3游戏编辑器入门者需要明白的基础概念

前言 Y3编辑器是网易开发的一款类似于“War3地图编辑器”的产品。 最近KK对战平台上不少热门的RPG地图都出自Y3编辑器: 最近我花了些时间学习了这款编辑器的基础知识。我发现其中很多概念是比较抽象需要理解的,而有些概念比如“物件”、“物体”、“物…

生活好物:日常更精彩

我们的日用杂货店,是生活美学的聚集地。这里汇聚了各式各样的生活用品,每一件都蕴含着对生活的热爱与追求。 走进我们的日用杂货店,仿佛打开了一个充满生活气息的宝藏盒。从厨房的锅碗瓢盆,到浴室的洗漱用品,再到客厅的…

列表(list)(Python)

文章目录 一、定义二、列表常用操作 一、定义 list ["张三", "李四", "王五", "赵六"]二、列表常用操作 分类关键字/函数/方法说明增加列表.append(值)在列表末尾追加值列表.insert(索引, 值)在指定位置插入值&#xff…

快去复习吧+++常用算法及参考算法 递推法++穷举法++排序(冒泡、选择)++查找(顺序、折半)++字符串处理++方程求根++无穷级数求和

接上:常用算法及参考算法 (1)累加 (2)累乘 (3)素数 (4)最大公约数 (5)最值问题 (6)迭代法 常用算法及参考算法 7. 递推法…