首页> 中国专利> 虚拟环境中的资源分配

虚拟环境中的资源分配

摘要

一种用于将一个或多个共享的设备和/或数据路径能力的资源分配给数据处理系统中的虚拟环境的一个或多个分区的方法、系统、装置和计算机程序产品。针对与数据处理系统相关联的一个或多个设备而接收至少一个用户定义的资源指派。与一个或多个分区相关联的一个或多个寄存器被动态设置以执行至少一个资源指派,由此至少一个资源指派允许在一个或多个事务通过分区被执行时执行对设备的用户定义的定量测量(数字或百分比)。该系统支持一个或多个设备以小于或等于用户定义的资源指派的带宽/能力执行一个或多个事务,以及使分区之间的性能干扰最小化。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-04-08

    授权

    授权

  • 2012-07-04

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

    实质审查的生效

  • 2012-05-23

    公开

    公开

说明书

技术领域

本发明总体上涉及计算机系统,并且特别涉及计算机系统中的 虚拟环境。

背景技术

在虚拟环境中,被称为管理程序(也称为虚拟机监视器)的软 件层在硬件与操作系统之间运行,并提供多个“虚拟”机(VM)的 表现或感觉,也称为分区。虚拟机是看似对机器硬件具有独占访问 的虚拟数据处理系统,但其功能通过在可能并存于机器中的其他虚 拟机之间共享硬件资源而实现。物理数据处理系统中共享的硬件资 源包括但不限于存储器、处理器以及输入/输出(I/O)设备。

虚拟环境使多个操作系统能并发地在相同的数据处理系统上运 行,似的每个虚拟机或分区确切地运行操作系统的一个实例。目前, 管理程序利用虚拟机接口将诸如处理器、存储器页面、和磁盘的硬 件资源分配给一个或多个不同的分区。管理程序分配这些资源以确 保一个或多个分区互不干扰。诸如存储器页面和CPU内核的一些资 源在不同分区之间分配,使得在分区之间没有物理的资源共享。诸 如存储器总线、一致性总线、可扩展端口或存储器控制器的其他资 源在本质上不能以独占方式分配给任何个体分区。多核处理器芯片 的迅速增加加剧了非独占分配的问题。例如,可以存在当前分配给 相同芯片上的各个内核的多个分区,每个分区有效地共享相同的数 据路径,诸如上文提及的总线。当一个分区运行的负载使共享的资 源饱和并由此使其他分区饥饿时,共享相同数据路径的分区可能会 受到严重的性能干扰。例如,当一个或多个分区的负载过度使用存 储器总线、一致性总线、可扩展端口和/或I/O总线时,运行在不同 分区上的其他负载的性能受到不利的影响。

发明内容

公开了一种用于将一个或多个共享的设备和/或数据路径能力的 资源分配给数据处理系统中的虚拟环境的一个或多个分区的装置、 方法、系统和计算机程序产品。虚拟环境中的每个分区管理一个或 多个用户负载。针对与数据处理系统相关联的一个或多个设备和/或 数据路径能力,接收至少一个用户定义的资源指派。该系统管理一 个或多个寄存器,其被动态设置以控制至少一个资源指派。资源指 派允许在一个或多个负载通过分区被执行时执行用户定义的对设备 和/或数据路径能力的定量测量(数字和/或百分比)。系统支持一个 或多个分区共享带宽和/或设备的数据路径能力。负载以小于或等于 用户定义的资源指派的特定带宽和/或设备的数据路径能力而执行。 系统对每个分区上运行的负载进行隔离;由此使一个或多个分区之 间不希望的干扰得以最小化。

附图说明

现在将参考附图说明本发明的实施方式,仅通过举例,其中:

图1提供了根据本发明一个实施方式的可在其中有益地实现本 发明各特征的数据处理系统的框图;

图2是根据本发明一个实施方式的被分成一个或多个分区的多 核处理芯片的框图;

图3所示为根据本发明一个实施方式的显示虚拟环境中一个或 多个分区的用户定义的资源指派的资源管理图形用户界面的示例; 以及

图4所示为根据本发明一个实施方式的执行事务以实现一个或 多个资源指派的过程的流程图。

具体实施方式

图示的实施方式提供了一种用于将一个或多个共享的设备和/或 数据路径能力的资源分配给数据处理系统中虚拟环境的一个或多个 分区的装置、方法、系统和计算机程序产品。虚拟环境中的每个分 区管理一个或多个用户负载。针对与数据处理系统相关的一个或多 个设备和/或数据路径能力而接收至少一个用户定义的资源指派。所 述系统管理一个或多个寄存器,其被动态设置以控制至少一个资源 指派。资源指派允许支持在一个或多个负载通过分区被执行时执行 用户定义的对设备和/或数据路径能力的定量测量(数字和/或百分 比)。系统支持一个或多个分区共享带宽和/或设备的数据路径能力。 负载以小于或等于用户定义的资源指派的特定带宽和/或设备的数据 路径能力而执行。系统对每个分区上运行的负载进行隔离;由此使 一个或多个分区之间不希望的干扰得以最小化。

在下列对本发明示范实施方式的详细说明中,可实现本发明的 具体的示范实施方式被足够详细地说明使得本领域技术人员能实现 本发明,以及可理解可利用其他实施方式且可做出逻辑的、架构的、 程序的、机械的、电的和其他改变而不背离本发明的精神和范围。 因此以下的详细说明不是要限制,以及本发明的范围被所附权利要 求及其等效所限定。

在图的说明中,相似元件与前面的图具有相似的名称和标号。 其中后面的图在不同的上下文中使用元件或具有不同功能,为元件 提供代表图号的不同的首位数字。指派给元件的具体数字仅用于帮 助说明且不暗示着对所述实施方式的任何限制(结构的或功能的或 其他)。

应理解使用具体的组件、设备和/或参数名称(比如执行此处所 述的用途/逻辑的那些)仅用于举例且不暗示着对本发明的任何限制。 因此可以不受限制用用于说明此处的组件/设备/参数的不同的命名 法/术语实现本发明。此处所用的每个词都给出在使用该词的上下文 中最广泛的解释。

现在参考图,并从图1开始,图示了一个实施方式中所使用的 代表数据处理系统(DPS)示例的框图。DPS可以是计算机、移动 设备、比如个人数字助理(PDA)、智能电话和/或一般可用作处理 设备的其他类型的电子设备。如图所示,DPS 100包括至少一个通过 系统互联/总线110连接到系统存储器115的处理器或中央处理单元 (CPU)105。也连接到系统总线110的是输入/输出(I/O)控制器 120,其提供对输入设备的连接和控制,图示了其点击设备(或鼠标) 125和键盘127。I/O控制器120还提供对输出设备的连接和控制, 图示了其显示器129。此外,图示了多媒体驱动128(例如,压缩盘 读/写(CDRW)或数字视频盘(DVD)驱动)和USB(通用串行总 线)端口126,耦合到I/O控制器120。多媒体驱动128和USB端口 126使得能插入可移除存储设备(例如光盘或拇指驱动),其上可以 存储数据/指令/代码和/或可从其取回数据/指令/代码。DPS 100还包 括存储117,其中也可以存储数据/指令/代码和/或可从其取回数据/ 指令/代码。

与DPS 100一起还图示了网络接口设备(NID)150,DPS通过 其可以连接到一个或多个访问/外部网络170,因特网被提供为一个 示例。在这个实施方式中,因特网代表/是使用传输控制协议/因特网 协议(TCP/IP)协议组以相互通信的世界性的网络和网关的集合。 NID150可用于通过到网络的访问点的有线无线连接而操作。网络 170可以是外部网络比如因特网或广域网(WAN)或内部网络比如 以太网(局域网-LAN)或虚拟专网(VPN)。在一个实施方式中, 可以与一个或多个服务器165一起建立到外部网络170的连接,其 也可提供数据/指令/代码用于在DPS 100上执行。

