虚拟化可编程逻辑控制器:迈向融合道路外文翻译资料

 2022-11-06 14:53:29

英语原文共 4 页,剩余内容已隐藏,支付完成后下载完整资料


虚拟化可编程逻辑控制器:迈向融合道路

摘要——现代可编程逻辑控制器(PLCs)是工业控制系统(ICSs)中的普遍组件,例如监督控制和数据采集,被设计为自主地或作为分布式系统拓扑的一部分来控制工业过程。它的成功可以解释为较好的抗变换性和可靠性,尽管在过去的数年中少有发展,但其仍然是现代的ICS最经久不衰的遗产之一。这篇文章提出了基于x86的虚拟PLC(vPLC)架构,其将逻辑和控制能力与I / O组件分离,同时在实时管理程序内虚拟化PLC逻辑。为了证明这一概念的可行性,对x86平台的实时虚拟化的原理进行了分析,同时对分区监控管理程序环境中实时工作负载的性能进行评价研究。

索引术语——聚合基础设施、工业控制系统(ICS)、虚拟化。

一、 介绍

近年来,监督控制和数据采集(SCADA)工业控制系统(ICS)——一种用于控制工业生产过程、 发电厂或装配流水线的系统——因为其管理和安全方面的隐患,已经成为了一个严重的问题。这是由于多年的空气隔离,以及ICS 与 IT 系统连接的增加和恰当管理与安全政策的缺乏,将ICS 暴露在各种各样的威胁之下。突然间,ICS 面临着一个现实情况,即已经在数十年间为IT基础架构管理人员所熟悉,导致了特定工具和协议的开发,以及管理框架和以安全为导向政策的建立。

然而,缩小IT与ICS之间的差距不是将技术从一个领域移调到另一个的一个微不足道的问题。这是由于事实上ICS设计与操作的主要关注重点是可靠性和操作安全,并对任何可能影响运营绩效指标的机制或方案提出建议。尽管努力为SCADA ICS开发领域特定的安全和管理能力,但大多数这些解决方案试图解决什么是错误的,而不对现有的架构进行重大改变,这仍然难以处理生命周期操作或变更管理。

在这篇文章中,我们提出了一种用于ICS基础设施整合的创新方法,这种方法通过ICS将计算和网络虚拟化技术连接起来并瞄准了一个重要的SCADA集成电路组件:可编程逻辑控制器 (PLC)。尽管是一个体现了整个行业设计理念的成熟概念,但由于设计(例如,大多数PLCs缺乏后备部件如电源)或网络安全问题 (正如Stuxnet所论证的[1] ),PLC仍是ICS中最脆弱的部件之一。通过利用虚拟化和先进的通信技术来解耦PLC的物理 I/O 和计算能力,我们可以把它变成一个托管在实时管理程序上的实时虚拟机(VM),连接到现场的I/O模块使用交换的确定性和/或实时以太网结构系统上,这样对资源整合、安全、弹性和可管理性方面都有好处。

二、对虚拟化的 PLC

现代PLCs是一类嵌入式系统,结合了微处理器、微控制器、实时操作系统 (RTOS)(托管主要功能和服务的执行环境)和通讯能力(从串行点对点式或总线拓扑结构到以太网和TCP/IP)等技术。PLC 硬件一般包括模拟或数字I/O模块、现场总线互连或串行通信接口,偶尔与现场可编程门阵列(FPGA)或数字信号处理器(DSP)耦合,用于实时信号处理。因为在这些设备中有相当一部分使用商品指令集体系结构的CPU(如 x86 或先进的RISC型机器),所以将他们虚拟化的可能性浮现在我的脑海之中,就是在此节中讨论的虚拟 PLC (vPLC) 体系结构的主要要求之一。

A.PlC和x86 平台上的实时虚拟化

最近IT服务和基础设施整合的趋势很大程度上归功于虚拟化技术的成功。这提供了有效地利用计算和通信资源的手段,引入了很大的灵活性,同时使日常操作精简与合理化。例如:在应用安全补丁之前创建虚拟机快照,万一出现故障可以回滚恢复更改;在部署进入生产环节之前,虚拟机可以为了进行沙盒测试而被克隆;此外,虚拟机实例可以实时迁移,允许在每次需要停止物理设备时减少停机时间。

与IT领域发生的情况不同,ICS虚拟化技术的引入一直是一个缓慢的过程(与其他任何新技术一样),而不是直接的。直到最近运营商们才开始使用商业现成的 (COTS) 管理程序[2]来虚拟化SCADA系统主站、人机接口和历史数据库服务器。这是由于硬件辅助内存管理的出现和I/O机制 [3],提供了足够的性能保证,同时避免资源过剩。

但 PLC 虚拟化是另一个不同的问题,对于其实时操作系统环境和通信的要求会使低而稳定的延迟有一定的优先级。大多数x86的商用管理程序是为产量优先的通用工作负载设计的,采取了诸如硬件资源共享或延迟中断处理等在延迟和决定论方面有不利后果的技术。为此,实时敏感的应用程序,例如计算机的数控机械伺服控制无法可靠地被托管在这种管理程序上,因为它只接受单一延迟峰值所以会造成严重的定位偏差。

实现实时合规性被证明是很困难的,即使是本机执行。例如,组件互连总线上的端到端响应延迟时间会受到中断延迟、 消息传播延迟、 定期异步任务的系统开销或实时操作系统任务调度的系统开销等方面的影响。特别是,参与中断服务的中断延迟和 CPU 系统开销在用于控制应用程序的嵌入式系统中至关重要。例如,[4] 和 [5] 分别估算了用于机器和工艺控制的工业应用的中断及关联转换延迟要求,数值为280 和800 微秒。在极端的情况下,如运动控制类应用程序,PLC 必须提供非常低的操作延迟,范围从1毫秒到250 微秒(3类实时系统 [6])。

起初,在 x86 PC结构中的中断处理是基于可编程中断控制器(PIC)的。级联式的 8259 PIC 提供多达15个固定优先级中断通路,它们使用指针来找到与每个通道关联的中断服务例程的向量入口点。后来,引入了IO的高级可编程序中断控制器 (APIC),支持多达24个中断通路、多处理器系统和可编程的优先级——虽然与双PIC排列相比有所改善,APIC的中断处理和路由选择仍是一个易延迟、多步骤的过程 [4]。随着PCI总线接口 (PCIe) 和支持 224个中断的消息信号中断 (MSI) 模型的出现,情况得到了极大的改善,无需使用IO-APIC,并且允许每个设备直接写入CPU的本地APIC,通过使用记忆写入操作,避免了带外中断信号的系统开销。MSI 减少了延迟和包括服务中断,改善系统性能和IO响应在内的CPU系统开销。延迟时间与IO-APIC相比改善了高达300%,而在与8259-PIC相比时改善了500% [4]。表I说明了IO-APIC和MSI模式的结果。

现代的x86 CPU提供代码密度和内存带宽,支持单指令多数据 (SIMD) 指令集体系结构的扩展,例如流动SIMD 指令或高级矢量扩展 (类似于集成DSP,编译器执行自动矢量化,消除通信与传输开销)。然而,并不是所有的x86开发都有利于实时应用:功率优化和吞吐量增强技术,例如频率调整或硬件线程(超线程),虽然大多数可以被禁用或精细调整,但仍会损害确定性行为。不过,一些值得注意的(如果有些奇怪)异常仍然存在,例如系统管理中断(SMI)。

表一

中断等待时间的比较(来自[4])

CPU 中断模式

最坏情况下(微秒)

平均情况下(微秒)

单处理器,IO-APIC

5.85

4.18

多处理器(SMP),IO-APIC

7.16

4.14

单处理器,MSI

3.60

1.66

多处理器(SMP),MSI

3.56

1.58

图一、vPLC部署(改编自[7])

SMI最初被引入以支持电源管理能力,并且随后用于诸如USB传统外围设备仿真等的其它功能。SMI 事件异步挂起所有正常的程序执行以切换到一种特殊的系统管理模式,以执行特定的固件代码——因此,SMI是延迟高峰的常见原因。显式SMI控制不可能出现在所有x86平台,因为它取决于具体的芯片组,固件和原始设备制造商选项。

总体而言,尽管存在一些可管理的缺点(例如,实时成套系统解决方案的几个提供商提供经认证的硬件列表,而一些一级OEM则采用定制的硬件或提供机制来禁用用于实时使用的非关键SMI),x86平台已成为主机PLC应用程序的有趣候选者。

B.虚拟 PLC

最近的发展,如融合以太网(能够支持抗变换的分布式I/O)的低延迟确定性网络连接和实时管理程序的可用性,使得将PLC组件虚拟化变为可能[7]。提出的 vPLC 架构 (图1) 通过使用支持软件定义网络(SDN)的以太网网络结构将PLC执行环境与I/O模块解耦,以提供与I/O子系统的连接,从而利用这些功能。这背离了现有的SoftPLC概念(主要运行在COTS x86系统上,最终使用RTOS系统,如[8]和[9]),采用了接近[10]和[11]的方法,但通过利用融合架构场景与SDN更进一步。

在vPLC中,专用PLC I/O总线由高确定性和高速网络基础设施替代,使用SDN实现在I/O结构上灵活创建虚拟通道。这些通道提供vPLC实例和物理I/O模块之间的连接,而这可以使用FPGA或特定应用集成电路技术来实现。最后,通过SDN控制器,通过高可用性服务器(图中未示出)来管理虚拟信道重构,该高可用性服务器监视SDN交换机统计和路径可达性,在性能降级或故障的情况下重新配置信道路径。

该模型类似于远程或分布式I/O PLC拓扑,其中网络I/O模块充当PLC机架、乃至关键的航空电子系统的扩展,使用基于以太网的技术,例如航空电子全双工交换以太网[12],取代传统互连。事实上,诸如融合工厂宽带以太网[13]等举措已经指向了这一方向。直通交换以及远程直接存储器访问权限的开发允许在10G以太网交换结构中百分之几纳秒的端到端延迟和微秒量级的应用延迟 [14]。此外,诸如英特尔的数据平面开发套件[15]等资源支持低延迟,高吞吐量的数据包处理机制,该机制绕过内核,将网络堆栈带入用户空间,并使适配器能够执行DMA操作。这使得单位数微秒抖动和受限制的确定性成为可能,允许了在商用服务器硬件上的裸机性能。此外,使用IEEE 1588时钟同步,如时间敏感网络[16]的基于时分的方法—允许在COTS以太网的微秒范围内的实时要求与严格的等时操作需求兼容。

最后,实时静态分区管理程序(如Jailhouse [17]或PikeOS [18])可以为实时和可验证的工作负载托管RTOS客户VM,PikeOS紧密复制用于安全关键航空电子RTOS的ARINC 653 [12]划分模型。此外,[19]指出了在KVM [20]管理程序中提供实时功能的可能性,并结合了Linux RT-Preempt [21]补丁和特定调整。在这样的环境中,诸如PLC看门狗和系统级调试和跟踪分析机制(用于连续安全性和/或安全性评估)此类的资源可以在管理程序级别被实现,并能够监视分区行为。

三、评价

评估侧重于理解分区技术被证明可以在现代硬件上使用时有效实现实时管理程序环境。测试平台使用运行在3.40 GHz(Haswell系列)的Intel Core i7-4770与16 GB DDR3 RAM配对,使用Debian Linux 8.4和内核版本3.18.29。使用三个版本的内核:1)基线,具有标准分布设置;2)主机优化,具有KVM管理程序支持;以及3)客户优化。后两者是用RT-pre-empt补丁编译的,用于实时支持。

使用循环测试[22]进行延迟测量,以测量四个定时器时钟为10毫秒、彼此间隔500微秒、并以高调度程序优先级(PRIO_FIFO)运行的模拟实时任务的响应延迟。Stress [23]用于工作负载生成,实例化20个并发线程(10个用于CPU绑定任务,10个用于在64 MB块上旋转分配/自由内存操作),足以耗尽单个核心。测试基于120分钟运行。

第一轮测试(图2)侧重于比较使用标准内核的基线系统配置,启用超线程和功率管理支持,将其与实时优化配置进行比较。对于后一个目的,和超线程支持一样,所有电源管理功能都被禁用(c状态,动态核心频率和PCIe电源管理),这对延迟和振动有负面影响。此外,Linux内核配置了核心隔离,从进程调度和平衡算法中移除核心1到3,中断处理(其灵活性已手动调整为核心0)和其他任务(如读取副本更新线程)。测试工作负载考虑三种情况:1)空闲状态;2)在共享核上的负载(在核1上调度的负载生成器和延迟测试);和3)分裂核心测试(延迟和应力发生器在核1和核2上运行,分别模拟最佳效果和实时任务可以在单独核上运行的情况)。

图二、裸机测试结果

结果显示默认配置对于实时目标不可靠。虽然2(拆分)核心测试显示出改进,但是存在大的延迟高峰,这可能是由于动态功率管理和扩展,以及动态

操作系统核心调度和低核使用的原因。实时优化配置的结果显示出大的改进,图三、单虚拟机的测试结果

系统表现出非常低的延迟裕度,低振动和尖峰—事实上,这些裕度在几个运动控制应用的可接受范围内。这些值可以使用专门的RTOS或内核扩展(例如Xenomai或RTAI [24])进一步改善。

第二轮测试(图3)使用资源分区和两种使用情况来评估单个虚拟机的实时性能:1)分配了单个处理器核心的虚拟机,2)具有三个处理器核心的相同虚拟机—使用核心能力与两种情况下的内存锁定。三核虚拟机使用与裸机实时优化测试相同的测试模式。结果表明,尽管存在争用效应(一切运行在同一个核心上),单核虚拟机显示出受控行为,这对于广大的PLC类应用程序来说是可以接受的。嵌套分区测试[3核虚拟机,2核(拆分)]演示了在虚拟机中使用更严格的定时运行实时应用程序的可能性。此外,在管理

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[139391],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。