分析计算机虚拟化技术及应用前景
虚拟化技术用于支持高层软件共用底层硬件资源,为用户提供多个应用软件运行环境。本文分析了虚拟化技术高性能计算机的应用,对虚拟化技术在高性能计算中的应用前景进行了展望。
摘要: 随着高性能计算机性价比性能的提高,其规模不断扩大,各部件之间的关系日益复杂,对系统的管理和使用也变得越来越困难。为了获得较高的性能和效率,高性能计算机系统软件必须根据体系结构的特点进行定制,高性能计算应用程序也需要根据特定体系结构进行优化。
关键词:虚拟化技术应用高效协同
虚拟化技术用于支持高层软件共用底层硬件资源,为用户提供多个应用软件运行环境。虚拟化技术用于支持高层软件共用底层硬件资源,为用户提供多个应用软件运行环境。本文分析了虚拟化技术高性能计算机的应用,对虚拟化技术在高性能计算中的应用前景进行了展望。
一、虚拟化技术在高性能计算中的应用
从目前的研究可以看出,虚拟化技术尚未被广泛应用于高性能计算领域,其主要原因包括以下几个方面:
(一)虚拟化带来的性能开销问题。传统的服务器虚拟化技术带来额外的系统性能开销。在一个虚拟化系统中,VMMM运行在最高特权级上,VM和Guest0S作为VMM上的用户级程序运行。这就导致GuestOS运行过程中遇到特权级操作时,必须内陷到VMM中。由VMM
执行。这种执行方式需进行上下文切换,且会导致更长的设备访问延迟,对于对系统性能敏感的高性能计算应用来说是难以接受的。因此,需要研究面向高性能计算机系统的虚拟化技术,针对应用对高性能的需求,进行VMM优化设计。
(二)多VMM高效协同问题。面向高性能计算机系统的虚拟化技术不同于传统的服务器虚拟化技术。传统的服务器虚拟化只需要单个VMM对服务器底层硬件设备进行抽象。而在多维异构的高性能计算机系统中,每个节点都需要运行一个独立的VMM,该VMM只对单个节点进行虚拟化。整个系统中运行了大量相互关联的VMM。VMM之间协同工作,构成统一的大规模系统级虚拟化环境。因此,需要研究高效的VMM协同机制,其中包括大量VMM之间的协同管理、协同部署、VM跨物理节点的高效通信、VM迁移以及系统级容错等技术问题。 (三)大量VM的管理问题。为了支持高性能计算应用程序的运行。可能需要一次部署运行上千个乃至上万个的VM。传统的服务器虚拟化技术只涉及少量VM的部署问题和运行时管理问题。如何支持大量VM的动态部署、根据应用需求快速分配所需的硬件资源、以较低的系统开销快速启动VM、对大量VM进行运行时管理等,都是实现高性能计算机系统虚拟化时需要解决的重要技术问题。
(四)编程模型和软件环境的支持问题。传统的编程模型和支持应用开发和运行的软件环境都是直接针对非虚拟化系统设计的,而虚拟化技术对硬件系统进行了抽象,改变了用户所见的资源组织形态,使得传统的编程模型和软件环境无法适应用户对虚拟化系统的使用
要求。因此,需要研究面向虚拟化高性能计算机系统的新型编程模型和针对虚拟化系统进行优化设计的配套软件环境,如并行编译器、链接器、调试优化工具、并行函数库等。
二、虚拟化技术在高性能计算中的应用前景
目前,虚拟化技术已被广泛应用于台式电脑和服务器上,取得了很好的应用效果。相比之下,在高性能计算领域的应用还非常有限。随着高性能计算技术的发展和对虚拟化技术研究的深入,两者之间的结合将会变得越来越紧密,虚拟化技术也将为高性能计算领域的诸多难题提供新的解决方法。
(一)构建虚拟应用开发环境。高性能计算应用程序与运算环境关系密切,不同规模的运行环境下表现的行为也不尽相同。利用虚拟化技术,可以在小规模系统上构建大规模的虚拟应用开发环境,使应用程序可以在更为接近最终运行环境的系统环境下进行开发和优化,开发的应用程序可以被更快、更方便地移植到大规模系统上运行。 (二)整合异构资源。随着应用需求和高性能计算技术的发展,高性能计算机体系结构正在逐步向着异构化的方向发展。如何高效管理和使用异构系统是高性能计算系统软件和应用程序开发人员面临的主要技术难题。虚拟化技术在整合异构资源方面有其固有的优势。利用虚拟化技术对底层异构硬件资源进行抽象和管理,可以有效地隐藏硬件平台的异构特性,为用户提供一个统一的系统环境,方便用户对异构系统的使用。
(三)提供定制的Appliance。不同的高性能计算应用程序需要不同的系统环境,如面向应用优化的操作系统环境、特定版本的编译器以及通信库等,这使得应用程序的部署费时费力,系统环境也难以做到最优化,系统效能得不到充分发挥。采用虚拟化技术有助于解决上述问题。虚拟化技术支持预先将定制的操作系统、经过优化配置的应用运行环境和应用二进制代码一起打包成VM映像,这种映像被称为Appliance。通过直接部署Appliance,可以实现高性能计算应用程序的快速部署,并获得较好的运行时性能。
(四)提高系统可靠性和容错性能。随着高性能计算机规模的不断扩大,部件间复杂性的不断提高,系统硬件故障率也不断增大。在虚拟化的系统中,由于节点上各VM之问相互隔离,软件错误如操作系统或应用程序故障只能直接影响到一个VM,甚至硬件故障如CPU、内存、设备的故障也只影响到它们所被指定到的VM。当出现故障时,通过VM迁移、快速重启VM等方法可以重新恢复甚至于不中断应用程序的运行。 三、结论
总之,随着虚拟化技术的不断发展,底层硬件越来越多地加入对虚拟化的支持,有效地降低了虚拟化的性能开销。而高性能计算机体系结构向多层次、多粒度的异构化方向发展的趋势也必将进一步推动高性能计算机虚拟化技术的发展。 参考文献:
[1]王小平,张成志,赵昀飞.虚拟化技术在企业的应用[J].电脑知识与技术.xx(28)
[2]周铁成.虚拟化技术在数据中心架构中的应用研究[J].现代计算机(专业版).xx(04)
[3]王德才.开源软件和虚拟化技术在数据中心IT架构中的应用[J].中国科技信息.xx(11)
[4]陈俞强,杨颖令.浅谈应用系统的数据安全[J].科技信息(学术研究).xx(16)