除了DPS 100的上述硬件组件,本发明的各种特征通过软件(或 固件)代码或逻辑完成/支持。例如,管理程序195是允许多个操作 系统同时运行在主计算机上的计算机软件/硬件平台虚拟软件。管理 程序195直接运行在DPS 100的硬件之上作为硬件控制和客户操作 系统监视器以及/或是运行在操作系统环境中的软件应用。此外,软 件(或固件)代码或逻辑存储在系统存储器115或其他存储(例如 存储117)中且被CPU 105执行。因此,例如,在系统存储器115 中图示了许多软件/固件/逻辑组件,包括虚拟机层175和应用135。 在虚拟机层175中,管理一个或多个操作系统,例如操作系统A(OS A)130、OS B132和OS N138(其中N代表有限的数目)。可能的 操作系统的示例是Microsoft Windows微软公司的商标,或 GNU/Linux免费软件基金会和Linux标志研究所的注册商标。虚 拟机层175与管理程序195通信和/或由管理程序195生成以管理与 管理程序195相关的一个或多个分区的负载。虚拟机层175中还有 资源优先级指派(RPA)工具140(其在CPU 105上执行以提供RPA 逻辑)。在实际实施中,RPA工具140可以组合或结合在虚拟机层 175以提供单个可执行组件,当对应的组合代码被CPU 105执行时, 共同提供每个单独的软件组件的各种功能。为了简单,RPA工具140 被图示和说明为独立的或单独的软件/固件组件,其提供具体的功能, 如下所述。

在一个实施方式中,服务器165包括软件部署服务器,并且DPS 100使用网络接口设备150通过网络(例如,因特网150)与软件部 署服务器165通信。然后,RPA工具140可以通过软件部署服务器 165从网络部署或部署在网络上。利用这种配置,软件部署服务器执 行与RPA工具140的执行相关的所有功能。因此,不需要DPS 100 使用DPS 100的内部计算资源来执行RPA工具140。

CPU 105执行RPA工具140以及支持RPA工具140的用户接口 特征的OS A130、OS B132和OS N138。在所述实施方式中,RPA 工具140产生/提供若干图形用户界面(GUI)以支持用户与RPA工 具140的功能特征交互或操作。RPA工具支持和/或实现的某些功能 产生处理器和/或设备硬件执行的处理逻辑以完成该功能的实现。为 了说明的简单,支持这些各种特征的代码的集合体在这里称为RPA 工具140。在RPA工具140所提供的软件代码/指令/逻辑中,特定于 本发明的是:(a)用于接收用于一个或多个设备的至少一个资源指 派的代码/逻辑;(b)用于将至少一个资源指派与一个或多个分区相 关联的代码/逻辑;(c)用于支持一个或多个设备响应于接收到至少 一个资源指派而以小于或等于至少一个资源指派的能力执行一个或 多个事务的代码/逻辑。根据所示的实施方式,当CPU 105执行RPA 工具140时,DPS 100启动支持以上功能特征以及其他特征/功能的 一系列功能过程。这些特征和功能在下面图2-图4的描述中详述。

本领域技术人员将理解图1中的硬件组件和基本配置可以改变。 DPS 100中所示的组件不是穷举的,但是代表用于实现本发明的最重 要的组件。例如,可另外使用其他设备/组件或替代所述的硬件。所 述的示例对于目前所述实施方式和/或总体发明不是要暗示架构或其 他限制。图1所述的数据处理系统可以是例如Armonk N.Y.的国际商 业机器公司的产品IBM eServer pSeries系统,其运行先进的交互执 行(AIX)操作系统或LINUX操作系统。

现在参考图2,描述了在虚拟环境中执行的一个或多个分区的多 核处理芯片。多核处理芯片250包括分区A 220、分区B 230和分区 N 290(其中“N”代表有限的数目)。多核处理芯片250还包括RPA 工具240、处理器总线222、存储器控制器A 252、存储器控制器B 254、总线寄存器A 260、总线寄存器B 270以及总线寄存器C 280。 分区A220包括L1指令高速缓存218、L1数据高速缓存228以及 L2/L3高速缓存238。多核芯片250上的第二分区包含2个L1指令 高速缓存218、2个L1数据高速缓存228以及L2/L3高速缓存238。 分区N 290(其中“N”是有限的数目)代表多核处理芯片250中的 第N个分区。分区N包括一个或多个(所示为3个)L1指令高速缓 存218、一个或多个L1数据高速缓存228以及一个或多个L2/L3高 速缓存238。总线寄存器A 260是在分区A220与处理器总线222之 间通信的手段。总线寄存器B 270支持分区B 230与处理器总线222 之间的通信,并且分区N 290与处理器总线222通过总线寄存器C 280通信。

