APP下载

基于控制器与有限状态机的双机热备方案

2020-01-16徐秀敏于海波田昀张震雷赖飞

电子技术与软件工程 2019年21期
关键词:热备双机状态机

文/徐秀敏 于海波 田昀 张震雷 赖飞

1 引言

随着互联网、大数据、物联网等技术的迅猛发展,为国内国外、各行各业的业务运行模式带来了改变和挑战,包括金融行业、医疗行业、公共安全、能源行业等关系国计民生的重要行业在内的各大领域均提高了自身的信息化水平,形成了无处不在的泛在信息化网络,这些行业对信息系统服务稳定性的要求极高。以电网信息化为例,电网发展与经济发展息息相关,其发展趋势呈正相关关系。电网调度、电网运行监测数据等业务对服务稳定性、响应实时性等指标有相当高的要求,不允许业务中断。而黑客破坏、自然灾害、人为误操作、设备自身损耗等因素均可造成服务中断,将为生产运行、生活服务等带来巨大影响。因此需要业务服务器及数据服务器一直处于持续的运行状态,需要配置高质量高性能高可用的服务器系统,为安全生产提供保障。

因此,为了保障系统中数据及作业安全性、连续性,需要一种双机容错解决方案,即双机热备份,它是应对服务器临时故障所实现的一种备份技术。双机热备份通过磁盘阵列或纯软件模式,使两台服务器彼此连接成为互为备份的双机服务器系统,可通过设置检测点从系统、应用、网络三方面进行故障检测,包括:通过双机热备软件间的心跳进行系统检测;进行用户应用程序、数据库等的应用检测;对可选的对网络路径、网卡的网络检测。一旦主服务器停机后,可通过手动切换或故障切换使备份服务器能继续提供服务,防止用户的数据或业务请求被中断。双机热备系统应运而生,并已成熟应用,但现有的双机热备系统存在着或价格昂贵或易发生负载失衡的状况,因此本文设计了一种简便的双机热备份的状态机,该状态机实现在一台独立的控制器上,并给出备份实现流程。

1 现有技术分析

1.1 现有技术介绍

现有双机备份技术主要包括两种:一是基于存储器(磁盘阵列)方式,其存储方式为共享存储或全冗余(双机双存储),将用户数据放在存储设备即磁盘阵列上,主备服务器通过磁盘阵列共享数据,如图1所示。二是复制方式,仅选用主备两台服务器,采用镜像软件将数据从一台服务器实时的复制到另一台服务器,保障两台服务器间的数据一致性,发生故障时进行服务器的切换,如图2所示。

1.2 现有技术特点分析

针对于磁盘阵列方式,共享存储器的价格昂贵,适用范围小。针对于复制方式,当主备服务器所构成的双机服务系统出现故障时,不易判断故障状态,需要提供额外的状态监测工作,并针对故障情况制定解决方案;当心跳线出现故障时,主备服务器将同时进入工作状态,可能造成系统服务混乱;没有提供仲裁机制,不能在主备服务器间进行负载均衡,主服务器的性能容易成为服务系统的瓶颈。

本文针对现有问题及诸多学者提出的解决方案进行了研究,如:基于开源项目OpenSAF的双机热备系统已经针对现有的共享存储的硬件备份、非共享存储的软件备份等存在的问题提出了解决方案,其有效的减少了数据备份时间,但依赖于OpenSAF。基于MySQL二进制日志(Binlog)进行SQL还原的研究,提出了分布式异构数据库间数据同步的解决方案及工具设计,其研究成果可用于解决异构数据库间数据同步中存在的数据格式不匹配、同步速度不匹配等问题,但应用成果局限于异构数据库。

本文意在解决传统双机热备方案中易出现的控制无序、不稳定、高成本的问题,给出一种易于控制、经济且实现简单的设计方案,依赖两台普通服务器和一台控制机实现服务器系统。

2 改进的双机服务器架构设计

在传统双机服务器系统基础上,本文在客户端、双机服务器间增加了控制器,我们将两台互为备份的服务器称为服务器1、服务器2.

2.1 基于负载均衡的服务仲裁

图1:基于共享存储的双机热备

图2:基于复制方式的双机热备

图3:基于控制器的双机服务系统架构

