lvs 基本概念

LVS(linux virtual machine) 的简写,是一个虚拟的服务器集群系统主要用于4层负载均衡。

宗旨:

使用集群技术和Linux操作系统实现一个高性能、高可用的服务器.

很好的可伸缩性(Scalability)

很好的可靠性(Reliability),应该还是高可用吧

很好的可管理性(Manageability)。很容易使用,很好学。

 

lvs自身应该不能实现高可用,需要结合其它软件实现。

可伸缩性:

1、可伸缩性,简单来说,是以更大的规模来做你现在所做的事。伸展一个Web应用的规模在于让更多的人使用你的程序。如果你没法找出方法在伸展规模的同时提高性能,没关系。而且只要你可以伸展规模来处理更大数量的用户,那么有几个单点故障(single point of failure)也没关系。

 

LVS的几个术语:

VIPDirector用来向外部提供服务的IP地址,也就是DNS通过域名解析到的IP

RIP:集群节点(后台真正提供服务的服务器)所使用的IP地址

DIPDirector用来和RIP进行交互的IP地址

CIP:客户端使用的IP或公网IP

R S :集群节点服务器Real server

lvs内核模型:

    }}F`_{GJ1PS7Y$K611MFNWY.png

LVS的三种负载均衡技术:

NAT

优点服务器可以运行任何支持TCP/IP的操作系统,它只需要一个IP地址配置在LVS主机上,服务器组可以用私有的IP地址。

缺点扩充能力有限,当服务器结点数目很多时,LVS主机本身有可能成为系统的新瓶颈,因为在VS/NAT中请求和响应封包都需要通过负载平衡LVS主机。

特点:

                1、RIP要使用使用地址,网关指向DIP

                2、请求报文和响应报文都需经过Director:所以Director可能成为系统性能瓶颈。

                3、支不支持端口映射,支持

                4、RS可以使用任意操作系统。

       请求流程:

KA37VB0A8Q_G_@%~GA2EJ$O.jpg

ICM7J3(T_FZY}{X601CDRH6.jpg

 

DR

VS/DR LVS主机只处理客户到服务器端的连接,响应资料可以直接从独立的网络路由返回给客户。这可以极大地提高LVS集群系统的伸缩性。

同 VS/TUN相比,这种方法没有IP隧道的开销,但是要求负载平衡LVS主机与实际服务器都有一块网卡连在同一物理网段上,服务器网络设备或者设备别名不 作 ARP 响应。

 

特点:

                    1、保证前端路由将VIP的报文通通发往Directory,而不是RS

                    解决方案:

                    (1)、静态地址绑定,在前端路由器上操作

                    问题:未必有路由操作权限

                    (2)、在real server上配置iptables不让响应

                    (3)、修改RS上的内核参数,将RS上的VIP配置在lo接口的别名上,并且限制其不能响应对VIP地址解析请求。

                    2、RS可以使用私有地址,也可以使用公网地址,此时可以通过互联网对其直接进行访问。

                    3、RS和Directory必须在同一物理网络中。

                    4、所有的请求报文经由Director,但是响应报文必须不能经过Director

                    5、不支持端口映射。

                    6、RS可以是大多数常见的OS。

                    7、RS网关不指向DIP

    请求流程

lvs 基本概念UQ9VLPSCK[(`}%BBH]L5BUV.jpg

TUN

在VS/TUN 的集群系统中,负载平衡LVS主机只将请求分配到不同的实际服务器,实际服务器将应答的资料直接返回给用户。这样,负载平衡LVS主机就可以处理巨量的请 求,而不会成为系统的瓶颈。即使负载平衡LVS主机只有100Mbps的全双工网卡,虚拟服务器的最大吞吐量可以达到几Gbps。所以,VS/TUN可以 极大地增加负载平衡LVS主机分配的服务器数量,它可以用来构建高性能超级服务器。VS/TUN技术对服务器的要求是所有的服务器必须支持"IP Tunneling"或者"IP Encapsulation"协议。目前,VS/TUN 的后端服务器主要运行Linux操作系统。因为"IP Tunneling"正成为各个操作系统的标准协议,所以VS/TUN也会适用运行其它操作系统的后端服务器。

 

特点:

                    1、RIP、VIP、DIP全部是公网地址

                    2、RS的网关不会也不可能指向DIP

                    3、请求报文经由Director,但响应报文必须不能经过Director

                    4、不支持端口映射

                    5、支持隧道类型

   请求流程

