烟厂锅炉房自动控制系统服务器虚拟化技术浅论
2021-03-24张薇施绍兴
张薇 施绍兴
摘要:自楚雄卷烟厂新厂区投产以来,锅炉一直处于高负荷长时间运转状态,原上位机已经老化严重,死机故障频发,不利于锅炉的操作和监控,降低了锅炉班的生产保障能力。为解决上述问题,动力车间锅炉运行班申报了旨在提高锅炉房自动控制系统优化提升的科技项目,通过前期调研和综合分析现状,确定了新方案的实施,本文以此就楚雄卷烟厂锅炉房自动控制系统服务器虚拟化技术展开了简单阐述,仅供参考。
关键词:烟厂锅炉;自动控制系统;优化提升
引言
在信息技术领域,虚拟化无疑是目前最受关注的热点技术之一,特别是在各大企业的传统IT业务开销不断提高的形势下,虚拟化因其具有能够节约成本的优势而备受重视。根据IDC的预测,虚拟化市场在最近两三年内江迎来飞速增长。当前,掌握虚拟化核心技术的IT厂商基本为国外大厂,他们的发展战略和技术特点各有特色,本文以我厂实际情况,展开论述。
1服务器虚拟化实现方案
1.1全虚拟化
在虚拟服务器和底层硬件之间建立一个hypervisor抽象层。VMware和Microsoft是代表该方法的两个商用产品品牌,而KVM是面向Linux系统的开源产品。Hypervisor捕获CPU指令,为指令访问硬件控制器和外设充当中介。因而,全虚拟化技术几乎能让任何一款操作系统不用改动就能安装搭配虚拟服务器上,而他们不知道自己与逆行在虚拟化环境。主要缺点是Hypervisor给处理器带来开销。在全虚拟化的环境下,Hypervisor运行在裸金属架构上,充当主机操作系统,而由hypervisor管理的虚拟服务器运行客户端操作系统(guest OS)。
1.2半虚拟化
半虚拟化的思想就是,让客户操作系统知道自己实在虚拟机上运行,那么它原先在屋里机上执行的一些特权指令,就会修改成其他方式,这种方式是和VMM约定好的,这就相当于定制化操作系统,通过修改代码把操作系统一直到一种新的架构上来。所以像Xen这种半虚拟化技术,客户机操作系统都是有一个专门的定制内核版本,这样一来,就不会有捕获异常、翻译、模拟的过程了,性能损耗非常低。这就是Xen架构的又是,因为微软不支持修改内核代码,无法虚拟化Windows,所以Xen只支持虚拟化Linux。
2虚拟化核心技术
服务器虚拟化的实现是对三种硬件资源的虚拟化:CPU、内存、I/O设备。此外,为了实现更好的动态资源整合,当前的服务器虚拟化大多支持虚拟机的实时迁移。
2.1 CPU虚拟化
CPU虚拟化技术把物理CPU抽象成虚拟CPU,同一时刻一个物理CPU只能运行一个虚拟CPU的指令。每个客户操作系统使用一个或多个虚拟CPU,在这些客户操作系统之间,虚拟CPU的运行相互隔离,互不影响。基于X86架构的操作系统被设计成直接运行在物理机器上,这些操作系统在设计之初都假设其完整地控制底层物理机硬件。在X86体系结构中,处理器有4个运行级别,分别为RING 0、RING 1、RING 2和RING 3。其中,RING 0级别是最高级别,执行操作系统内核指令以及使用也全指令。应用程序的代码一般运行在RING 3级别,不能做控制操作。如果要做,比如要修改磁盘文件,那就要通过执行系统调用函数,执行系统调用的时候,CPU的运行几倍会从RING 3切换到RING 0,并跳转到系统调用对应的内核代码位置执行,这样内科就完成了设备访问,完成之后再从RING 0返回RING 03.这个过程也称作用户态和内核态的切换。在X86体系结构中的虚拟化实现比较困难,因为主机操作系统工作在RING 0级别的,客户操作系统就不能也在RING 0级别,但是客户操作系统不知道这一点,以前执行上面指令,现在还是执行什么指令,所以这时候VMM就要避免这种事情发生。一般虚拟机管理程序是通过触发异常来处理的。当客户操作系统执行特权指令时,会触发异常,然后虚拟机管理程序捕获这个异常,在异常里面做解码、执行,最后写回到客户操作系统内,客户操作系统会认为自己的特权指令工作正常,继续运行。但是这个性能损耗非常大,一条指令,现在需要通过复杂的异常处理过程。
为了解决X86体系结构下的CPU虚拟化问题,除了通过软件的方式以外,还提出了在硬件层添加支持功能的硬件辅助虚拟化方案来处理高级别指令。硬件辅助虚拟化这项技术将支持虚拟化技术的CPU加入了新的指令集和处理器运行模式来完成与CPU虚拟化相关的功能。Intel和AMD分别推出了硬件辅助虚拟化技术Intel VT-x和AMD-Vi。以Intel VT-x技术为例,支持硬件辅助虚拟化的处理器增加了一套名为虚拟机扩展(Virtual Machine Extensions,VMX)的指令集,该指令集包括十条左右的新增指令来支持与虚拟化相关的操作。此外,Intel VT-x为处理器定义了两种运行模式,Root模式和Non-root模式。虚拟化平台运行在root模式,客户操作系统运行在non-root模式。由于硬件辅助虚拟化支持客户操作系统直接在其上运行,无需再进行捕获或解码等附加动作,因此减少了性能开销,简化了虚拟化平台的设计。主流的虚拟化软件厂商都在通过和CPU厂商的合作來提高他们的虚拟化产品的性能和兼容性。
2.2内存虚拟化
内存虚拟化技术把原机的真实物理内存空间包装成多个虚拟空间统一管理,这些虚拟的物理内存分别供每个虚拟机使用,使得每个虚拟机拥有各自独立的内存空间。在服务器虚拟化技术中,因为内存是虚拟机访问最频繁的设备,因此内存虚拟化与CPU虚拟化具有同等重要的地位。在内存虚拟化中,VMM要能够管理物理主机上的内存,并按每个虚拟机对内存的需求划分机器内存,同时保持各个虚拟机对内存访问的相互隔离。物理主机的内存是一段连续的地址空间,上层应用对于内存的访问多是随机的,因此VMM需要维护物理主机里内存地址块和虚拟机内部看到的连续内存块的映射关系,保证虚拟机的内存访问是连续的、一致的。操作系统对内存管理采用了段式、页式、段页式、多级页表、缓存、虚拟内存等多种技术,VMM必须能够支持这些技术,病使他们在虚拟环境下仍能够保证高效运作。内存作为一种纯属设备,使程序运行所必不可少的,因为所有的程序都要通过内存将代码和数据提交到CPU进行解码和执行。如果计算机中运行的应用程序过多,就会耗尽系统中的内存,成为提高计算机性能的瓶颈。之前,人们利用扩展内存和优化程序来解决该问题,但是这些方法成本都很高,因此,虚拟内存技术出现了,现在所有基于X86架构的CPU都配置了内存管理单元(Memory Management Unit,MMU)和页表转换缓冲(Translation Lookaside Buffer,TLB),通过它们来优化虚拟内存的性能。传统的内存管理维护了应用程序所看到的虚拟内存和物理内存映射关系。为了在物理服务器上能够运行多个虚拟机,VMM需要具备管理虚拟机内存管理单元。由于新增了这样一个管理层次,所以虚拟机内存管理与传统的内存管理有所区别。虚拟机中操作系统看到的“物理”内存不再是真正的物理内存,而是被VMM管理的“伪”物理内存。与这个“物理”内存相对应的是新概念“机器内存”。机器内存是指物理服务器硬件上真正的内存。在内存虚拟化中存在着逻辑内存、“物理”内存和机器内存三种内存类型,而这三种内存的地址空间被称为逻辑内存、“物理”地址和机器地址。在内存虚拟化中,逻辑内存与机器内存之间的映射关系是由内存虚拟化管理单元来负责的。
内存虚拟化管理单元的实现主要有两种方法:
第一种是影子页表法。客户操作系统维护这自己的页表,该页报中的内存地址客户操作系统看到的“物理”地址。同时,VMM也為每台虚拟机维护着一个对应的页表,只不过这个页表中记录的是真实的机器内存地址。VMM中的页表是以客户操作系统维护的页表为蓝本建立起来的,并且会随着客户操作系统页表的更新而更新,就像它的影子一样,所以被称为影子页表。VMware和KVM都采用了影子页表技术。
第二种是页表写入法。当客户操作系统创建一个新页表时,需要向VMM注册该页表。此时,VMM将夺取客户操作系统对页表的写权限,并向该页表写入由VMM维护的机器内存地址。当客户操作系统访问内存时,它在自己的页表中获得真实的机器内存地址。客户操作系统对页表的每次修改都会“trap”VMM,由VMM来更新页表,保证其页表项记录的始终是真实的机器地址。页表写入法需要修改客户操作系统,Xen是采用该方法的典型代表。
2.3 I/O设备虚拟化
除了处理器与内尺寸外,服务器中需要虚拟化的关键部件还包括I/O设备。I/O设备虚拟化技术把物理机的真实I/O设备统一管理,包装成多个虚拟设备给若干个虚拟机使用,响应每个虚拟机的I/O设备访问请求。目前主流的I/O设备虚拟化都是通过软件的方式实现的。虚拟化平台作为在共享硬件与虚拟化之间的平台,为I/O设备管理提供了便利,也为虚拟机提供了丰富的虚拟设备功能。
2.4实时迁移技术
实时迁移是指在保证虚拟机上服务正常运行的同时,虚拟机在不同的物理主机之间进行迁移,其逻辑步骤与离线迁移几乎完全一致。为了保证迁移过程中虚拟机服务的可用,迁移过程仅有机器短暂的停机时间。迁移的起步阶段,服务在源主机运行,经过一个几乎察觉不到的切换,源主机将控制权转移到目的主机,服务在目的主机上继续运行。实时迁移需要VMM的介入,即通过源主机和目标主机上VMM的相互配合,来完成客户操作系统的内存和其他状态信息的拷贝。实时迁移开始以后,内存页面被不断地从源VMM拷贝到目标VMM。这个拷贝过程对源虚拟机的运行不会产生影响。当迁移进行到一定阶段,目的主机已经具备了运行系统的必要资源,目标虚拟机开始运行,VMM切换源虚拟机与目标虚拟机,源虚拟机的运行被终止,实时迁移过程完成。
实时迁移技术最初只应用在系统硬件维护方面。众所周知,数据中心的硬件需要定期地进行维护和更新,而虚拟机上的服务需要不间断地运行。如果使用实时迁移技术,便可以在服务不中断的情况下,将虚拟机迁移到另外一台物理主机上,然后对原来虚拟机所在的物理主机进行硬件维护。对于服务本身而已,由于切换的时间机器短暂,用户是感觉不到服务中断的,因而迁移过程对用户是透明的。目前,实时迁移技术更多的是与资源整合操作结合起来使用,通过虚拟机动态资源调度方法,数据中心的戏院利用率可以得到显著提升。
3结语
综上分析,楚雄卷烟厂锅炉房自动控制系统服务器虚拟化技术确定利用虚拟软件VMWare Workstation 15,将锅炉控制系统整体虚拟化至DCS室工程师操作站。
参考文献
[1]李友宏.面向炼化企业的服务器虚拟化技术方案设计[J].中国管理信息化,2019(5):164-167.
[2]郭婧.关于利用虚拟化技术对服务器和应用系统进行整合的研究[J].电子测试,2019(Z1):85-87.