● 摘要
机群是一种重要的并行计算机体系结构,成本低廉,可扩展性强,但编程复杂,管理难度大。如何在保持良好可扩展性的同时,提高机群的可编程性和可管理性,是计算机领域的研究热点之一。国内外在这方面进行了深入研究,一个重要的研究方向是实现机群系统的单一系统映像(Single System Image,简称SSI)。计算机虚拟化技术能够抽象计算机的物理资源,隔离硬件与软件。利用虚拟化技术可将机群抽象成具有共享内存特征的虚拟机,支持共享内存编程模式,从而克服机群的不足。当前,在该领域有少量探索性的研究成果,但都不能支持以SMP(Symmetric Multiprocessor)为结点的机群虚拟化。本文的主要工作与贡献在于:调研了现有的实现机群SSI技术和计算机虚拟化技术,分析了各种技术的优势和不足。在此基础上,提出了基于硬件虚拟化技术、在操作系统(Operating System,简称OS)之下实现机群SSI的方法。即:基于硬件虚拟化技术,在机群硬件之上、OS之下构建分布式虚拟机监控器(Distributed Virtual Machine Monitor,简称DVMM),DVMM感知、整合机群资源,以单一资源空间的方式向OS呈现机群资源,支持OS像使用单机资源一样地使用机群资源,从而隐藏机群的分布式特性,使得以SMP为结点的机群对OS呈现为一台具有SSI特征的虚拟机,并支持OS和应用程序透明地运行于虚拟机之中。研究了现有的单机VMM的体系结构,比较了VMM体系结构与DVMM的功能需求之间的差异,在此基础上,设计了一种运行于机群硬件之上和OS之下,分层合理、功能协调、接口明晰的DVMM体系结构。与现有的VMM体系结构相比,DVMM体系结构具有如下特点:一是具有分布式、对称性结构,即DVMM由分布于各结点上的VMM组成,各结点上的VMM在功能和结构上完全相同;二是直接运行于机群硬件平台之上,不需要OS的支持;三是以整合、使用机群资源为目的,而不是像单机VMM那样以分割、使用机器资源为目的。在研究物理多处理器系统和单机VMM中的资源感知、管理和呈现方法的基础上,提出了一种基于BIOS(Basic Input/Output System,基本输入输出系统)扩展的机群资源整合与呈现方法。即:通过扩展各结点的BIOS,构建eBIOS(extended BIOS),通过eBIOS感知、整合机群资源,并以与多处理器系统相同的方式向OS呈现机群资源。由于eBIOS运行于OS之下,因此,这种资源整合与呈现方法对OS具有完全的透明性。研究了单机内存虚拟化技术和软件分布式共享存储(Distributed Shared Memory,简称DSM)技术,提出了结合软件DSM技术和内存虚拟化技术在内核层实现机群单一内存空间(Single Memory Space,简称SMS)的方法。即:通过在DVMM中实现DSM算法,将机群的分布式物理内存组织成具有统一地址空间的DSM;通过内存虚拟化技术,实现对DSM的透明访问。现有的内存虚拟化技术只能实现单机内存资源虚拟化,现有的DSM大多实现于OS层或中间件层,对OS不透明。本文结合使用两种技术,这样,既结合了DSM技术和内存虚拟化技术的优势,又克服了各自的不足,一方面,DSM实现于OS之下,因而对OS具有完全的透明性,另一方面,通过与DSM技术结合,拓展了内存虚拟化的作用范围。在研究单机VMM管理和使用物理资源的方法的基础上,提出了一种基于指令捕获和跨结点指令模拟技术,透明使用机群资源的方法。即:在硬件虚拟化技术的支持下,动态地捕获OS访问机群资源的操作,通过机群各结点上的VMM之间的协作,在本地或远程模拟OS的资源访问操作,并将访问结果以对OS透明的方式呈现给OS。通过这种方法使用机群资源,具有完全的透明性,而且使得机群各结点的作用和地位完全对等;实现了一个DVMM原型系统,并对DVMM原型系统进行了功能验证和性能测试。实验结果表明,DVMM原型系统实现了以SMP为结点的机群的SSI。