LVS初步认识

LVS是什么?html

LVS是Linux Virtual Server,中文翻译为Linux虚拟服务器。前端

那么,什么又是VS呢?linux

VS是基于真实服务器集群来构建的具备可扩展性(scalability)和高可用性(availability)的服务器。这种架构对于终端用户彻底透明,也就是说用户同集群系统交互就好像是在同一台高性能的虚拟服务器在交互同样。服务器

下图可参考:网络

Image(8)[1]

LVS项目的目标是什么?架构

官方有说明负载均衡

Build a high-performance and highly available server for Linux using clustering technology, which provides good scalability, reliability and serviceability.ide

使用集群技术,为Linux构建一个高性能和高可靠性的服务器,服务器还能够提供很好的可扩展性、可靠性和可维护性。 性能

LVS以什么著称?优化

负载均衡服务器集群。

为何选择LVS?

面对日益增加的业务访问压力,网站很容易过载,比方说是电商网站,在双11、十一还会流量倍增。

咱们通常有两种方式应对压力。

一种方式是增长单台服务器的性能,如升级硬件和优化软硬件。可是升级过程会很繁琐,并且升级所须要的成本愈来愈高。甚至直到有一天你都没法承受。比方说单台Oracle,在业务逐步增加的状况下,若是靠升级单台服务器性能,你总会有一天支付不起服务器和软件受权费用。

另外一种方式是多服务器方案,比方说构建一个基于服务器集群的可扩展的网络服务系统。当业务增加时,咱们能够简单地增长服务器到集群中,即可以轻松应付业务压力。也就是说,构建服务器集群系统具备更好的可扩展性和价效比(也可理解为性价比)。

有两种方式,来构建集群服务器。

一种方式是,基于DNS的负载集群。可是DNS构建的集群很难作到均匀负载和故障迅速切换,也很难处理峰值负载。这是由于DNS负载集群,是基于A记录和TTL值的简单轮循。若是减少TTL值,会增大DNS系统的负载,这种状况下,DNS负载便会成为瓶颈,而更大的TTL值,当服务器宕机后,故障恢复的时间会更长。

另外一种方式是,基于调度器的负载集群。相比较基于DNS的方式,它能够更好地调度终端的用户请求到不一样的服务器,不单能够以服务器为粒度,还能够以每一个链接为粒度来调度。这种负载集群方式能够工做在应用层(七层负载)和IP层(四层负载)。相比较七层负载,四层负载具备更好地性能,能够轻松到扩展到25,甚至是100个节点。而七层负载当扩展到5个节点或者更多节点的时候,七层负载会成为瓶颈。

而IPVS(LVS的内核代码)就是基于调度器的负载集群中的四层负载方式的。

IPVS是如何工做的?

IPVS( IP Virtual Server)在Linux内核中实现了传输层(transport-layer)的负载均衡,因此被称做四层交换。IPVS运行在做为集群真实服务器前端(The front of)扮演负载器(load balancer)的主机上,经过IPVS,能够把TCP或UDP请求转发到真实服务器上,真实服务器上的服务在IPVS看来就是一个独立的IP地址。

如何查看Linux内核是否支持ipvs?

自Linux内核官方2.6.10版本默认就包括了ipvs的1.2.1版本。能够经过lsmod命令来查看是否支持ipvs内核:

# lsmod |head -1 && lsmod |grep ip_vs
Module Size Used by
ip_vs_wrr 12695 1
ip_vs_wlc 12519 0
ip_vs 141303 5 ip_vs_wrr,ip_vs_wlc
nf_conntrack 81926 1 ip_vs
libcrc32c 12644 1 ip_vs

其中ip_vs_wrr是指ipvs的轮循调度模块。全部的ipvs调度策略都是经过Linux内核中的一个独立的模块实现的。

参考资料

LVS Introduction - Load Balancing Server Cluster
http://www.linuxvirtualserver.org/whatis.html

Linux Virtual Server Tutorial
http://www.ultramonkey.org/papers/lvs_tutorial/html/

相关文章
相关标签/搜索