管理与虚拟机的多个配置的通信的系统和方法

文档序号:6614071阅读:193来源:国知局
专利名称:管理与虚拟机的多个配置的通信的系统和方法
技术领域
本发明 一般涉及虚拟机操作系统,并且更为特别地涉及确定将在其中 对到来的消息进行处理的虚拟机的众多预定的配置中的一个。
背景技术
虚拟机操作系统现今为大家所公知。例如,IBM z/VM操作系统像以 下这样创建了虚拟机环境。所述IBM z/VM虛拟机操作系统的基本操作系 统(也被称为控制程序、"CP"或管理程序(hypervisor))对真实计算 机的物理资源(也即CPU时间、RAM、存储装置等等)进行逻辑地划分, 以形成不同的虛拟机。因此,每个虚拟机具有一份处理器时间、RAM、存 储装置等等以形成虚拟计算机,并执行它自己的"客户,,操作系统和应用。 所述客户操作系统和应用在各自的虚拟机中工作(也即,使用它们的虛拟 机的那份处理器时间、RAM、存储装置等等),就好像它们正在它们自己 专用的真实计算机中执行一样。不同虚拟机中的程序还可通过管理程序相互进行通信。根据一种通信 技术,经由管理程序在不同虚拟机之间的通信可包括使用了诸如用户间通 信载体("IUCV")或虚拟机控制设施("VMCF")之类的专门的协议 的消息。这些通信协议展现出以下公共属性a) 源虛拟机首先将消息写入源虚拟地址空间。b )源虚拟机通过名字识别目标虚拟才几。c)管理程序生成中断以将到来的消息通知给目标虚拟机。所述中断在所述目标虚拟机中调用中断处理。 d )响应于目标虛拟机同意接收所述消息,管理程序将消息从源的虚拟地址空间拷贝到目标虛拟机的虚拟地址空间。 以下是对IUCV的更详细的描述。IUCV是将数据从一个源虚拟机转
移到一个目标虚拟机的点对点协议。为了经由IUCV协议进行通信,源虛 拟机首先通过调用管理程序以声明(declare)用于中断和到来的消息的 IUCV緩沖器来准备接收通信。为了发起通信,源虛拟机接着调用管理程 序,指示用于进行通信的预计的目标虛拟机的身份。如果目标虚拟机通过 已声明用于中断和到来的消息的IUCV緩沖器而已经同意进行通信,则管 理程序向目标虚拟机生成中断并且将用于这个连接的通信路径id提供给目 标虚拟机。假设目标虛拟机同意与源虛拟机进行通信,则所述目标虚拟机 调用管理程序接受所述通信路径。接着管理程序中断源虛拟机并将用于这 个连接的通信路径id提供给源虛拟机。为了发送实际消息,源虛拟机调用 管理程序,指示先前获得的路径id和待发送的实际消息。在响应中,管理 程序4吏用所述路径id来识别所述目标虛拟机并向目标虛拟才几生成中断。目 标虚拟机通过调用管理程序接收实际消息而对所述中断做出响应。接着,空间并向源虚拟机生成中断,指示所述数据已经被转移。目标虚拟机中的 程序接着可以从目标虚拟机的地址空间中读取消息。以下是对VMCF更详细的描述。VMCF是将数据从源虛拟机转移到 目标虛拟机的协议。为了使用VMCF进行通信,源虛拟机首先通过调用管 理程序来授权它对VMCF的使用并将它的存储装置的一个区域声明为 VMCF中断緩冲器来准备接收通信。为了发送实际消息,源虚拟机构建待 传送的消息并且调用管理程序将它递送给源虚拟机通过名字来识别的指定 目标虚拟机。如果目标虛拟机也已经授权了它对VMCF的使用,则管理程 序向目标虛拟机生成VMCF中断。目标虛拟机通过调用管理程序接收实际 消息而对所述中断做出响应。管理程序接着将数据从源虚拟机的虛拟地址 空间拷贝到目标虚拟^L的虚拟地址空间并向源虚拟^L生成中断,指示所述 数据已经被转移。目标虚拟机中的程序接着可以从目标虛拟机的地址空间 中读取所述消息。因此,IUCV是面向连接的协议,其中消息在已建立的连接上被来回 发送;而VMCF是无连接的协议,其中每个消息通过名字被独立地寻址到 目标虚拟机。术语"到来的交互(incoming interaction),,在此,皮用来指 代与目标虛拟机进行通信的请求,例如在像IUCV这样的面向连接的协议 的情况下的连接请求,或者在像VMCF这样的无连接协议的情况下的单独 消息。关于IUCV和VMCF协议的更详细的内容请参看z/VM: CP Programming Services, IBM order number SC24画6084-02,在此通过参考 《1入此文档作为本公开的 一部分。只^^个虚拟机只有一个配置,那么在IUCV和VMCF下的到来的交 互就可被明确地解析到所述单个配置。然而,根据授权给Walsh的美国专 利4,660,144,单个虛拟机可以具有两个(或更多)不同配置,所有配置净皮 并行地实例化,并交替地或同时有效(可被分派)。这些配置中的每个配 置指明许多虛拟处理器、许多虚拟机存储器、虛拟设备的地址和类型、以 及相关联的操作系统的名字或根设备。每个配置定义了执行操作系统和应 用的环境。 一个配置可净皮称为"主"或主要配置,而另一个配置可净皮称为 "附属,,或次要配置。当管理程序针对由源虚拟机的配置所发起的交互生 成中断时,存在不同的公知的方法供管理程序来确定目标虚拟机的配置中 的哪一个将接收并处理所述中断和相关联的交互。这种确定是必须的,因 为诸如VMCF消息和IUCV连接请求之类的交互被寻址到虛拟机而不是在 所述虛拟机内所实例化的具体配置。与每个配置相关联的中断处理器是由 在所述配置中运行的操作系统所提供的那个。针对所有到来的交互和相关 联的中断使用预定的配置之一是公知的。使用这种方法的问题是其它配 置被阻止处理任何到来的交互和相关联的中断。针对当前中断使用所述虛 拟机的当前有效的配置也是公知的。使用这种方法的问题是当前有效的 配置是动态的,并且不能祐l起所述交互的虛拟机事先可靠地确定为待接 收中断的恰当的一个配置。本发明的目标是确定目标虚拟机的哪一个配置适于处理从另一个虚拟 机的配置所发起的到来的交互。发明内容本发明涉及一种用于管理第一虚拟机的多个配置的系统、方法和程序 产品。接收命令来将用于处理来自 一个或多个其它虚拟机的至少一个协议
的下一个到来的交互和随后到来的交互的所述第一虛拟机的配置设置成首 先准备接收所述下一个到来的交互的、由所述第 一虛拟^l所展现的配置。 确定首先准备接收所述下一个到来的交互的、由所述第一虚拟机所展现的 所述配置。首先准备接收所述下一个到来的交互的所述第一虚拟机配置处 理所述下一个到来的交互根据本发明的特征,所述第一虚拟机的配置通过声明用于接收到来的 连接请求的緩冲器和/或使能将所述到来的连接请求告知所述第一虚拟机 的中断,而准备接收针对面向连接的协议的下一个到来的交互。针对所述 第 一虚拟机的随后到来的连接请求接着被指引到所确定的配置。由接受前 面的到来的连接请求的任何一个配置之前所建立的任何通信路径保持完 整,并且沿着此路径的消息继续行进到接受针对其建立了所述路径的连接 的配置。根据本发明的另一特征,所述第一虚拟机的配置通过授权它自己接收 到来的消息并且识别中断緩冲器,而准备接收针对无连接协议的下一个到 来的交互。通过所述无连接协议的针对所述第 一虚拟机的随后到来的消息 接着被指引到所确定的配置。


