为工业计算机构建高可用性

随着关键任务应用程序变得越来越普遍,对高可用性计算的需求也越来越大。

作者:Tim Munro, Schweitzer工程实验室 2015年8月7日

在过去的30年里,工业计算机的应用和规范发生了显著的变化。第一台工业计算机为工厂内的自动化机械提供了人机界面(HMI)支持和监控和数据采集(SCADA)。如今,机器对机器(M2M)应用和大数据分析已经在户外和恶劣环境中创造了对坚固计算的需求。工业计算现在的应用范围从太阳能发电场监控到停车场信息亭。

第一代工业计算机比商业级计算机更强大,但不是专门为关键任务应用而设计的。今天,诸如进入防护等级、振动测试和温度等级等特性有助于将计算机定性为工业计算机,但是在如何测量和报告可靠性、可用性和可维护性方面几乎没有行业标准化。

1984年,IBM发布了第一台面向工业应用的个人电脑。IBM 5534是传统的浅米色IBM XT电脑的强化版,是深棕色的。双风扇冷却,硬化金属外壳,高输出电源,热传感器和可锁定驱动门盖等功能使5534更适合工厂车间应用。

到20世纪90年代,工业计算机蓬勃发展,主要运行SCADA和HMI软件应用程序。用PC控制软件取代基于可编程逻辑控制器(PLC)的控制系统的运动越来越多。到2000年,由于操作系统的不稳定性和版本的变化,大多数行业放弃了基于pc的控制的概念。今天,我们发现PLC和分布式控制系统硬件仍然是首选的控制平台,而工业计算机是SCADA和HMI应用的首选平台。工业计算机的用例包括安全设备和远程身份验证服务器。然而,工业PC是否是关键任务过程应用的合适选择还存在不确定性。

Linux发行版,例如红色的帽子CentOS,Ubuntu,解决了操作系统稳定性和生命周期问题。然而,针对Linux系统的现成商业工业应用程序比针对Linux系统的应用程序要少微软windows操作系统。虚拟化管理程序(如VMWare vSphere、Microsoft Hyper-V和Stratus Technologies的everRun软件)提供应用程序和硬件之间的容错功能。只使用应用程序软件、操作系统或管理程序设计容错系统会增加复杂性,而旨在提高可靠性的冗余元素可能会导致更多的故障点。

设计高可靠性工业计算系统的一种简化方法是从硬件开始的。电源、风扇、内存和磁盘存储是导致大多数计算机故障的原因,特别是当暴露于过热、灰尘和静电放电时(见图1)。为了减轻这些故障模式,关键任务系统设计人员应该考虑三个关键措施:可靠性、可维护性和可用性。

可靠性

可靠性是指设备在规定的条件下在特定的时间内执行其要求功能的概率,并被量化为平均无故障时间(MTBF)。制造商通常通过产品测试、产品建模(例如MIL-HDBK-217或Telcordia)或测量产品故障来确定此数字。

虽然产品发布前的测试和建模提供了有用的估计,但这些近似值与最终用户体验的现场性能没有很好的相关性。现场故障数据提供更高的MTBF精度,假设制造商考虑到所有现场故障。

根据现场数据计算MTBF的常用方法是:

MTBF = 12个月期间使用的产品数量/ 12个月期间观察到的故障数量

例如,100年的MTBF意味着每100个产品服务一年,就会发生一个硬件故障。样本量越大,MTBF越准确。

消除硬件故障的主要原因可以显著提高MTBF。硬件故障的主要原因包括风扇、物理介质驱动器、ECC (error-correcting code)内存和保形涂层。

粉丝:微处理器通常依靠风扇冷却来实现快速时钟速率和宽总线架构。风扇磨损,经常出现故障,并将灰尘和碎片带入计算机机箱。内部灰尘在印刷电路板上形成热毯,导致热量滞留,导致组件过早失效。工业计算机通常暴露在比商用计算机更高的环境温度下,因此仍然需要一种冷却方法。被动冷却技术,如翅片对流散热器和传导热管,消除了风扇及其相关故障(见图2)。

