首页> 中国专利> 平台管理(PLM)信息模型中的虚拟化支持

平台管理(PLM)信息模型中的虚拟化支持

摘要

本文描述了使用带有虚拟化支持的信息模型,在虚拟机器系统中针对硬件元件(HE)的故障进行保护的方法和系统。基于信息模型,所述方法引导虚拟机监视器(VMM)、虚拟机(VM)和操作系统(OS)。信息模型包括对象图,所述对象图通过所述图的对象之间的父子关系来表示硬件元件(HE)、VMM、VM和OS之间配置的关系。所述对象图包括:域对象、HE对象、VMM对象、VM对象和OS对象。迁移使能的类型的VM对象表示VM中可在VMM之间迁移的那些VM。基于迁移使能的类型的VM对象和VMM对象之间的运行时关联,所述方法识别哪些迁移使能的VM由相同HE主管并且因此易于受该相同HE的硬件故障的损害。

著录项

  • 公开/公告号CN103502938A

    专利类型发明专利

  • 公开/公告日2014-01-08

    原文格式PDF

  • 申请/专利权人 瑞典爱立信有限公司;

    申请/专利号CN201280022348.X

  • 发明设计人 M.特勒;

    申请日2012-03-06

  • 分类号G06F9/455;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人姜冰

  • 地址 瑞典斯德哥尔摩

  • 入库时间 2024-02-19 21:31:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-15

    授权

    授权

  • 2014-03-12

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20120306

    实质审查的生效

  • 2014-01-08

    公开

    公开

说明书

技术领域

本发明的实施例涉及计算机系统,并且更具体地说,涉及由服务可用性(SA)论坛开发的平台管理(PLM)服务。

背景技术

服务可用性(SA)论坛已开发标准接口以使得能够使用现成的平台、中间件和服务应用,输送高度可用的运营商级系统。标准的实现允许软件开发商集中于应用代码和提供任务关键型服务以及最小化对定制的高可用性编程的需要。

图1是由SA论坛高可用(HA)系统定义的概念体系结构栈。SA论坛已开发应用接口规范(AIS) 120以提供在HA应用110与HA中间件130之间的标准化接口,由此使它们相互独立。HA应用110和HA中间件130在操作系统140上运行并且由硬件平台150主管(host)。服务连续性仅通过栈中所有组件的协作才实现。SA论坛开发的标准的描述能够在Service Availability Forum: Overview. (SAI-Overview-B.05.03,2010年2月)中被找到。

SA论坛也具有作为AIS 120一部分的标准化平台管理。平台管理(PLM)服务125管理HA系统中的平台实体。在Service Availability Forum: AIS Platform Management Service(SAI-AIS-PLM-A.01.02, 2009年11月)中描述了用于PLM服务125的规范。平台实体包括硬件元件(HE)和系统软件实体。这些系统软件实体称为“执行环境(EE)”,它们包括操作系统(OS)、虚拟机(VM)和虚拟机监视器(VMM)(也称为超级监视者)。平台实体在信息模型中表示为被管理对象,它们被组织成树状结构。信息模型的树状结构暗示表示的实体的命名和在它们之间的相关性。

信息模型用作系统管理与平台实体之间的管理接口。通过信息模型,信息管理能够配置平台实体,并获得配置的平台的运行时状态。系统管理也能够发布在被管理对象上的管理操作以执行表示的平台实体的管理控制。

发明内容

一种方法在虚拟机系统中被实现以针对硬件元件(HE)的故障进行保护。HE要主管虚拟机监视器(VMM)、虚拟机(VM)和操作系统(OS)。每个VMM管理一个或多个VM,并且每个VM运行OS之一。该方法包括以下步骤:基于虚拟机系统的信息模型,引导每个HE上的VMM之一、一个或多个VM及每个VM上的OS之一。信息模型包括对象图,所述对象图通过该图的对象之间的父子关系来表示HE、VMM、VM和OS之间配置的关系。可分辨名称(DN)被存储在所述图对象的每个对象中,并且所述对象中作为图中另一对象之子的那些对象包括其父对象的DN,由此识别所述图的对象的父子关系。所述对象图包括:表示虚拟机系统的域对象、表示HE并且是域对象之子的HE对象、各自表示VMM之一并且各自是HE对象之一之子的VMM对象、各自表示VM之一的VM对象及各自表示OS之一并且各自是VM对象之一之子或域对象之子的OS对象。一个或多个VM对象的集合属于迁移使能的类型并且表示所述VM中可在VMM之间迁移的那些VM,以及迁移使能的类型的VM对象是域对象之子而不是VMM对象之子,使得它们的DN不随着在VMM之间的迁移而更改。引导的步骤包括以下步骤:为VM对象的所述集合表示的每个VM确定指示哪个VMM当前要管理该VM的当前管理关系;以及更新VM对象的所述集合的每个VM对象以将确定的当前管理关系反映为运行时关联。该方法还包括以下步骤:基于运行时关联,识别VM的所述集合的哪些VM由HE中的相同HE主管并且因此易于受该相同HE的硬件故障的损害。