图1是在管理程序的程序的控制下进行相互通信的多个虚拟机的框图; 一个(或多个)所述虛拟机包括两个实例化的配置。图2是根据本发明的图1中的管理程序的程序内的配置管理程序功能 的一部分的流程图,其允许用户将用于处理到来的交互的每个目标虚拟机 的配置设置成针对到来的交互的主配置、附属配置或"进行准备的第一配 置,,。图3是图1中的管理程序的程序内的配置管理程序功能的另一部分的流程图,所述功能当所述设置命令指明针对到来的交互的"进行准备的第 一配置"时动态地确定针对到来的交互使用哪一个配置。图4是图1中的管理程序的程序内的另一个功能的流程图,所述功能 将来自源虚拟机的配置的交互转发到目标虚拟机,并且根据所述设置命令
将它递送给所述目标虛拟机的合适的配置。
具体实施方式
图1图示了真实的计算机系统10,其包括公共总线15上的CPU 12(其 包括一个或多个处理器)、RAM 13和ROM 14、以及存储装置16。基本 操作系统或管理程序的程序20已经逻辑地将真实计算机系统10的真实资 源(全部CPU时间中的一份或所述CPU的许多虚拟处理器、RAM、ROM、 存储装置等等)划分成虛拟机30 - 33。因此,每个虚拟机30 - 33包括一 个或多个配置。针对虛拟机30图示了两个不同的配置30-1和30-2。虽 然针对虛拟才几31 - 33仅仅图示了 一个配置,但是每个虚拟才几31 - 33也可 具有两个不同的配置。每个配置是一个功能单元并且执行各自的客户操作 系统。 一个或多个应用230-1, 230-2、 231、 232和233也在每个配置中 执行。(虽然在酉己置30 — 1、 30 — 2、 31— l、 32 — 1和33 — 1的每个中仅仅 图示了一个应用,但是在每个配置中可以有多个应用。)如下面所描述, 管理程序20具有它可用来执行虛拟机的功能的专用存储器。虽然虛拟机 30具有超过一个有效配置,但是只有一个配置被用于处理每个中断和处理 来自源虛拟机配置的相关联的交互。在所图示的实施例中,虛拟机30具有 主配置30-l和附属配置30-2,而虛拟机31、 32、 33中的每个分别具有 单一(主)配置31-1、 32-l和33-l。通过举例的方式,这些配置中的 每个指明许多虚拟处理器、许多虛拟机存储器、虚拟设备的地址和类型、 以及相关联的操作系统的名字或根设备。例如,每个配置可使用与其它配 置不同的操作系统;这在可执行的应用类型的方面改善了虛拟机的通用性。 这允许被调试的操作系统在主配置中运行,以及运行调试工具的操作系统 在附属配置中运行。作为另一个例子,在虚拟处理器的数量和被分配给它 们的存储器的数量方面,不同的配置可以具有极不相同的"大小"。源虚拟机的每个配置可以经由管理程序的程序20与其它虚拟机的配 置中的任何一个进行通信。这种通信可以通过使用诸如IUCV或VMCF 这样的各种各样的协议来进行。使用IUCV的通信是面向连接的。 一旦连 接路径被建立,那么就在进行通信的虚拟机的两个特定配置之间递送流过 所述路径的消息。然而,建立连接的请求通过名字来对所述目标虚拟机进行寻址而不指定所述虚拟机内的具体配置。使用VMCF的通信是无连接 的。通过名字将每个消息寻址到目标虚拟机而不是到所述虚拟机内的具体 配置。在IUCV和VMCF 二者中,存在依赖于目标虛拟才几名字的交互。对于 IUCV,这些交互包括建立通信路径的连接请求;在VMCF中,交互识别 各个消息的目的地。根据本发明,管理程序的程序20基于以下内容确定用 于处理诸如到来的连接请求和消息之类的到来的交互以及中断的目标虛拟 机的合适配置。如果管理员事先将虚拟机设置/配置为由"主配置"来处理 到来的交互和相关联的中断,则无论何时需要中断,管理程序就将所述中 断和相关联的交互转发给所述目标虚拟机的主配置用于进行处理。在响应 中,所述目标虚拟机的主配置也将处理相关联的交互。相反地,如果管理 员事先将虛拟机:没置/配置为由"附属配置"来处理到来的交互和相关联的 中断,则无论何时需要中断,管理程序就将所述中断和相关联的交互转发 给所述目标虚拟机的附属配置用于进行处理。在响应中,所述目标虚拟机 的附属配置也将处理相关联的交互。然而,如果管理员事先将虚拟机设置/ 配置为由针对到来的交互的"进行准备的第一配置"来处理它们,则随后 首先向管理程序声明IUCV緩冲器或向管理程序发出VMCF授权的配置是 目标虛拟机中的用来处理所述中断和相关联的交互、与到来的交互相关联 的所有随后的中断、以及相关联的交互的配置(直到该i殳定4皮另一个设置 命令改变为止)。实际上,所述设定是三向开关。此开关可以被设置成将所有到来的交 互指引到主配置、将它们全部都指引到附属配置、或将它们指引到第一个 为它们进行准备的配置。图2图示了管理程序的程序20内的配置管理程序功能300,其使用户 能够经由带有恰当参数的设置命令来设置每个虚拟机的配置(也即,"主 配置"、"附属配置"或"进行准备的第一配置")。程序功能300从用 户或从另一个应用接收设置命令(步骤201)并读取相关联的参数以确定 所述设定是针对"主配置"、"附属配置"、还是"进行准备的第一配置,,。
如果所述设定是针对"主配置"(判决202,"是"分支,和步骤203), 那么程序功能300在表60中(在管理程序20的专用存储器中)记录以 此虛拟机作目标的任何IUCV连接请求或VMCF消息(或其它协议的到来 的交互)以及相关联的中断应当由目标虛拟机的主配置来处理。如果所述 设定是针对"附属配置"(判决202,"否"分支,判决204,"是"分支, 和步骤205),那么程序功能300在表60中记录以此虚拟机作目标的任 何IUCV连接请求或VMCF消息(或其它协议的到来的交互)应当由目标 虚拟机的附属配置来处理。如果所述设定是针对"进行准备的第一配置" (判决202,"否,,分支,判决204,"否"分支,判决206,"是"分支, 和步骤207),那么程序功能300在表60中记录配置未被预定,并且以 此虚拟机作目标的任何IUCV连接请求或VMCF消息(或其它协议的到来 的交互)应当由下述的目标虚拟^L的配置来处理,所述配置随后首先声明 IUCV緩冲器(或者准备另一协议的到来的交互)。如果设置命令不符合 前面所述中的任何内容,那么程序功能300向用户报告错误(步骤208)。 图3图示了配置管理程序功能300的操作,所述操作当在图2的步骤 中被处理的设置命令指示出"进行准备的第一配置"时动态地确定待使用 的合适的目标虚拟机配置。针对每个虚拟机30 - 33分别执行图3的步骤。 在步骤301中,程序功能300通过声明IUCV緩冲器或发出VMCF授权命 令(或者根据另一协议采取其它动作来准备此另一协议的到来的交互)而 从虛拟机的任何一个配置(主配置或附属配置)中接收为到来的通信做准 备的请求。在本发明的 一实施例中,当虚拟机准备任何一种类型的到来的通信 (IUCV或VMCF)(或其它协议的任何其它类型的到来的通信),且所 述虛拟机的配置没有由设置命令所预定--判决302,"否"分支,那么 程序功能300将首先为通信进行准备的目标虚拟机的配置(主配置或附属 配置)确定为将处理下一个IUCV或VMCF (或其它协i义)的交互和相关 联的中断的虚拟机的配置。因此,如果目标虚拟机的主配置曾经或者现在 首先进行准备下一个IUCV或VMCF (或其它协议)的交互(判决303, "是"分支),那么程序功能300动态地分配主配置用于未来的到来的IUCV
或VMCF交互和相关联的中断(步骤304)。然而,如果虚拟机的附属配 置曾经或现在首先进行准备到来的IUCV或VMCF (或其它协议)的交互 (判决303,"否"分支),那么程序功能300动态地分配附属配置用于 未来的到来的IUCV或VMCF (或其它协议)的交互和相关联的中断(步 骤305)。图4图示了当管理程序20被告知源虚拟机的配置想要发起与目标虚拟 机的配置的交互时程序功能300所进行的处理。在步骤401中,程序功能 300从源虚拟机配置接收被寻址到目标虚拟机的VMCF消息或IUCV连接 请求的通知。管理程序20从所述交互中的地址参数中识别目标虚拟机(步 骤402),并且接着确定目标虚拟机是否具有超过一个实例化的配置(判 决403)。如果不具有(判决403,"否"分支),那么管理程序20在适 当时发起用于交互的协议的中断和其它处理,并且调度向目标虚拟机递送 交互(步骤404)。虚拟机仅具有一个可能的配置,所以管理程序20不需 要采取任何动作来确定此配置。再次参考判决403,"是"分支,其中目 标虚拟机具有两个或多个可能的配置(主配置或附属配置),那么管理程 序20调用程序功能300,以从表60中确定将用于到目标虚拟机的交互和 相关联的中断的目标虛拟机的合适配置。如上面参考图2和图3所解释, 程序功能300将基于在设置命令中所指明的预定的配置类型或基于"进行 准备的第一配置"(如果这是设置命令的参数)而知道待使用的目标虛拟 机的合适的配置以及哪一个配置首先针对到来的交互进行准备。如果合适 的配置是主配置(基于伴随设置命令的"主配置,,参数,或者在设置命令 是"进行准备的第一配置,,的情况下主配置首先进行准备)(判决405,"是"分支),那么管理程序20的程序功能300选择主配置作为用于此交 互和相关联的中断的合适的配置,并且管理程序20在适当时发起中断并 且调度将交互递送给目标虛拟机的主配置(步骤404)。然而,如果合适 的配置是附属配置(基于伴随设置命令的"附属配置,,参数,或者在设置 命令是"进行准备的第一配置,,的情况下附属配置首先进行准备)(判决 405,"否"分支),那么管理程序的程序功能300选择附属配置作为用于 此交互和相关联的中断的合适配置,并且管理程序20在适当时发起用于 到来的交互的协议的中断并且调度将交互递送给目标虛拟机的附属配置(步骤406 )。下面是使用本发明的例子。主配置最开始运行诸如使用VMCF和 IUCV的IBM CMS操作系统之类的操作系统。主配置中的CMS操作系统 是进行准备的第一 (并且是唯一的)配置。稍后,主配置被复位并且诸如 不使用VMCF和IUCV的z/OS或Linux之类的另 一操作系统被加载进主 配置。接着,在附属配置中基于CMS的调试器被引出。在这个例子中, 为了供CMS和调试器使用,通信对于附属配置来说是可用的。包括配置管理程序功能300的管理程序的程序20可从计算机可读介质 (诸如磁带或磁盘、光学介质、DVD、存储棒、半导体存储器等等)加载 进计算机IO,或者可经由TCP/IP适配器卡71从因特网下载。基于前面的内容,公开了 一种用于管理与虛拟机的多个配置的通信的 系统、方法和程序产品。然而,在不偏离本发明的范围的条件下可以做出 许多修改和替换。因此,通过图示而非限制的方式已经公开了本发明,并 且应当参考权利要求来确定本发明的范围。
权利要求
1.一种用于管理与具有多个配置的第一虚拟机的到来的交互的方法,所述方法包括以下步骤接收命令来将用于处理来自一个或多个其它虚拟机的至少一个协议的下一个到来的交互和随后到来的交互的所述第一虚拟机的配置设置成在接收到所述命令之后首先准备接收所述下一个到来的交互的、由所述第一虚拟机所展现的配置;确定在接收到所述命令之后首先准备接收所述下一个到来的交互的、由所述第一虚拟机所展现的所述配置;以及首先准备接收所述下一个到来的交互的所述第一虚拟机配置处理所述下一个到来的交互。
2. 根据权利要求l所述的方法,其中所述配置中的每个配置指明以下 中的至少两个许多虚拟处理器、许多虚拟机存储器、虚拟设备的地址和 类型、以及相关联的操作系统的名字或根设备。
3. 根据权利要求l所述的方法,其中所述接收命令以设置用于处理来 自一个或多个其它虚拟机的至少一个协议的下一个到来的交互和随后到来 的交互的所述第一虚拟机的配置的步骤包括以下步骤接收命令以设置用 于处理来自一个或多个其它虚拟机的至少两个协议的下一个到来的交互和 随后到来的交互的所述第 一虚拟机的配置。
4. 根据权利要求3所述的方法,其中所述两个协议包括用户间通信载 体和虚拟才几控制"i殳施协议。
5. 根据权利要求l所述的方法,其中所述第一虚拟机的配置通过声明 用于接收所述到来的交互的緩存器和/或将所述下一个到来的交互告知所 述第一虚拟^L的中断,而首先准备接收所述下一个到来的交互。
6. 根据权利要求l所述的方法,其中所述第一虛拟机的配置通过授权 它自己接收所述下一个到来的交互并识别中断緩冲器,而首先准备接收所 述下一个到来的交互。
7. 根据权利要求l所述的方法,其中所述至少一个协议是面向连接的 协议并且所述到来的交互是连接请求。
8. 根据权利要求1所述的方法,其中所述至少一个协议是无连接协议, 而所述到来的交互是消息。
9. 一种用于管理第一虚拟机的多个配置的系统,所述系统包括用于接收命令来将用于处理来自 一个或多个其它虛拟机的至少一个协 议的下一个到来的交互和随后到来的交互的所述第 一虚拟机的配置设置成 在接收到所述命令之后首先准备接收所述下一个到来的交互的、由所述第 一虚拟机所展现的配置的装置;用于确定在接收到所述命令之后首先准备接收所述下一个到来的交互 的、由所述第一虛拟机所展现的所述配置的装置;以及首先准备接收所述下一个到来的交互的所述第一虚拟机配置包括用 于处理所述下一个到来的交互的装置。
10. 根据权利要求9所述的系统,其中所述配置中的每个配置指明以 下中的至少两个许多虚拟处理器、许多虛拟机存储器、虚拟设备的地址 和类型、以及相关联的操作系统的名字或根设备。
11. 根据权利要求9所述的系统,其中所述用于接收命令以设置用于 处理来自一个或多个其它虚拟机的至少一个协议的下一个到来的交互和随 后到来的交互的所述第 一虚拟机的配置的装置包括用于接收命令以设置 用于处理来自一个或多个其它虚拟机的至少两个协议的下一个到来的交互 和随后到来的交互的所述第 一虚拟机的配置的装置。
12. 根据权利要求ll所述的系统,其中所述两个协议包括用户间通信 载体和虚拟一几控制i5:施协i义。
13. 根据权利要求9所述的系统,其中所述第一虚拟机的配置通过声 明用于接收所述到来的交互的緩沖器和/或将所述下一个到来的交互告知 所述笫一虚拟机的中断,而首先准备接收所述下一个到来的交互。
14. 根据权利要求9所述的系统,其中所述第一虚拟机的配置通过授 权它自己接收所述下一个到来的交互并识别中断緩冲器,而首先准备接收所述下一个到来的交互。
全文摘要
用于管理第一虚拟机的多个配置的系统、方法和程序产品。接收命令来将用于处理来自一个或多个其它虚拟机的至少一个协议的下一个到来的交互和随后到来的交互的所述第一虚拟机的配置设置成首先随后准备接收所述下一个到来的交互的、由所述第一虚拟机所展现的配置。确定首先准备接收所述下一个到来的交互的、由所述第一虚拟机所展现的所述配置。首先准备接收所述下一个到来的交互的所述第一虚拟机配置处理所述下一个到来的交互。
文档编号G06F9/46GK101162432SQ20071018060
公开日2008年4月16日 申请日期2007年10月9日 优先权日2006年10月10日
发明者D·L·奥西塞克, D·M·格里菲思, J·P·麦考密克三世, W·R·怀特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1