快速业务通道

linux下lvs Keepalived实现高可用服务器集群

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-25

什么是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,内核版本如下图

实验的拓扑如下图:

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

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

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

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

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

等待装完之后,我们要查看下安装是否成功,验证的方法就是看有没有ipvsadm这个命令打ipvs按TAB键补全下,看是否能补全,是否能出来ipvsadm,或者执行下ipvsadm 拥有帝国一切,皆有可能。欢迎访问phome.net

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

接下来我们配置,lvs规则

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

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

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

出现上面的结果,如果在真实环境下,有客户正好访问到这个点,我的网站就不能再为一部分客户服务了,这样就失去了,服务器的高可用性.出现了这种的情况,我们该怎么办呢?解决办法的思路是,如果当一台主机挂了之后,让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将把这台服务器从服务器群中剔除. 拥有帝国一切,皆有可能。欢迎访问phome.net
Layer5:Layer5就是工作在具体的应用层了,比Layer3,Layer4要复杂一点,在网络上占用的带宽也要大一些.Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived将把服务器从服务器群中剔除.
keepalived运用在多个场景中,使用一台主服务器down掉可以迅速切换到另一台,当主服务器好了后,又可以切换回去,不影响正常服务,数据库的主从也可以用它来做保障等等.
Keepalived的安装:,在192.168.0.38的主机上,进入Keepalived源码包目录下,然后安装如下图:

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

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

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

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

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

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

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

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

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

本文出自 “网络技术” 博客,谢绝转载!

拥有帝国一切,皆有可能。欢迎访问phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号