物理介质驱动器:一般来说,固态驱动器(ssd)的MTBF是磁性旋转硬盘驱动器(hdd)的三倍。因为固态硬盘不包含活动部件,所以没有发生机械故障的可能性。在振动和高温环境中,ssd的性能也优于hdd。在选择SSD时,重要的是要考虑单级单元(SLC)和多级单元(MLC)技术之间的区别。SLC固态硬盘的写入量是价格较低的MLC固态硬盘的30倍,数据保留率更高。

纠错码(ECC)内存:计算机内部的电磁干扰会导致动态随机存取存储器的单个比特翻转到相反的状态。这种现象可能会导致屏幕上不明显的像素变化或毁灭性的系统崩溃。ECC内存采用奇偶校验和算法来检查和纠正这些错误。

保形涂层:符合电路板拓扑结构的保护涂层或聚合物薄膜称为“保形涂层”。它可以保护电子电路免受含有潮湿或腐蚀的化学污染物的恶劣环境的影响。

可服务性

可服务性衡量的是计算机在发生系统故障后恢复运行的速度,并通过平均修复时间(MTTR)来衡量。这是一个比MTBF更具有挑战性的值,因为MTTR取决于获得备用设备的时间、站点的管理方式以及计算机的配置方式。根据用户条件,MTTR可以从几秒到几周不等。

旨在减少MTTR的策略包括冗余电源、冗余驱动器和带外管理(OOBM)。

冗余电源:虽然一些工业计算机有非常可靠的电源,但许多计算机没有,因此需要冗余电源。对于供电可靠性要求较高的计算机,其优势来自于电源输入的多样性。每个电源由不同的外部电源供电,如交流墙壁插座和直流不间断电源(UPS),确保计算机永远不会失去电源,如果一个电源故障。此外,维护人员可以通过热插拔电源来完全消除MTTR,而不会中断系统。

冗余驱动:RAID (redundant array of independent disks)是一种数据存储虚拟化技术,它使多个磁盘作为一个逻辑驱动器,互为数据镜像。RAID可以显著降低MTTR,因为在单个驱动器故障的情况下,任何一个驱动器都可以继续工作。

OOBM:该策略涉及一组技术,这些技术允许远程计算机资产的所有者通过网络执行许多维护和恢复任务,例如恢复操作系统或执行系统重新启动。如果没有面向对象管理,系统专家就必须前往远程计算机。通过消除前往远程站点的需要,OOBM显著降低了MTTR。

可用性

可用性是可靠性和可服务性的函数,定义了系统运行的时间百分比。用方程表示:

可用性(A) = MTBF/MTBF + MTTR

最大化可用性需要增加MTBF并降低MTTR。表达可用性的一种常用方法是使用“9”或停机时间。99.999%的5 - 9可用性听起来是个不错的设计目标;然而,5分钟的停机时间对于流程或企业来说可能是灾难性的(参见表1)。

当增加冗余组件(如电源和驱动器)以提高可用性时,由于增加组件故障的可能性,会导致MTBF降低,这就出现了一个矛盾。这就是为什么保持冗余设计的简单和全面是至关重要的。

尽管将计算机分类为“工业”仍然是非常主观的,但是在选择应用程序所需的可用性级别时,有一些客观的度量标准需要考虑。随着关键任务应用程序变得越来越普遍,对高可用性计算的需求也越来越大。通过优化MTBF和MTTR,计算系统可以满足或超过可用性要求。

蒂姆·芒罗是美国计算机系统公司的市场经理Schweitzer工程实验室(SEL Inc.)。他在工业自动化行业工作了25年,拥有运动控制、plc、SCADA系统和网络方面的专业知识。他拥有电气工程技术和控制系统工程技术学位。

本文发表在应用自动化补充的控制工程设备工程

-参见下文增刊中的其他文章。