Pacemaker在民航气象信息共享与服务系统高可用中的应用
吕常胜 吕春光
中国民用航空东北空管局(辽宁沈阳110043)
摘要:本文通过对民航气象信息共享与服务系统运行现状分析,引出系统高可靠运行的重要性。阐述了当前高可用集群系统的主要措施,对比pacemaker与keepalived高可用工具的技术与应用差别。以实例介绍了pacemaker在气象情报交换系统上的构建与实现。
关键词:pacemaker;气象;高可用;应用
民航气象信息共享与服务系统是全国民航气象一体化运行的数字平台。支撑飞行气象情报交换以及气象信息收集、处理、存储、共享、服务的业务需求[1]。其中,气象情报交换子系统是其核心业务,民航飞行气象情报的及时、准确发布与交换是民航运输安全的重要保障,所以,气象情报交换子系统的高可靠运行至关重要。
一、高可用集群
高可用集群(简称HA Cluster),是指以减少服务中断时间为目的的服务器集群技术。通过最大程度降低因硬件、软件等故障对业务的影响,保证业务的不间断运行。所以,高可用性是确保关键业务服务持续运行的关键要求。高可用集群技术通过将多个服务器组合成一个单一系统,提供故障转移和负载均衡的能力,增强系统的可靠性。
在构建高可用集群时,选择合适的工具和组件至关重要。在Linux系统中,Pacemaker和Keepalived都可以构建系统的高可用集群。Pacemaker能够支持广泛的资源类型,多用于需要管理多种资源类型且对故障转移策略有较高要求的场景,而Keepalived主要用于IP地址的故障转移。
Pacemaker通常和Corosync组合,完成高可用集群的搭建。Pacemaker是一个集群资源管理器,负责管理集群中的资源,如IP地址、共享存储和服务等,以确保这些资源在系统故障时自动迁移到健康的节点上,并重新启动服务。Corosync是一个集群通信工具,提供集群成员之间的消息传递,保证节点间的通信畅通。
Keepalived是一个轻量级的高可用性工具,主要用于IP地址的故障转移。通过VRRP协议实现IP地址的冗余,多个节点共享虚拟IP地址,当主节点发生故障时,备用节点会自动接管虚拟IP地址,并继续提供服务。
在民航气象信息共享与服务系统的整体架构中,各子系统因业务的实际需求,分别采用了Pacemaker和Keepalived高可用集群工具,而气象情报交换子系统因其特殊的业务要求和重要性,则采用Pacemaker和Corosync组合,完成了高可用集群的构建。
二、气象情报交换子系统高可用集群
气象情报交换子系统采用两台物理机构建高可用集群,数据盘挂载SAN存储,操作系统为Linux CentOS7,高可用集群工具采用Pacemaker+Corosync。服务资源包括虚拟VIP、数据盘datafs、业务应用iec和Tomcat。要求为主备节点映射到同一个VIP,切换前,调用软件停止脚本和数据盘卸载,切换后,VIP指向备节点,再调用数据盘挂载和软件启动脚本,而且脚本按设定顺序执行。以下为集群安装与配置过程:
1.基础环境配置
配置集群时,会使用主机名来标识集群中的节点,通常使用hosts文件解析。本集群共有两个节点,节点主机hosts文件如下:
10.9.142.10 qbjh-1 10.9.142.11 qbjh-2
192.168.142.1 Node_1 192.168.142.2 Node_2
其中,Node_1和Node_2为集群专用的私网IP配置。集群配置前,首先完成以下系统环境配置。关闭防火墙;关闭NetworkManager;设置selinux为disabled;配置节点间免密互信;配置ntp时间同步;之后在各节点上配置yum源。
2.节点配置
首先,在各节点安装pacemaker、corosync、pcs软件。
yum install -y pacemaker corosync pcs
开启pcsd服务,service pcsd start
设置hacluster账号的密码,passwd hacluster。Pacemaker使用的用户名为hacluster,是软件安装时建立的,此时需要为其设置密码。
配置集群节点之间的认证,只需在一个节点上执行即可。pcs cluster auth Node_1 Node_2
3.设置集群相关的参数
创建集群,pcs cluster setup --name HAcluster Node_1 Node_2 。其中,HAcluster为集群名,Node_1和Node_2为集群的两个节点。
启动集群服务pcs cluster start –all,pcs cluster enable --all
通过执行pcs status命令,查看集群节点状态。至此,集群搭建完成。
4.配置集群资源
配置服务时,提前将情报交换程序脚本iec.sh添加到系统中。
cp -p /home/iec/bin/iec.sh /etc/init.d/iec & chmod 775 /etc/init.d/iec
(1)配置集群资源VIP
pcs resource create VIP IPaddr ip=10.9.142.100 cidr_netmask=24 nic=bond0 op monitor interval=20s --group QB
其中,10.9.142.100为集群的VIP虚拟地址。QB为资源组名称,当集群中有多个资源时,如果只是把各个资源配置进去就启动集群,各个资源可能会分配到不同的节点上,而且启动、停止顺序也不明确,所以,还需要配置资源组或资源约束。以下各资源都属于QB一个资源组。
(2) 配置集群共享磁盘资源datafs
pcs resource create datafs Filesystem device='/dev/mapper/datavg-data_lv' directory='/data/' fstype='xfs' --group QB
其中,datafs 是资源名称,device为块文件路径,directory为挂载路径,fstype为文件系统格式。
(3)配置集群服务资源情报交换程序启停脚本iec
pcs resource create iec lsb:iec op monitor interval=0 op start timeout=1800s op stop timeout=1800s --group QB
(4)配置集群tomcat服务资源
pcs resource create tomcat lsb:tomcat op monitor interval=60s op start timeout=1800s op stop timeout=1800s --group QB
(5)查看资源配置情况,pcs resource show
(6)设置资源组启动顺序,保证各资源依序加载。
pcs constraint order start VIP then start datafs
pcs constraint order start datafs then start commute
pcs constraint order start iec then start tomcat
pcs constraint show
5.集群优化调整
为增强高可用集群性能,可增加集群ping资源,实现网络连通性检测。两个节点实时ping业务的网关地址,当主节点发现ping不通时,会触发集群rule规则,将所有资源切换到可以ping通网关的节点上。
(1)配置集群ping资源,可在集群任意节点上进行添加
pcs resource create ping ocf:pacemaker:ping dampen=5s multiplier=100 host_list=10.9.142.254 op monitor interval=5s clone
其中,dampen=5s表示在检测到故障并触发故障转移之后,等待 5 秒再重新检测主机状态。host_list为业务网关地址。clone是将该资源在集群所有节点上进行创建。monitor interval=5s表示每5S监控一次该资源。
(2)创建规则
pcs constraint location VIP rule score=-INFINITY pingd lt 1 or not_defined pingd
其中,pcs constraint location VIP rule为添加和VIP资源所关联的策略,即把ping资源和VIP资源进行关联,当ping资源出现问题时对VIP资源进行迁移,因集群中配置了VIP资源最先启动,该资源会联动所有资源进行切换。
6.集群切换验证
以下情况会触发集群主备节点自动切换,即主节点关机、主节点业务网卡故障、主节点业务链路故障,无法ping通网关10.9.142.254。此时,主节点会卸载集群资源,由备节点接管资源,并按配置启动相关业务服务。当然,也可以进行手动切换,将业务运行由主节点切换到备节点。以主节点在Node_1为例,步骤如下:
集群主备节点切换前执行pcs status,保证主备节点均为online状态; 执行pcs cluster standby Node_1,将主节点Node_1下线。通过pcs status查看,Node_1已经下线,集群资源已由备节点Node_2接管。至此,主备节点切换完成。
三、结语
需要注意的是,集群中的资源服务都是通过集群来启停业务的,不能去手动启停业务。Pacemaker除了用命令行界面管理集群外,还提供了更加方便直观图形界面进行集群的配置管理与监控。当然,在气象情报交换子系统高可用集群架构基础上,还可以通过搭建应急物理机作为备份手段,保证系统的高可用稳定运行。
参考文献:
[1]中国民用航空局.民航气象信息共享与服务系统运行规程(试行),2024.
【作者简介】吕常胜(1969.01-),男,汉族,辽宁省沈阳市人,大学本科学历,中国民用航空东北空管局气象中心高级工程师,主要研究方向:民航气象应用开发。