一种计算机系统适用于针对虚拟机系统中硬件元件(HE)的故障进行保护。HE要主管虚拟机监视器(VMM)、虚拟机(VM)和操作系统(OS)。每个VMM管理一个或多个VM,并且每个VM运行OS之一。该计算机系统包括:处理器,耦合到非暂时性计算机可读存储媒体,所述非暂时性计算机可读存储媒体在其中已经存储了平台管理(PLM)服务模块,所述模块适用于:促使虚拟机系统基于信息模型,引导每个HE上的VMM之一、一个或多个VM及每个VM上的OS之一。信息模型包括对象图,所述对象图通过在所述图的对象之间的父子关系来表在HE、VMM、VM和OS之间配置的关系。可分辨名称(DN)被存储在所述图对象的每个对象中,并且所述对象中作为图中另一对象之子的那些对象包括其父对象的DN,由此识别所述图的对象的父子关系。所述对象图包括:表示虚拟机系统的域对象、表示HE并且是域对象之子的HE对象、各自表示VMM之一并且各自是HE对象之一之子的VMM对象、各自表示VM之一的VM对象及各自表示OS之一并且各自是VM对象之一之子或域对象之子的OS对象。一个或多个VM对象的集合属于迁移使能的类型并且表示所述VM中可在VMM之间迁移的那些VM,以及迁移使能的类型的VM对象是域对象之子而不是VMM对象之子,使得它们的DN不随着在VMM之间的迁移而更改。PLM服务模块还适用于:为VM对象的所述集合表示的每个VM确定指示哪个VMM当前要管理该VM的当前管理关系;以及更新VM对象的所述集合的每个VM对象以将确定的当前管理关系反映为运行时关联。信息模型允许可用性管理模块基于运行时关联,识别VM的所述集合的哪些VM由HE中的相同HE主管并且因此易于受该相同HE的硬件故障的损害。

一种非暂时性计算机可读存储媒体包括指令,所述指令在由计算机系统执行时促使计算机系统执行用于针对硬件元件(HE)的故障进行保护的虚拟机系统的方法。HE要主管虚拟机监视器(VMM)、虚拟机(VM)和操作系统(OS)。每个VMM管理一个或多个VM,并且每个VM运行OS之一。所述方法包括以下步骤:基于虚拟机系统的信息模型,引导每个HE上的VMM之一、一个或多个VM及在每个VM上的OS之一。信息模型包括对象图,所述对象图通过所述图的对象之间的父子关系来表示HE、VMM、VM和OS之间配置的关系。可分辨名称(DN)被存储在所述图对象的每个对象中,并且所述对象中作为所述图中另一对象之子的那些对象包括其父对象的DN,由此识别所述图的对象的父子关系。所述对象图包括:表示虚拟机系统的域对象、表示HE并且是域对象之子的HE对象、各自表示VMM之一并且各自是HE对象之一之子的VMM对象、各自表示VM之一的VM对象及各自表示OS之一并且各自是VM对象之一之子或域对象之子的OS对象。一个或多个VM对象的集合属于迁移使能的类型并且表示所述VM中可在VMM之间迁移的那些VM,以及迁移使能的类型的VM对象是域对象之子而不是VMM对象之子,使得它们的DN不随着在VMM之间的迁移而更改。引导的步骤包括以下步骤:为VM对象的所述集合表示的每个VM确定指示哪个VMM当前要管理该VM的当前管理关系;以及更新VM对象的所述集合的每个VM对象以将确定的当前管理关系反映为运行时关联。该方法还包括以下步骤:基于运行时关联,识别VM的所述集合的哪些VM由HE中的相同HE主管并且因此易于受该相同HE的硬件故障的损害。

附图说明

本发明通过示例且非限制的方式示出,并且在结合图形考虑时参照以下详细描述能够被更全面地理解,其中:

图1是根据现有技术使用平台管理(PLM)服务的高可用(HA)系统的示意图;

图2示出其中可实现本发明的实施例的虚拟机系统。

图3是根据本发明的实施例的表示带有虚拟化支持的信息模型的统一建模语言(UML)类图。

图4是示出根据本发明的一个实施例的使用带有虚拟化支持的信息模型的方法的流程图。

图5是根据本发明的实施例的带有虚拟化支持的信息模型的初始PLM配置的示意图。

图6是示出根据本发明的实施例的基于带有虚拟化支持的信息模型启动虚拟机系统的方法的流程图。

图7是根据本发明的实施例的在虚拟机系统启动时带有虚拟化支持的信息模型的示意图。

图8是示出根据本发明的实施例的基于带有虚拟化支持的信息模型迁移虚拟机(VM)的方法的流程图。

图9是根据本发明的实施例的在VM迁移后带有虚拟化支持的信息模型的示意图。

图10示出根据本发明的实施例的计算机系统的示范形式的机器的图示。

具体实施方式

在下面的描述中,陈述了许多特定细节。然而,要理解的是,实践本发明的实施例可无需这些特定细节。在其它情况下,公知的电路、结构和技术未详细显示以免混淆对此描述的理解。然而,本领域的技术人员将领会到,可无需此类特定细节而实践本发明。通过包括的描述,本领域技术人员将能够在不进行不当实验的情况下实现适当的功能性。

