为工业计算机注入高可靠性
过去30年,工业计算机应用和规格已经发生了翻天覆地的变化。第一代工业计算机所提供的人机界面(HMI)能够为工厂内自动化设备提供支持、监视控制和数据采集(SCADA)功能。现在,机器到机器(M2M)应用和大数据分析,导致了对户外和恶劣环境下强大计算能力的需求增加。工业计算应用的范围不断扩大,现从太阳能电站的监视到停车场系统等等。
第一代工业计算机比同时代的商用计算机更强健,但是仍然不是专门为执行关键任务的应用设计的。现在,诸如防护等级、振动试验、温度等级等有助于将计算机认证为工业计算机,但是在关于如何测量并报告稳定性、可用性和可维护性等方面,可用的标准仍然比较少。
1984年,IBM发布了面向工业应用场合的第一代个人计算机。IBM5534 是一款增强型、暗褐色版本的IBM XT计算机,而传统上它为淡黄色。双风扇冷却、硬化金属外壳、高功率输出电源、热量传感器、可封闭的驱动门板盖等特性,使得IBM5534更适合于工厂车间场合的应用。
在1990年代前,工业计算机获得了蓬勃的发展,大多数SCADA和HMI软件应用都运行在工业计算机上。有一种PC控制软件要逐步取代基于可编程逻辑(PLC)控制系统的趋势。到了2000年,大多数工业领域摒弃了基于PC的控制,主要是由于操作系统的不稳定和版本的变更。
现在,我们发现:尽管工业计算机是SCADA和HMI应用的首选平台,但是PLC和分布式控制系统硬件仍然是控制平台的首要选择。工业计算机的应用案例包括安全硬件和远程授权服务器等。然而,对于任务关键的过程应用来讲,工业计算是否是一个合适的选择,仍然具有一定的不确定性。
Linux的分支,比如Red Hat, CentOS, 和Ubuntu,已经解决了操作系统稳定性和生命周期的关注。但是,市面上可以购买的基于Linux系统的工业应用,要少于基于微软视窗操作系统的应用。虚拟超级管理程序,比如VMWare的vSphere、微软的Hyper-V、Stratus 技术的everRun软件,在应用软件和硬件之间可以提供容错功能。利用应用软件、操作系统或管理程序来设计一个单一容错系统,将会增加复杂性,而冗余部件能够增加稳定性,但是也会导致引入更多的故障点。
图1:静电放电是威胁计算机系统的一个因素
简化的方案是从硬件开始,设计一个具有高度可靠性的工业计算机系统。电源、风扇、内存和硬盘存储引起了大多数计算故障,尤其是曝露在过多的热量、灰尘和静电释放环境下(见图1)。为了消除这些故障模式,任务关键系统的设计人员应考虑三种关键指标的测量方法:可靠性、可维护性和可用性。
可靠性是一个设备,在某一特定时期内,在规定工况下完成其所需功能的可能性,一般通过两次故障之间的平均时间(MTBF)来量化。生产制造商一般通过产品测试、产品模型(例如 MILHDBK-217 或Telcordia),或者是测量产品故障率来确定这一数值。
尽管在产品发布前,测试和模型可以提供有用的估计,但是这些估计数值与最终用户的现场运行经验匹配的并不是很好。假定生产制造商统计了所有的现场故障;那么现场的故障数值可以提供更为精确的MTBF数值。计算来自现场数据的MTBF的常用方法如下:
MTBF=12个月内提供服务的产品数量/12个月内所发现的故障的数量。
例如,MTBF为100年,意味着每100个产品提供服务一年,将会出现一个故障。样本越大,MTBF数值越精确。
如果消除导致硬件故障的主要原因,可以显著地提升MTBF数值。硬件故障的主要原因包括:风扇、物理媒体驱动器、纠错码内存以及保形涂层。
风扇:微处理器一般依赖风扇降温来保证快速的时钟频率和较宽的总线结构。风扇磨损和周期性故障,会将灰尘和碎片带入到计算机机架中。内部的灰尘覆盖在印刷电路板上,形成热覆盖层,热量积累无法散发出去,会导致部件过早出现故障。与商用计算机相比,工业计算机一般暴露在更高的环境温度下,这样就需要一个冷却方法。被动冷却技术,比如鳞翅式对流换热热阱以及传导换热管道,可以避免使用风扇,从而消除相关故障(见图2)。
图2:热阱和传导热管淘汰了经常发生故障的冷却风扇
物理媒体驱动器:一般来讲,固态硬盘(SSD)的MTBF是磁性、旋转硬盘驱动器(HDD)的三倍。由于SSD硬盘没有运动部件,因此就不会发生机械故障。在振动和较高温度的环境下,SSD也要优于HDD。在选择SSD时,非常重要的一点是考虑单层式存储(SLC)和多层式存储(MLC)技术之间的差异。SLC SSD的读写次数是价格较低的MLC SSD的30倍,而且存储数据的能力也大大提高。
纠错码内存(ECC):计算机内部的电磁干扰能造成动态随机访问内存的某个比特数值翻转。这种现象可能造成显示器屏幕上不易察觉的像素改变,或者是灾难性的系统崩溃。
保形涂层: 在印刷电路板上的保护性喷涂或聚合物薄膜,一般称之为保形涂层。在包含潮湿或者能够导致腐蚀的化学污染物的恶劣环境下,保形涂层可以为电子线路提供保护。
可维护性度量的是计算机在系统故障后恢复运行的快速程度,由平均修复时间(MTTR)来度量。计算MTTR数值要比计算MTBF有挑战的多,因为MTTR取决于获取备件所需的时间、现场人员的配置情况、计算机的组态情况。根据用户情况的不同,MTTR在数秒到数周之间变动。降低MTTR所需时间的策略包括冗余电源、冗余驱动、带外数据管理(OOBM)等。
冗余电源:尽管有些工业计算机的电源极其可靠,但是也有很多并不如此,因此需要配置冗余电源。具有高可靠性电源的计算机主要得益于电源输入的多样性。将每个电源和不同的外部供电连接,比如AC电源输入和DC不间断电源(UPS)输入,即使丧失其中一路电源,也能确保计算机永不失去电力供应。而且,维护人员通过在线切换备用电源,可以完全消除MTTR,而对系统没有任何扰动。
冗余驱动器:磁盘阵列(RAID)是一种数据存储的虚拟化技术,能够使多个磁盘之间相互镜像数据,并且能像一个逻辑磁盘一样工作。RAID能够显著的降低MTTR,因为在单一磁盘故障的情况下,任何一个磁盘都可以继续工作。
带外数据管理:该策略包含一组技术,使得远程计算机资产业主能够执行很多维护和修复任务,比如通过网络恢复操作系统或执行系统重启。没有OOBM,系统专家必须亲自赶往远程计算机所在地。由于不必前往远程现场,OOBM可以显著降低MTTR。
可用性是可靠性和可维护性的函数,定义了系统在某一时间段内,可用时间所占的百分比。可以用下面的公式来描述:
可用性 (A) = MTBF/(MTBF + MTTR)
使可用性最大化,需要提高MTBF,降低MTTR。比较常用的表述可用性的方法是使用“几个9”表示。5个9表示的可用性为99.999%,看起来是比较理想的设计目标;但是即使5分钟的停机时间,对于工艺过程或企业来讲,就有可能是灾难性的(见表1)。
表1 :可用性和停机时间
当为系统增加冗余部件,比如冗余电源或磁盘时,来增加系统可用性时,可能出现一个比较有意思的现象:MTBF降低了,因为冗余增加了部件故障的可能性。这就是为什么在冗余设计中非常关键的一点是:必须保持简单和全面考虑。
尽管将计算机归类为“工业”计算机仍然是十分主观的事情,但是,在选择应用所要求的可用性水平时,仍然有客观的度量标准可用。由于执行关键任务的应用越来越普遍,所以对高可用性计算机的需求也变得越来越普遍。通过优化MTBF和MTTR
尽管将计算机归类为“工业”计算机仍然是十分主观的事情,但是,在选择应用所要求的可用性水平时,仍然有客观的度量标准可用。由于执行关键任务的应用越来越普遍,所以对高可用性计算机的需求也变得越来越普遍。通过优化MTBF和MTTR,工业计算机系统能够提供满足或超过可用性需求的性能。(作者:Tim Munro)