在一个实施方式中,系统的一个或多个硬件机制支持一个或多 个资源指派的执行。RPA工具240包括调节对共享系统资源的访问 的逻辑。RPA工具240接收将系统资源分配给一个或多个分区的一 个或多个指派。诸如分区A 220、分区B 230和分区N 290的分区是 由虚拟机层175支持的隔离的逻辑单元(如图1所示),由此执行 一个或多个操作系统。分区A 220、分区B 230和分区N 290分别与 总线寄存器A 260、总线寄存器B 270和总线寄存器N 280相关。此 外,分区A 220、分区B 230和分区N 290与一个或多个硬件总线相 关联。当一个或多个分区接收分配的资源时,相应的总线寄存器(总 线寄存器A 260、总线寄存器B 270和/或总线寄存器N 280)根据接 收的资源指派而设置。

当一个或多个操作系统事务与分区相关联地被执行时,相应的 总线寄存器(总线寄存器A 260、总线寄存器B 270和/或总线寄存 器N 280)实现所请求的指派。例如,RPA工具240接收用户定义 的(或缺省的)指派,以便将支持分区A 220的资源使用率限制在 能力的20%。为了实现此指派,对于每100个总线周期,总线寄存 器A 260允许不多于20次访问(事务)(以访问共享资源)。当处 理器总线222不忙时(即,没有来自其他分区的挂起的请求时), 资源容限被放宽。在这种情况下,总线寄存器A 260允许的访问数 目可以尽可能增加。资源指派支持当执行一个或多个事务时对针对 处理器总线222的访问进行用户定义的定量测量。

在一个实施方式中,当寄存器被指派以多个访问时,每当分区 访问总线时,寄存器递减。在一个实例中,总线寄存器A 260被指 派以计数20,每100个总线周期结束,总线寄存器A 260的计数被 复位为20。当分区A 220已消耗了对处理器总线222的分配限额(所 指派的访问数目)时,总线寄存器A 260的计数达到0。仅在以下情 况下允许分区A 220对处理器总线222进一步的访问,即,不存在 来自另一分区的访问总线的未决事务,由此该分区尚未消耗用户定 义的资源指派(即,消耗的对处理器总线222的访问的所指指派数 值/能力)。

在另一实施方式中,一个或多个操作系统与分区A 220、分区B  230和分区N 290相关联。总线寄存器A 260、总线寄存器B 270、 总线寄存器N 280和/或一个或多个其他寄存器与分区A220、分区 B230和分区N290相关联。总线寄存器A 260、总线寄存器B 270、 总线寄存器N 280和/或一个或多个其他寄存器通过RPA工具240(和 /或一个或多个操作系统)接收一个或多个资源指派。资源指派通过 一个或多个总线寄存器A 260、总线寄存器B 270和/或总线寄存器N 280而实现。

在一个实施方式中,总线寄存器B 270可由多个寄存器实现,每 个寄存器控制特定处理器核对总线的访问。参考图2,分区B 230被 示为使用4个具有2个L2/L3高速缓存238的处理器核。在一个实 施方式中,总线寄存器B 270可通过2个物理寄存器实现,每一个 门控L2/L3高速缓存(238)对总线222的访问。总线寄存器A 260、 总线寄存器B 270、总线寄存器N 280和/或一个或多个其他寄存器 与处理器总线222通信,以确保分区B 230的总线访问的计数正确 地完成。例如,L2/L3高速缓存(238)之一对处理器总线222的访 问将导致定额计数在两个寄存器处同时减少。这种实现被结合到 L2/L3高速缓存238的高速缓存设计中。

