基于Nios软核处理器的温备份智能容错系统设计方案
1 引 言
随着计算机应用技术的发展,计算机应用已经早就从单机系统发展到网络系统。但是随着网络系统的扩大,要保证整个大系统的正常运转就远比保证单机系统的正常运转困难得多,不过只要处理好各个系统的协调关系以及提高关键系统(服务器系统)运行的可靠性,那么网络系统在某种程度上就比单机系统更有保障。
如何保证系统的可靠性,是当今科技应用研究的热点。现在常用的方法是:采用冗余技术提高系统的可靠性。常用的技术有:冷备份、温备份和热备份。冷备份指后备系统未运行;温备份指后备系统在工作系统停止之前启动并同步后才能停止运行系统;热备份指后备系统运行并保持与工作系统时时同步。这些技术各有优缺点。热备份需要时时保持后援系统与工作系统的状态一致,那么后援系统必须时时运行,降低了系统的使用寿命,可冷备份又不能保证后援系统启动后与工作系统的状态一致。
2 实际中遇到问题的描述
该问题是在一个网络ERP应用系统中遇到的,在该系统中,所有客户端运行的软件都需要访问数据库服务器上的数据库,而客户软件记录的是每天生产中的实时数据,这就必须保证数据库服务器正常工作,否则整个网络系统就不能运行,这将导致停止生产,给公司造成巨大的损失。如何保证系统的可靠性,就成为问题的关键所在。本文根据冗余技术的相关理论,结合三种备份技术的优缺点,使用温备份技术,设计了一个基于Nios处理器的智能容错系统,在实际应用中取得了良好的效果。
3 智能容错系统的整体规划
本文设计的系统可以在智能仲裁中制定系统的运行计划,即:可以制定系统中两个服务器的运行时间。在该系统中,每天两台服务器以12小时为单位交替运行。具体过程如下:
1)给智能仲裁器上电,然后按下仲裁器上的按钮启动一台服务器,这台服务器启动后就开始工作。
2)工作服务器在更新数据库的同时,通过串口通讯把相关同步信息发送给仲裁器(这里是操作数据库的SQL语句),仲裁器收到同步信息后就把这些信息存入与仲裁器相连接的IDE硬盘上(在同步信息不多的情况下,最好在仲裁器上使用Flash)。
3)当计划时间到了后,仲裁器就启动后援服务器,然后每隔一定的时间检测启动的后援服务器是否已经到了可以工作的状态。
4)如果在规定的检测次数中,启动的后援服务器还没有到达可以工作的状态,那么仲裁器就报警,提示用户后援服务器出现故障了,这时就保持原工作服务器继续运行。反之,如果在规定的检测次数中检测到后援服务器到达可以工作的状态,就接着如下步骤运行。
5)仲裁器向后援服务器发送启动同步的命令,后援服务器收到该命令后就通过串行口向仲裁器发送同步请求。
6)仲裁器收到后援服务器的同步请求后,就从硬盘中读取同步信息并发送给后援服务器,后援服务器收到后就根据同步信息执行同步操作(这里是运行操作数据库的SQL语句)。
7)当同步工作完成后,后援服务器就给仲裁器发送同步完成的消息,仲裁器收到该消息后,就分别向两台服务器发送网络配置信息(如:IP地址等),以便命令各个服务器修改自己的网络配置。
8)此时后援服务器已经成为工作服务器了,仲裁器向原工作服务器发送关机命令,以便关闭原工作服务器使之成为后援服务器。
整个过程到此为止,以后就反复上述过程运行整个系统,该系统的整体框架如图1所示:
图1 系统整体框架图
图1是工作服务器未发生故障时的流程。实际上,在工作服务器工作期间,仲裁器会在一定的时间间隔(这个时间间隔可以通过仲裁器设置,如系统要求的实时性较高,该间隔就要设置短一些;反之,设置长一些)内查询服务器的状态,从而得知服务器是否发生故障,如果发生故障,仲裁器就报警提示用户,并且此时仲裁器启动后援服务器。当仲裁器检测到后援服务器可以工作时,就从硬盘上获取同步信息进行后援服务器的同步工作。
4 智能容错系统具体实现思想
4.1 硬件设计思想
本文讨论的智能容错系统,主要使用FPGA芯片,利用Nios软核处理器强大的功能定制出一个满足我们实际需要的SOC(系统级芯片),并使用该芯片与相关的外围电路以及配合一定的软件设计,实现了一个智能仲裁器,其原理框图[5]如图2所示:
图2 仲裁器的原理图
下面对上述原理图进行简单的介绍:
1)通用IO口PIO1只是当作输出口使用,用于控制连接/断开服务器电源的两个继电器、表示服务器状态的双色发光二极管(红绿两种颜色)和用于显示时间间隔(用于决定多长时间检测服务器的状态)等级的一位八段数码管。LED1、LED2分别用于指示两台服务器的工作状态,绿色表示对应服务器正在工作;红色表示对应服务器停止工作
- 数字示波器的软硬件设计方案及经典应用案例汇总(08-01)
- 基于SOPC的现场总线多通道实时温度采集系统设计(10-18)
- 基于NiosII的视频采集与DVI成像(06-07)
- 基于RS422接口的备份测试系统设计(07-16)
- 频宽、取样速率及奈奎斯特定理(09-14)
- 为什么要进行信号调理?(09-30)