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的更多相关文章

  1. LVS负载均衡DR工作流程

    LVS负载均衡DR工作流程 (a) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链. 此时报文的源IP为CIP,目标IP为VIP (b) PRE ...

  2. LVS负载均衡之DR模式原理介绍

    LVS基本原理 流程解释: 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 PREROUTING 链首先会接收到用户请求,判断目标 IP 确定是本机 IP ...

  3. 20.LVS负载均衡群集—NAT模式实例

    LVS负载均衡群集-NAT模式实例 目录 LVS负载均衡群集-NAT模式实例 群集引用概述 群集的含义 问题 解决方法 企业群集分类 群集的三种类型 负载均衡群集(Load Balance Clust ...

  4. LVS负载均衡IP隧道模式原理介绍以及配置实战

    LVS 基本工作原理 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 PREROUTING 链首先会接收到用户请求,判断目标 IP 确定是本机 IP,将数 ...

  5. LVS负载均衡之DR模式部署

      1.LVS的DR模式介绍 参考自官网:http://www.linuxvirtualserver.org/zh/lvs3.html     VS/DR利用大多数Internet服务的非对称特点,负 ...

  6. LVS负载均衡之NAT模式部署

    1.LVS的NAT模式介绍 参考自官网:http://www.linuxvirtualserver.org/zh/lvs3.html 由于IPv4中IP地址空间的日益紧张和安全方面的原因,很多网络使用 ...

  7. LVS负载均衡三种模式的实现

    何为lvs负载均衡? lvs负载均衡(linux virtual server)又名linux虚拟服务器.由章文嵩博士主导的负载均衡项目,目前LVS已经被集成到Linux内核模块中.该项目在Linux ...

  8. LVS 负载均衡——直接路由模式DR

    一.配置的网络拓扑结构图 二.配置lvs服务器 配置虚拟网卡地址(VIP地址) [root@localhost ~]# ifconfig eno16777728: 192.168.200.253 ne ...

  9. 实现基于LVS负载均衡集群的电商网站架构

    背景 上一期我们搭建了小米网站,随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响应缓慢,面对此场景,单纯靠单台LNMP的架构已经无法 ...

随机推荐

  1. (5)air202读取串口数据并上传到阿里云显示

    一.首先进行云端设置 根据串口助手显示的信息,以及模块文档说明我们可以知道 其中red和ir是红光LED的原始数据, HR表示心率值, HRvalid是心率是否有效标识, SP02是血氧数值,,SPO ...

  2. 打印菱形图案(PTA)

    打印菱形图案 本题要求编写程序,打印一个高度为n的.由"*"组成的正菱形图案. 标题输入格式 输入在一行中给出一个正的奇数n. 输出格式 输出由n行星号"*"组 ...

  3. shiro加密流程

  4. JobExecutionContext中的JobDataMapjob与Detail与Trigger中的JobDataMapjob

    public static void main(String[] args) { //配置模式 build模式 //1.实例一个JOB JobDetail jobDetail = JobBuilder ...

  5. constexpr-C++11

    constexpr和常量表达式 常量表达式(const expression)是指值不会改变并且在编译过程就能得到计算结果的表达式.显然,字面值属于常量表达式,用常量表达式初始化的const对象也是常 ...

  6. ucosii操作系统内核源码学习第一篇

    根据书本理论介绍以及实际看内核源代码得出: 1. 操作系统默认定义了64个TCB块(为全局变量,编译时候以及分配了,创建一个任务就使用一个,删除一个任务就归还一个)(为什么最大只支持64个任务呢,我们 ...

  7. Python实现Thrift Server

    近期在项目中存在跨编程语言协作的需求,使用到了Thrift.本文将记录用python实现Thrift服务端的方法. 环境准备 根据自身实际情况下载对应的Thrift编译器,比如我在Windows系统上 ...

  8. python使用UTF-8写入CSV中文乱码

    使用encoding='utf-8',写入的文档是乱码. 解决办法: 修改encoding='utf-8-sig' 关于文件open()函数: open(path,'-模式-',encoding='u ...

  9. Linux 内核:匠心独运之无锁环形队列kfifo

    Linux 内核:匠心独运之无锁环形队列 Kernel version Linux 2.6.12   Author Toney   Email vip_13031075266@163.com   Da ...

  10. struts2执行流程和架构图

    一.struts2执行流程 二.架构图 只需要编写黄色部分的代码: