【 LVS 】类型及算法
一、概念:
LVS( linux virtual server ) : Linux虚拟服务器
lvs是一个负载均衡设备,它不提供任何服务,用户请求到这里的时候,它将客户需求转发至后端的realserver
LVS在用户空间中的管理工具为:ipvsadm ,在内核空间中是IPVS 【注意:LVS和iptables是不能同时使用】
二、LVS类型:
LB( Load Banlancing ):负载均衡集群
HA( High Availability ):高可用集群
HP( High Performance ):高性能集群
三、LVS实现负载均衡的方法:
NAT:地址转换(类似DNAT方式)
1、realserver和director必须工作在同一网络中
2、RIP通常是私有地址,仅用于各节点之间通信
3、director位于CIP和VIP之间,负责处理进出的请求
4、realserver必须将网关指向director的DIP
5、realserver可以是任意操作系统
6、director支持端口映射
7、在高并发的场景下director可能会成为瓶颈
DR:直接路由
1、各集群节点必须和director在同一物理网络中,director查找realserver是通过mac地址
2、RIP可以是公网地址,便于管理和监控
3、director仅处理请求报文,响应报文则有realserver直接响应给client
4、realserver不能将网关指向director
5、director不支持端口映射
6、相对nat方式来说,DR能够支持更多的请求
TUN:隧道
1、集群节点可以跨越internet
2、RIP必须是公网地址
3、director仅负责请求报文,响应报文则有realserver直接回送给client
4、realserver网关不能指向director
5、不支持端口映射
FULL-NAT:director通过同时修改请求报文和响应报文的目标地址和源地址进行转发
1、VIP是公网地址,RIP和DIP是私网地址,二者无需在同一网络中
2、RS接收的请求报文源地址为DIP,因此响应报文应该送达DIP
3、请求报文和响应报文要经由director
4、地址端口映射
5、realserver可以是任意操作系统
四、LVS十种调度算法
1、四种静态调度算法:仅根据算法本身进行调度(保持起点的公平)
(1)rr (round robin):轮询调度,轮叫调度
轮询调度算法的原理是每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部realserver个数),然后再从新循环,算法的优点是简洁性,无需记录连接的状态,所以是一种无状态调度。
(2)wrr (weight round robin):加权轮叫调度,以权重之间的比例实现各个主机之间进行调度
由于每台服务器的配置,安装的业务应用不同,处理的能力也不同。所以可以根据服务器处理能力的不同,给每个不同的服务器分配不同的权值,使其能够接受响应权值的服务器请求。
(3)sh (soucre hashing) 主要实现会话绑定,能够将此前建立的session信息保留
根据请求的源地址IP,作为散列键(hash key)从静态分配的散列表找出对应的服务器,当客户端再次访问的时候,就直接指向包含对应(hash key)的服务器。
(4)dh 目标地址散列:把同一个IP地址请求,发送到同一个server 因为LVS是工作在四层,无法对URL进行处理
2、动态调度算法:根据算法及各RS的当前负载状态进行调度算法(保持结果公平)
(1)lc (Least-Connection) 最少请求数服务器连接
最少连接调度算法是把新的连接请求分配到当前连接数最小的服务器,它通过服务器当前所活跃的连接数来估计服务器的负载均衡。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数+1
其连接中止或者超时,其连接数-1。当服务器权重为0时,表示该服务器不可用且不被调度
简单算法:active*256+inactive(谁小就挑谁)
(2) wlc ( Weighted least-Connection Scheduing ):加权最少连接。
加权最小连接调度算法是最小连接调度算法,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态的设置服务器的权重。
简单算法:(active*256+inactive)/weight【(活动的连接数+1)/除以权重】(谁的小,挑谁)
(6) LBLCR(Locality-Based Least Connections withReplication):带复制的基于局部性最少链接
【 LVS 】类型及算法的更多相关文章
- java加密类型和算法名称
项目里有各种加密方法,但从来没有仔细研究过.一般只是copy.这几天遇到一些问题,看了一下加密代码,觉得有些疑惑. 我们知道jdk已经为我们包装好了很多的算法.但究竟包装了哪些算法,怎么去掉这些算法我 ...
- 001.LVS简介及算法
一 LVS简介 1.1 LVS介绍 LVS是linux virtual server的简写linux虚拟服务器,是一个虚拟的服务器集群系统,可以再unix/linux平台下实现负载均衡集群功能. 使用 ...
- lvs模式及算法
一.三种模式 (一).Virtual Servervia Network Address Translation(VS/NAT) 通过网路地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将 ...
- lvs 最常用算法 + tcpdump vrrp 抓包
1.SH: source hash, 源地址散列. 将请求的目标IP地址换成请求的源IP地址:实现session保持的机制:将来自于同一个IP的请求始终调度至同一RS: 源地址散列调度算法正好与目标地 ...
- LVS负载均衡模型及算法概述
集群类型 LB: Load Balancing,负载均衡 HA:High Availability, 高可用 HP:High Performance, 高性能 负载均衡 负载均衡设备 Hardwa ...
- LVS工作原理及集群类型
Cluster概念 Cluster:集群,为解决某个特定问题将多台计算机组合起来形成的单个系统 Linux Cluster类型: LB:Load Balancing,负载均衡 HA:High ...
- LVS负载均衡的三种模式和八种算法总结
三种LVS负载均衡模式 调度器的实现技术中,IP负载均衡技术是效率最高的,IP虚拟服务器软件(IPVS)是在linux内核中实现的。 LVS负载均衡模式---1.NAT模式 NAT用法本来是因为网络I ...
- 集群——LVS理论(转)
原文:http://caduke.blog.51cto.com/3365689/1544229 当单个服务器性能 不能满足日益增多访问流量时,服务器的扩展策略: Scale Up :向上扩展,提升单个 ...
- LVS详解
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
随机推荐
- POJ 2516 Minimum Cost(最小费用流)
Description Dearboy, a goods victualer, now comes to a big problem, and he needs your help. In his s ...
- await和async再学习
await太不容易理解了,自己常常迷惑,不知道该怎么用. 文章:探索c#之Async.Await剖析 这篇文章,有一个很清晰的描述: 使用Async标记方法Async1为异步方法,用Await标记Ge ...
- lintcode-59-最接近的三数之和
59-最接近的三数之和 给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和. 注意事项 只需要返回三元组之和,无需返回三元组本身 样例 例如 S = ...
- 在Linux下调试Python代码的各种方法
这是一个我用于调试或分析工具概述,不一定是完整全面,如果你知道更好的工具,请在评论处标记. 日志 是的,的确,不得不强调足够的日志记录对应用程序是多么的重要.您应该记录重要的东西,如果你的记录足够好的 ...
- [STL] STL各容器实现原理
STL共有六大组件1.容器 2.算法 3.迭代器 4.仿函数 6.适配器 STL容器的实现原理 STL来管理数据十分方便,省去了我们自己构建数据结构的时间.其实,STL的实现也是基于我们常见的数据结构 ...
- Android Service的分类详解
按照启动方式分类 谷歌官网对Service的分类 Service根据启动方式分为两类:Started和Bound.其中,Started()是通过startService()来启动,主要用于程序内部使用 ...
- 2017 Multi-University Training Contest - Team 3 Kanade's trio(字典树+组合数学)
题解: 官方题解太简略了orz 具体实现的方式其实有很多 问题就在于确定A[j]以后,如何找符合条件的A[i] 这里其实就是要提前预处理好 我是倒序插入点的,所以要沿着A[k]爬树,找符合的A[i] ...
- [LINUX]警告:检测到时钟错误。您的创建可能是不完整的。
[LINUX]警告:检测到时钟错误.您的创建可能是不完整的. 原因: 如果上一次编译时为20071001,你把系统时间改成20070901后再编译就会报这样的错误. 解决: 把时间 ...
- CTSC2018 & APIO2018 颓废 + 打铁记
CTSC2018 & APIO2018 颓废 + 打铁记 CTSC 5 月 6 日 完美错过报道,到酒店领了房卡放完行李后直接奔向八十中拿胸牌.饭票和资料.试机时是九省联考的题,从来没做过,我 ...
- BZOJ3671 [Noi2014]随机数生成器 【贪心】
题目链接 BZOJ3671 题解 模拟题意生成矩阵贪心从小选择即可 每选择一个,就标记其左下右上矩阵 由于每次都是标记一个到边界的矩阵,所以一旦遇到标记过就直接退出即可,可以保证复杂度 还有就是空间和 ...