SA论坛开发的PLM规范未明确定义信息模型能够如何用于表示虚拟机系统中的平台实体。在高可用虚拟机系统中,VM迁移经常用作在冗余节点之间的故障转移(failover)或转换机制,并且备选操作系统经常用于回退情况或运行诊断。当前信息模型未定义如何处理VM迁移,并且不允许表示在给定硬件元件或给定虚拟机上可引导的备选操作系统。

此外,根据PLM规范,通过遵循目录轻量级目录访问协议(LDAP)命名惯例(如RFC 4510中指定的)的对象名称识别信息模型中的每个对象。也就是说,对象的名称是对象的相对可分辨名称(RDN)加上跟随的信息模型中其父对象的可分辨名称(DN)。如果VM对象(表示VM)是信息模型中VMM对象(表示VMM)之子,则VM在VMM之间的迁移将更改VM对象之父,并且因此也更改VM对象的对象名称。对象名称的更改违反信息模型的基本要求之一,因为如果对象在运行时期间更改其名称,则系统管理将不能跟踪对象的状态。如果配置成映射在特定EE(表示VM中执行的OS)上的相关实体(例如,集群成员关系节点)进行名称更改,则系统管理将也需要进行配置更改,这比它所需要的更具破坏性得多。

本发明的实施例提供用于支持平台管理(PLM)信息模型中虚拟化的方法和系统。根据本发明的实施例,带有虚拟化支持的信息模型包括执行环境(EE)类,如PlmVMM类、PlmVM类和PlmOS类。作为PLM域之子的VM对象(PlmVM类的实例)具有在对应VM迁移时不更改的名称。VM对象也具有运行时属性,该属性指示对应VM当前在运行时在何处被主管。在一个实施例中,运行时属性识别当前在管理VM的VMM。表示管理VMM的VMM对象包含允许系统管理确定哪个硬件元件(HE)在主管管理VMM的信息。因此,在HE与VM之间的映射能够在任何给定时间被确定,而不考虑VM迁移。哪个HE主管哪些VM的信息有助于可用性管理(例如,如在Service Availability Forum: Overview(SAI-Overview-B.05.03, 2010年2月)中所述的可用性管理框架(AMF)),因为它允许评估HE故障或终止的影响。例如,如果冗余软件实体由相同件的硬件来主管,则任何硬件故障可禁用所有软件实体。因此,信息模型能够用于评定虚拟机系统的易损性并且针对硬件故障来保护软件实体。

如在本发明的某些实施例中使用的带有虚拟化支持的信息模型允许在PlmVMM类、PlmVM类和PlmOS类的对象之间相对于其属性、关系和管理操作进行区分。例如,在一个实施例中,迁移操作只适用于VM对象并且不适用于其它EE对象。VM要迁移时,VM要迁移到的目标VMM能够基于配置偏好来确定,或者可选的是,能够是由迁移操作指定的特定目标VMM。作为另一示例,OS实例不处理其它EE对象的生命周期,而VMM能够自行终止或者被要求终止其主管的VM之一。能够使用PlmOS类作为示例进一步解释功能分离。PlmOS类具有独立OS的功能性,并且无其它功能性。相应地,PlmOS类能够主管应用,但不管理在VM中封装的其它OS实例(像VMM将做的一样)。因此,不能将PlmVM实例作为子而附连到PlmOS实例,不能要求PlmOS实例将PlmVM实例迁移到他处或者PlmOS实例自行迁移。这些操作均不受支持。PlmOS实例只能自行停止和重新启动。此功能分离实行信息模型的正确结构化,并且允许系统管理应用正确操作。由于此功能分离,如果给定OS(例如,Solaris)能够执行所有以下操作:管理其它OS实例,主管应用等,则此OS需要被映射到多个EE对象,每个支持的功能性一个对象。例如,Solaris分割区0将同时映射到PlmVMM实例、PlmVM实例和PlmOS实例中。其它Solaris分割区可映射到PlmVM实例和PlmOS实例。虽然PLM实现需要知道这些映射,但系统管理只需要知道如果它具有PlmOS实例,则它只能够开始、停止和重新引导OS(由PlmOS实例表示)。如果PlmVM实例也存在,则PlmOS实例能够由PlmVM实例强制停止而不影响其它VM。因此,功能分离正确地表示可用管理操作,并且去除相对于哪些特定OS、VM或VMM在系统下运行的猜测工作。

除上面解释的功能分离外,带有虚拟化支持的信息模型也提供语义分离。信息模型允许为不同EE类之间类似的父子关系使用不同语义。即,统一建模语言(UML)图中合成关系的解释取决于父对象类。例如,如果VMM和多个VM处于合成关系,则这意味着VMM主管所有VM,并且VM能够在系统中同时存在。然而,如果VM和OS的集合处于类似的合成关系,则OS是能够在VM上引导的备选OS。此外,HE和OS(或VMM)的集合也能够处于类似的合成关系,这意味着OS(或VMM)的集合是能够在HE上引导的备选OS(或VMM)。

图2示出虚拟机系统200的一实施例,其中部署了平台管理(PLM)服务模块250以管理虚拟机系统200的平台实体。虚拟机系统200包括多个服务器计算机215,每个服务器计算机主管一个或多个虚拟机(VM) 230。每个VM 230运行可以相互相同或不同的客户操作系统(OS) 240。计算机系统100也包括VM监视器(VMM) 225(也称为超级监视者),监视器虚拟化用于VM 230的底层硬件平台(例如,服务器计算机215的处理器、存储器、I/O等)。

