首页> 中国专利> 基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量

基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量

摘要

本发明涉及基于不同共享计算资源的不同质量向经优先级排序的VM和应用程序提供服务质量。每个VM或应用程序均具有相关优先级。为每个共享计算资源动态地分配质量等级。接收由特定VM或应用程序发出的对共享计算资源的请求。针对每个具体接收的请求,识别所述请求VM或应用程序的当前优先级。响应于每个所接收的请求,将特定共享计算资源分配给所述特定请求VM或应用程序。这种分配可基于所述请求VM或应用程序的当前优先级以及所述共享计算资源的当前质量等级来进行,从而向所述请求VM或应用程序提供对应于其当前优先级的服务质量。

著录项

  • 公开/公告号CN104937584A

    专利类型发明专利

  • 公开/公告日2015-09-23

    原文格式PDF

  • 申请/专利权人 赛门铁克公司;

    申请/专利号CN201380065377.9

  • 发明设计人 H·K·维姆雷;S·葛亚尔;N·阿克谢;

    申请日2013-10-31

  • 分类号G06F15/173(20060101);

  • 代理机构11245 北京纪凯知识产权代理有限公司;

  • 代理人赵蓉民

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 11:09:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-08-07

    授权

    授权

  • 2015-12-30

    实质审查的生效 IPC(主分类):G06F15/173 申请日:20131031

    实质审查的生效

  • 2015-09-23

    公开

    公开

说明书

技术领域

本公开整体涉及计算设备虚拟化,更具体地讲,涉及基于共享计算资 源的不同质量向经优先级排序的虚拟机和应用程序提供优化的服务质量。

背景技术

集群是计算机组,这些计算机组使用冗余计算资源组以便在单个系统 组件失效时提供持续的服务。更具体地讲,集群通过提供多个服务器、多 个网络连接、冗余数据存储等消除了单点失效。集群系统通常与提供额外 有用特征的存储管理产品相结合,所述额外有用特征诸如日志文件系统、 逻辑卷管理、多路径输入/输出(I/O)功能等。例如,一些存储管理产品,诸 如Veritas Volume Manager(Veritas卷管理器)和Dynamic Multipathing (动态多路径处理),支持多路径存储设备,而在多路径存储设备中虚拟 磁盘设备可供I/O的发起程序使用,其中在虚拟磁盘与基础物理存储装置之 间存在多个物理路径。

在高可用性集群系统中,检测到服务器(或服务器所用的具体计算资 源,诸如网络适配器、存储设备等)的失效,并在另一个计算系统上自动 重启正在失效服务器上运行的应用程序。这个过程称为“失效备援”。高 可用性集群系统还可检测应用程序本身的失效,并将应用程序失效备援到 另一个节点。实际上,高可用性集群系统会监测应用程序、运行应用程序 的服务器以及应用程序所使用的资源,以确保应用程序保持高度可用。集 群可用于根据保证不同可用性水平的服务水平协议来向客户提供应用程 序。

计算设备的虚拟化可用于高可用性集群中和其他背景中。可在物理计 算机(主计算机或主机)上的软件层级将一个或多个虚拟机(VM或客 机)实例化,使得每个VM运行其自有的操作系统实例。如同软件应用程 序(包括服务器应用程序,诸如数据库、企业管理解决方案和电子商务网 站)可以在物理计算机上运行一样,这些应用程序也可以在虚拟机上运 行。可构建VM的高可用性集群,其中受到高可用性集群系统监测的应用 程序在VM上运行并在VM之间失效备援,这一点与物理服务器不同。

在一些虚拟化场景中,通常称为超级管理程序(hypervisor)的软件组件 可充当客机与主机操作系统之间的接口,用于实现客机的一些或全部功 能。在其他虚拟化具体实施中,在物理主计算机上未运行基础主机操作系 统。在这些场景中,超级管理程序充当客机与主计算机的硬件之间的接 口,实际上用作客机运行所基于的主机操作系统。即使在存在主机操作系 统的情况下,超级管理程序有时也与某些服务的硬件直接对接。在一些虚 拟化场景中,主机本身是在另一个主机上运行的客机(即,虚拟主机)的 形式。

超级管理程序从VM接收对资源的请求,并分配共享资源,诸如 CPU、存储器、I/O带宽、I/O信道、存储装置、性能提升高速缓存、复制 链接等。在存储管理环境中,还可在VM或主机之间共享多路径存储装 置。尽管常规超级管理程序可向不同VM分配不同份额的资源,但常规超 级管理程序将给定类型的所有可用资源(例如,CPU、存储器和I/O信道) 视为类似的并且以基本上相同的方式工作。这限制了基于不同VM和应用 程序的优先级或与客户的基础服务水平协议可向所述不同VM和应用程序 提供不同服务质量的程度。

因此,期望解决这些问题。