在另一实施方式中,管理程序(类似图1的管理程序195)允许 分区的抢占,以使硬件利用率最大化。总线寄存器A 260变成分区A  220的软件上下文的部分。类似地,总线寄存器A 260变成用于分区 B 230的寄存器B 270以及用于分区N 290的寄存器N 280的软件上 下文的部分。当相应的分区(分区A 220、分区B 230和分区N 290) 分别被解除分配或重分配时,管理程序必须存储和恢复总线寄存器A 260、总线寄存器B 270和/或总线寄存器N 280的值。

在另一实施方式中,管理程序允许分区的抢占以使硬件利用率 最大化。当在分区中交换时(例如,允许多于系统(服务器)物理 上可用的诸如RAM等资源的分配),管理程序将总线寄存器重新初 始化为相应的用户定义值。

图3所示为资源管理图形用户界面(GUI)。资源管理GUI 305 包含一个或多个资源的类别、资源315、分区列表、分区302、资源 指派372、可用测量370和下拉菜单选择375。资源315包括,但不 限于:存储器总线362、I/O总线364、一致性总线366和可扩展端 口368。分区302包括但不限于分区A 320、分区B 330和分区N 340 (其中N是有限的数目)。

在一个实施方式中,至少一个资源指派与一个或多个设备或资 源相关联。分区A 320、分区B 330和分区N 340与虚拟环境相关联, 并且分区列表被输出到资源管理GUI 305。当分区被修改时(从虚拟 环境增加或减少),分区列表被动态更新。诸如存储器总线362、I/O 总线364、一致性总线366和可扩展端口368的资源315与每个分区 相关联。与分区相关联的资源是预定义的和/或用户定义的。当从数 据处理系统(图1的100)增加和/或减少一个或多个资源(315)时, 资源管理GUI 305被动态更新。

在另一实施方式中,针对一个或多个设备而接收至少一个资源 指派。资源管理GUI 305的资源指派372、可用测量370和下拉菜单 选择375支持一个或多个用户定义的和/或预定义的输入被RPA工具 140(图1)接收。例如,资源指派372是定量测量输入,其可以包 括但不限于:设备带宽的百分比和/或在执行一个或多个事务中利用 的设备数目。可用测量370描述了选择的预定义或缺省定量测量(与 各自的资源和分区相关联),或自动选择的测量。当选择下拉菜单 选择375时,显示可用测量370。当一个或多个修改在数据处理系统 中被检测到和/或接收到时,资源315、分区302和可用测量370被 动态更新。

在一个实施方式中,当接收到至少一个资源指派时,一个或多 个设备被允许以小于或等于所述至少一个资源指派的能力执行一个 或多个事务。资源管理GUI 305接收用户定义的用于一个或多个设 备(资源315)的资源分配(资源指派)。例如,在一个或多个事务 期间,存储器总线362以30%或以下操作用于分区A 320,并且存储 器总线362以25%操作用于分区B 330。当资源管理GUI 305接收用 于资源指派372的用户定义的输入时,一个或多个寄存器动态调节 以执行用户定义的资源分配。执行用户定义的资源分配支持指定的 设备(资源)以用户定义的能力(带宽)操作用于相关联的分区。 资源管理GUI 305与虚拟机层175(图1的)直接关联。虚拟机层 175控制/管理/提供对寄存器的访问(与分区302相关联),如资源 管理GUI 305中输入的值所指定的。

图4所示为完成所示实施方式的以上过程的方法的流程图。虽 然图4所示的方法可以是参考图1-图3所示的组件说明的,但是应 理解这仅是为了方便以及当实现各种方法时可使用其可替换组件和/ 或配置。方法的关键部分可以通过DSP 100(图1)中处理器105 上执行的以及控制DSP 100上的具体操作的RPA工具140实现,以 及因此该方法从RPA工具140和DSP 100的观点来说明。

图4所示为当收到一个或多个资源指派时执行一个或多个事务 请求的过程。图4的过程开始于启动框400并且进行到框402,在此 一个或多个寄存器与每个分区中的操作系统相关联。在框404,针对 每个分区而接收一个或多个用户定义(或缺省)的资源指派。在框 406,一个或多个寄存器被动态设置以实现资源指派。在框408,接 收一个或多个事务请求。