在一个实施例中,虚拟机系统200具有网络260的接入权。网络260可以是私有网络(例如,局域网(LAN)、宽域网(WAN)、内部网等)或公共网络(例如,因特网)。

在图2的实施例中,主管VM 230的服务器计算机215之一也主管PLM服务模块250和可用性管理模块251。在一备选实施例,PLM服务模块250和可用性管理模块251可位于不主管任何VM 230的一个或多个服务器计算机215。在仍有的另一实施例中,PLM服务模块250和可用性管理模块251可位于不同服务器计算机215上。此外,在图2的实施例中,PLM服务模块250是主机OS 220的一部分。在一备选实施例中,PLM服务模块250可以是在一个或多个VM 230上运行的一个或多个客户OS 240的一部分。在一些实施例中,PLM服务模块250和可用性管理模块251可分布于多个实体。

根据本发明的一实施例,PLM服务模块250维护信息模型280。信息模型280包括多个对象,这些对象定义平台实体的配置,并且描述平台实体的运行时状态。平台实体可以是硬件元件(HE)(例如,服务器计算机215)或执行环境(EE)(例如,客户OS 240、主机OS 220、VM 230或VMM 225)。

在一个实施例中,初始配置可由系统管理员创建和存储为信息模型280。在任何平台实体被完全引导并且变得完全运转之前,可创建初始配置(例如,一些平台实体可被部分引导以便PLM服务模块250启动和执行操作)。稍后在虚拟机系统200的启动时间,PLM服务模块250读取信息模型280的初始配置。基于初始配置,PLM服务模块250引导虚拟机系统200的适当平台实体(VMM 225、VM 23-和OS 220与240),并且更新信息模型280以包括运行时关联。运行时关联指示哪些VMM 225在管理哪些VM 230。从信息模型280中,可用性管理模块251能够在运行时期间的任何给定点识别哪些VM 240和在这些VM 230上运行的软件(例如,OS 240)由相同HE来主管,并且因此易受该HE的硬件故障的损害。

图3是用于虚拟机系统的信息模型的类图的统一建模语言(UML)表示的一实施例。信息模型扩展标准EE类(例如,SaPlmEE类350)以包括专用EE类,如PlmVMM类360、PlmVM类370和PlmOS类380。HE对象、VMM对象、VM对象和OS对象分别是SaPlmHE类355、PlmVMM类360、PlmVM类370和PlmOS类380的实例。HE对象、VMM对象、VM对象和OS对象中的每个对象是虚拟机系统中分别表示HE、VMM、VM和OS的“平台实体对象”。这些对象形成父子关系的树,树的根是域对象(类SaPlmDomain 300的实例)。(图2的)PLM服务模块250从初始配置中读取HE对象、VMM对象、VM对象和OS对象。PLM服务模块250通过硬件平台接口(HPI,如Service Availability Forum: Overview (SAI-Overview-B.05.03, 2010年2月)中所述的)发现的硬件映射HE对象,基于此,它通过适当的运行时属性更新信息模型。PLM服务模块250随后如VMM对象、VM对象和OS对象所述启动EE实体,或者验证自动启动的EE实体它们符合信息模型。如果PLM服务模块250检测到某个部分与信息模型不同,则它将尝试纠正差别(例如,通过重新引导或其它纠正措施)。如果PLM服务模块250检测到某个部分不起作用,则它将尝试隔离故障实体,并且更新信息模型以反映当前运行时状态(例如,如果有任何备选OS,则PLM服务模块250可引导备选OS替代故障OS以便运行例如诊断)。

在一个实施例中,VM对象能够归类到迁移使能的类型和静态类型中。迁移使能的类型和VM对象(“迁移使能的VM对象”)表示可从一个VMM迁移到另一VMM的VM。静态类型的VM对象(“静态VM对象”)表示不能迁移的VM。VM对象是否为迁移使能的取决于树中的哪个对象是该VM对象之父。在一个实施例中,定义了(由链接335示出)迁移使能的平台实体对象(例如,迁移使能的VM对象)之父是域对象。也定义了(由链接330示出)静态VM对象之父是VMM对象。除非另有指定,否则术语“子”指是其“父”的直接后代的对象;也就是说,子与父对象之间不存在其它对象。树中对象之间父子关系存储在系统的初始配置中,并且通过对象的可分辨名称(DN)表明。在虚拟机系统启动时间,在迁移使能的VM对象与VMM对象之间创建运行时关联(由链接320示出),指示哪个VMM当前在管理迁移使能的VM对象表示的VM。运行时关联也能够为静态VM对象创建以显示其管理VMM。因此,信息模型不但表示基于DN的树结构,而且表示其它关联;并且因此这些一起形成了图。运行时关联能够在运行时期间的任何给定点进行更新。在一个实施例中,运行时关联能够记录在每个VM对象的currHostVMMs属性371中,这指示哪个VMM当前在管理VM对象表示的VM。在一些实施例中,此运行时关联能够定义为双向关联,花前月下将在VMM对象中示为阵列属性(其每个元件表示与被管理VM之一的关联),由此明确显示由VMM管理的VM。

