动态逻辑分区的验证
技术领域
本公开总的来说涉及虚拟化计算的领域,以及更加具体地涉及计算系统中硬件的按需逻辑分区。
背景技术
因为虚拟化允许服务器的供应和放置的灵活性和它们在数据中心中的关联工作负荷,所以它是服务器、云计算和虚拟桌面环境(VDE)的核心组件,且通常用在数据中心中。在系统虚拟化中,在单个物理计算系统内创建多个虚拟计算系统或者虚拟机。物理系统可以是分立计算机,或者替代地,使用集群式计算机和组件的计算系统。虚拟系统,或者虚拟机是使用比如处理器、存储器和输入/输出(I/O)适配器之类的物理资源的逻辑或实际划分的独立操作环境。在有些情况下,通过管理功能性(典型地是系统管理程序技术)实现系统虚拟化。也被称为虚拟机管理器(VMM)的系统管理程序在软件或者固件中使用代码的薄层(thin layer of code)来实现细颗粒的动态资源共享。系统管理程序因为它们提供怎样定义和管理虚拟资源的最高级别的灵活性,所以是用于系统虚拟化的主要技术。
逻辑分区是将实际的或者物理的服务器逻辑地划分为两个或更多独立服务器的能力,且在每个虚拟机或者逻辑分区(LPAR)中执行一个或多个应用,就好像虚拟机或者LPAR是分开的物理计算机那样。每个虚拟系统、虚拟服务器或者虚拟机像运行其自己的操作系统的独立计算系统那样操作。在虚拟化计算环境中运行的操作系统通常被称为“客机”。系统管理程序可以分配专用处理器、I/O适配器和存储器给每个虚拟机,且还可以分配共享处理器给每个虚拟机。在某些方式的虚拟化中,系统管理程序创建共享处理器池,系统管理程序从该共享处理器池根据预定分配百分比来分配虚拟处理器的时间切片给虚拟机。换句话说,系统管理程序从物理处理器创建虚拟处理器,以使得虚拟机在运行独立操作环境的同时可以共享物理处理器,该物理处理器包括共享高速缓存空间和存储器带宽。
某些方式的虚拟化允许将单独的物理处理器核心分区为多个LPAR。同时分区的方法允许当系统管理程序分配物理处理器给虚拟机时的更精细划分,这避免了通过仅分配必要的资源给给定处理而浪费处理资源。为最大化精细分区的方法,动态逻辑分区(DLPAR)的系统允许运行时间取决于工作负荷要求在单个处理器核心上在不同LPAR模式之间改变。
发明内容
本发明的实施例公开了用于验证逻辑分区配置之间的切换的方法、计算机程序产品和系统。计算系统将处理核心的物理资源划分为逻辑分区,每个逻辑分区具有至少一个处理子核心。计算系统加载逻辑分区的上下文并将测试实例分配给每个处理子核心。处理子核心执行测试实例,验证逻辑分区的上下文。计算系统以重新配置在处理核心上的逻辑分区的数目的预期,来重新分配测试实例给不同处理核心。计算系统重新配置处理核心上逻辑分区的数目,并执行在重新配置的逻辑分区上分配的测试实例。
附图说明
图1是图示根据本发明实施例的虚拟化计算环境的功能框图。
图2是示出包括四个子核心的单个处理器核心从具有四个逻辑分区的状态到包括根据本发明实施例的产生的测试实例的重新映射的具有两个逻辑分区的状态的示例切换。
图3是图示用于验证服务器的动态逻辑分区能力适当地运作的驻留在主机计算系统上的DLPAR验证程序的操作步骤的流程图。
图4示出用于实现本发明实施例的示例性计算系统的组件的框图。
具体实施方式
本发明的实施例认识到虚拟化是高端服务器微处理器中的重要特征。虚拟化的优点是其允许在几个操作系统当中共享物理处理器池,给予每个操作系统该操作系统是所有系统资源的唯一用户的观感。虚拟化技术的进步允许在越来越小的尺度上分区物理资源。在小尺度上划分服务器的物理资源帮助防止由于对于给定任务在给定时间保证比需要的更多的物理资源而浪费服务器资源。
称为动态逻辑分区(DLPAR)的特征允许服务器在运行时环境中在更小的尺度上重新分布物理资源。但是,这种物理资源的重新分配如果不适当地执行则增加了服务器故障的危险。为了适当地切换到新LPAR模式,必须从处理器去除来自先前LPAR模式的所有信息。除非处理器清除了来自先前分区的所有信息,否则处理器不能以新分区适当地运作。本发明的实施例提供了测试硬件动态地重新分配服务器的物理资源给不同LPAR配置的能力的性能。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码/指令。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
计算机程序指令也可以被加载到计算机、其他可编程数据处理设备或者其他装置上以使得在计算机、其他可编程设备或者其他装置上执行一系列操作步骤以产生计算机实现的处理,以使得在计算机或者其他可编程设备上执行的指令提供用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的处理。
现在将参考附图详细描述本发明的示例性实施例。图1图示通常指定为100的虚拟化计算环境。
虚拟化计算环境100包括至少一个主机计算系统,比如主机计算系统102。主机计算系统102是物理计算系统且能够执行机器可读指令。在本发明的优选实施例中,主机计算系统102能够主管(host)多个逻辑分区(LPAR)(也称为虚拟机或者虚拟服务器)。
主机计算系统102通过逻辑分区被划分为多个虚拟机(VM)104、106和108。在示例性实施例中,各个VM 104、106和108中的每一个运行独立的客操作系统(OS),例如,VM 104运行OS 132(其可能是操作系统),VM 106运行OS 134(其可能是虚拟输入/输出服务器(VIOS),且VM 108运行OS 136(其可能是操作系统)。可以使用其他操作环境和操作环境的组合。在本发明的各种实施例中,可以使用任意数量LPAR或者VM。
系统管理程序110通过在逻辑分区中将指定处理器112、存储盘114、网卡116和/或存储器118逻辑共享,来从主机计算系统102的物理资源创建VM104、106和108。指定处理器112由一个或多个处理核心122组成。处理核心是单个微处理器。指定处理器112可以是单核心处理器或者其中在单个微芯片上存在多个中央处理单元的多核心处理器。每个处理核心由一个或多个子核心组成。子核心是能够执行执行线程的最小处理单元。执行线程是可以由操作系统调度器独立管理的编程指令的最小序列。系统管理程序110根据VM 104、106和108中的每个的工作负荷要求,动态地分配指定处理器112或核心122、存储盘114、网卡116和/或存储器118。另外,系统管理程序110执行标准操作系统功能并管理VM 104、106和108之间的通信。系统管理程序110高速缓存由主机计算系统102的每个VM请求的数据,所以数据从系统管理程序的高速缓存可用于主机计算系统的所有VM。
在示例性实施例中,系统管理程序110包括DLPAR验证程序120。DLPAR验证程序120可以替代地存储在主机计算系统102的存储器118上,或者外部存储器(未示出)上。DLPAR验证程序120执行诊断步骤以验证当系统管理程序110动态地重新分区处理器112时,这种分区将不会导致硬件故障。在本发明的各种实施例中,DLPAR验证程序120运行以单独地测试每个处理核心122在逻辑分区模式之间动态地改变的能力。
图2示出在具有四个子核心210、212、214和216的单个处理器核心200上在两个LPAR状态之间的示例性切换。在图2中示出的左边配置示出了划分为四个逻辑分区的单个核心200,其中每个子核心占据单个LPAR。图2中示出的右边配置示出了在到具有两个LPAR且两个子核心占据每个LPAR的LPAR模式的DLPAR切换之后,与图2的左边配置相同的核心200。
处理器核心200是多核处理器中的单个核心。在核心200内是至少一个子核心。每个核心可以被逻辑地分区而以可以分配给单个VM的方式划分资源和/或处理能力。如图2中所示,核心200包括四个子核心210、212、214和216。子核心210、212、214和216均能够执行由主机计算系统102执行的处理提供的线程。子核心210、212、214和216是主机计算系统102中包含的物理资源,且因此能够由系统管理程序110分配给LPAR。在任何给定时间点,核心是“LPAR模式”,其指的是核心当前划分为的逻辑分区的数目。例如,如果核心目前划分为两个LPAR,则核心是“2LPAR”模式。类似地,如果核心目前划分为四个LPAR,则核心是“4LPAR”模式。
在LPAR模式改变之前,子核心210、212、214和216均被分配给不同的LPAR 220、222、224和226。核心200包括四个子核心210、212、214和216,它们分别被分配给LPAR 220、222、224和226。在LPAR模式中改变之前,因为单个核心被细分为四个LPAR,所以核心200处于“4LPAR”模式。
DLPAR验证程序120将作为可执行线程的测试实例230、232、234和236分别加载到子核心210、212、214和216上。每个测试实例包括每个子核心要执行的可执行指令。例如,测试实例可以指令子核心读取特定的存储要素,复制要素到新位置,并执行将存储要素与测试实例中包含的参考值比较的循环冗余校验。测试实例意味着确定子核心在目前LPAR模式中是否适当地操作。测试实例230、232、234和236可以是“兼容的”或者“不兼容的”。兼容的测试实例共享某一资源。不兼容的测试实例不共享那些资源。例如,可以写入测试实例以使得其需要参考特定的页表。当不兼容的测试实例需要参考不同页表时,兼容的测试实例也要参考同一页表。LPAR访问的资源是LPAR的上下文和环境的一部分。根据本发明的实施例,测试实例230和234是兼容的,且测试实例232和236是兼容的。测试实例230和234共享页表250。测试实例232和236共享页表252。相反地,测试实例230和234与测试实例232和236不相容。
页表250和252包括翻译信息。该翻译信息用于将虚拟存储器地址转换为物理存储器地址。在本发明的实施例中,测试实例230、232、234和236提供关于由页表250和252翻译为物理存储器地址的虚拟存储器地址的调用。分别在物理存储器260和262中找到页表250和252翻译为的物理地址。一旦从物理存储器260和262收集数据,就将其返回到从其进行调用的子核心,且然后可以被复制到主机计算系统102的物理存储器中的新位置。
在本发明的示例性实施例中,DLPAR验证程序120触发导致子核心210、212、214和216到不同LPAR的重新分配的处理器核心200的LPAR模式的重新配置。DLPAR验证程序120初始化LPAR模式中的改变以保证包括LPAR的硬件在LPAR模式中的改变之后继续适当地运作。图2示出这种从具有四个LPAR的LPAR模式到具有两个LPAR的LPAR模式的重新分配。后一LPAR模式被称作“2LPAR”模式。核心200现在被划分为LPAR 240和242。LPAR240包括子核心210和212。LPAR 242包括子核心214和216。LPAR 240和242现在每个分别连接到页表252和250。因为每个LPAR仅能连接到一个页表,所以在任何给定LPAR中加载到子核心上的全部测试实例必须参考相同页表,否则系统报错。因此,为了保证处理器核心200上的2LPAR配置中的所有测试实例是兼容的,子核心210和216的上下文由DLPAR验证程序120交换。该切换导致测试实例236被加载到子核心210上而测试实例230被加载到子核心216上。
图3是图示根据本发明实施例的、用于在处理核心122上测试逻辑分区模式的驻留在主机计算系统102上的DLPAR验证程序120的操作步骤的流程图。在本发明的示例性实施例中,DLPAR验证程序120在单个处理器核心200上测试LPAR模式,但是,本发明不限于在单个核心上发生。
DLPAR验证程序120以预定LPAR模式初始化主机计算系统102的物理硬件(步骤302)。例如,DLPAR验证程序将核心200的子核心逻辑地分区。DLPAR验证程序120然后分配子核心210、212、214和216到特定的LPAR。在本发明的示例性实施例中,DLPAR验证程序120从用户定义的输入接收初始LPAR模式指令。
DLPAR验证程序120生成并分配测试实例给核心200上的每个子核心(步骤303)。核心200由执行处理指令的离散序列的多个子核心210、212、214和216组成。在本发明的示例性实施例中,DLPAR验证程序120生成指令子核心210、212、214和216在主机计算系统102的物理硬件上执行操作的测试实例230、232、234、236,该操作例如是,读取特定的存储要素,复制该要素到预定义的位置和使用循环冗余校验比较该要素与预测的值。
DLPAR验证程序120初始化初始LPAR模式的上下文以及每个分区的环境(步骤304)。LPAR模式的上下文包括LPAR需要的物理资源的最小集合,其可能包括盘114、网卡116和/或存储器118的一部分。LPAR的环境是LPAR使用的硬件的完整集合,包括全部存储器、页表和主机计算系统102的物理属性。
DLPAR验证程序120在每个子核心上加载每个测试实例的预先计算的期望结果(步骤306)。预先计算的结果是对初始LPAR模式特定的。预先计算的结果由要从在分配的测试实例中指定的特定存储位置检索的期望数据组成。预先计算的用作相对由DLPAR验证程序120在其执行分配给子核心的测试实例时实际返回的信息的参考。
DLPAR验证程序120对于指定的时段运行已经以分配的测试实例230、232、234和236加载的LPAR(步骤308)。指定的时段可配置,并且由主机计算系统102的用户设置。该时段向LPAR提供执行加载到每个子核心上的测试实例中包含的指令的时间。
DLPAR验证程序120从由测试实例(例如,260)指定的存储器位置收集信息,并将其复制到由DLPAR验证程序120定义的预先分配的缓存(步骤310)。该预先分配的缓存是用于临时存储从由测试实例指定的位置复制的信息的物理存储器的区域。
DLPAR验证程序120执行循环冗余校验(CRC)(步骤312)。CRC将通过测试实例的执行在预先分配的缓存中存储的数据与以LPAR环境加载的预先计算的预期结果进行比较。CRC是公知的误差检测码,其将先前产生的关于一条数据的校验值与当前产生的校验值比较,以确定它们是否相同。在本发明的实施例中,预先计算的预期结果表示先前产生的校验值,且在预先分配的缓存中存储的数据表示当前产生的校验值。CRC将先前产生的校验值与当前产生的校验值比较,并确定它们是否匹配。
DLPAR验证程序120确定由子核心执行的测试实例收集的信息是否匹配预先计算的预期结果(判定框314)。如果由测试实例收集的信息不匹配预先计算的预期结果,则产生错误(判定框314,“否”分支)。在本发明的示例性实施例中,该错误导致主机计算系统102内硬件执行的终止。
如果由测试实例收集的信息匹配预先计算的预期结果(判定框314,“是”分支),则DLPAR验证程序120以改变为LPAR模式的预期重新映射测试实例到子核心(步骤316)。
DLPAR验证程序120重新分配测试实例,以使得它们在当前LPAR模式中处于不兼容的配置,但是将在核心重新指定子核心给新的LPAR模式之后处于兼容的配置(步骤316)。如上所述,测试实例可以分类为兼容的或者不兼容的。兼容的测试实例设计为共享环境中包括的某一信息,比如物理存储器118,或者页表参考(例如,250或者252)和其中核心正在操作的特定的LPAR模式的上下文。不兼容的测试实例设计为不共享该信息。例如,一个测试实例可能需要参考页表250,同时第二测试实例需要参考页表252。这两个测试实例是不兼容的。因为根据定义,不兼容的测试实例需要多个上下文,且LPAR可以仅具有一个上下文和环境,所以不兼容的测试实例不能在单个LPAR中在子核心上操作。
DLPAR验证程序120确定用于以预期的新LPAR模式加载LPAR上下文的次序(步骤318)。每个子核心具有当加载LPAR上下文时将加载的它自己的上下文值。加载的最后的子核心值将重写先前的值且将由LPAR使用。因此,DLPAR验证程序120分配每个子核心将加载其上下文的次序,以使得要加载其上下文的最后的子核心是用于整个分区的校正上下文。
DLPAR验证程序120初始化核心的硬件配置到新LPAR模式的改变(步骤320)。核心的物理资源的分配改变,以使得子核心重新分配给新LPAR。
DLPAR验证程序120加载新重新分配的测试实例以及新LPAR模式的上下文和环境(步骤322)。
DLPAR验证程序120对于指定的时段返回而以新分配的测试实例运行LPAR(步骤308)。该循环可以运行与用户指定一样多的次数,并通过与用户指定一样多的LPAR模式。
图4示出根据本发明的说明性实施例的主机计算系统102的组件的框图。应该理解,图4仅提供一个实现的图示,且不暗示关于其中可以实现不同实施例的环境的任何限制。可以做出对示出的环境的许多修改。
主机计算系统102包括提供在一个或多个计算机处理器404、存储器406、永久存储设备408、通信单元410和一个或多个输入/输出(I/O)接口412之间的通信的通信组织402。通信组织402可以以设计用于在系统内的处理器(比如微处理器、通信和网络处理器等)、系统存储器、外围设备和任何其他硬件组件之间传递数据和/或控制信息的任何架构实现。例如,通信组织402可以以一个或多个总线实现。
存储器406和永久存储设备408是计算机可读存储介质。在本实施例中,存储器406包括随机存取存储器(RAM)414和高速缓存416。总的来说,存储器406可以包括任何适当的易失或者非易失性计算机可读存储介质。
DLPAR验证程序120存储在永久存储设备408中,用于经由存储器406的一个或多个存储器由一个或多个相应的计算机处理器404执行。在本实施例中,永久存储设备408包括磁硬盘驱动器。替代地,或者除磁硬盘驱动器之外,永久存储设备408可以包括固态硬盘、半导体存储器件、只读存储器(ROM)、可擦可编程只读存储器(EPROM)、闪存存储器或者能够存储程序指令或者数字信息的任何其他计算机可读存储介质。
永久存储设备408使用的介质也可以是可拆卸的。例如,可拆卸硬盘可以用于永久存储设备408。其他实例包括插入到驱动器中以用于传送到也作为永久存储设备408的一部分的另一计算机可读存储介质上的光盘和磁盘、拇指驱动器和智能卡。
在这些实例中,通信单元410提供用于与其他数据处理系统或装置通信。在这些实例中,通信单元410包括一个或多个网络接口卡。通信单元410可以提供通过使用物理和无线通信链路中的一个或者两者的通信。DLPAR验证程序120可以通过通信单元410下载到永久存储设备408。
一个或多个I/O接口412允许与可以连接到主机计算系统102的其他装置的数据的输入和输出。例如,一个或多个I/O接口412可以提供到比如键盘、小键盘、触摸屏和/或某些其它适当的输入装置之类的外部装置418的连接。外部装置418还可以包括便携式计算机可读存储介质,例如,拇指驱动器、便携式光盘或者磁盘和存储卡。用于实践本发明的实施例的软件和数据,例如,DLPAR验证程序120可以存储在这种便携式计算机可读存储介质上,且可以经由一个或多个I/O接口412加载到永久存储设备408上。一个或多个I/O接口412也连接到显示器420。
显示器420提供向用户显示数据的机制,且例如可以是计算机监视器。
基于它们在本发明的特定实施例中实现的应用来识别在这里描述的程序。但是,应该认可,在这里命名的任何特定程序仅为了方便而使用,且因此本发明不应该限于仅在由这种命名识别和/或暗示的任何特定应用中使用。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。