什么是LVS?

LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。LVS集群采用IP负载均衡技术和基于内容请求分发技术,可以将请求均衡地转移到不同的服务器上执行,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。

LVS由章文嵩开发。章文嵩1973年出生,于国防科技大学获得博士学位。1998年,章文嵩创立LVS并成为主要开发人员,此前亦曾出任TelTel首席科学家,从事大规模分布式的通信系统的设计和开发。

LVS有ip隧道模式,有nat模式,有DR模式。我的实验为NAT模式。

LVS实验,实验开始前先看下我用的系统版本,我用的是Linux redhat 4.6 系统,ipvs包版本为ipvsadm-1.24.tar.gz,keepalived的版本为keepalived-1.1.20.tar.gz,内核版本如下图

133103567.jpg

实验的拓扑如下图:

133142881.jpg

   Lvs发展出一个名为IPVS(ip virtual server)的核心模组,直接于linux的核心中运作,进行连线的导引与调度,IPVS模组于2.4.23内核开始正式纳如linux的内核中.输入命令grep “CONFIG_IP_VS” /boot/config-`uname -r`可以查看是否包含IP_VS模组,如下图:

135933666.jpg

首先在192.168.3.2的主机上,安装ipvsadm-1.24.tar.gz包,在安装这个包的时候有点小插曲,因为在Makefile文件里,include项中的路径不存在,我们用软连接的方式,创建这个路径。如下图:

140011817.jpg

如下图:在/usr/src下面根本没有Linux这么个目录,

140352135.jpg

可以用软连接来完成,如下图:

140719376.jpg

接下来我们就可以直接安装了。如下图

140857844.jpg

等待装完之后,我们要查看下安装是否成功,验证的方法就是看有没有ipvsadm这个命令打ipvs按TAB键补全下,看是否能补全,是否能出来ipvsadm,或者执行下ipvsadm

安装成功之后,我们要开启防火墙。并且配置防火墙规则,开启forward机制。如下图:

142502326.jpg

接下来我们配置,lvs规则

143239105.jpg

注意:在192.168.0.38上配置完后,记得要把后端真实服务器的网关指向192.168.0.38的内网网口192.168.3.2如下图:

144257746.jpg

然后用另一台机器来访问192.168.0.38,如下图:

145025368.jpg

从上面访问的结果我们可以看的出,结果很成功,但是如果有一台真实服务器挂掉了,再看看结果:

145507845.jpg

出现上面的结果,如果在真实环境下,有客户正好访问到这个点,我的网站就不能再为一部分客户服务了,这样就失去了,服务器的高可用性。出现了这种的情况,我们该怎么办呢?解决办法的思路是,如果当一台主机挂了之后,让LVS程序知道哪台服务器挂了,并从规则中剔除,那到底怎么实现呢?哈哈!这就是要即将要讨论的Keepalived。

Keepalived的工作原理:
Layer3,4&5工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下:
  Layer3:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器
  发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。在本文中将采用这种方式。
  Layer4:如果您理解了Layer3的方式,Layer4就容易了。Layer4主要以TCP端口的状态来决定服务器工作正常与否。如web server的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。
Layer5:Layer5就是工作在具体的应用层了,比Layer3,Layer4要复杂一点,在网络上占用的带宽也要大一些。Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived将把服务器从服务器群中剔除。
keepalived运用在多个场景中,使用一台主服务器down掉可以迅速切换到另一台,当主服务器好了后,又可以切换回去,不影响正常服务,数据库的主从也可以用它来做保障等等.
   Keepalived的安装:,在192.168.0.38的主机上,进入Keepalived源码包目录下,然后安装如下图:

151127752.jpg

安装完之后,先不着急启动Keepalived首先把Keepalived配置文件先搞定,在Keepalived解压目录下,可以看到很多的模版,找一个适合的模版,做配置文件:如下图:

153120613.jpg

取keepalived,conf.fwmark模版,进行修改原配置文件,改完后如下图:

153722840.jpg

在启动Keepalived前,我们先把LVS规则清除了,如下图:

154009856.jpg

启动Keepalived,如下图用-f来指定配置文件路径:

154522402.jpg

然后用ipvsadm -ln 看下规则:如下图:

154629481.jpg

规则已经有了,那么在再用另外的主机测试:如下图:

154713489.jpg

很成功,但是我们要检验的是当一台主机挂了以后,会有什么效果,关闭192.168.3.4的网卡在看结果。

155456177.jpg

这样就解决了我们的断点问题,实现了服务器的高可用。

Keepalived切换的速度很快。如果一但当掉的主机活,它会立马切回来。