在一个实施例中,从SaPlmHE类355、PlmVMM类360、PlmVM类370和PlmOS类380创建的每个对象能够通过对象名称识别,对象名称也是对象的可分辨名称(DN)。对象名称包括对象的相对可分辨名称(RDN)和对象之父的DN。迁移使能的VM对象(或通常的任何平台实体对象)需要驻留在其迁移的范围的根部。例如,此类平台实体可表示能够在机箱(chassis)内四处移动但不能移到机箱外的热交换板。因此,机箱将是这些板而不是机箱内的插槽之父。由于此类平台实体对象是域对象(或迁移范围对象)之子,因此,其对象名称不随着迁移而更改。另一方面,由于静态VM是VMM对象之子,因此,静态VM对象的对象名称包括其父VMM对象的DN。如果静态VM对象表示的VM迁移到不同的VMM,则静诚VM对象的对象名称将更改。因此,在本发明的一些实施例中不允许此类迁移。

父子关系也能够在其它类(即,SaPlmHE类355、PlmVMM类360和PlmOS类380)的对象之间定义。在一个实施例中,SaPlmDomain类300的域对象能够是任何HE对象(属于SaPlmHE类355)和EE对象(属于SaPlmEE类350)之父。EE对象能够是VMM对象、VM对象和OS对象中的任何一项。除域对象外,某些实施例允许仅HE对象作为VMM对象之父,以及仅VMM对象作为VM对象之父。此外,除域对象外,HE对象或VM对象可作为OS对象之父。

图3的实施例还将标准SaPlmEE 350 - SaPlmEE 350关联定义成以下两种关联:(1)在VMM与VM之间,能够(由链接330)指定同时在VMM中运行的对等VM;及(2)在VM与OS之间,也能够(由链接340)指定用于VM的备选OS。

图3的实施例另外还将标准SaPlmHE 355 - SaPlmEE 350关联改进成以下两种关联:(1)在HE与VMM之间,能够(由链接310)指定用于HE的备选VMM;及(2)在HE与OS之间,也能够(由链接345)指定用于HE的备选OS。

在一个实施例中,能够在给定HE上引导的这些备选VMM和OS每个指派有引导等级。VMM的引导等级指定在给定HE上VMM的引导顺序,并且OS的引导等级指定在给定VM(如果OS要在VM上运行)或给定HE(如果OS要直接在HE上运行)上OS的引导顺序。引导等级是在配置时间指派的配置属性(用于VMM对象的bootRank属性363和用于OS对象的bootRank属性381)。在一个实施例中,能够在给定HE上引导的备选VMM被排序(例如,引导等级=“1”、“2”、“3”等),并且这些引导等级形成单个有序列表。PLM服务模块250选择在用于给定HE的备选VMM中具有最高引导等级(例如,“1”,它具有最低bootRank值,并且在有序列表中排在第一)的VMM。如果带有最高引导等级的VMM出现故障,则PLM服务模块250将尝试从下一最高引导等级VMM(例如,“2”,它在有序列表中被排序紧邻于第一)引导,并且自动运行诊断。类似地,能够在给定VM或给定HE上备选OS也被排序,并且这些引导等级形成单一有序列表。PLM服务模块250能够选择在备选OS中具有最高引导等级的OS。如果带有最高引导等级的OS出现故障,则PLM服务模块250将尝试从下一最高引导等级OS引导并且自动运行诊断。

在一个实施例中,每个VMM对象能够配置成包括maxNumVMs属性362,该属性定义由VMM对象表示的VMM的容量(即,能够由VMM主管的最大数量的VM)。在自动处理VM迁移时,出现了容量的问题。VMM由于其自己和/或其主管HE的容量限制而不可主管无限数量的VM。将大量VM迁移到一个VMM可导致VMM的资源耗尽,并且带来其出现故障的风险。因此,在多个VM需要被迁移时(例如,由于硬件故障,因此,所有主管的VM需要被移动),重要的是并非所有VM迁移到相同VMM。maxNumVMs属性362定义VMM能够管理的最大数量的VM。在一个实施例中,最大数量的VM包括可迁移的那些VM和不可迁移的那些VM。通过控制maxNumVMs属性362,PLM服务模块250能够控制系统中VM的分布。降低或增大maxNumVMs属性360的值反映了强加负载更改,并且允许VM的分布自动更改。控制VM的分布能够有益于例如电源管理,其中,HE(及其VMM)支持小的工作负载,并且能够关闭以腾出硬件装置。

在一个实施例中,每个VMM对象也包括等级(rank)属性361,该属性定义在系统中所有VMM之间对应VMM的等级。在PLM服务模块250选择VM要迁移到的目的VMM时,此等级属性361能够在自动迁移中使用。在一个实施例中,VM将迁移到最高等级VMM(例如,由具有等于“1”的等级属性361的VMM对象表示的VMM),直至此VMM充满其容量(maxNumVMs属性362所定义)。如果最高等级VMM已充满其容量,则VM能够迁移到下一最高等级VMM,直至该VMM的容量也充满。

图4是示出根据本发明的实施例,用于使用带有虚拟化支持的信息模型管理虚拟机系统的平台实体的方法400的流程图。方法400可由图2的虚拟机系统200执行,图2的每个服务器计算机215可具有图10的计算机系统1000中示出的硬件,计算机系统可包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上运行的指令)或其组合。