客户端通过控制器与服务器进行数据通信,控制器接收到客户端数据读操作请求后,根据服务器1、服务器2的运行状态及负载状态进行仲裁,仲裁后分配同步运行的服务器中低负载的服务器提供服务,并由控制器返回应答信息,可有效的避免负载不均衡造成的服务瓶颈。整个过程中控制器、双主机对客户端提供透明服务,客户端无需了解服务细节及仲裁过程,该方法简便且保障了业务系统稳定运行。

2.2 服务稳定运行机制

在无控制器的双机双机服务系统中,若服务器间心跳线出现故障,则主备服务器将同时进入工作状态,可能造成系统服务混乱。本文所增加的控制器通过查询方式定时获取服务器1和服务器2的状态,并接收服务器返回的操作结果。定时读取服务器同步状态,在心跳线出现故障时依靠控制器即可判断出服务器的运行状态,不受心跳线故障的影响,认可提供稳定服务。

同时,在控制器中维护主备服务器仲裁状态机,在图3中给出的即是控制机、服务器1、服务器2构成的双主机服务器系统。

3 主备服务器仲裁状态机设计

通过有限状态机建立的数学模型,可解决数字系统设计中的输入、输出等逻辑问题的处理。本文对有限状态机在建立数学模型时的多种场景应用进行了研究,对已有成果中建模方法、模型求解等方面进行了分析,结合本研究方向所面临的问题进行了深入研究,建立了双机服务器备份时的仲裁状态机。

图4中所示的是本文所设计的主备服务器仲裁状态机,根据对双机服务器系统的特点分析可知:

状态机有三个临时态——上电初始化、实时备份、批量备份;

三个稳定态——单服务器态、主备同步、主备异步;

有八个输入——单服务器在线、备服务器上线、批量同步成功、批量同步失败、服务器离线、实时同步、实时同步成功、实时同步失败。

将服务器当前稳定态、同步状态等约束条件作为输入信号,以此驱动状态机的状态转移,实现双机服务器同步状态的自动控制。

4 控制器与服务器交互流程设计

具体设计如下:

4.1 控制器初始化

控制器上电后进入上电初始化态时,主要存在两种场景——服务器已上线、服务器未上线;接收的“单服务器在线”输入有两种来源——在初始化时指定的主服务器上报;或根据服务器上线时间进行主备服务器的选择,先上线的服务器为主服务器。

4.2 单服务器

单服务器态时,客户端所有的操作均通过控制器直接发送给该服务器。

4.3 实时备份

控制器收到客户端的数据修改和写请求时,基于服务器的角色发送给主服务器,在成功响应请求后将数据备份给备服务器,并根据服务器返回的消息运转状态机,此为数据的实时备份。

4.4 批量备份

当单服务器掉线后重新上线时,控制器触发主服务器向新上线备份服务器的数据发送,并根据服务器返回的消息运转状态机,此为数据的批量备份。

图4:主备服务器仲裁状态机

4.5 查询操作

在收到客户端的查询请求时,如果服务器系统处于“主备同步状态”,控制器可根据主备服务器的负载情况,决定向哪个服务器发送数据查询的请求。

如果服务器系统处于“主备异步状态”,则由主服务器响应客户端的查询请求。

5 结论

本文立足解决传统双机服务器易发生的可控性、稳定性等问题,在原有双机服务器的基础上增加控制器,与服务器1、服务器2共同构成双主机服务器系统,实现对双主机服务器系统的控制,可实时了解服务器运行状态及数据同步情况、根据双机负载情况分发客户端请求。同时所设计了主备服务器仲裁状态机,通过输入实现对主备服务器临时态、稳定态间的切换,实现对双机服务器运行状况的标准化仲裁。双机服务系统在提供业务稳定运行中实用性强,因此具有进行深入研究的价值。

猜你喜欢

热备双机状态机
热备动车组配置方案优化模型
东海区实时海洋观测数据库双机热备系统解决方案
基于有限状态机的交会对接飞行任务规划方法
双机、双桨轴系下水前的安装工艺
双机牵引ZDJ9道岔不同步问题的处理
Loader轴在双机桁架机械手上的应用
热备冗余技术在焦化设备上的应用
FPGA设计中状态机安全性研究
基于反熔丝FPGA的有限状态机加固设计
基于VHDL的一个简单Mealy状态机