技术开发 频道

CentOS 7.4上通过keepalive实现Tomcat高可用

  【IT168 技术】在本篇文章中,你将找到如何在CentOS7.4上通过Keepalive实现Tomcat 7的高可用。文章将以实例的形式来阐述,包括架构的搭建,软件的配置,实现的方法都体现出来,力求详尽。这对加强重要应用服务的高可用及安全具有一定的参考价值。

  1. 项目背景介绍

  作为企业内部IT服务部门,为用户提供稳定,高效,安全的服务是我们的一贯宗旨。IT运维管理尤其重要,其对用户最直接的效用在于提升IT系统的服务能力,服务中断时间减少了,可用性提高了,那么用户基于IT系统的业务流才会更加顺畅。为此,选择适当的IT运维管理软件可以保持服务的高度可用性。

  2. 架构介绍

  本章主要简述针对当前部门系统应用服务的特点,提供行之有效的架构。

  架构图:

  说明:

  1. 节点Node A作为双机热备环境中的主节点,节点Node B担任副节点的角色。当主节点出现故障时,副节点会自动接管主节点的角色保障应用的正常运行。

  2. 节点NFS用于存储Tomcat的数据

  3. 192.168.1.210是提供给应用服务的虚拟地址,用户访问应用服务通过此虚拟地址来实现,而不是访问节点Node A和Node B的系统地址。

  3. Keepalive介绍

  Keepalived主要功能是用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,从而实现高可用性和热备。它诞生之初的目的是能够自主调用ipvsadm来生成规则,并且能够自动实现将用户访问的地址转移到其他节点上进行实现的。Keepalived:核心包含一个core模块和两个checkers和VRRP协议。Core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。checkers:检查服务检查reserved的健康状况的,基于脚本也可检查服务本身的健康状况。这里是实现ipvs后端健康状况的检测的。VRRP (Virtual Router Redundancy Protocol,即虚拟路由冗余协议):是一种容错协议,它保证当主机的下一跳路由器出现故障时,由另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性。VRRP中每个节点之间都有优先级的一般为0-255(0,255有特殊用法)数字越大优先级越高。keepalived是以VRRP协议为实现基础的,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master节点和多个backup节点。Master节点上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当 backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

  4. 方案验证

  本章将详述整套环境从硬件到软件的搭建过程,让读者更加直观深刻的了解Keepalive的配置及工作原理。

  硬件环境规划:

  选择三台联想xSeries 3650 M4 并按照表格所示初始化:

  说明:1. xSeries 3650 M4服务器性能和稳定性符合项目的基本需求

  2. IMM (Integrated Management Module) 提供远程管理

  3. 主板集成的第一块网卡Eth0用于配置系统IP地址

  4. 主板集成的第二块网卡Eth1用于和NFS连接,配置内网地址即可

  系统及软件环境规划:

  系统,软件和网络的详细信息如表格所示:

  搭建:

  1. 在Node A,Node B和NFS节点上均选择mini方式安装CentOS 7.4 64-bit,并按照规划配置IP地址。

  2. 在节点Node A和Node B的/etc/hosts文件上添加同样的内容,如下:

  192.168.1.198 NodeA.xx.xxx.com NodeA

  10.10.10.11 NodeA.xx.xxx.com NodeA

  192.168.1.199 NodeB.xx.xxx.com NodeB

  10.10.10.12 NodeB.xx.xxx.com NodeB

  3. 在节点Node A和Node B安装Tomcat 7和Keepalive 1.3.5

  #yum install tomcat

  #yum install keeplived

  4. 将Tomcat 数据的存储路径配置在节点NFS上

  5. 配置节点Node A上的keeplive

  编辑keepalive配置文件 /etc/keepalived/keepalived.conf 作如下修改:

  vrrp_instance VI_1 {

  state MASTER #设置节点Node A为MASTER角色

  interface enp11s0f0 #网卡 enp11s0f0 配置的是节点Node A 的系统IP地址

  virtual_router_id 51 #两台系统保证这个数字相同

  priority 100 #数字越大等级越高

  advert_int 1

  authentication {

  auth_type PASS #vrrp协议,保证两台系统设置一致

  auth_pass 1111

  }

  virtual_ipaddress {

  192.168.1.210/24 #提供给Tomcat应用的虚拟服务地址

  }

  6. 配置节点Node B上的keeplive

  编辑keepalive配置文件 /etc/keepalived/keepalived.conf 作如下修改:

  vrrp_instance VI_1 {

  state BACKUP #设置节点Node B为BACKUP角色

  interface enp11s0f0 #网卡 enp11s0f0 配置的是节点Node B 的系统IP地址

  virtual_router_id 51 #两台系统保证这个数字相同

  priority 90 #数字比MASTER即可

  advert_int 1

  authentication {

  auth_type PASS #vrrp协议,保证两台系统设置一致

  auth_pass 1111

  }

  virtual_ipaddress {

  192.168.1.210/24 #提供给Tomcat应用的虚拟服务地址

  }

  7. 启动keepalive

  #systemctl start keepalived

  #systemct enable keepalived #设置开机自启动

  8. 验证keepalive服务

  9. 验证节点Node A的虚拟网络服务地址

  说明:默认情况下,虚拟网络服务地址192.168.1.210和主节点系统IP地址192.168.1.198绑定在相同的网卡接口表示其运行正常。

  10. 验证节点Node B的网络地址

  说明:副节点Node B 没有看到虚拟网络服务地址且经过主节点的虚拟网络服务地址验证,表示keepalive服务在双机热备环境中已经运行正常。

  11. 验证Tomcat web portal是否正常运行

  说明:拥有双机热备架构保障的Tomcat服务运行正常

  12. 验证当主节点Node A 的keepalive服务关闭或者宕机下,副节点Node B能否接管并保障Tomcat应用不受影响。

  A. 查看副节点Node B的网络地址

  说明:虚拟网络服务地址192.168.1.210和副节点系统IP地址192.168.1.199绑定在相同的网卡接口,表明副节点Node B已经成功接管主节点Node A的职责。

  B. 验证Tomcat web portal是否仍然正常运行

  说明:当主节点Node A出现故障后,副节点通过keepalive服务保障了业务 的正常运转。

  5. 经验总结

  通过实例,详细阐述了如何CentOS7.4上通过Keepalive实现Tomcat 7的高可用。同时也证明了此架构能够给用户提供稳定,高效,安全的服务,为解决类似的问题提供宝贵的案例,值得推广。

  作者简介:

  谷铁柏

  任职于某大型外资IT企业,拥有丰富的联想x86服务器和UNIX服务器虚拟化,以及IBM存储管理经验,现负责客户项目实施与服务管理。

  麦福龙

  任职于某大型外资IT企业,拥有丰富的联想x86服务器和IBM Power服务器虚拟化,以及IBM存储管理经验,现负责Power系统技术支持。

1
相关文章