参照图4,在一个实施例中,在虚拟机系统200基于虚拟机系统的信息模型引导每个HE上的VMM之一、一个或多个VM及在每个VM上的OS之一时,方法400在虚拟机系统启动时间开始。虚拟机系统的信息模型包括对象图,所述对象图通过所述图的对象之间的父子关系来表示HE、VMM、VM与OS之间配置的关系。可分辨名称(DN)被存储在所述图对象的每个对象中,并且作为图中另一对象之子的那些对象包括其父对象的DN,由此识别图的对象的父子关系。对象图包括:1)表示虚拟机系统的域对象、2)表示HE并且是域对象之子的HE对象、3)各自表示VMM之一并且各自是HE对象之一之子的VMM对象、4)各自表示VM之一的VM对象及5)各自表示OS之一并且各自是VM对象之一之子或域对象之子的OS对象。一个或多个VM对象的集合属于迁移使能的类型,并且表示可在VMM之间迁移的那些VM。迁移使能的类型的VM对象是域对象之子,而不是VMM对象之子,使得其DN不随着在VMM之间的迁移而更改(框410)。

在引导(框410)时,虚拟机系统200还为VM对象的集合表示的每个VM确定指示哪个VMM当前要管理该VM的当前管理关系(框420),以及更新VM对象的集合的每个VM对象以将确定的当前管理关系反映为运行时关联(框425)。

在本发明的一个实施例中,虚拟机系统200(例如,可用性管理模块251)能够基于运行时关联识别哪些HE在主管哪些迁移使能的VM,并且在包括在静态VM中运行时关联的实施例中,基于运行时关联识别哪些HE在主管哪些静态VM。因此,虚拟机系统200(例如,可用性管理模块251)能够确定哪些VM(迁移使能的和静态的)由相同HE来主管,并且因此易于受相同HE的硬件故障的损害(框430)。在本发明的备选实施例中,虚拟机系统200(例如,可用性管理模块251)只关注哪些迁移使能的VM在由相同HE来主管,并且因此易于受相同HE的硬件故障的损害(框430)。

图5示出根据本发明的一个实施例的带有虚拟化支持的信息模型的示例初始配置。在此示例中,VMM对象表示VMM(VMM1、VMM2和VMM3),HE对象表示HE(HE1和HE2),VM对象表示VM(VM1和VM2),以及OS对象表示OS(OS1、OS2和OS3)。为了讨论的简明,这些对象每个具有相对可分辨名称(RDN),该名称也用于指该对象表示的平台实体。例如,“OS1”是OS对象540的RDN,并且也用于指OS对象540表示的OS。在引导或激活虚拟机系统中的任何平台实体之前,创建初始配置。

在此初始配置中,VMM1配置成在HE1上被主管。VMM2和VMM3是配置成在HE2上主管的备选VMM,但在任何给定时间只能主管其中之一。HE2应主管VMM2还是VMM3能够在虚拟机系统启动时间从表示VMM2和VMM3的VMM对象的bootRank属性值确定。两个VM(VM1和VM2)是迁移使能的,因为它们对应的VM对象配置成是PLM域的域对象510之子。VM1配置成引导OS1,并且VM2配置成引导OS2或OS3。VM2应引导OS2还是OS3能够在虚拟机系统启动时间从表示OS2和OS3的OS对象的bootRank属性值确定。在配置中,VM1和VM2与任何VMM无关联。HE对象的运行时属性(saPlmHEPresenceState)显示无HE在活动状态,并且因此,无EE(即,VMM、VM、OS)在此点能够被实例化。对象在对象表示的平台实体被引导时被实例化。

在此救命列中,在初始配置中的每个对象能够通过对象名称识别,对象名称也是对象的DN。如上参照图3所述,对象的DN是对象的RDN加上跟随的其父对象的DN。例如,OS对象540的DN是DN = OS1.VM1.PLM,这是其RDN“OS1”加上跟随的其父的DN“VM1.PLM”。父的DN(例如,“VM1.PLM”)指示该对象的血统(世系)。域对象510能够通过DN = PLM来识别。具有HE2的RDN并且是域对象510之子的HE对象550能够通过DN = HE2.PLM来识别。具有VMM3的RDN并且是HE对象550之子的VMM对象520能够通过DN = VMM3.HE2.PLM来识别。具有VM1的RDN并且是域对象510之子的VM对象530能够通过DN = VM1.PLM来识别。由于VM对象530是域对象510之子,并且VM对象属于迁移使能的类型,并且表示可迁移的VM。

图6是示出根据本发明的实施例的基于带有虚拟化支持的信息模型启动虚拟机系统的方法的流程图。方法600可由图2的PLM服务器模块250执行,该模块由图10的计算机系统1000执行,计算机系统可包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上运行的指令)或其组合。

参照图6,在一个实施例中,方法600在PLM服务模块250接收启动虚拟机系统的请求(例如,来自系统管理)时开始(框610)。PLM服务模块250的响应是激活HE(框620),并且促使每个HE基于VMM的引导等级和初始配置来引导VMM(框630)。例如,HE1引导VMM1,因为HE1只有一个配置的VMM。HE2使用两个配置的VMM(VMM2和VMM3)的bootRank属性确定要引导哪个VMM。由于VMM2具有比VMM3更高的引导等级(即,bootRank属性的更低值),因此,选择在HE2上引导VMM2。

