LVS负载均衡架构原理

2024-08-27 10:58
文章标签 负载 原理 架构 均衡 lvs

本文主要是介绍LVS负载均衡架构原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


Linux Virtual Server

Ipvs : 嵌入到linux的内核

IPVsadm:管理应用程序


负载均衡器

1、硬件:

     F5BIG-IP

     CitrixNetScaler

     A10

2、软件

     四层:tcp 之上的第四层协议

               LVS:只能操作IP,端口 ,在操作系统内核中。

     七层:http,ajp,https,(应用层)

               nginx

               haproxy

               httpd

 

调度方法(静态方法和动态方法)

  四种静态:

         rr:轮循

         wrr:

         dh:

         sh:

 

  动态调度方法:

         lc:最少连接

                   active*256+inactive

                   谁的小,挑谁

         wlc:加权最少连接

                   (active*256+inactive)/weight

         sed:最短期望延迟

                   (active+1)*256/weight

         nq:never queue

         LBLC:基于本地的最少连接

                   DH:

         LBLCR:基于本地的带复制功能的最少连接

         默认方法:wlc


类型:

         NAT:地址转换

         DR:直接路由

         TUN:隧道

 

      NAT:

                   集群节点跟director必须在同一个IP网络中;

                   RIP通常是私有地址,仅用于各集群节点间的通信;

                   director位于client和real server之间,并负责处理进出的所有通信;

                   realserver必须将网关指向DIP;

                   支持端口映射;

                   realserver可以使用任意OS;

                   较大规模应该场景中,director易成为系统瓶颈;

                   VIP:虚拟服务器地址

                   DIP:   转发的网络地址

                    RIP:  后端真实主机(后端服务器)

                   CIP:客户端IP地址

     DR:  

                  集群节点跟director必须在同一个物理网络中;

                  后端服务器(真实服务器)可以使用公网地址,实现便捷的远程管理和监控;

                  director仅负责处理入站请求,响应报文则由realserver直接发往客户端;

                  不支持端口映射;


VIP(隐藏)的意思:

不对外广播

被叫不响应

Node1

VIP:192.168.1.251

DIP:192.168.239.3

集群服务器

Node2

RIP:192.168.1.248

VIP:192.168.239.10

RS,apache

Node3

RIP:192.168.1.249

VIP:192.168.239.10

RS,apache


      TUN:

                   集群节点可以跨越Internet;

                   RIP必须是公网地址;

                   director仅负责处理入站请求,响应报文则由realserver直接发往客户端;

                   realserver网关不能指向director;

                   只有支持隧道功能的OS才能用于realserver;

                   不支持端口映射;


Ipvsadm命令:

      管理集群服务

                   添加:-A -t|u|fservice-address [-s scheduler]

                            -t:TCP协议的集群

                            -u:UDP协议的集群

                                     service-address:     IP:PORT

                            -f:FWM: 防火墙标记

                                     service-address:Mark Number

                   修改:-E

                   删除:-D -t|u|fservice-address

 

                   #ipvsadm -A -t 172.16.100.1:80 -s rr

 

      管理集群服务中的RS

                   添加:-a -t|u|fservice-address -r server-address [-g|i|m] [-w weight]

                              -t|u|f service-address:事先定义好的某集群服务

                              -r server-address: 某RS的地址,在NAT模型中,可使用IP:PORT实现端口映射;

                              [-g|i|m]: LVS类型      

                                     -g:DR

                                     -i:TUN

                                     -m:NAT

                            [-wweight]: 定义服务器权重

                   修改:-e

                   删除:-d -t|u|fservice-address -r server-address

 

                   #ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 –g

                   #ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -g

         查看

                   -L|l

                            -n:数字格式显示主机地址和端口

                            --stats:统计数据

                            --rate:速率

                            --timeout:显示tcp、tcpfin和udp的会话超时时长

                            -c:显示当前的ipvs连接状况

 

         删除所有集群服务

                   -C:清空ipvs规则

         保存规则

                   -S

                   #ipvsadm -S > /path/to/somefile

         载入此前的规则:

                   -R

                   # ipvsadm -R </path/form/somefile

----------------------------------------------------------------------------------------------------------------------------------

DR模式

VIP: 虚拟主机IP

         DIP:

         kernelparameter:

                   arp_ignore:定义接收到ARP请求时的响应级别;

                            0:只要本地配置的有相应地址,就给予响应;

                            1:仅在请求的目标(MAC)地址配置请求到达的接口上的时候,才给予响应;

 

                   arp_announce:定义将自己地址向外通告时的通告级别;

                            0:将本地任何接口上的任何地址向外通告;

                            1:试图仅向目标网络通告与其网络匹配的地址;

                            2:仅向与本地接口上(MAC)地址匹配的网络进行通告;


-----------------------------------------------------------------DR模式示例------------------------------------------------------------

Lvs DR模式集群步骤

1、  找一台主机作为DR(虚拟服务器),安装ipvsadm

       a) Yum install ipvsadm

2、  在DR设置两个IP地址:

       a) DIP: 192.168.1.134 ,设置静态ID

       b) VIP:192.168.1.200 , ifconfig eth0:1 192.168.1.200/24 (取消绑定ifconfig eth1 down)

3、  找多台机器作为RS(apeche或者tomcat )

       a) 两台:静态设置192.168.1.137

                                   192.168.1.138

       b) 修改报文源IP的设置,需要设置内核参数

                    i.  echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore

                    ii. echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore

                    iii.echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce

                    iv.echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce

       c)  在两台机器(RS)上,设置网卡的别名IP:192.168.1.200

                     i. ifconfig lo:0 192.168.1.200 netmask 255.255.255.255 broadcast 192.168.1.200

       d)  在两台机器(RS)上,添加一个路由

                      i. route add -host 192.168.1.200 dev lo:0

4、  DR上需要加一个路由设置:route add -host 192.168.1.200 dev eth0:1

5、  在RS 检查web服务是否正常

6、  在DR上使用ipvsadm添加集群服务

       a)  Ipvsadm –C

       b)  ipvsadm -A -t 192.168.1.200:80-s wlc

       c)  ipvsadm -a -t 192.168.1.200:80-r 192.168.1.137 -g -w 1

       d)  ipvsadm -a -t 192.168.1.200:80-r 192.168.1.138 -g -w 1


脚本

#!/bin/bash

#description : start realserver

VIP=125.38.38.64

/etc/rc.d/init.d/functions

case "$1" in

start)

echo " start LVS of REALServer"

echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

/sbin/ifconfig lo:0 $VIP broadcast $VIPnetmask 255.255.255.255 up

 

;;

stop)

/sbin/ifconfig lo:0 down

echo "close LVS Directorserver"

echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce

echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore

echo "0">/proc/sys/net/ipv4/conf/all/arp_announce

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac




这篇关于LVS负载均衡架构原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111475

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu

hdu4059容斥原理

求1-n中与n互质的数的4次方之和 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWrit

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类