发明内容

基于不同共享计算资源的不同质量,向计算机上的经优先级排序的 VM或其他应用程序提供服务质量。每个VM或应用程序均具有优先级, 所述优先级可指示相对于其他VM或应用程序将为该VM或应用程序提供 的服务质量。共享计算资源可供多个VM或应用程序访问。共享计算资源 可在于单个计算机上运行的多个VM或应用程序之间共享,例如以便促进 虚拟化。为每个共享计算资源分配质量等级。在一些实施例中,质量等级 包括具体共享计算资源的总体质量的单一量化。所分配的质量等级还可将 与共享计算资源的特定类型或共享计算资源的特定实例有关的多个质量因 素进行量化。可周期性地评估共享计算资源,以便基于其当前状态确定当 前质量等级。然后,将当前质量等级分配给共享计算资源。

接收由特定VM或应用程序发出的对共享计算资源的请求。例如,所 接收的请求可以是由特定VM为了例如访问虚拟磁盘而向超级管理程序发 出的对共享计算资源的请求的形式。针对每个具体接收的请求,识别请求 应用程序的优先级。识别请求应用程序的优先级还可包括,例如通过请求 本身的标记,识别发出对共享计算资源的请求的特定应用程序。在所接收 的请求为IO操作的形式的情况下,可由目标LUN识别共享计算资源。响 应于每个所接收的请求,将特定共享计算资源分配给特定请求应用程序。 这种分配基于请求应用程序的优先级以及共享计算资源的质量等级来进 行,从而向请求应用程序提供对应于其优先级的服务质量。在一些实施例 中,记录了应用程序随时间推移对共享计算资源的信息记载使用情况,以 供将来参考。

在一个实施例中,所接收的对共享计算资源的请求包括由特定应用程 序为了发起以特定存储设备为目标的IO操作而发出的请求。在这种情况 下,共享计算资源是用于访问特定存储设备的多个队列的形式。每个队列 被配置为以不同的优先级水平访问特定存储设备。在该实施例中,为请求 应用程序分配用于处理IO操作的队列中的特定一者。

在另一个实施例中,所接收的对共享计算资源的请求是由特定应用程 序向多路径处理组件发出的请求的形式,以便访问多路径存储设备。在该 实施例中,共享计算资源可包括用于对物理存储装置的多个路径中的特定 一者进行访问的多个队列,其中分配质量等级还包括将特定优先级水平分 配给每个队列。共享计算资源相反还可包括指向物理存储装置的多个路 径,在这种情况下,将质量等级作为特定路径的质量的量化来分配给所述 特定路径。

本发明内容和以下具体实施方式中所述的特征和优点并未穷尽所有, 并且特别地,相关领域的普通技术人员在考虑本发明附图、说明书和权利 要求书后,许多另外的特征和优点将显而易见。此外,应该指出的是,说 明书中所用的语言主要被选择用于可读性和指导目的,而不是被选择用来 限定或限制本发明的主题,必需借助权利要求书确定这样的发明主题。

附图说明

图1为根据一些实施例的其中可实施服务质量管理器的示例性网络架 构的框图。

图2为根据一些实施例的适用于实施服务质量管理器的计算机系统的 框图。

图3为根据一些实施例的服务质量管理器的操作的框图。

图4为根据一些实施例的由服务质量管理器使用的共享存储架构的框 图。

图5为根据一些实施例的服务质量管理器的模块的框图。

图6为根据一些实施例的框图,示出了服务质量管理器的操作的具体 使用案例。

这些图仅出于举例说明的目的来示出各种实施例。本领域技术人员根 据以下讨论将易于认识到,在不脱离本文所述原理的情况下,可采用本文 所述的结构和方法的替代实施例。

具体实施方式

图1为其中可实施服务质量管理器101的示例性网络架构100的框 图。在所示的网络架构100中,客户端系统103A、103B和103N以及服务 器105A和105N可通信地耦接至网络107。服务质量管理器101被示出为 驻留在服务器105A和105N上,但在其他实施例中,服务质量管理器101 可根据需要驻留在更多、更少或不同的计算机210上。在图1中,服务器 105A还被描绘为具有直接附接的存储设备160A(1)-(N),并且服务器105N 被描绘为具有直接附接的存储设备160B(1)-(N)。服务器105A和105N还连 接至SAN光纤网170,该SAN光纤网支持服务器105A和105N以及因此 客户端系统103A-N经由网络107对存储设备180(1)-(N)的访问。智能存储 阵列190还被示出为可经由SAN光纤网170访问的特定存储设备的例子。 在其他实施例中,使用FC或iSCSI(未示出)而不是SAN光纤网170(或 与SAN光纤网170的组合)来实施共享存储装置。