随后,PLM服务模块250确定在已引导的VMM上VM的分布(框640),例如,在VMM2上的VM1和在VMM1上的VM2。确定可基于每个VMM的容量或受其限制(例如,VMM对象的maxNumVMs属性)。PLM服务模块250随后促使VMM根据确定的分布引导其VM(框650)。随后,每个VM基于OS的引导等级和初始配置来引导OS(框660);例如,VM1引导OS1,因为VM1只有一个配置的OS。VM2引导OS2而不是OS3,因为OS2具有比OS3更高的引导等级(即,bootRank属性的更低值)。在一种情况中,引导OS2的尝试失败。因此,VM2转而引导OS3。在VMM、VM和OS的引导后,PLM服务模块250更新信息模型以反映对应对象的当前状态。具体而言,在管理VMM的VMM对象与VM1和VM2的迁移使能的类型VM对象之间形成运行时关联。在一个实施例中,运行时关联由VM1和VM2的运行时属性“currHostVMM”提供,该属性分别被赋予“VMM2”和“VMM1”的值。

在一个实施例中,框630-660的操作是图4的框410中所示操作的一部分,并且包括在图4的框410中未描述的另外细节。在一个实施例中,在框630-660的操作后,方法600继续到图4的框430。

图7示出根据本发明的一个实施例的在虚拟机系统启动后具有图5的初始配置的信息模型的示例。在此信息模型中,HE1和HE2均在活动存在状态。VMM1和VMM已被实例化(在VMM1和VMM2分别在HE1和HE2上已引导时),而VMM3保持未实例化。VM1和VM2均被实例化,指示VM1由VMM2管理,并且 VM2由VMM1管理。VM对象的实例化不更改其父关联,也不更改其对象名称(如从对象520-550的DN能够看到的)。OS1和OS3已被实例化,指示OS1在VM1上运行,并且OS3在VM2上运行。OS2被禁用并且保持未实例化。

图7的信息模型允许系统管理了解VM如何与不同VMM及其主管HE相关联。信息模型指示即使HE之一出现故障,另一HE还能够提供所需服务。因此,在OS1和OS3上运行的冗余实体针对硬件故障而受到保护。

图8是示出根据本发明的一个实施例的基于带有虚拟化支持的信息模型迁移VM的方法800的流程图。方法800可由图2的PLM服务器模块250执行,该模块使用当前信息模型(例如,如果此迁移是自虚拟机系统启动以来的第一次,则这将是图7的信息模块)并且由图10的计算机系统1000执行,计算机系统可包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上运行的指令)或其组合。

参照图8,在一个实施例中,方法800在PLM服务模块250接收将VM1从VMM2迁移到不同VMM的触发时开始(框810)。触发VM的迁移有多种原因。例如,触发可在系统中有更轻负载时被接收,并且负载能够集中在更少的VMM和HE上,使得其它VMM和HE能够被关闭以便节能。在系统中的负载增大到高于阈值并且过载变成问题时,可再次迁移VM。此时,能够先将一个或多个HE开启,并且随后能够将VM迁移到那些HE。VM迁移也能够由于维护而被启动:例如,管理员(或等效者)可能想关闭一些HE以便能够更换它们。在一些系统中,迁移能够由故障转移造成(例如,在一个HE出现故障,并且在故障HE上运行的VM被迁移到另一HE时)。在一个实施例中,能够基于VMM等级做出关闭哪个HE的选择。在图7的示例中,由于VMM1是优选的(具有比VMM3更高的等级),因此,其主机HE1保持在活动状态,并且HE2要被关闭。关闭HE2意味着VMM2将随HE2一起关闭。因此,VM1需要迁移到VMM1以允许OS1继续在VM1内运行。同时,VM2及其OS3也保持在VMM1上运行。

在一备选实施例中,能够基于HE对象的等级做出关闭哪个HE的选择。在此备选实施例中,每个HE对象具有指示在系统中所有HE之间其等级的等级属性。可基于HE的硬件故障指派等级(例如,功耗、可靠性等)。

在一个实施例中,PLM服务模块250基于VMM对象的等级属性自动选择优选VMM(框820)。例如,优选VMM可以是尚未超过其maxNumVMs容量的所有实例化的VMM中最高等级的VMM。在一备选实施例中,触发可指示VM1应迁移到的目标VMM。一旦目标VMM(例如,VMM1)被确定,PLM服务模块250便命令VM1从其当前VMM2迁移到目标VMM(框830)。在迁移后,假设VMM2未管理需要或能够迁移的任何其它VM,则基于图7的启动信息模型,停止VMM2(框840),并且停用(inactivate)HE2(其主管VMM2)(框850)。在VMM2当前仍在管理其它VM的备选实施例中,VM1的迁移不造成VMM2停止和HE2被停用。PLM服务50随后更新信息模型以显示如图9所示迁移后的状态(框860)。

图9示出根据本发明的一个实施例的在VM迁移后信息模型的示例。在此信息模型中,HE1保持在活动存在状态,而HE2已变成不活动状态。VMM1保持实例化,但VMM2和VMM3均未被实例化。VM1和VM2均由VMM1主管。OS1在VM1中被实例化,并且OS3保持在VM2中被实例化。

