找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 1494|回复: 0

[【原创】] 关于实时分布式系统的容错研究

[复制链接]
发表于 2007-10-18 23:30:00 | 显示全部楼层 |阅读模式
容错的必要性与产生背景
随着科学技术的飞速前进,计算机的应用也在日益广泛。多年来由于计算机系统的失效造成的惨痛事件不胜枚举。因此,提高计算机系统的可靠性具有强烈的迫切性和极大的必要性。
提高计算机系统的可靠性有两种基本方法——避错与容错。避错(Fault Avoidance)技术靠预先排除所有故障来提高可靠性但实际上要绝对做到这一点几乎不可能,所以另一种方法——容错技术应运而生。
容错的指导思想是:设计计算机系统时应考虑一旦发生故障时应能检测出故障并使系统自动恢复正常运行。因此,容错在运算中允许故障发生,但其影响借助于冗余资源而被自动抵消。冗余措施包括附加硬件、附加软件、附加时间或它们的组合。

  论文中的关键技术和思想
文中结合电力SCADA 系统来研究。SCADA(Supervisory Control And
Data Acquisition)系统,即数据采集与监视控制系统。SCADA 系统是以计算机为基础的生产过程控制与调度自动化系统。
该系统JKZ2000 的设计思想为:
(1) 系统采用全分布式体系结构。
(2) 系统完全按照开放式系统思想设计,遵循当前各项开放式国际标准。并提供开放的应用编程接口 ( API )。有利于系统今后的扩充和发展。
(3) 重要节点均采用冗余配置。必要时考虑双网方案。
(4) 在软件设计上,采用了面向对象的技术,大大提高了软件的可靠性、可继承性、可维护性和可扩充性。同时还引进了“对象”概念,即把一个特定的应用作为一个大对象来处理,它同样具备一个对象所具有的广义上的封装性和继承性。保证了各应用之间界面的清晰性、应用本身的相对独立性和安全性。
(5) 采用“自上而下”整体设计方法、“自下而上”的实现方式,即整体规划,分布实施。能融SCADA/PAS/DTS 及电力市场等有关应用系统于一体,实现与其应用软件开发商基于JKZ2000 平台上的合作。
该系统拓扑结构呈树状结构,即分级分布式结构。在这种结构中,各计算机之间存在着较明显的层次关系,最下级的计算机执行数据的采集功能;中间级计算机执行数据的加工和控制功能;而高层计算机则根据下级计算机所提供的信息,执行综合处理功能。
从可靠性角度考虑,有两个因素对系统可靠性的影响较大。一个是最高层计算机发生故障,则整个系统将失去控制。最高层计算机在系统中称为“金字塔顶”,是一薄弱环节,即“瓶颈”。另一个是如果某条通信线路发生故障,则会使得某些计算机与系统失去联系。对于本系统,采用冗余技术来克服这两方面的问题。在双机冗余分级系统中,第1 级和第2 级的计算机均采用双机热备工作方式。双机热备的基本思想是,在任一时刻,有一台机器是主服务器,完成所有的工作。一旦这个主服务器出现故障,那么副服务器就接替工作。使用双机热备,主要是为了确保系统的不间断运行。

  论文中的缺点分析及解决思路
由于问题的复杂性,故障诊断和容错是一门涉及自动控制理论、计算机科学、信号处理、数理统计、优化理论、人工智能等多学科的新型边缘科学,仍然存在许多有待于进一步研究的问题。
鉴于此,我个人觉得为了提高该系统的稳定及安全性,可以从以下几个方面对该系统进行改进。
<1>.采取双网方式
除了采取双机热备的工作方式外,该系统还可以采取双网方式。即对网中所有硬件如同轴电缆、网卡、T 头等都采用双份结构,服务器和工作站上都插两块网卡。任何时候只有一个网处于通信、工作状态,而另一个处于备份或维修状态;任何一个站点机发送只能在当前处于工作状态的网上进行,而站点机接收数据须判断两个网络接口卡的端口,从有数据的端口读取数据(这样做是为了便于诊断故障)。各站点机虽有两块网卡,但网络软件(协议及驱动程序)只有一套。对用户来说,感觉不到有两个网在运行,好像仍然在单网上工作,数据在介质上对用户是透明的。只有当一个网络故障时,在适当的时候被告知进行切换,并进行诊断、定位和修复,然后重新并入系统工作。不影响整个局域网的运作,确保了局域网信息通信的高可靠性及安全性。
可以采用如下方法来解决网络切换问题:在连续发送多次(比如10 次)或超时后仍然无法传送数据时,便认为该网出错,并报告出错,于是发送站点就判断它和接收站点间是不可通达的,发送站点便从另一个网卡端口向备份网广播一标志信息,告之其它站点工作网已出故障,让它们作好网络切换工作。

<2>.线程查错报警
该系统可以为各线程设置监视定时器,监视定时器以一定周期重复复位,用它可检测系统中各线程的故障。在被监视过程开始时,把定时器置位,过程完成时把定时器复位。若定时器满规定时间还未被复位,则给出错误标志,表明系统中存在故障。软件一旦进入死循环就会超过正常执行该软件所需的时间,监视定时器就会因得不到及时复位而给出出错指示,系统重新初始化运行。

<3>.负载平衡
为避免单主机故障时无法提供服务,而多主机时又面临负载不均衡的问题,引入负载平衡服务。相关如下:
(1)采用高效负载平衡交换器,可自动将故障主机隐藏并引导至有效的运作主机进行传输流量分配,同时避免传输流量集中在少数几台服务器上。
(2)依据联机记录及设定比率等数值分析,让网络的流量平均分摊在服务器群组上,使用户可以在最短时间内得到网站响应。
(3)依用户实际环境需求定义每部服务器最大联机数目,确保服务器运作效能。

综上所述,以上仅是个人观点,主要是对该系统中用到的容错技术的补充和改进,落实到该具体系统中未必正确。总之,综合有效利用多种容错方法,必然可以提高系统的可靠性和安全性。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-12-24 21:41 , Processed in 0.095005 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表