可使用多种不同的联网技术来提供从客户端计算机系统103A-N中的 每一者到网络107的连接能力。一些例子包括:LAN、WAN及各种无线技 术。客户端系统103A-N能够使用例如Web浏览器或其他客户端软件(未 示出)访问服务器105A或105N上的应用程序和/或数据。这使得客户端系 统103A-N可以通过应用服务器105运行应用程序并且/或者访问由存储服 务器105或存储设备160A(1)-(N)、160B(1)-(N)、180(1)-(N)中的一者或智能 存储阵列190托管的数据。

尽管图1示出三个客户端103A-N和两个服务器105A-N作为例子,但 在实践中可部署更多(或更少)的计算机。在一个实施例中,网络107是 互联网的形式。可在其他实施例中使用其他网络107或基于网络的环境。

图2为适用于实施服务质量管理器101的计算机系统210的框图。图1 中所示的客户端103和服务器105可为计算机210(诸如图2所示计算机) 的形式。如图所示,计算机系统210的一个组件是总线212。总线212可通 信地耦接计算机系统210的其他组件,诸如至少一个处理器214;系统存储 器217,例如,随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器; 输入/输出(I/O)控制器218;音频输出接口222,其可通信地耦接至外部音频 设备,诸如扬声器系统220;显示适配器226,其可通信地耦接至外部视频 输出设备,诸如显示屏224;一个或多个接口,诸如串行端口230、通用串 行总线(USB)插座230、并行端口(未示出)等;键盘控制器233,其可通 信地耦接至键盘232;存储接口234,其可通信地耦接至至少一个硬盘244 (或其他形式的磁介质);主机总线适配器(HBA)接口卡235A,其被配置 为与光纤通道(FC)网络290连接;HBA接口卡235B,其被配置为连接至 SCSI总线239;光盘驱动器240,其被配置为接收光盘242;鼠标246(或 其他指示设备),其例如经由USB插座228耦接至总线212;调制解调器 247,其例如经由串行端口230耦接至总线212;以及网络接口248,其例 如直接耦接至总线212。

其他组件(未示出)可以类似方式连接(如,文档扫描仪、数字相 机、打印机等等)。相反地,图2中所示的所有组件不需要都存在。可以 使用与图2中所示方法不同的方法来互连这些组件。

总线212允许处理器214与系统存储器217之间的数据通信,如上文 所指出,所述系统存储器可包括ROM和/或闪存存储器以及RAM。RAM 通常是将操作系统和应用程序加载到其中的主存储器。除其他代码外, ROM和/或闪存存储器还可包含控制某些基本硬件操作的基本输入输出系统 (BIOS)。应用程序可存储在本地计算机可读介质(如,硬盘244、光盘 242)上、加载到系统存储器217中并由处理器214执行。应用程序也可加 载到来自远程位置(即,远程定位的计算机系统210)的系统存储器217 中,例如经由网络接口248或调制解调器247加载。在图2中,服务质量 管理器101被示出为驻留在系统存储器217中。服务质量管理器101的工 作方式在下文中结合图3进行了更详细的阐释。

存储接口234耦接至一个或多个硬盘244(和/或其他标准存储介 质)。硬盘244可以是计算机系统210的一部分,或者可以是物理上独立 的并可通过其他接口系统进行访问。

网络接口248和/或调制解调器247可直接或间接可通信地耦接至网络 107,例如互联网。此类耦接可以是有线的或无线的。

图3示出根据一些实施例的服务质量管理器101的操作。图3示出在 集群300的多个物理计算机210中的每一者上的超级管理程序307层级运 行的服务质量管理器101的实例,其中一个或多个VM 305在每个物理计算 机210上运行,如下文更详细地讨论。应当理解,在不同实施例中,服务 质量管理器101的功能可驻留在服务器105、客户端103上或在多个计算机 系统210之间分配,包括在基于云的计算环境内分配,在所述基于云的计 算环境中,服务质量管理器101的功能作为服务通过网络107提供。应当 理解,尽管服务质量管理器101在图3中被示出为单个实体,但所示的服 务质量管理器101代表可根据需要实例化为单个或多个模块的功能集合。 应当理解,服务质量管理器101的模块可在任何计算机系统210的系统存 储器217(例如,RAM、ROM、闪存存储器)内被实例化(例如,被实例 化为目标代码或可执行映像),使得当计算机系统210的至少一个处理器 214处理模块时,计算机系统210执行相关功能。如本文所用,术语“计算 机系统”、“计算机”、“客户端”、“客户端计算机”、“服务器”、 “服务器计算机”和“计算设备”意指被配置和/或被编程为执行所述功能 的一个或多个计算机。此外,用于实施服务质量管理器101的功能的程序 代码可存储在计算机可读存储介质上,使得当程序代码被加载到计算机存 储器217中并由计算机系统210的至少一个处理器214执行时,计算机系 统210执行相关功能。任何形式的非暂态计算机可读介质均可用于该背 景,例如用于磁或光存储介质。如本文所用,术语“计算机可读介质”并 不意味着电信号与基础物理介质分离。

