您的位置:首页 > 代理IP资讯
发布时间:2020-02-29 15:16:45
如何修改ip地址、动态浮动IP集群实现

  随着计算机技术进入以网络为中心的时期,客户/服务器计算模式被大量采用,服务器系统的可靠性和安全性也成为一个不可忽视的问题。一旦服务器系统发生故障,将可能造成难以预料的损失。多机热备技术[1]可以很好地解决这一问题。多机热备是指使用互为备份的几台服务器共同执行同一服务,即active/standby模式。其中一台服务器为工作机(Master Server),其他服务器为备份(Backup Server)。在系统正常情况下。工作机为应用系统提供服务,备份机则监视工作机运行情况,同时,工作机也在检测备份机是否正常。当工作机出现故障而不能支持应用系统运行时,备份机主动接管工作机的任务,继续支持工作机上的应用服务,保证系统不间断地提供服务。在目前采用纯硬件方式实现多机热备价格非常昂贵的情况下,采用软件方式实现多机热备无疑是更好的选择。


  1 Keepalived简介①


  Keepalived是能很实现多机热备需求的一款优秀软件,利用Keepalived所提供浮动IP功能,就可以简单实现一个多机热备高可用功能。但是初始服务器只有一台时,Keepalived不能正常运行。在现实中有一种场景,初始服务器群只有一台服务器,可以动态增加或减少服务器群的服务器台数,称之为动态浮动IP集群。由于Keepalived无法满足动态浮动IP集群的要求,笔者在原版Keepalived的基础上,作出一些修改使其能够满足该要求。


  Keepalived软件常用于服务器群的负载均衡层,来提高系统的高可用性。图1所表示的是一个利用Keepalived所提供的双机浮动虚拟IP,实现的双机热备高可用功能的例子。


  1.1 Keepalived的工作原理


  Keepalived是一个基于VRRP协议来实现的服务高可用方案。VRRP协议[2](Virtual Router Redundancy Protocol)即虚拟路由冗余协议,其协议报文都是通过IP多播包形式发送的,是一种默认网关冗余方法。VRRP协议让一组路由器构成一台虚拟路由器,称之为一个备份组。在VRRP组中是按优先级选举主控路由器,VRRP协议中优先级范围是0~255,优先级的配置原则可以依据链路的速度和成本、路由器性能和可靠性以及其他管理策略设定。主控路由器的选举中,高优先级的虚拟路由器获胜,作为MASTER,其他的都是BACKUP。正常情况下都是由主路由器来提供数据包转发服务,在主路由器失效的情况下才会依据动态的故障转移机制,将服务切换到备用路由器,由备用路由器来接管转发工作。


  Keepalived利用VRRP协议来避免单点故障,主服务器和备份服务器对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候(作为MASTER的主服务器不可用的时候),多台备份服务器中的BACKUP优先级最高的这台会被快速的抢占为MASTER,随后接管虚拟IP,继续提供服务,从而保证了系统的高可用性。


  1.2 Keepalived的使用


  Keepalived的安装和使用都非常简单,Keepalived启动需要一个配置文件,配置文件中说明了Keepalived必须的一些启动信息。图2是实验所用的Keepalived的VRRP实例配置信息。


  Keepalived的配置实例


  图2的各项配置信息中,Interface指实例所绑定的网卡,state表示实例初始化的状态,初始状态有MASTER和BACKUP两种;virtual_router_id指VRID标记(0~255);priority反映优先级的高低,高优先级竞选为Master;authentication用来设置认证,其中auth_type来设置认证方式,auth_ pass来设置认证密码;virtual_ipaddress用以指定虚拟IP。


  在两台或多台服务器上均安装并配置好后,Keepalived就可以通过管理虚拟IP的浮动来实现系统的高可用性。但是当初始服务器只有一台时,Keepalived并不能在单机上提供虚拟IP,不能满足动态浮动IP集群的要求。所以笔者对其作了一些修改。


  2对Keepalived的修改


  Keepalived由两个主要模块组成:一个是健康检查模块,代码在Keepalived/check目录下;另一个模块是虚拟IP模块,代码在Keepalived/vrrp目录下。Keepalived使用调度器接收并调度和执行两个模块注册的任务。


  在Keepalived/vrrp目录下修改相关vrrp任务添加代码,使得Keepalived能够在单机和多机的情况下能够正确添加相关任务。在lib/parser.c中修改打开配置文件的部分,使得Keepalived能够在修改后能够正确地打开配置文件。


  3实验


  3.1实验环境


  图3实验网络拓扑图


  图3中,A机作为主服务器,B机作为从服务器,Client机作为测试机用Ping操作来测试两个虚拟IP是否已在A机或B机上存在。


  3.2 Keepalived配置


  928化工自动化及仪表第39卷


  双机系统中主机的配置信息参照图2,从机的配置信息略有不同,其中state参数为BACK-


  UP,priority为100,其他配置均与主机相同。


  3.3实验步骤


  本实验将原版本和修改后的Keepalived在多机测试和单机环境下进行测试。


  双机测试时,使用管理员权限,在A机器上采用MASTER配置运行Keepalived,命令是“Keepalived-f test.conf”(test.conf是图2所示的配置文件);在B机器上使用BACKUP配置运行Keepalived。从Client机上ping 192.168.2.22和192.168.2.33这两个虚拟IP。若关闭A机或B机中任意一个,均能从Client机上ping通这两个虚拟IP,而同时关闭A机和B机,则不能ping通这两个IP。表明Keepalived已成功启动并正常运行,能实现虚拟IP所在的机器关闭时发生的虚拟IP漂移。否则,表明Keepalived未能正常启动。


  单机测试时,使用管理员权限,在A机器上采用MASTER配置运行Keepalived,从Client机上ping 192.168.2.22和192.168.2.33这两个虚拟IP,若能Ping通,则表示Keepalived已成功启动,若不能Ping通,则表示未能正常启动。


  3.4实验结果


  通过对比实验,得到结果见表1。


  表1对比实验结果


  环境原版Keepalived修改后


  多机正常启动正常启动


  单机不能启动正常启动


  由实验结果可以看出,原版的Keepalived可以在多机环境下能正常工作,但在单机环境下不能正常工作。而修改后的Keepalived可以在保证多机环境正常工作的同时,增加了实现单机环境下正常工作的功能。


  4结束语


  在原版Keepalived功能的基础上,增加了其在单机环境下正常工作的功能,使得Keepalived在单机环境下也能稳定的提供浮动IP的服务。以后在系统中动态增减Keepalived配置为从机的服务器,就可以达到动态浮动IP集群的要求,这使得系统更加的灵活和稳定。


上一篇 下一篇