服务器集方案
LVS项目简介
LVS--Linux Virtual Server(Linux虚拟服务器)。针对高可伸缩、高可用网络服务的需求,LVS采用了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的虚拟服务器。一组服务器通过高速的局域网或者地理分布的广域网相互连接,在它们的前端有一个负载调度器。负载调度器能无缝地将网络请求调度到真实服务器上,从而使得服务器集的结构对客户是透明的,客户访问集系统提供的网络服务就像访问一台高性能、高可用的服务器一样。客户程序不受服务器集的影响不需作任何修改。系统的伸缩性通过在服务机中透明地加入和删除一个节点来达到,通过检测节点或服务进程故障和正确地重置系统达到高可用性。二、IP虚拟服务器软件IPVS 在调度器的实现技术中,IP负载均衡技术是效率最高的。在已有的IP负载均衡技术中有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,称之为VS/NAT技术(Virtual Server via Network Address Translation),大多数商品化的IP负载均衡调度器产品都是使用此方法,如Cisco的LocalDirector、F5的Big/IP和 Alteon的ACEDirector。在分析VS/NAT的缺点和网络服务的非对称性的基础上,LVS提供通过IP隧道实现虚拟服务器的方法VS/TUN (Vi
rtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR (Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。所以,IPVS软件实现了这三种IP负载均衡技术,它们的大致原理如下:
1、Virtual Server via Network Address Translation(VS/NAT)通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。
2、Virtual Server via IP Tunneling(VS/TUN)采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用 VS/TUN技术后,集系统的最大吞吐量可以提高10倍。
3、Virtual Server via Direct Routing(VS/DR) VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。同VS/TUN技术一样,VS/DR技术可极大地提高集系统的伸缩性。这种方法没有IP隧道的开销,对集中的真实服务器也没有必须支持IP隧道协议的要求,在三种方法中效率最高,但是要求调度器与真实服务器都有一块网卡连在同一物理网段上。
针对不同的网络服务需求和服务器配置,IPVS调度器实现了如下八种负载调度算法:1、轮叫(Round Robin):调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。
2、加权轮叫(Weighted Round Robin):调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
3、最少链接(Least Connections):调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载。
4、加权最少链接(Weighted Least Connections):在集系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
5、基于局部性的最少链接(Locality-Based Least Connections):"基于局部性的最少链接" 调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集系统。该算法根据请求的目标IP地址出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存
在,或者该服务器超载且有服务器处于一半的工作负载,则用"最少链接"的原则选出一个可用的服务器,将请求发送到该服务器。
6、带复制的基于局部性最少链接(Locality-Based Least Connections with Replication):"带复制的基于局部性最少链接"调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址出该目标IP地址对应的服务器组,按"最小连接"原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按"最小连接"原则从这个集中选出一台服务器,将该服务器
加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。
7、目标地址散列(Destination Hashing):"目标地址散列"调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
8、源地址散列(Source Hashing):"源地址散列"调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,
否则返回空。
更多内容参考LVS中文站点:/
目的:保障地宝网更加稳定地运行,解决服务器单点故障。
LVS集采用三层结构,其主要组成部分为:
A、负载调度器(load balancer),它是整个集对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。
B、服务器池(server pool),是一组真正执行客户请求的服务器,即realserver,执行的服务为WEB,
C、共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。
负载均衡的工作原理
准备工作:
用四台服务器架构这个集,一台用做主负载均衡器,一台用做从负载均衡器,两台用作提供服务器的真实机。
后期扩展:直接将服务器加入服务器池就可以实现,对于负载均衡器也可以采用双机来控制,避免服务器单点故障。
lvs+piranha实现直接路由模式负载均衡
实验环境:Centos 5.5
一、服务器IP设置
Virtual IP :192.168.1.251(VIP 对外服务器的ip地址,也就是域名解析到的地址。) Load Balance : 192.168.1.107(Load)
Real Server:192.168.1.48(Realserver1)、192.168.1.9(Realserver2)、负载均衡服务器有哪些
192.168.1.49(Realserver3)
二、准备工作
关闭iptables与SElinux
Vi /etc/sysconfig/selinux disabled
检查系统是否正常
(1)more /var/log/messages (检查有无系统级错误信息)
(2)dmesg (检查硬件设备是否有错误信息)
(3)ifconfig(检查网卡设置是否正确)
(4)ping www.baidu (检查网络是否正常)
三、修改主机名
[root@Centos5 ~]# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=Load //修改一这段
[root@Centos5 ~]# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论