图3示出在与虚拟化环境311结合的集群和存储系统301的背景下实 例化的集群300。为了便于说明和阐释,集群和存储系统301以及虚拟化环 境311均被示出为集中式组件。应当理解,在实践中,集群和存储系统301 以及虚拟化环境311均包含分布在整个集群300中的组件。图3示出包括 两个主计算机210的集群300,每个主计算机运行两个VM 305(客机)。 VM 305由虚拟化环境311提供。尽管图3仅示出两个物理计算机210,但 应当理解,在不同实施例中,集群300可根据需要包括更多(或更少)的 计算机系统210。每个VM 305在物理主计算机210(例如图2所示类型的 物理主计算机)上运行。一个或多个VM 305可在每个主机210上运行(在 图3中示出每个主机210有两个VM 305,但单个主机210上也可运行一个 VM 305或两个以上的VM 305)。而每个VM 305上又可运行一个或多个 应用程序313。

如图3所示,超级管理程序在每个物理主计算机210上运行。在一个 实施例中,超级管理程序是硬件层级或“裸金属”超级管理程序307的形 式,并且充当VM 305及任何其他虚拟化环境软件中运行的操作系统。如 本文所用,术语“硬件层级超级管理程序”意指针对至少一些服务充当至 少一个VM 305与主计算机210的硬件之间的接口(与在主机上运行的操作 系统不同)的组件。需注意,在本文中被描述为由超级管理程序307执行 的服务在某些虚拟化场景下由具有不同名称的组件执行,所述名称诸如 “管理程序虚拟机”、“虚拟机管理器(VMM)”、“服务分区”或“域0 (dom0)”。

在一个实施例中,虚拟化环境311是由威睿公司(VMware,Inc.)提供的 软件的形式。在这种情况下,超级管理程序307是VMware的硬件层级超 级管理程序VMware ESX 307的形式。应当理解,VMware的硬件层级超级 管理程序307的名称可随产品版本而改变(例如,它曾被称为ESX服务 器,并且将来可能还会有其他别的名称)。在基于VMware的虚拟化环境 311中,支持软件套件可为VMware vSphere,其为VMware云技术支持型 虚拟化软件包。VMware vSphere在ESX上运行。应当理解,VMware的云 技术支持型虚拟化软件包的名称可随产品版本而改变。还应当理解,尽管 本文讨论了VMware虚拟化环境311,但可在提供类似功能和特征的其他虚 拟化环境311的背景下实施其他实施例。例如,在其他实施例中,使用了 诸如Microsoft的Hyper-V的虚拟化环境。

需注意,尽管结合图3将集群所使用的共享存储装置309示出并描述 为好像它是单个存储设备160一样,但在实践中,它通常通过多个基础物 理存储设备160来实施,这些基础物理存储设备由集群和存储系统301管 理,以便表现为访问共享存储装置309的计算系统210的单个存储设备 160。根据一个实施例的一个此类场景的架构的例子如图4所示,这在下文 中将更详细地讨论。在一些实施例中,共享存储装置309是由虚拟化环境 311提供的虚拟存储装置的形式,诸如虚拟机磁盘(VMDK)形式的一个或多 个VMware磁盘的集合。这种类型的实施例将在下文中更详细地描述。在 一些实施例中,集群300使用Veritas Storage Foundation High Availability (SFHA)或Veritas Storage Foundation Cluster File System High Availability (SFCFSHA)来实施,但也可在其他集群和存储管理环境诸如Microsoft  Cluster Server(Microsoft群集服务器)的背景下实施其他实施例。

如下文结合图5更详细地阐释,服务质量管理器101通过考虑共享计 算资源315的不同质量来优化提供至经优先级排序的VM 305和应用程序 313的服务质量,所述共享计算资源诸如CPU、存储器、I/O带宽、I/O信 道、存储装置、性能提升高速缓存、复制链接等。如本文所用,术语“共 享计算资源”是在计算机系统210上的组件之间共享以便促进虚拟化的任 何物理或逻辑资源。服务质量管理器101评估共享资源315,并充分利用相 同类型的资源315之间的质量差异,以基于VM 305的优先级507向VM  305提供服务质量。换句话讲,在单个主机210上运行并且向其上的超级管 理程序307发出对共享计算资源315的请求的多个VM 305(或VM 305上 运行的应用程序313)可基于例如与不同客户或内部客户端达成的保证不同 可用性水平的服务水平协议而具有不同的优先级507。常规超级管理程序 307无法识别的是,并非所有相同类型的共享计算资源315在所有时间点上 都以相同方式起作用。实际上,相同类型的共享资源315(例如,多个I/O 信道)可能在质量(例如,可用性、带宽、可读性、速度)上差异极大。 服务质量管理器101通过向具有最高优先级507的VM 305和/或应用程序 313提供最佳可用资源315,从而对共享资源315进行最优化的利用。在不 同实施例中,此功能可用于识别任何类型的共享计算资源315之间的质量 差异,并基于特定VM 305(或应用程序313)的优先级507向所述特定 VM 305(或应用程序313)提供不同的服务质量。

图3示出在超级管理程序307层级上运行并提供服务质量的服务质量 管理器101,所述服务质量考虑了由超级管理程序307分配给VM 305的共 享计算资源315的不同质量。应当理解,在其他实施例中,服务质量管理 器101在组件层级而不是超级管理程序307层级运行,并将共享计算资源 315分配给组件而不是VM 305,以便促进其他形式的虚拟化。例如,如下 文结合图6详细地描述,在一个实施例中,服务质量管理器101在多路径 处理组件601/HBA 235层级运行,并且将共享资源315分配给尝试访问虚 拟多路径磁盘603的应用程序313。出于该描述的目的,可能有帮助的是, 应注意VM 305是一种特殊类型的应用程序313,并且应以这种方式考虑 VM 305。

图4示出根据一些实施例的共享存储装置309架构的例子。智能存储 阵列190将多个物理存储设备160集合成单个逻辑单元(LUN)401。每个 LUN 401表现为访问主机210或客机305的单个存储设备160。集群和存储 系统301的逻辑卷管理器403可继而提供软件层级的逻辑卷管理,以基于 每个LUN 401创建多个逻辑卷405。尽管图4示出分别在逻辑上被视为三 个卷405的两个LUN 401,但应当理解,集群300可包含更多或更少的 LUN 401,并且所述更多或更少的逻辑卷405可基于给定LUN 401来构 建。

转到图5,根据一个实施例更详细地示出了服务质量管理器101的模 块。服务质量管理器101的质量等级分配模块501将质量等级503分配给 可由主机210上的VM 305使用的每个共享资源315。此类计算资源315的 合集可被视为共享计算资源池505。影响计算资源315的质量的因素可以是 静态的(例如,存储设备的平均访问速度或如由网络连接的基础网络硬件 配置决定的网络连接最大吞吐量)或动态的(例如,存储设备上的当前可 用空间量或通信信道上的当前负载)。在不同实施例中,质量等级分配模 块501可基于静态因素、动态因素或这两者的组合将质量等级503分配给 计算资源315。由于计算资源315的质量可动态变化,因此质量等级分配模 块501可连续地或周期性地评估资源池505中的资源315,并基于资源315 的当前状态(例如,基于计算资源315的所监测到的容量根据例如使用水 平或类型的实时改变)确定当前质量等级503。例如,如果将新网络适配器 添加到计算设备210,则可将新计算资源315添加到资源池505。发生这种 情况时,质量等级分配模块501会检测新计算资源315并为其分配适当的 质量等级503。

应当理解,作为任何基础硬件特征的替代或补充,共享计算资源的质 量可根据其程序配置而变化。例如,在下文结合图6更详细地描述的一个 实施例中,针对每个主机总线适配器(HBA)235维持多个优先级队列607。 更高优先级队列607中的I/O以比更低优先级队列607中的I/O以更高的频 率发送至HBA 235,并且因此质量等级分配模块501将更高质量等级503 分配给更高优先级队列607。然而,每个队列607的处理频率根据的是其通 过编程进行管理的方式,这与HBA 235或其他基础组件的任何内在特征不 同。

如该术语在本文中所用,质量等级503是对共享计算资源315的质量 的量化。在不同实施例中,可使用不同的内部格式来表示质量等级503(例 如,标度上的数字、字母数字描述符、百分比等)。在一些实施例中,质 量等级503针对不同类型的资源315量化不同的质量因素(例如,存储设 备的容量、I/O信道的带宽)。在一些实施例中,由单个质量等级503针对 各个资源315量化多个质量因素(例如,由例如质量等级对象中的单独字 段表示的容量、带宽和延迟)。在其他实施例中,质量等级503是资源总 体质量的单一量化的形式。

不同的VM 305具有不同的已分配优先级507,这可以基于在其上运行 的应用程序313的对应服务水平协议,或者基于其他因素,所述其他因素 相对于在同一主机210上运行的其他VM 305的优先级确定该VM的优先 级507。在一个实施例中,将优先级507分配给VM 305,并且应用程序 313在具有与将要提供至特定应用程序313的服务的水平对应的优先级507 的VM 305上运行。在另一个实施例中,将优先级507分配给应用程序313 本身,并且每个VM 305从在其上运行的应用程序313的优先级获得其优先 级507。如下文结合图6更详细地描述,在其他实施例中,可在不考虑VM  305的情况下将优先级507分配给在一个或多个物理计算机210上运行的多 个应用程序313中的每一个。可基于服务质量保证或其他因素由管理员或 其他用户(例如,通过用户界面)将优先级507分配给VM 305和/或应用 程序313。例如,可在具有高优先级507的特定VM上运行业务关键应用程 序。如该术语在本文中所用,优先级507是将要提供至VM 305或应用程序 313的服务质量相对于将要提供至同一主机上的或以其他方式类似地安置的 其他VM 305或应用程序313的服务质量的指示。在不同实施例中,可使用 不同的内部格式来表示优先级507(例如,低-中-高、标度上的数字等)。 以可访问的格式(例如,全局数据结构、数据库等)来(例如,由集群和 存储系统301)存储优先级507,使得服务质量管理器101的质量可访问这 些优先级。

服务质量管理器101的请求接收模块509接收向超级管理程序307发 出的对计算资源315的请求511。注意,服务质量管理器101在超级管理程 序307层级运行。因此,请求接收模块509可通过拦截或以其他方式过滤 对超级管理程序307进行的调用并且识别请求共享计算资源315的那些调 用,来接收向超级管理程序307发出的目标请求511。

服务质量管理器101的优先级识别模块513识别发出对共享资源315 的请求511的VM 305(或应用程序313)的优先级507。在一个实施例 中,对共享资源的请求511标记有始发者的标识符(例如,发出请求511 的VM 305的ID)。在这种情况下,优先级识别模块513通过标记来识别 请求511的始发者,并例如通过全局数据结构来检索对应的优先级507。在 其他实施例中,优先级识别模块513以其他方式识别请求511的始发者 (并且因此能够查找并检索该始发者的优先级507)。例如,如果请求511 为访问共享存储介质309的尝试的形式,则优先级识别模块513可通过确 定正发生所尝试的I/O操作的LUN 401来识别请求511的始发者。

响应于对共享计算资源315的请求511,服务质量管理器101的资源分 配模块515基于请求者(即,VM 305或应用程序313)的优先级507以及 资源315的质量等级503从资源池505分配所请求类型的特定共享资源 315。在一个实施例中,这个过程可包括根据由具有更高优先级507的组件 发出的服务请求511分配具有更高质量等级503的资源315。在其他实施例 中,使用更具体的粒度级别来进行所述分配。例如,优先级可指示重要的 特定因素,诸如可靠性、速度、带宽等,并且与这些特定因素有关的具有 不同质量等级503的共享资源315可被分配给具有对应的因素特定优先级 507的VM 305。同时用于质量等级503和优先级507的确切粒度级别,一 般来说并且针对特定因素来说,可根据需要因实施例而异。同样,用于基 于质量等级503与优先级507之间的映射将资源315分配给请求者的确切 逻辑可因实施例而异。通过基于质量等级503与优先级507之间的对应将 共享计算资源315分配给VM 305和应用程序313,服务质量管理器101可 按照特定组件的如由服务水平协议或以其他方式确定的相关特定优先级507 来将服务质量提供至特定组件。这就实现了对共享资源315的共用资源池 505的更合理的使用。

在一些实施例中,服务质量管理器101的记录模块517监测随时间推 移特定VM 305(或应用程序313)对共享计算资源315的使用,并将对应 信息写入到日志519以供将来参考。在不同实施例中,记录模块517可根 据需要以不同的详细程度记录信息。例如,日志519可,例如在文件更改 日志层级,记载基础的审计/统计资源使用信息,或用于访问特定资源315 的实际值,诸如发送至给定路径、存储设备、复制链接等的I/0的偏移。所 记录的信息可用于例如计算增量数据更新(例如,通过给定管道发送的增 量数据),并将所述增量数据更新发送至主机外处理服务(未示出),诸 如增量备份系统等。

使注意力回到图3,现在将描述特定使用案例,以帮助示出根据一个 实施例的服务质量管理器101的工作。如上文所指出,在一个实施例中, 虚拟化环境311为VMware vSphere平台的形式,并且超级管理程序307为 VMware的硬件层级超级管理程序ESX。在该实施例中,多个VM 305在给 定主计算机210上基于ESX 307的实例来运行,并且向ESX 307发出对从 VMDK 309读取数据或将数据写入到VMDK 309的请求511。(VMDK  309是VMware特定格式的虚拟机磁盘。)资源分配模块515基于请求I/O 操作的VM 305的优先级507将这些I/O操作中的特定I/O操作分配给具有 不同优先级水平(即,不同质量等级503)的I/O队列607(其为一种类型 的共享资源315)。注意,I/O队列607未在图3中具体示出,但图6示出 了为具有不同优先级水平的队列607的形式的共享计算资源315。在所描述 的特定使用案例的例子中,在主机210上运行的每个VM 305具有以下三个 优先级中的一者:高、中或低。资源分配模块515通过将I/O请求511放置 在所分配的队列607中,来根据来自VM 305的服务I/O请求511分配所述 三个I/O队列607中的一者。所述三个队列607分别具有高、中和低的质量 等级503。将源自优先级307为高的VM 305的I/O请求511放置在高等级 队列607中,将那些源自中优先级VM 305的I/O请求放置在中等级队列 607中,并且将那些源自低等级VM 305的I/O请求放置在低等级队列607 中。根据队列607的等级来服务于队列607,使得用最高服务质量来处理来 自高优先级VM 305的I/O请求511,以此类推。应当理解,在类似使用案 例中,可使用不止三个水平的质量等级503和优先级507。

