11.4.5 LVS负载均衡常见工作模式总结以及ipvsadm
NAT | TUN | DR | |
RS | any | Tunneling | Non-arp device |
RS network | private | LAN/WAN | LAN |
RS number | low(10-20) | High(100) | High(100) |
RS gateway | load balancer | own router | Own router |
优点 | 端口转换 | WAN | 性能最好 |
缺点 | 性能瓶颈 | 支持隧道 | 不支持跨网段 |
lvs-nat与lvs-fullnat:
请求和响应报文都经由Director
lvs-nat:RIP的网关要指向DIP
lvs-fullnat:RIP和DIP未必在同一IP网络,但要能通信
lvs-dr与lvs-tun:
请求报文要经由Director,但响应报文由RS直接发Client
lvs-dr:通过封装新的MAC首部实现,通过MAC网络转发
lvs-tun:通过在原IP报文外封装新IP头实现转发,支持远距离通信
LVS 调度算法
ipvs scheduler:根据其调度时是否考虑各RS当前的负载状态
分为两种:静态方法 动态方法
静态方法
仅根据算法本身进行调度
1.RR:roundrobin 轮训
2.WRR:weighted RR 加权轮训
3.SH:Source Hashing 源地址hash 可以实现session sticky
将来自于同一个IP地址的请求始终转发往第一次跳中的RS,从而实现会话绑定
4.DH:Destination Hashing 目标地址hash,
第一次轮训调度至RS,后续将发往同一个目标地址的请求始终转发至第一次挑中的RS,典型应用场景:Web缓存
动态方法
主要根据每台RS当前的负载状态及调度算法进行调度Overhead=value较小的RS将被调度
1.LC Least connections 适用于长连接应用
overhead=activeconns*256+inactiveconns
2.WLC weighted LC 默认调度算法,比较常用
overhead=(activeconns*256+inactiveconns)/weight
3.SED shortest expection delay 初始连接高权重优先,只检查活动连接,而不考虑非活动连接
overhead=(activeconns+1)*256/weight
4.NQ Never Queue 第一轮rr,后续SED
5.LBLC locality-based lc 动态的DH算法,使用场景:根据负载均衡状态实现正向代理,实现Web cache等
6.LBLCR LBLC with replication ,带复制功能的LBLC,解决LBLC负载不均衡问题,从负载中的复制到负载轻的RS,实现web cache
其它调度算法
内核4.15版本后新增调度算法:FO OVF
LVS软件包组成
ipvsadm:
程序包:ipvsadm(LVS管理工具)
Unit File: ipvsadm.service
主程序:/usr/sbin/ipvsadm
规则保存工具:/usr/sbin/ipvsadm-save
规则重载工具:/usr/sbin/ipvsadm-restore
配置文件:/etc/sysconfig/ipvsadm-config
grep -i -C 10 "ipvs" /boot/config-3.10.0-957.el7.x86_64
#查看内核是否支持IPVS
ipvsadm
yum install ipvsadm -y
lvs命令使用
-t 表示为tcp服务
-u 表示为udp服务
-s --scheduler 使用的调度算法, rr | wrr | lc | wlc | lblb | lblcr | dh | sh |
sed | nq 默认调度算法是 wlc
ipvsadm -A -t 192.168.1.2:80 -s wlc
-a --add-server #在服务器表中添加一条新的真实主机记录
-t --tcp-service 说明虚拟服务器提供tcp服务
-u --udp-service 说明虚拟服务器提供udp服务
-r --real-server 真实服务器地址
-m --masquerading 指定LVS工作模式为NAT模式
-w --weight 真实服务器的权值
-g --gatewaying 指定LVS工作模式为直接路由器模式(也是LVS默认的模式)
-i --ip 指定LVS的工作模式为隧道模式
-p 会话保持时间,定义流量呗转到同一个realserver的会话存留时间
ipvsadm -a -t 192.168.1.2:80 -r 192.168.2.10:80 -m -w 1
-E –edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。
-D –delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。
-C –clear 清除内核虚拟服务器表中的所有记录。
-R –restore 恢复虚拟服务器规则
-S –save 保存虚拟服务器规则,输出为-R 选项可读的格式
-e –edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录
-d –delete-server 删除一条虚拟服务器记录中的某条真实服务器记录
-L|-l –list 显示内核虚拟服务器表
--numeric, -n:以数字形式输出地址和端口号
--exact:扩展信息,精确值
--connection,-c:当前IPVS连接输出
--stats:统计信息
--rate :输出速率信息
参数也可以从/proc/net/ip_vs*映射文件中查看
-Z –zero 虚拟服务表计数器清零(清空当前的连接数量等)
ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p [timeout]]
[-M netmask]
修改VIP为192.168.1.2的LVS中 http服务的调度算法为Round Robin
ipvsadm –E –t 192.168.1.2:80 –s rr
ipvsadm -D -t|u|f virtual-service-address
删除VIP为192.168.1.2的Service
ipvsadm -D -t 192.168.1.2:80
ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port [-g|i|m]
[-w weight]
修改RS权重为3 ipvsadm -e -t 192.168.1.2:80 -r 192.168.1.3 –g -w 3
ipvsadm -d -t|u|f service-address -r server-address
删除一个RS:ipvsadm -d -t 192.168.1.2:80 -r 192.168.1.3:80
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f service-address]
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
LVS规则保存和加载
保存:建议保存至/etc/sysconfig/ipvsadm
ipvsadm-save > /PATH/TO/IPVSADM_FILE
ipvsadm -S > /PATH/TO/IPVSADM_FILE
systemctl stop ipvsadm.service
重载:
ipvsadm-restore < /PATH/FROM/IPVSADM_FILE
ipvsadm -R < /PATH/FROM/IPVSADM_FILE
systemctl restart ipvsadm.service
11.4.5 LVS负载均衡常见工作模式总结以及ipvsadm的更多相关文章
- LVS负载均衡DR工作流程
LVS负载均衡DR工作流程 (a) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链. 此时报文的源IP为CIP,目标IP为VIP (b) PRE ...
- LVS负载均衡之DR模式原理介绍
LVS基本原理 流程解释: 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 PREROUTING 链首先会接收到用户请求,判断目标 IP 确定是本机 IP ...
- 20.LVS负载均衡群集—NAT模式实例
LVS负载均衡群集-NAT模式实例 目录 LVS负载均衡群集-NAT模式实例 群集引用概述 群集的含义 问题 解决方法 企业群集分类 群集的三种类型 负载均衡群集(Load Balance Clust ...
- LVS负载均衡IP隧道模式原理介绍以及配置实战
LVS 基本工作原理 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 PREROUTING 链首先会接收到用户请求,判断目标 IP 确定是本机 IP,将数 ...
- LVS负载均衡之DR模式部署
1.LVS的DR模式介绍 参考自官网:http://www.linuxvirtualserver.org/zh/lvs3.html VS/DR利用大多数Internet服务的非对称特点,负 ...
- LVS负载均衡之NAT模式部署
1.LVS的NAT模式介绍 参考自官网:http://www.linuxvirtualserver.org/zh/lvs3.html 由于IPv4中IP地址空间的日益紧张和安全方面的原因,很多网络使用 ...
- LVS负载均衡三种模式的实现
何为lvs负载均衡? lvs负载均衡(linux virtual server)又名linux虚拟服务器.由章文嵩博士主导的负载均衡项目,目前LVS已经被集成到Linux内核模块中.该项目在Linux ...
- LVS 负载均衡——直接路由模式DR
一.配置的网络拓扑结构图 二.配置lvs服务器 配置虚拟网卡地址(VIP地址) [root@localhost ~]# ifconfig eno16777728: 192.168.200.253 ne ...
- 实现基于LVS负载均衡集群的电商网站架构
背景 上一期我们搭建了小米网站,随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响应缓慢,面对此场景,单纯靠单台LNMP的架构已经无法 ...
随机推荐
- 微信小程序学习笔记二 数据绑定 + 事件绑定
微信小程序学习笔记二 1. 小程序特点概述 没有DOM 组件化开发: 具备特定功能效果的代码集合 体积小, 单个压缩包体积不能大于2M, 否则无法上线 小程序的四个重要的文件 *js *.wxml - ...
- 使用Operator State方式
使用 operator state的方式有以下几种: 方式一: stateful function(RichFunction) 实现 CheckpointFunction 接口 必须实现两个方法:Vo ...
- 微信小程序的button按钮设置宽度无效
亲,你是不是也遇到了微信小程序的button按钮设置宽度无效.让我来告诉你怎么弄 方法1. 样式中加入!important,即:width: 100% !important; wxss代码示例 1 2 ...
- Python - 面向对象编程 - 三大特性之继承
继承 继承也是面向对象编程三大特性之一 继承是类与类的一种关系 定义一个新的 class 时,可以从某个现有的 class 继承 新的 class 类就叫子类(Subclass) 被继承的类一般称为父 ...
- D3之svg transform 与 css3 transform 区别与联系
D3就不用多介绍了,在数据可视化界属于大佬级别的js库.在这里主要想记录一下在写程序期间遇到的一个问题. 如下图所示,想完成主视图在小地图上的映射,小地图的白色矩形框用来代表当前主视图可见区域,主视图 ...
- Java的Class类及static块的执行时机
要理解RTTI在Java中的工作原理,首先必须知道类型信息在运行时是如何表示的,这项工程由Class对象完成,它包含了与类有关的信息.Java使用Class对象来执行其RTTI,即使你执行的是类似转型 ...
- Python语法之选择和循环(if、while)
前言:在程序开发中,一共有三种流程方式: 顺序:从上向下,顺序执行代码 分支:根据条件判断,决定执行代码的分支 循环:让特定代码重复执行(解决程序员重复工作) 1.判断的定义: 如果条件满足,才能做某 ...
- 阿里云服务器安装配置nginx
服务器: 阿里云 Alibaba Cloud Linux 下载 进入到预计存放nginx的目录,比如:/usr/local/ 下载nginx压缩包,并解压 cd /usr/local wget htt ...
- AFL++ Fuzz一个libexif例子
CVE-2009-3895 首先在NVD找到漏洞描述如下: 大致意思是说:libexif 0.6.18 中的 libexif/exif-entry.c 中的 exif_entry_fix 函数中基于堆 ...
- MFGTool2 的使用
环境 宿主机平台:Ubuntu 16.04.6 目标机:iMX6ULL开发板 MFGTool 2.7 参考:https://www.cnblogs.com/helloworldtoyou/p/6053 ...