高可用性 Linux 集群实现
摘要
随着网络的普及,对网络的需求日益曾强,而服务商提供的服务的质量也需要
提高,以前单服务器的服务已经很难满足人们的需要。搭建高可用性的服务集
群迫在眉睫,很多大公司(IBM,SUN 等等)都提供了一系列的商业方案,而
我们采用的是开源阵营里面的 LVS 和 HA 来实现,在经济上是绝对有可取之处,
技术上好不逊色。
术语
HA:High Availability,高可用性。
Linux Director:整个集群的入口机器,在最终用户和真实服务器之间转发
数据额作用,以下简称为 LD。
End User:最终的用户(客户端),以下简称客户。
Real Server:真正提供服务(httpd,ftp,等等)的服务器,以下简称为
RS。
Virtual IP address:VIP,虚拟 IP,最终用户访问使用的 IP。
Real IP address:RIP,真实 IP,服务器真实的 IP 地址。
Heartbeat:心跳检测,实现 HA 的一个软件。
第一部分:LVS
LVS 简介
Linux Virtual Server Project(LVS)是一个由章文嵩先生提起的开源
项目。主要是通过 linux 内核在第四层实现数据交换,在真实的服务器群中实
现简单的负载均衡。LVS 只能使用在 Linux 中,但是真实的服务器可以是任意
的支持 TCP 或 UDP 的操作系统。
LVS 工作机制
四层交换
何谓四层交换?当 LD 接收到 TCP 或者 UDP 数据时,通过一定的算法,将数据
转发到真实的服务器中。在我们这次实验中,使用的是 wlc(加权最少连接数)
算法。
数据转发机制:
在 LVS 中,有以下三种数据转发机制:
Network Address Translation(NAT):NAT 机制。NAT 这中方法在网络
中运用很多,通过 IP 伪装就可以实现。在客户发起一个请求后,LD 接收到,
然后转发到 RS,RS 再通过 LD 回复给客户,LD 在这里就要起一个网关的作用。
Direct Routing:DR 机制。客户请求不做任何修改直接转发到 RS。使用
DR 时,RS 必须要接收 VIP 的数据包,可以通过虚假接口或包过滤来重定向数
据包。当 RS 接收到请求后,直接转发数据给客户,不再通过 LD,在一定程度
上,可以减轻 LD 的负担,我们在实验中也采用的 DR 机制。
IP-IP Encapsulation(Tunnelling):隧道机制。类似于 DR,只是数据
的封装形式不一样,隧道采用的是 ip 包,而 DR 采用的是以太网的帧。这也决
定了,如果不同的网络,就必须采用隧道机制了。
调度算法: