当前位置: 代写一篇论文多少钱 > 工程师论文 > 虚拟化技术在工业自动化控制中的运用

虚拟化技术在工业自动化控制中的运用

时间:2019-11-13 09:57作者:吴建明 许辉
本文导读:这是一篇关于虚拟化技术在工业自动化控制中的运用的文章,计算机虚拟化是将计算机的操作系统以及应用程序打包成一个或者多个文件,变成可移动的虚拟机,使得一台物理计算机可以安装运行多个操作系统。

  摘    要: 在传统的工业自动控制系统方案设计时, 通常使用多台PC用于操作、监控、数据存储传输等用途。工业现场恶劣的环境条件和对计算机系统的高可靠性要求等, 使购买和维护这些计算机的成本变得很高。为此, 笔者利用虚拟化技术使得单台服务器执行多台虚拟操作站的工作, 从而大大减少配置控制系统所需的操作站数量, 节省工程投资, 减少维护工作量, 提高系统的可靠性。

  关键词: 冶金; 控制系统; 虚拟化; 存储; 热迁移; 软件狗;

  Abstract: During the design of traditional industrial automatic control system, several PCs are usually used for operation, monitoring, data storage and transmission. Poor environmental conditions and high reliability requirements on computer systems in industrial sites make the cost of purchasing and maintaining these computers very high. Therefore, the author uses virtualization technology to make a single server perform to conduct the work of multiple virtual operating stations, which can greatly decrease the number of operating stations required by the configuration control system, save engineering investment, reduce the maintenance workload, and improve the reliability of the system.

  Keyword: metallurgy; control system; virtualization; storage; live migration; dongles;

  在工业控制领域目前仍然坚持传统的系统设计,每台主机运行一个操作系统,软硬件紧密结合,其缺点是系统资源利用率较低,硬件成本高且不够灵活。计算机虚拟化[1,2,3]是将计算机的操作系统以及应用程序打包成一个或者多个文件,变成可移动的虚拟机,使得一台物理计算机可以安装运行多个操作系统。近年来互联网、云计算、虚拟化技术的发展以及在多个领域内的成熟应用,使得在冶金领域计算机控制系统中应用虚拟化技术成为可能。虚拟机独立于硬件,能够在大多数硬件上运行,因此使用虚拟化技术可以打破操作系统与硬件的相互依赖;通过封装操作系统到虚拟机的技术,管理操作系统和应用程序更为便捷,具有强大的安全和故障隔离机制。梅钢5号高炉HMI系统采用集中式控制方案,对整个高炉的监控集中在高炉中控室。2018年,笔者在梅钢5号高炉的自动控制系统应用了虚拟化技术,取得了成功。

  1、 虚拟系统的选择

  目前比较主流的虚拟化解决方案有VMWare vSphere、Citrix Xen、MicroSoft Hyper-V、KVM等,其中前3者为商业软件。KVM是基于Linux内核的虚拟机,是开源的系统虚拟化模块,从Linux2.6.20内核之后就集成在Linux各个主要发行版本中。KVM的虚拟化需要硬件支持 (如Intel VT技术或者AMD V技术) ,是基于硬件的完全虚拟化。由于KVM是开源系统,Linux系统具有强大的稳定性和安全性,因此笔者选择KVM制定虚拟系统解决方案。
 

虚拟化技术在工业自动化控制中的运用
 

  KVM的管理工具很多。针对单个资源的基础虚拟化管理,有开源的虚拟化工具集libvirt,通过命令行接口提供安全的远程管理,可管理单个系统。基于集群的KVM管理平台也有很多种选择,主流的KVM管理平台有OpenStack、OpenNebula、oVirt、Proxmox VE[4,5,6]等,对高炉自动控制系统这样小规模的系统,使用Proxmox VE就完全可以胜任。Proxmox VE是一个完整的企业虚拟化开源平台,借助内置的Web界面,可以轻松管理VM和容器、软件定义的存储和网络、高可用性集群以及单个解决方案上的多个开箱即用工具,它的最大优势在于安装使用方便,Web管理界面丰富。

  2、 搭建NFS存储

  Proxmox集群中,如果将ISO文件存储于本地,则只能供本节点存取,其他节点无法使用。如果要在每个节点给虚拟机安装操作系统,按常规的方式,则每个物理节点都得上传所需的操作系统ISO镜像,既费时又浪费宝贵的存储资源。外挂NFS服务既解决了容量扩展问题,又能让所有的虚拟机都可以共享读取。因为独立的NFS作为私有云集群的补充,并不需要较高的配置,只要磁盘容量足够大就行,不像集群计算节点需要性能极佳的磁盘,所以用NFS存储ISO镜像以及定时备份虚拟机是非常经济和实用的。

  在本项目实际应用中使用1台安装CentOS 7的PC机作为NFS服务器。首先安装NFS服务器软件,在/etc/exports配置文件制定输出的目录和权限;然后将ISO文件上传到指定的目录中,供虚拟机使用。

  3 、虚拟机镜像存储系统的选择

  Proxmox支持多种外部共享存储[7],既包括传统的NFS、i SCSI、FC-SAN,也有新型的分布式存储方案Ceph、GlusterFS[8]、Sheepdog。

  传统的存储方案中,NFS性能较低,不支持多路径,可以用于ISO和虚拟机备份存储,但不适于虚拟机镜像存储。i SCSI和FC-SAN都是块存储协议,都支持多路径,性能较高,可以用于虚拟机镜像存储,但不适于ISO和虚拟机备份存储。相对传统存储解决方案,分布式存储方案发展较快,对运维要求也较高。GlusterFS是一个分布式扩展文件系统,架构较为简单合成熟,部署方便,有Redhat支持,前景也很不错,对运维要求相对较低;允许根据存储消耗需求快速提供额外存储,稳定性非常好,可以轻松达到数千个节点和PB级的容量;自动故障转移是其一个主要特性,没有中心节点,所有节点全部平等,如果其中一个节点故障,则其他节点自动接管,不会造成系统宕机。

  对于虚拟机镜像存储,推荐使用GlusterFS分布复制卷,该卷类型适用于对可靠性要求较高的场合,如在冗余和扩展存储需要高可用性数据时,可以使用这种卷。在这个卷中,文件分布在复制的Brick中,Brick的数量必须是复制品数量的倍数。另外,指定Brick的顺序也很重要,因为相邻的Brick变成了彼此的复制品。如果有8个Brick,复制数是2,那么前2个Brick就变成了彼此的复制品,然后是接下来的2个,以此类推,把这个卷记为4x2卷。类似地,如果有8个Brick,复制品计数为4,那么4个Brick就变成了彼此的复制品,将这个卷记为2x4卷。分布复制卷过程如图1所示。

  本项目实际应用中GlusterFS安装于Centos764位版本系统中,GlusterFS版本为当前最新稳定版4.1.1版;GlusterFS由3台服务器构成,每台服务器4个VCPU, 4G内存,挂载3块磁盘,1块用于操作系统,另2块用于Brick数据存储;GlusterFS每个Brick挂载的磁盘采用XFS文件系统;GlusterFS通过10.10.10.0/24的IP地址创建集群。

  图1 分布复制卷
图1 分布复制卷

  Fig.1Distributed replicated volume

  下面的命令创建了横跨3台服务器、复制份数等于3、具有6个Brick的分布条带复制卷,需要注意Brick的顺序,如果添加顺序不合理,则不能实现容错。

  #gluster volume create test-volume replica 3transport tcp gfs-server1:/brick1 gfs-server2:/brick1 gfs-server3:/brick1 gfs-server1:/brick2 gfsserver2:/brick2 gfs-server3:/brick2

  4、 使用虚拟化技术后的系统变化

  图2所示为梅钢5号高炉系统原有的网络拓扑图,网络分三层,最底层为高炉基础自动化系统,为Rockwell公司ControlLogix 5000系列PLC,共计11个系统,连成一个底层以太网。中间为2台HMI服务器,1台历史数据服务器。HMI服务器作为操作站与PLC之间的桥梁,从PLC采集数据,并将操作站的操作指令下达PLC;历史数据服务器负责历史数据的存储和向操作站展示历史数据。3台工程师站用作PLC程序和HMI画面的开发。这是一个典型的传统设计方案,在行业内大量使用。

  图2 原系统网络拓扑图
图2 原系统网络拓扑图

  Fig.2Topology graph of original system

  随着计算机虚拟化技术的成熟和发展,笔者将虚拟化技术引入该系统,使系统架构发生了巨大变化,如图3所示,在原有基础上,把22台操作站、3台工程师站以及3台服务器变成虚拟机,运行在3台Proxmox服务器组成的1个KVM集群里,同时将原来分散的存储方式改进为分布式存储。

  系统使用虚拟化技术后的好处是:

  (1) 系统架构变得简单紧凑。虚拟机代替了作为操作站的工控机,全部集中于Proxmox集群中;

  (2) 需要维护的工控机和服务器大大减少了,维护工作变得简单、高效。以前必须到现场1台1台查看,才能了解所有操作站及服务器的运行状态,如CPU的负荷和内存使用情况、磁盘的剩余空间等,现在只要通过Web管理界面就可全面掌握所有虚拟机的所有状态,工程师不需要到现场,只要在办公室打开浏览器就可以掌握整个系统的运行状况,十分便捷。

  (3) Proxmox提供的虚拟机迁移功能大大提高了系统的可靠性。如果某台Proxmox服务器负荷过高,则可将该服务器上的虚拟机迁移一部分到其他服务器上,以减少该服务器的负荷。如果某台服务器出现故障,也可将其上的虚拟机全部迁移到别的服务器上,方便对故障服务器进行维护。还可利用Proxmox提供的高可用功能,自动迁移高负荷或故障服务器上的虚拟机到别的服务器上,这使系统的可靠性得到极大提升。

  图3 虚拟化后的网络拓扑图
图3 虚拟化后的网络拓扑图

  Fig.3Topology graph after virtualization

  (4) 业务功能扩展十分方便。在实际应用中,高炉运行过程中若要进行项目改造,增加新的设备和接入新的信号,变得非常方便。比如,高炉炉身炉缸热负荷检测、炉缸侵蚀模型等项目实施时,只需添加若干虚拟机,不需额外增加投资去购买物理计算机,而且不需进行网线敷设等工作,所有的这些计算机硬件以及网络均存在于Proxmox集群中,被Proxmox集群虚拟出来即可使用。如果Proxmox集群资源紧张,则在原系统不停机的情况下,只需在集群中在线增加1个节点,就可以虚拟出数十台虚拟计算机,非常方便。

  5、 安装虚拟机

  HMI服务器和历史数据服务器操作系统为Windows Server 2008 R2,操作站和工程师站操作系统为Windows 7 32位。在Proxmox集群中安装Windows Server 2008 R2和Windows 7 32位虚拟机,安装好相应的软件后,将其转换成为模板。这样就可以通过Windows 7模板生成22台操作站和工程师站的虚拟机,通过Windows Server2008 R2模板生成3台服务器的虚拟机。为了能让系统里所有计算机的时钟同步,同时保持PLC的系统时钟与整个系统一致,增加1个虚拟机来实现该功能。该虚拟机安装CentOS 7 64位操作系统,作为NTP Server提供时钟同步服务,同时在该虚拟机上安装DHCP并启动守护进程dhcpd,将该虚拟机作为DHCP服务器,提供IP地址自动分配服务,为接入系统的瘦客户端自动分配IP地址。

  一般在宿主机配置上都会选择NUMA架构的CPU,所以在虚拟机安装时,选择CPU的NU-MA[9]选项。NUMA (Non Uniform Memory Access Architecture) 是非统一内存访问,它是一种解决多CPU共同工作的解决方案。NUMA技术很好地解决了SMP的扩展问题。有了NUMA技术就可以把几十个甚至上百个CPU组合在一个服务器内。通过CPU优化将KVM绑定在指定的CPU上,这样减少了跨CPU的交互使用,使KVM的性能得以提升。

  KVM内存气球 (Balloon) 技术[10]在节约内存和灵活分配内存方面有明显的优势,可以在虚拟机之间按照需要调节内存大小,以提高内存利用率。所以在虚拟机创建时选择Balloon选项,并在虚拟机中安装virt balloon驱动程序和内存气球服务程序。本项目中应用内存气球技术后,Windows 7虚拟机的内存使用率从原来的66%降低到了28%,可见内存的利用更加高效了。

  全虚拟化网卡的性能不如半虚拟化网卡,因为半虚拟化virtio网卡是对驱动进行了改造,所以性能上肯定强过用户态下的全虚拟化网卡。根据实际的测试结果,使用virtio比使用e1000或者rtl8139网络吞吐性能要高出2倍左右。所以在创建虚拟机的时候,笔者选用virtio半虚拟化网卡。Linux系统原生自带virtio驱动程序,但是所用的虚拟机几乎都是Windows系统,所以需要装virtio驱动。

  6、 软件狗问题的解决

  该控制系统HMI采用的是Intouch画面软件,每台操作站和服务器的软件授权均为USB软件狗。采用虚拟化技术以后,软件狗的使用成了问题。最简单的解决办法就是把软件狗插在服务器的USB接口上,然后映射到虚拟机,虚拟机就可以使用了。带来的问题是,首先3台服务器要接22台操作站、2台HMI服务器、1台历史数据服务器以及3台工程师站的软件狗,USB接口很紧张;其次,软件狗通过USB映射的方式使用,锁定了虚拟机与服务器之间的关系,使得虚拟机的迁移功能无法使用,如果需要将虚拟机迁移到别的服务器上,则必须将该虚拟机对应的USB软件狗转移到目标服务器,并重新做映射。这样做虽然暂时解决了问题,但是新的问题又来了,因为需要做USB设备的重新映射,虚拟机必须关机才能进行此类操作,这样就有可能造成业务的中断,必须找高炉检修或者休风机会进行此类操作,无法体现热迁移技术的优势,再者,无法实现自动虚拟机迁移功能。

  针对以上问题,笔者所寻求到的比较好的解决方案有2种: (1) 硬件解决方案,即购买硬件USB服务器,将所有的USB软件狗插在硬件USB服务器上,然后在虚拟机中通过客户端软件把USB软件狗映射过来,这样就解决了上述问题。 (2) 软件解决方案,配置1台软件狗服务器,安装所有的USB软件狗到该服务器上,在该服务器上安装类似USB over Network的软件[11],把USB设备共享在网络上,虚拟机作为客户端使用共享的USB软件狗,效果同硬件解决方案。

  7、 结束语

  虚拟化技术在梅钢5号高炉投入使用后,运行情况良好。虽然目前虚拟化技术在工业控制领域内的使用不多见,但在不久的将来,这或将成为一种发展趋势,因为该技术带来的好处是显而易见的。尤其是老旧的控制系统仍在使用,HMI服务器或者操作站备件采购存在问题的场合,可以通过p2v将原来的HMI服务器和操作站物理计算机转换成为虚拟机,这样就可以延续原系统的使用寿命,彻底解决备件供应的问题。

  参考文献

  [1]吴松,王坤,金海.操作系统虚拟化的研究现状与展望[J].计算机研究与发展,2019, 56 (1) :58.
  [2]陈文智,姚远,杨建华,等.Pcanel/V2——基于Intel VT-x的VMM架构[J].计算机学报,2009, 32 (7) :1131.
  [3]崔泽永,赵会群.基于KVM的虚拟化研究及应用[J].计算机技术与发展,2011, 21 (6) :108.
  [4]Rik Goldman.Learning Proxmox VE[M].Birmingham, UK:Packt Publishing Ltd., 2016.
  [5]Wasim Ahmed.Mastering Proxmox[M].Birmingham, UK:Packt Publishing Ltd., 2014.
  [6]Wasim Ahmed.Proxmox Cookbook[M].Birmingham, UK:Packt Publishing Ltd., 2015.
  [7]肖力.深度实践KVM[M].北京:机械工业出版社,2015.
  [8]Gluster offical website.Getting started with GlusterFS[EB/OL].[2018-11-16].https://docs.gluster.org/en/latest/Quick-Start-Guide/Architecture/.
  [9]张鹏.CC-NUMA架构下4路龙芯3B服务器设计与实现[J].计算机工程与科学,2018, 40 (12) :2143.
  [10]韩高帅.基于云计算虚拟化平台的内存管理研究[D].杭州:杭州电子科技大学,2017.
  [11]陈光海,韩晋川,汪应.USB虚拟化仿真实训软件动态迁移[J].设计与应用,2015 (2) :58.

联系我们
  • 写作QQ:79211969
  • 发表QQ:78303642
  • 服务电话:18930620780
  • 售后电话:18930493766
  • 邮箱:lunwen021@163.com
范文范例