在框410,确定事务请求所需的带宽/能力是否超过一个或多个 预设置的资源指派(或分配)。如果用于事务请求的带宽/能力超过 了一个或多个资源指派,过程继续到框414。如果用于事务请求的带 宽/能力没有超过一个或多个资源指派,过程继续到框412。在框414, 确定是否存在来自其能力尚未被耗尽的分区的事务请求。当存在来 自其能力尚未被耗尽的分区的事务请求时,过程继续到框416。在框 416该请求被重新提交,并且过程继续到框408。如果不存在来自其 能力未被耗尽的分区的事务请求,过程继续到框412。在框412,事 务被执行,实现一个或多个资源指派。在框418,过程结束。

在以上流程图中,一个或多个方法体现在包含计算机可读代码 的计算机可读介质中,这样当计算机可读代码(被处理单元)在计 算设备上被执行时,执行一系列步骤。在一些实施方式中,不背离 本发明的精神和范围,方法的某些过程被组合,同时执行或按不同 顺序执行,或可能被省略。因此,虽然按特定序列说明和图示本方 法过程,但是使用具体的过程序列并不隐含着对本发明的任何限制。 可以不背离本发明的精神和范围对过程序列做出改变。因此,使用 特定的序列不应被认为是限制,且本发明的范围延伸到所附权利要 求及其等价物。

本领域技术人员将理解,本发明可体现为一种方法、系统和/或 计算机程序产品。因此,本发明可采取完全硬件实施方式、完全软 件实施方式(包括固件、驻留软件、微代码等等)或者组合此处一 般称为“电路”、“模块”、“逻辑”或“系统”的软件和硬件方 面的实施方式。此外,本发明可采取介质上含有计算机可用程序代 码的计算机可用存储介质上的计算机程序产品的形式。

还要理解,本发明的实施方式中的过程可使用软件、固件、微 代码或硬件来实现。作为在软件、编程代码(是软件或固件)中典 型地将被存储在实现本发明的预备步骤被存储在一个或多个机器可 读存储介质中,比如固定(硬)驱动器、软盘、磁盘、光盘、磁带 半导体存储器,比如RAM、ROM、PROM等,因此根据本发明形成 了一种产品。通过直接从存储设备执行代码、通过从存储设备将代 码拷贝到另一存储设备比如硬盘、RAM等,或通过发送代码用于远 程执行使用传输型介质比如数字和模拟通信链接,使用这种包含编 程代码的产品。该介质可以是电的、磁的、光的、电磁的、红外的 或半导体系统(或装置或设备)或传播介质。此外,该介质可以是 可包含、存储、通信、传播或传输被执行系统、装置或设备使用或 有关的程序的任何装置。本发明的方法可以通过组合包含根据所述 实施方式的代码的一个或多个机器可读存储设备与执行其中包含的 代码的适当处理硬件来实现。一种实现本发明的装置可以是包含或 具有对根据本发明编码的程序的网络访问(通过服务器)的一个或 多个处理设备以及存储系统。一般,术语计算机、计算机系统或数 据处理系统可被广义地定义以包含具有执行来自存储器介质的指令/ 代码的处理器(或处理单元)的任何设备。

因此,虽然结合带有安装的(或执行的)软件的全功能的计算 机(服务器)系统说明了本发明的所示实施方式,但是本领域技术 人员将理解本发明的所示实施方式的软件方面可以作为多种形式的 程序产品分发,以及本发明的所示实施方式同等地应用,无论用于 实际实现分发的介质的特定类型。通过举例,介质类型的非穷举列 表包括可记录类型(有形的)介质比如软盘、拇指驱动器、硬盘驱 动器、CDROM、DVD和传输型介质比如数字和模拟通信链接。

虽然已结合示范实施方式说明了本发明,但是本领域技术人员 将理解可以做出各种改变以及等价物可以替换其元件而不背离本发 明的范围。而且,可以根据本发明的主旨做出很多修改以适配特定 系统、设备或组件而不背离其实质范围。因此,本发明不限于被公 开用于实现本发明的特定实施方式,但是本发明将包括落在所附权 利要求范围中的所有实施方式。而且,使用术语第一、第二等等并 不表示任何顺序或重要性,但是术语第一、第二等等用于区分一个 元件和另一元件。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号