在所描述的使用案例中,优先级识别模块513通过确定给定I/O请求 511定向到或来自哪个基础LUN 401来确定该请求511所源自的VM 305 (从而确定该VM 305的优先级507)。注意,在该使用案例中,共享存储 装置309为VMDK虚拟磁盘的形式。因此,为确定目标LUN 401,服务质 量管理器101创建受I/O操作影响的VMDK磁盘块与作为VMDK 309基础 的LUN 401的集合中对应偏移之间的映射317。该映射317指示目标LUN  401从而指示始发VM 305及其优先级507。

在该使用案例的不同具体实施中,可使用不同的方法来确定VMDK磁 盘309到LUN 401的映射317。例如,在一个具体实施中,使用VMware  Web服务API来确定系给定VMware数据存储库的一部分的LUN 401的集 合。使用具有特定命令行选项的给定VMware命令(当前为“vmkfstools- t0”,但在VMware产品的未来版本中,命令和调用参数可能改变)来确定 存储映射。这个命令输出VMDK块到通用唯一标识符(UUID)集合中的偏移 的映射。注意,这些UUID不直接与实际存储LUN 401相关,而是存储在 以固定偏移(当前为VMware Virtual Machine File System(VMware虚拟机 文件系统)4.1中的偏移00100080)开头的独立存储LUN 401中。通过在 系给定VMware数据存储库的一部分的设备上读取该偏移处的数据(如经 由如上文所述的Web服务API所确定),确定哪些LUN 401具有哪些给定 UUID。由于服务质量管理器101具有如“vmkfstools-t0”命令所返回的 VMDK块到UUID中的偏移的映射,并且已确定哪个LUN 401具有哪个 UUID,因此服务质量管理器101现在可构造VMDK块到LUN 401的映射 317。注意,在其他具体实施中,该映射317以其他方式获得,例如通过使 用某些可用的VMware API来获得。在任何情况下,映射317都指示 VMDK数据的哪些块驻留在给定LUN 401的哪些偏移中。基于该映射 317,多路径处理组件(例如,VMware ESX环境中的VxDMP)可确定给 定I/O包正来自或前往哪个VM 305从而确定哪个VM 305发出了请求 511。下文结合图6更详细地讨论了多路径处理。一旦识别了发出请求511 的VM 305,优先级识别模块513便识别该VM 305的优先级507,并且资 源分配模块515将特定I/O操作分配给具有匹配质量等级503的I/O队列 607。

现在转到图6,描述了服务质量管理器101的另一使用案例。在图6所 示的使用案例中,服务质量管理器101在集群和存储系统301的多路径处 理组件601层级运行,而不是在超级管理程序307层级运行,其中一些模 块在HBA 235层级运行。更具体地讲,一些存储管理产品,诸如Veritas  Volume Manager(Veritas卷管理器)的Dynamic Multipathing(动态多路径 处理)组件,支持多路径存储设备603。多路径存储设备603是可供I/O的 发起程序使用的虚拟磁盘,其中在虚拟多路径磁盘603与基础物理存储装 置160之间存在多个物理路径605。尽管图6示出了物理存储装置160的两 个路径605,但实际上可存在更多(或更少)的路径605。此外,尽管图6 将物理存储装置160示出为单个组件,但通常会用多个基础物理存储设备 160来实施物理存储装置160,例如如图4所示。

如图6所示,多个应用程序313在计算机系统210的系统存储器217 中运行,并发起以虚拟多路径磁盘603为目标的I/O操作。作为响应,多路 径处理组件601确定针对给定I/O操作将使用哪个路径605。传统上,多路 径处理组件601采用常规负载均衡策略(例如,轮询、最小O等)来决定 沿哪个路径605发送每个I/O,并且如果给定路径605失效则在路径605之 间动态地切换。为了沿给定路径605将I/O发送至物理存储装置160,多路 径处理组件601将I/O发送至被配置为经由给定路径605连接至物理存储装 置160的特定主机适配器总线(HBA)235。