M[K_PLL]GAAIBXJHQDJ{2FO.png

 

 

XL@TSIX5ROX4%1KX3GN2AEX.pngLVS的常见调度算法:

rr(round robin):将工作平均的分配到服务器 (用于实际服务主机性能一致)

lc:(least-connections )

    向较少连接的服务器分配较多的工作(tcp计时器判断后端连接数量。用于实际服务主机性能一致。)

    overhead值,表示当前负载状况 。

    overhead = active*256 + innactive


wrr(weighted round robin):

    加权轮询,能者多劳。谁性能好分给谁的请求多。 (用于实际服务主机性能不一致时)

wlc(weighted least-connections):

    考虑它们的容量向较少连接的服务器分配较多的工作。容量通过用户指定的砝码来说明,可以根据装载信息动态的向上或向下调整。(用于实际服务主机性能不一致时)

    overhead = (active*256 + inactive) /weight

 

   sh:(source hashing):

源地址hash,为了session持久的功能,在IPv4的代码中自行位置一个hash表,把CIPhash存储,任何一个客户端在来,先查hash表。这就是来自同一个IP的主机将始终定向至同一个real server.

   dh:(destination hashing),目标地址hash,real server访问外部时,   

还有一些调度算法,用的比较少,就不再列举了。

 

参考:

http://www.infoq.com/cn/news/2007/10/whatisscalability  你真的明白什么是可伸缩性吗?

http://baike.baidu.com/link?url=jIw3aTgnp6_SV7Op9LnIb7bL1Ik8xQGxTfhz-D5GraGOPkR97y6f3rMXtgS8axp9NlNilEUpLHWUNoJ5EVUGU18J4sdJlmOCbfCNeHwgZzy   LVS百度百科的介绍

http://os.51cto.com/art/201202/319979.htm  专题:LVS负载均衡手册

总结:

    1、网上已经有很多lvs的资料了,这篇博客也没有什么新意,edraw软件在电脑上没反应,没有好的画图工具,三种lvs 调度模型,描述的就不够详细,而且是摘抄的别人的图。

    2、感觉概念一般是死的,写来写去好像也就是这么多东西,不过总结一下对自己有些帮助吧。

    3、如果布局太差,那么在编辑的时候,文字间距离看起来还行啊,预览的时候行间距就很大,这下次编辑的时候在看看是不是还是这种情况。

最后就是,接着这篇博客,会写一下lvs调度模型的具体实现。

原创文章,作者:艾贺,如若转载,请注明出处:http://www.178linux.com/8096

(0)
上一篇 2015-09-14 09:27
下一篇 2015-09-14 09:37

相关推荐

  • 由tty命令产生的好玩的想法

    昨天看了马哥Linux视频的前两天内容,里面讲了到终端的概念,回顾一下:  物理终端:是直接接入本机的显示器和键盘设备。/dev/console  虚拟终端:附加在物理终端之上的以软件方式虚拟实现的终端,CentOS 6默认启动6个虚拟终端 Ctrl+Alt+F#: [1,6] 图形终端:附加在物理终端之上的以软件方式…

    Linux干货 2016-05-16
  • shell脚本编程之函数、case语句

    一、函数 调用函数前必须先定义,调用时仅使用函数名即可。 语法: function  函数名 {      函数体 } 也可表示为: 函数名 () { 函数体 } 示例:写一个脚本,判定网络内有哪些主机在线,在线的用绿色显示,不在线的用红示表示: c_net&…

    Linux干货 2015-08-24
  • CentOS启动流程

      我们介绍一下CentOS操作系统的详细启动流程,了解这些启动流程之后,我们可以实验做一个小型的Linux。 1、Linux的组成 2、Linux的运行环境 3、Linux的启动流程 3.1、POST加电自检 3.2、Boot Sequence(启动次序) 3.3、MBR 3.4、Kernel 3.5、init 1、Linux的组成 &…

    Linux干货 2016-12-04
  • drbd+corosync+pacemaker

    存储分类: DAS:直接附加存储;例如ide,sata,scsi,sas等 NAS:网络附加存储;即文件级别共享存储;例如nfs等 SAN:存储区域网络;即块级别共享存储;例如ip-san,fc-san   共享存储选型比较: SAN性能优良,价格昂贵; NAS性能基于文件系统级别,性能低下; 因此,另一个DRBD诞生,全称为分布式复制块设备,Di…

    Linux干货 2017-11-13
  • N21 第八周 总有刁民想害朕

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。 集线器的英文称为“Hub”。主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它…

    Linux干货 2016-09-15
  • 【26期】Linux第五周学习小总结

        第五周的学习内容很丰富, 从查找到压缩打包,到软件包的管理,其中尤其是以压缩的内容最为丰富,而且庞大的选项让人绝望,那我今天就总结了一下压缩的一些东西,和大家一起分享。     为什么会产生压缩工具呢?因为我们的现在的很多文件会利用到的东西很多,电脑的读存速度也越来越快,一些大的文件在传输和使用上就会很麻烦,虽…

    2017-08-12

评论列表(2条)

  • stanley
    stanley 2015-09-14 09:32

    总结的内容到位,只是样式上的乱了些,很容易看到一半就放弃了

  • 云中鹤
    云中鹤 2015-09-14 09:59

    下次我要注意布局