应注意的是,VM1的迁移不更改其父关联,并且因此VM对象530的对象名称('VM1.PLM')保持与迁移前相同。信息模型中的其它对象其对象名称均没有任何更改。由于OS1和OS3均由HE1主管,因此,HE1变成单点故障。因此,在OS1和OS3上运行的冗余软件实体不再安全,因为它们没有针对HE1的硬件故障受到保护。在发现冗余软件实体由相同HE主管时,不同实施例可执行不同动作。例如,此信息可向管理员显示以决定它们是否要再次迁移VM以避免单点故障。管理员可能需要权衡什么更昂贵:通过关闭HE能够节省的功率或故障能够造成的损坏。作为另一示例,图2的可用性管理模块251可自动决定重新分发备用指派以避免单点故障,例如,通过自动选择不同VMM作为用于在运行冗余软件实体的VM的迁移目的地。在一个实施例中,迁移能够从在PLM级使用管理操作的更高级(例如,外部“电源管理器”模块或服务)触发。此更高级服务能够使用信息模型中的等级来指定适当的VMM作为迁移目的地。如本发明的实施例提供的类之间的功能分离允许写入此类服务。

图10示出计算机系统1000的示范形式的机器的图示,该系统内可执行用于促使机器执行本文中讨论的任何一种或多种方法的指令集。计算机系统1000可以是服务器计算机或任何机器,机器能够(按顺序或以其它方式)执行指定要由该机器采取的动作的指令集。此外,虽然只示出单个机器,但术语“机器”也应视为包括单独或联合执行指令集(或多个指令集)以执行本文中所述的任何一个或多个方法的任何机器(例如,计算机)的汇集。在一个实施例中,计算机系统1000表示图2的服务器计算机215之一。在一个实施例中,图2的虚拟机系统200中的每个服务器计算机215能够由计算机系统1000表示,但一些计算机系统1000可不执行图2的PLM服务模块250的功能,并且因此可不存储PLM逻辑1022。

示范计算机系统1000包括耦合到诸如以下所示计算机可读存储媒体的处理装置1002:主存储器1004(例如,只读存储器(ROM)、闪存存储器、诸如同步DRAM (SDRAM)或Rambus DRAM (RDRAM)等动态随机存取存储器(DRAM)等)、静态存储器1006(例如,闪存存储器、静态随机存取存储器(SRAM)等)及副存储器1018(例如,数据存储装置),这些存储器经总线1030相互进行通信。计算机可读存储媒体也可包括任何类型的盘(包括软盘、光盘、CD-ROM和磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EPROM、EEPROM、磁盘存储媒体、光存储媒体、闪存存储器装置或适合用于存储电子指令的任何类型的媒体。

处理装置1002表示一个或多个通用处理装置,如微处理器、中央处理单元(CPU)、多核系统或诸如此类。更具体地说,处理装置1002可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现其它指令集的处理器或实现指令集的组合的处理器。处理装置1002也可以是一个或多个专用处理装置,如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或诸如此类。在一个实施例中,处理装置1002适用于执行PLM逻辑1022以便执行图2的PLM服务模块250的操作和步骤。在另一实施例中,计算机系统1000的处理装置1002适用于执行图2的虚拟机系统200的操作和步骤。

计算机系统1000可还包括网络接口装置1008。计算机系统1000也可包括视频显示单元1010(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入装置1012(例如,键盘)、光标控制装置1014(例如,鼠标)和信号生成装置1016(例如,扬声器)。

在一个实施例中,PLM逻辑1022可存储在副存储器1018和/或静态存储器1066的非暂时性计算机可读存储媒体中。PLM逻辑1022也可在其由计算机系统1000执行期间完全或至少部分驻留在主存储器1004内和/或处理装置1002内。

在一个实施例中,图2的信息模型280也可存储在一个或多个计算机系统1000的处理装置1002、主存储器1004、静态存储器1006和副存储器1018任何一项中的非暂时性计算机可读存储媒体中。信息模型280和PLM逻辑1022可存储在相同计算机系统1000中或者在不同计算机系统1000上。

在一个实施例中,用于实现图2的可用性管理模块251的逻辑也可存储在一个或多个计算机系统1000的处理装置1002、主存储器1004、静态存储器1006和副存储器1018任何一项中的非暂时性计算机可读存储媒体中。用于实现可用性管理模块251的逻辑和PLM逻辑1022可存储在相同计算机系统1000中或者在不同计算机系统1000上。

术语“计算机可读存储媒体”应用于包括存储一个或多个指令集的单个媒体或多个媒体(例如,集中或分布式数据库和/或相关联缓存和服务器)。

要理解,上述描述旨在是说明性的而不是限制性的。在阅读和理解上述描述后,本领域的技术人员将明白许多其它实施例。虽然本发明已参照特定示范实施例进行描述,但将认识到,本发明不限于所述实施例,而是能够通过随附权利要求的精神和范围内的修改和变化来实践。相应地,要在说明性意义中而不是限制性意义中来看待说明书和附图。因此,本发明的范围应参照所附权利要求以及此类权利要求被授权的等同物的完全范围来确定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号