在图6所示的一个使用案例中,服务质量管理器101针对每个HBA  235维持多个优先级队列607。多路径处理组件601接收以虚拟多路径磁盘 603为目标的I/O,并且使用其负载均衡策略来将I/O分配给特定HBA  235。在HBA 235层级,资源分配模块515然后基于队列607的质量等级 503以及发起I/O操作的应用程序313的优先级507,将给定I/O分配给特 定HBA 235的特定优先级队列607。更具体地讲,图6示出了每个HBA  235有三个优先级队列607,每个队列分别针对来自高优先级应用程序 313、中优先级应用程序313和低优先级应用程序313的I/O。在其他实施 例中,可根据需要针对每个HBA 235维持更多、更少或不同等级的队列 607。

优先级识别模块513(例如,通过I/O请求511中的标记或正发生I/O 操作的LUN 401)识别I/O所源自的应用程序313,从而识别该应用程序的 优先级507。资源分配模块515基于应用程序313的优先级507将I/O插入 在适当的优先级队列607中。例如,在所示的三队列607实施例中,将源 自优先级507为高的应用程序313的I/O插入在高优先级队列607中,将那 些源自中优先级应用程序313的I/O插入在中优先级队列607中,并且将那 些源自低优先级应用程序313的I/O插入在低优先级队列607中。

服务质量管理器101基于优先级队列607的相应优先级沿每个HBA  235从所述HBA 235的优先级队列607发送I/O。换句话讲,服务质量管理 器101从高优先级队列607中选择最多I/O,从中优先级队列607中选择较 少I/O,并且从低优先级队列607中选择最少数量的I/O。将要从每个队列 607中选择的I/O的特定比例可基于相对优先级来确定,或者可由管理员或 其他用户设定。将要使用的确切比例是可变设计参数,并且在不同实施例 中,可根据需要使用不同的比例。I/O操作的这种与其始发应用程序313的 优先级507成比例的服务将更高水平的服务提供至更高优先级应用程序 313。

在图6所示的使用案例的另一个实施例中,与将队列607分配给路径 605相反或作为将队列607分配给路径605的补充,将质量等级503分配给 特定路径605本身。传统上,用户可将不同权重分配给多路径存储设备603 的不同路径605。权重然后用作调度机制,使得每个权重决定正发送至对应 路径605的I/O的比例。还可基于各种因素,诸如路径605的带宽、到物理 存储设备160的跳数、路径605的稳定性等,来动态地确定权重。在该实 施例中,质量等级分配模块501基于路径605的权重将质量等级503分配 给路径605(例如,权重越高,所分配的质量等级503越高)。在一些实施 例中,质量等级分配模块501不使路径605的质量等级503以其所分配的 权重为基础,而是通过主动地测量各种因素,诸如其可靠性、速度、可用 性等,来主动地确定每个路径605的质量等级503。为测量此类因素,质量 等级分配模块501可静态地或动态地监测各因素,诸如跳数、路径605的 稳定性、过去遇到的失效、存储控制器升级等。在任一种情况下,优先级 识别模块513然后都识别将I/O发送至多路径存储设备603的应用程序313 的优先级507,并且资源分配模块515沿具有对应质量等级501的路径605 发送每个I/O。例如,沿具有最高质量等级503的路径605发送源自高优先 级应用程序的I/O,等等。应当理解,在一些实施例中,将质量等级503分 配给路径605以及将质量等级分配给队列607是单独使用的,以便基于应 用程序313的优先级507来将服务质量提供至应用程序313。在其他实施例 中,这些特征组合使用。在这些实施例中,每个I/O基于始发应用程序313 的优先级507被分配给具有特定质量等级503的特定路径605,然后还再次 基于始发应用程序的优先级507(例如,以不同的粒度级别)被分配给该路 径605的特定优先级队列607。

为将图6的使用案例应用到运行多个VM 305的主机,可如上文所述 将优先级507分配给VM 305,并且可在具有适当优先级507的VM 305上 运行特定应用程序313。

如熟悉本领域的技术人员所理解的,在不脱离本发明的精神或实质特 征的情况下,本发明可以以其他特定形式来体现。同样地,部分、模块、 代理程序、管理器、组件、功能、规程、动作、层、特征、属性、方法、 数据结构和其他方面的具体命名和划分不是强制性的或重要的,并且实施 本发明的机制或其特征可具有不同名称、划分和/或格式。出于阐释目的, 已参考特定实施例进行了以上描述。然而,以上示例性讨论并非意图是穷 举的或限制为所公开的精确形式。鉴于上述教导,许多修改形式和变型形 式都是可能的。为了最好地阐释相关原理及其实际应用,选择并描述了实 施例,由此使得本领域其他技术人员能够最好地利用具有或不具有可适合 所设想的具体用途的各种修改形式的各种实施例。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号