首页> 中国专利> 使用盘驱动器模拟模型来对盘I/O扼流

使用盘驱动器模拟模型来对盘I/O扼流

摘要

本发明涉及使用盘驱动器模拟模型来对盘I/O扼流。提供用于对从虚拟机(VM)到硬盘驱动器(HDD)的请求进行扼流的计算机化的方法、系统和计算机存储介质。当从VM接收到对盘I/O的请求时,访问盘驱动器模型,所述盘驱动器模型模拟所述HDD的性能特性。在访问期间,收集所述盘驱动器模型对HDD参数的估计和所述盘驱动器模型对所述HDD的盘头的当前状态的估计。根据估计的HDD参数和估计的盘头的当前状态来计算执行所述请求的预期执行时间。而且,当允许所述请求传递到所述HDD时就测量执行所述请求的实际执行时间。使用所述预期执行时间和所述实际执行时间的比较,对来自所述VM的请求的流量进行扼流。

著录项

  • 公开/公告号CN103116473A

    专利类型发明专利

  • 公开/公告日2013-05-22

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN201210465126.7

  • 发明设计人 Y·邓;邹浩源;左玥;F·C·福尔茨;

    申请日2012-11-16

  • 分类号G06F3/06;G06F9/455;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人段登新

  • 地址 美国华盛顿州

  • 入库时间 2024-02-19 18:53:05

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-01-20

    授权

    授权

  • 2015-08-05

    专利申请权的转移 IPC(主分类):G06F3/06 变更前: 变更后: 登记生效日:20150717 申请日:20121116

    专利申请权、专利权的转移

  • 2013-06-19

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20121116

    实质审查的生效

  • 2013-05-22

    公开

    公开

说明书

技术领域

本发明涉及使用盘驱动器模拟模型来对盘I/O扼流。

背景技术

大规模联网系统是在用于为业务和操作功能运行应用和维护数据的多种 设定中使用的常见平台。例如,数据中心(例如物理云计算基础设施)可以同 时为多个客户提供多种服务(例如web应用、电子邮件服务、搜索引擎服务等 等)。这些大规模联网系统通常包括遍及该数据中心分布的大量资源,其中每 个资源都类似物理机或在物理节点或主机上运行的虚拟机(VM)。当数据中 心托管多个承租人(例如客户程序)时,这些资源被最优地从同一数据中心分 配给不同的承租人。

通常,多个VM将同时运行在计算网络或数据中心内的同一物理节点上。 共享共同物理节点的这些VM可被分配给不同的承租人(tenant)并可在不同 时间需要不同资源量。例如,资源可包括与物理节点相关联的物理盘(例如, 硬盘驱动器),其中在某一时帧期间该物理盘具有有限量的可访问性。当一个 承租人需要增加对物理盘的使用来完成特定任务时,在该物理节点上运行的该 承租人的VM可能潜在地通过发送向物理盘发送大量请求来向该物理盘施加压 力,从而阻止在该物理节点上运行的其他VM公平地共享其资源。

目前,因为盘输入/输出(I/O)性能(例如,访问一数据片段的时间)通 常滞后于在该物理节点上运行的VM的CPU性能(例如,处理器速度)和网 络性能(例如,带宽使用),所以存在用于计量从VM发送到物理盘的请求的 基本方法。这些方法通过尝试使用存储速率(兆字节/秒)或者替代地使用活动 速率(请求/秒)来描述盘I/O性能来计量请求。在使用兆字节/秒的情况下,这 种方法考虑被读取或写入的数据的大小,但是不考虑数据在物理盘内是被如何 安排的。另一方面,在使用请求/秒的情况下,这种方法考虑在给定时帧内盘头 (disk head)被要求在物理盘上移动的次数。即,使用请求/秒方法不考虑在移 动盘头之后被访问的数据的大小。

相应地,因为基于兆字节/秒的方法(仅与顺序访问有关)和基于请求/秒 的方法(仅与随机访问有关)各关注盘I/O性能的不同的具体方面,所以这些 方法无法同时考虑对物理盘的顺序访问和随机访问两者。例如,基于兆字节/ 秒的方法关注顺序访问,从而呈现出被随机访问的洪泛压垮并生成请求积压的 风险。另一方面,基于请求/秒的方法关注随机访问,从而呈现出遇到顺序访问 串且不必要地限制到物理盘的吞吐量的风险。因此,无法考虑顺序访问以及随 机访问,或者没有意识到它们所产生的盘I/O性能之间的巨大差别,从而使得 这些方法是低效的。

发明内容

提供本发明内容是为了以简化的形式介绍将在以下具体实施方式中进一 步描述的概念。本发明内容并非旨在标识所要求保护的所针对的的关键特征或 必要特征,也不旨在用于帮助确定所要求保护的所针对的的范围。

本发明的实施例提供一种根据盘驱动器模型对从在虚拟机(VM)上运行 的服务应用发出的请求进行扼流的机制,所述虚拟机驻留于数据中心的共同的 物理机或节点上。如此处所使用的,短语“盘驱动器模型”一般是指硬盘驱动 器(HDD)的软性盘(soft-disk)表示,其中盘驱动器模型在计算用于执行服 务-应用请求的预期执行时间时模拟HDD的性能特性。在一示例下实施例中, 盘驱动器模型通过考虑HDD的至少以下两个因素来模拟HDD的性能特性:与 HDD上目前存在的一组实际参数相对应的一组参数;以及HDD的盘头的当前 状态。如下面更完全地讨论的,盘头的当前状态可被用来计算将该盘头从满足 当前执行的请求的第一位置移动到满足待决请求的第二位置所消耗的时间。

先前的用于量化HDD的性能的方法限于考虑兆字节/秒(所传输的信息量) 或请求/秒(操作速率)之一。本发明的实施例中所采用的方法依赖于盘驱动器 模型,该盘驱动器模型基于各种因素(包括上面提到的两个因素)来精确地量 化盘I/O性能。此外,本发明的实施例中的方法应用盘驱动器模型来确定应当 如何处理读取或写入的盘I/O请求(后文称为“请求”),诸如基于HDD相对 于该盘驱动器模型如何执行的事实来对请求进行限制或“扼流”。出于各种原 因,在云计算环境中对盘I/O进行正确地扼流是有利的,诸如提供一种将VM 盘性能与底层物理存储硬件(例如HDD)解耦合的方式以及提供向个体VM动 态分配性能阈值的能力。如下面更全面地讨论的,基于将请求的预期执行时间 (使用盘驱动模型)和请求的实际执行时间(测量该HDD执行请求所花的时 间)进行比较,计算性能阈值。

在一示例下实施例中,该盘驱动器模型被用于对盘I/O的请求进行扼流的 目的。最初,对于被请求的每一盘I/O操作,计算预期执行时间(即,该盘驱 动器模型处理该盘I/O操作所花的时间)。在操作中,该盘驱动器模型的预期 执行时间可被用作扼流决策的基准栏(baseline bar)。

一旦传递到HDD,测量实际执行时间(即,HDD执行盘I/O操作所花的 时间)。如果HDD的实际执行时间少于该盘驱动器模型的预期执行时间,则 该HDD的性能超额(outperform)。当该HDD性能胜过盘驱动器模型到一定 程度时,可以延迟的方式来执行后续盘I/O操作,或者换言之,可对后续请求 进行扼流。作为示例,扼流可涉及当HDD的性能超额时在调度后续请求时增 加时间。或者,扼流可涉及当HDD的性能不足时,立即处理后续请求。如此, 使用此盘驱动器模型来确定何时对请求的消费选择性地施加约束可改善对 HDD能力的施压或者改善对向VM驻留于其中的数据中心的承租人保证的服 务的质量带来的负面影响,并且同时最大化磁盘I/O操作的吞吐量。而且,在 实践中,当该HDD没有被过度施压时可使用扼流。在一个示例中,如果向不 同类型的VM分配不同的性能等级,则扼流可帮助使得这些性能等级被保持。 在另一示例中,如果不管特定客户的VM被部署在何处(例如,在快物理机上 或在慢物理机上),均向该VM保证一性能等级,则扼流可帮助确保所保证的 性能等级被保持。

附图说明

以下参考附图详细描述本发明的各实施例,附图中:

图1是适用于实现本发明的各实施例的示例性计算环境的框图;

图2是示出适于用于实现本发明的实施例的示例性云计算平台的框图,该 平台被配置成利用盘驱动器模型来计算传入请求的预期执行时间;

图3是根据本发明的实施例的描绘与过滤器驱动程序通信的物理节点内的 队列的示例性分布式计算环境的框图;

图4是示出根据本发明的实施例的使用过滤器驱动程序来对从一个或多个 虚拟机(VM)到硬盘驱动器(HDD)的请求进行扼流的示例性方法的流程图; 以及

图5是示出根据本发明的实施例的用于限制流向该HDD的请求的速率的 示例性方法的流程图。

具体实施方式

此处用细节来描述本发明的各实施例的所针对的以满足法定要求。然而, 该描述本身并非旨在限制本专利的范围。相反,发明人设想所要求保护的所针 对的还可结合其他当前或未来技术按照其他方式来具体化,以包括不同的步骤 或类似于本文中所描述的步骤的步骤组合。

本发明的实施例涉及用于向对要由硬盘驱动器(HDD)处理的盘I/O操作 的请求的源(例如,在物理节点上实例化的虚拟机(VM))应用扼流的方法、 计算机系统和计算机可读介质。在操作中,所施加的扼流可根据请求的预期执 行时间(使用盘驱动模型)和请求的实际执行时间(测量该HDD执行请求所 花的时间)的比较来对来自VM的请求进行计量。在一示例性实施例中,计量 涉及对在标识所预期执行时间超过实际执行时间之后发出的那些请求的递送 进行延迟。作为示例,计量可由过滤器驱动程序实现,该过滤器驱动程序致使 该主机存储或“使入队”由VM发出的经延迟的请求。

在一方面,本发明的实施例涉及一种或多种其上包含计算机可执行指令的 计算机存储介质,这些指令在被执行时执行用于使用过滤器驱动程序对从一个 或多个VM到HDD的请求进行扼流的方法。最初,该方法可在该过滤器驱动 程序从所述VM中的一个或多个上运行的服务应用一接收到所针对的请求就开 始。在解析请求后,就访问盘驱动器模型。在一示例性实施例中,盘驱动器模 型的行为与HDD基本类似。在一特定情况下,访问的过程包括读取盘驱动器 模型对硬盘驱动器的性能特性的模拟,以及读取盘驱动器模型对于硬盘驱动器 的盘头的当前状态的模拟。

由过滤器驱动程序执行的所述方法可进一步包括以下步骤:根据所述性能 特性和所述盘头的当前状态来计算执行该所针对的请求的预期执行时间。而 且,在过滤器驱动程序允许将所针对的请求传递给HDD之后就测量执行所述 所针对的请求的实际执行时间。使用预期执行时间和实际执行时间的比较,对 来自VM的请求(所述请求时在到该HDD的所针对的请求之后发出的)的请 求的流量进行扼流。

在另一方面,本发明的实施例涉及一种能够对HDD执行来自服务应用的 请求的速率进行扼流的计算机系统,其中根据盘驱动器模型来管理扼流。该计 算机系统包括被配置成带有具有在其上运行的多个计算机软件组件的计算机 存储介质的至少一个物理机(例如,数据中心的节点)。最初,计算机软件组 件包括VM、VM总线、以及在主机分区(host partition)中运行的文件系统驱 动器。在操作中,VM被配置成用于托管(host)服务应用的一部分(例如, 服务应用角色的实例或组件程序)。服务应用的所述部分能够发出向与该VM 相关联的虚拟硬盘(VHD)文件读或写数据的请求。通常,在HDD的硬盘上 维护VHD文件的副本。

在计算机系统的进一步实施例中,过滤器驱动程序被配置成用于将第一请 求的预期执行时间与第一请求的实际执行时间进行比较。一般而言,“预期执 行时间”是使用盘驱动器模型来计算的,所述盘驱动器模型模拟硬盘驱动器的 性能特性,而“实际执行时间”是一完成硬盘驱动器处的请求之后就测量的。 该过滤器驱动程序被进一步配置成用于基于比较的结果来影响执行后续请求 的定时。VM总线被配置成将服务应用从请求递送到过滤器驱动程序,而队列 被配置成保留从被过滤器驱动程序延迟的VM发出的请求。通常,这些队列中 的请求将在稍后的时间被处理并发送到HDD。

在又一方面,本发明的实施例涉及用于限制流向硬盘驱动器的请求的速率 的计算机化的方法。在实施例中,该方法涉及利用盘驱动器模型来计算该HDD 执行第一请求的预期执行时间,以及测量该HDD执行第一请求所花的实际执 行时间。在计算预期执行时间时,盘驱动器模型考虑盘头(用于对HDD的硬 盘读或写数据)从作为第一请求的目标的数据的最后扇区移动至作为第二请求 的目标的数据的第一扇区的时间。

在某点,将预期执行时间与实际执行时间进行比较,并且根据比较的结果 来管理允许传递到HDD的请求的速率。在一种情况下,管理的过程包括:在 预期执行时间比实际执行时间超出大于性能阈值的值时,在将请求传递到HDD 之前对该请求施加延迟。在另一种情况下,管理的过程包括:在预期执行时间 不比实际执行时间超出大于性能阈值的值时,一接收到请求就将该请求传递到 HDD。

在简要描述了本发明的各实施例的概览后,以下描述适于实现本发明的各 实施例的示例性操作环境。具体而言,示例性的操作环境支持通过对HDD处 的资源消耗施加约束来允许驻留在共同的物理节点上的VM各自发送对盘I/O 的请求的机制(例如,图2的过滤器驱动程序230)的功能;从而,改善用待 决请求使HDD过载或者不必要地对向HDD的吞吐量施加负面影响的施压的状 态。

操作环境

首先具体参考图1,示出了用于实现本发明的各实施方式的示例性操作环 境,并将其概括地指定为计算设备100。计算设备100只是合适的计算环境的 一个示例,并且不旨在对本发明的使用范围或功能提出任何限制。也不应该将 计算设备100解释为对所示出的任一组件或其组合有任何依赖性或要求。

本发明可以在由计算机或诸如个人数据助理或其他手持式设备之类的其 他机器执行的计算机代码或机器可使用指令(包括诸如程序模块之类的计算机 可执行指令)的一般上下文中描述。一般而言,包括例程、程序、对象、组件、 数据结构等等的程序模块是指执行特定任务或实现特定抽象数据类型的代码。 本发明的各实施方式本发明可以在各种系统配置中实施,这些系统配置包括手 持式设备、消费电子产品、通用计算机、专用计算设备等等。本发明也可以在 其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。

参考图1,计算设备100包括直接或间接耦合以下设备的总线110:存储 器112、一个或多个处理器114、一个或多个呈现组件116、输入/输出(I/O) 端口118、输入/输出组件120、和说明性电源122。总线110可以是一条或多 条总线(诸如地址总线、数据总线、或其组合)。虽然为了清楚起见利用线条 示出了图1的各框,但是实际上,各组件的轮廓并不是那样清楚,并且比喻性 地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈 现组件认为是I/O组件。而且,处理器具有存储器。发明人认识到这是本领域 的特性,并重申,图1的图示只是例示可以结合本发明的一个或多个实施方式 来使用的示例性计算设备。诸如“工作站”、“服务器”、“膝上型计算机”、 “手持式设备”等分类之间没有区别,它们全部都被认为是在图1的范围之内 的并且被称为“计算设备”。

计算设备100通常包括各种计算机可读介质。计算机可读介质可以是可由 计算设备100访问的任何可用介质,而且包含易失性和非易失性介质、可移动 和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质 和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、 程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移 动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、 闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、 磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以 由计算设备100访问的任何其它介质。通信介质一般将计算机可读指令、数据 结构、程序模块或其它数据包含在经调制的数据信号中,诸如载波或其它传输 介质并且包括任何信息传递介质。术语“已调制数据信号”是指具有以在信号 中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限 制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸 如声学、RF、红外线和其他无线介质。上述的任意组合也应包含在计算机可读 介质的范围内。

存储器112包括易失性和/或非易失性存储器形式的计算机存储介质。存储 器可以是可移动的、不可移动的、或其组合。示例性硬件设备包括固态存储器、 硬盘驱动器、光盘驱动器等。计算设备100包括从诸如存储器112或I/O组件 120等各种实体读取数据的一个或多个处理器。呈现组件116向用户或其他设 备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组 件等等。

I/O端口118允许计算设备100逻辑上耦合至包括I/O组件120的其他设 备,其中某些设备可以是内置的。说明性组件包括话筒、操纵杆、游戏手柄、 圆盘式卫星天线、扫描仪、打印机、无线设备等等。

用于实现的系统

参考图1和图2,物理节点215可以由图1的示例性计算设备100实现。 虚拟机(VM)201、202、203和204中的一个或多个可包括图1的存储器112 的部分和/或图1的处理器114的部分。在实施例中,VM 201-204可各表示节 点215的相应的客分区,其中该客分区被允许托管服务应用,或服务应用的至 少一部分。一般而言,该服务应用为以分布式方式托管该服务应用的云计算平 台的承租人(例如,客户)所拥有。节点215可进一步支持其上运行各组件220、 225、230、235、240和245的主机210。在实施例中,主机210表示节点215 的根分区,其中所述根分区的任务是总体上管理来自客分区的请求,诸如在硬 盘驱动器(HDD)260处实现盘I/O操作的请求。

现在转到图2,示出了根据本发明的实施例示出示例性云计算平台200的 框图,该云计算平台200被配置成利用盘驱动器模型235来计算传入请求270 的预期执行时间。如图所示,请求270是从被分配给第一VM 201的服务应用 的角色实例211发出的。VM总线205被用来将请求270从第一VM 201传递 到主机210。在实施例中,VM总线205被用来将来自节点215上的VM 201-204 的请求的流量传输到主机210以在在HDD 260处进行处理之前进行扼流。

尽管图2仅示出了一个服务应用部分(角色实例211),应该理解,其他 服务应用的各种其他组件程序可被分配给并放置到VM 201-204上,如下面更 完整地讨论的。即,节点215内的VM 201-204可被各种服务应用占据。作为 示例,服务应用A的一部分可占据VM 202,而服务应用B的各部分可占据VM 203和VM 204,其中VM 202-204中的每一个在物理节点215上被实例化以支 持服务应用A和B的功能。

应当理解和明白,图2中所示的云计算平台200仅仅是一个合适的计算环 境的示例,并且不旨在对本发明的实施例的使用范围或功能提出任何限制。例 如,云计算平台200可以是公共云、私有云、或专用云。也不应该将云计算平 台200解释为对其中所示出的任何单个组件或组件组合有任何依赖性或要求。 此外,尽管为了清楚起见用线条示出了图2的各个框,但是在实际上,各组件 的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊 的。另外,可以采用任何数目的物理机、虚拟机、数据中心、端点或其组合来 在本发明的实施例的范围内实现所期望的功能。

云计算平台200通常包括托管并支持VM 201-204的操作的数据中心,所 述VM 201-204主存云计算平台200的承租人/客户所拥有的分布式服务应用的 各部分(例如,角色实例211或其他端点)。在此使用的用语“服务应用”宽范 围地指运行在云计算平台200之上或访问云计算平台200内的存储位置的任何 软件或软件部分。在一个实施例中,角色实例211可表示参与支持服务应用的 功能的软件的一部分或组件程序。能够理解和明白,图2中所示的角色实例211 仅仅是支持服务应用的合适部分的示例,并且不旨在对本发明的实施例的使用 范围或功能提出任何限制。

一般而言,VM 201-204被实例化并被基于施加到该服务应用上的需求(例 如,处理负载的量)而分别指定到一个或多个服务应用。如在此所使用的那样, 用语“虚拟机”无意为限制性的,并且可以指由处理单元执行以支持服务应用的 功能的任何软件、应用、操作系统或程序。

而且,VM 201-204可请求处理能力、对存储位置的访问、资源、以及节 点215内的其他资产(例如,托管代理)来适当地支持服务应用。作为响应, VM 201-204可以是动态分配的资源(例如,网络带宽、CPU处理能力、或HDD 处的盘I/O)来满足当前工作负载。如同上面指示的,主机210可帮助将资源 分配到VM 201-204。具体而言,主机210的过滤器驱动程序可管理从VM 201-204发出的、定向到HDD 260来进行处理的请求的扼流。

如同上面讨论的,VM 201-204可以是节点215内的动态分配的资源。按 照本发明的实施例,节点215可表示任何形式的计算设备,诸如例如个人计算 机、台式计算机、膝上型计算机、移动设备、消费电子设备、服务器、图1的 计算设备100等等。在一个实例中,节点215分别支持VM 201-204的操作, 同时托管被开辟为支持云计算平台200的其他承租人的其他虚拟机,其中所述 承租人包括由不同客户拥有的其他服务应用的端点。

通常,节点215包括或被链接到某种形式的计算单元(例如,中央处理单 元、微处理器等)以支持VM 201-204和/或其上运行的组件220、225、230、 235、240和245的操作。如在此所使用的那样,用语“计算单元”通常是指具 有处理能力和存储存储器的专用计算设备,该专用计算设备支持一个或多个操 作系统或其他底层软件。在一个实例中,该计算单元是用有形硬件元件或机器 来配置的,所述有形硬件元件或机器是集成的、或者可操作地耦合到节点215 以使得每个设备都能够执行多种过程和操作。在另一情况下,计算单元可涵盖 耦合到节点215所容纳的计算机可读介质的处理器(未示出)。一般而言,计 算机可读介质至少临时地存储可由处理器执行的多个计算机软件组件(例如, 组件220、225、230、235、240和245)。如本文所使用的,术语“处理器” 不旨在是限制性的,并且可涵盖具有计算能力的计算单元的任何元素。在这种 能力中,处理器可被配置成处理指令的有形物品。在示例性实施例中,处理可 以包括取指令、解码/解释指令、执行和写回指令。

在一个方面,VM 201-204在云计算平台200的上下文内操作,并且相应 地可与节点215内部地通信、通过横跨数据中心做出的动态连接跨越物理节点 通信、以及通过物理网络拓扑与远程网络(例如,企业私有网络)的资源外部 地通信。连接可涉及经由网络云(未示出)来将跨越数据中心的各物理资源分 布的VM互连。网络云将这些资源互连以使得一个VM可识别另一VM的位置 以建立其间的通信。例如,网络云可通过将托管共同的服务应用的组件程序的 VM连接的信道来建立此通信。举例来说,这些信道可包括但不限于一个或多 个局域网(LAN)和/或广域网(WAN)。这样的联网环境常见于办公室、企 业范围计算机网络、内联网和因特网中。因此,网络不在此进一步描述。

现在将参考从角色实例211发出的请求270来描述主机210上运行的组件 220、225、230、235、240和245的一般性功能。在实施例中,I/O管理器220 一开始接收了请求270并对该请求进行解析来获得对此处的指令的理解。在一 示例性实施例中,请求270的指令可包括执行消费HDD 260处的盘I/O的读操 作或写操作的命令。I/O管理器220随后将请求270传递到过滤器管理器225 来确定是立即处理请求270还是对请求270施加延迟。过滤器管理器225可具 有多种类型的过滤器可供支配来帮助适当地管理来自VM 201-204的请求的流 量。在一个实例中,过滤器管理器可咨询过滤器驱动程序230来根据盘驱动器 模型235和HDD 260的当前状态对来自VM 201-204的请求的流量进行扼流。 下面将参考图3更完整地讨论扼流的实施例。一旦过滤器管理器225认为能够 允许请求270被处理,则文件系统240解释请求270、确定要访问的适当的虚 拟硬盘(VHD)文件、并表示该VHD文件的位置。接下来,存储驱动程序栈 245通过控制HDD 260以对HDD 260的硬盘上的VHD文件进行读或写来实现 请求270。

在实施例中,VHD文件一般性地表示向其应用了特定的格式化的虚拟硬盘 文件。此文件格式化可维持HDD 260上的数据的正确存储,诸如盘分区和文件 系统。这些盘分区可包括结构化的数据,诸如文件和文件夹。在操作中,VHD 文件可被用作虚拟机的硬盘存储器。

现将讨论HDD 260的一般配置。最初,HDD 260表示非易失性、随机访 问数字磁存储设备。HDD 260内包括旋转的刚性盘片(platter)(例如,硬盘), 该盘片被保护性外壳内的电动机驱动的心轴(spindle)旋转。数据被至少一个 盘头以磁的方式从硬盘读取或写到硬盘。在一个实施例中,HDD 260利用一种 将盘头移动到正确的位置并从该硬盘读取多个字节的机制。将盘头移动到正确 的位置消耗一定量的时间,过滤器驱动程序230在向HDD 260分配任务时考虑 所述时间。

通常,作为读操作和写操作的一部分,请求270将请求HDD 260将硬盘 上的数据的特定部分作为目标。被作为目标的数据可位于硬盘的第一扇区内, 而被后续请求作为目标的另一部分数据可位于硬盘的第二扇区内。而且,第一 扇区和第二扇区可位于记录在硬盘上的不同的轨(例如,以磁的方式存储的信 息的同心圆)内。相应地,在完成请求270并开始执行后续请求后,在盘头从 硬盘的第一扇区到第二扇区移动横向距离的时候消耗了一定量的时间。应当理 解和明白,在实施例中,硬盘的磁性表面上保留数据的扇区表示被分配给特定 文件或文件夹(例如,VHD文件)的微米大小的细分区或磁性域。

当从执行请求270切换到执行后续请求时,HDD 260进行若干过程,这些 过程消耗时间并从而影响来自VM 201-204的请求的调度。HDD 260的这些耗 时过程包括控制器等待时间、寻道速度、旋转等待时间、以及数据传输速率。 控制器等待时间是指盘控制器(例如,I/O管理器220)用在解释和执行请求 270上的开销。如同上面刚刚提到的,寻道速度是指将盘头从硬盘上(作为待 决请求的目标的)保留数据的第一扇区的轨移动到盘头上(作为后续请求的目 标的)保留数据的第二扇区的另一轨所消耗的时间。旋转等待时间是指一旦盘 头被移动到适当的轨之后将硬盘旋转到数据的第二扇区的开头所消耗的时间。 数据传输速率是指硬盘旋转的速度以及对该硬盘读或写数据的速度(例如,传 输到硬盘或从硬盘传输的邻近文件的块的数量)。

在一示例性实施例中,这些耗时的过程(例如,控制器等待时间、寻道速 度、旋转等待时间、以及数据传输速率)被量化为影响HDD 260的盘I/O性能 的一组实际参数。即,该组实际参数展示了HDD 260的性能特性,这些性能特 性可被用来影响对定向到HDD 260的请求的扼流。例如,在盘驱动器模型235 中可合并一组估计的参数(与HDD 260的该组实际参数基本上相对应),该组 估计的参数尝试指定HDD 260的性能特性。

此处使用的用语“盘驱动器模型”不是旨在进行限制,而是可涵盖任何逻 辑、试探、或基于软件的规则,它们帮助过滤器驱动程序230管理定向到HDD 260的流量的流。在一个实施例中,盘驱动器模型235是由过滤器驱动程序230 建立的,以通过将该组估计的参数(上面讨论的)编程在盘驱动器模型235内 来基本上模仿HDD 260的行为。而且,盘驱动器模型235可以被编程成考虑 HDD 260的当前状态,所述当前状态指定目前的盘头位置以及消耗在满足待决 请求270上的总时间。HDD 260的当前状态可被用来确定盘头移动到硬盘上作 为后续请求的目标的下一位置所需的时间(例如,覆盖在更新盘头位置时移动 的距离所消耗的时间)。从而,对于待决请求270,所消耗的时间是基于访问 的类型(读或写)、数据的位置、以及完成请求270所需要的处理量来估计的。 因此,被过滤器驱动程序230用来管理对请求的扼流的、使用盘驱动器模型235 确定的预期执行时间既考虑该组实际参数(捕捉HDD 260的目前的性能特性) 又考虑从一个请求过渡到另一请求所消耗的时间(使用当前盘头位置和下一盘 头位置之间的距离的计算)。

作为背景,顺序访问涉及在特定轨内连续地读取硬盘的扇区。即,顺序访 问包括在读取一个毗邻扇区之后读取硬盘上另一个物理上靠近的扇区,而不平 移盘头。通常,通过将盘头移动到硬盘上下一个物理上靠近的扇区,消耗最小 的时间量。随机访问涉及读取相对于彼此在各种位置(例如,硬盘上的不同轨) 中的不同扇区中的数据。通常,当盘头从一个扇区移动到另一个扇区时消耗大 量的时间。如同上面提到的,盘驱动器模型235对从HDD 260估计的该组参数 的考虑和盘头位置的当前/未来状态分别计入了顺序访问和随机访问两者所涉 及的时间消耗。

过滤器驱动程序的操作

转向图3,示出了根据本发明的实施例的框图,该框图示出了示例性分布 式计算环境300,该计算环境300描绘了与过滤器驱动程序230通信的一个或 多个物理节点内的队列301-304。在实施例中,VM 201-204分别管理队列 301-304,尽管VM 201-204中的每一个可具有多个队列来临时保留待决请求。 一旦请求被从队列301-304中释放之后,所述请求被与HDD 260协同的文件系 统服务。应当注意,队列301-304中的每一个可被分开管理,其中向每一队列 分配一定百分比的软件盘。

最初,VM 201-204内运行的服务应用可发出对HDD 260执行读和/或写操 作的请求。在一种情况下,这些读和/或写操作可以通过VM总线被定向到一主 机,并且可将驻留在HDD 260上的感兴趣的相应的VHD文件作为目标。一到 达该主机,过滤器驱动程序230就解释每个读和写操作并在将它们传递给文件 系统之前处理它们。一般而言,过滤器驱动程序230负责扼流盘I/O请求的管 理。

在处理期间,过滤器驱动程序230计算盘驱动器模型处理满足来自服务应 用的请求的读或写操作所需的时间。该计算至少考虑以下两个输入:盘驱动器 模型的当前状态,以及当前被执行的读或写操作的属性(例如,数据大小及其 位置)。例如,盘驱动器模型处理读或写操作所花的时间可以被计算为下面列 出的等待时间的和:控制器等待时间(例如,用于盘控制器解析请求的估计的 时间);寻道时间(例如,用于盘头从第一HDD轨上的当前位置移动到第二 HDD轨上的预期位置的估计的时间,其中要访问的数据位于所述第二HDD轨 的所述预期位置处);旋转等待时间(例如,用于所请求的扇区移动到盘头下 的位置的估计的时间);以及数据传输时间(例如,读或写给定大小的数据的 估计的时间)。从而,通过考虑这些各种输入,对预期执行时间的计算(使用 盘驱动器模型)计入了顺序访问和随机访问两者。例如,将寻道时间合并在预 期执行时间内帮助计入在对数据的随机访问期间导致的延迟,其中当可通过对 数据的顺序访问来执行请求时寻道时间可能是值很大的。

在确定预期执行时间后,就测量存储驱动程序栈和物理盘硬件(例如,HDD 260)用来处理定向到VHD文件的读和写操作所花的实际执行时间。在一种情 况下,过滤器驱动程序230可以记录物理盘硬件处理所针对的请求所消耗的实 际时间。

在计算出预期执行时间并测量出实际执行时间后,过滤器驱动程序230就 可实现分析,所述分析确定上面两种度量(预期执行时间和实际执行时间)之 间在时间上的差异。这种时间上的差异指示物理盘硬件是比盘驱动器模型性能 更好还是更差。如果物理盘硬件比盘驱动器模型性能更好,则可通过将请求保 持在与请求VM的VHD文件相关联的队列中来延迟该请求。一般而言,存在 分开的队列来保留每一VHD的被延迟的请求。VM可被分配多于一个VHD, 从而,该VM可以与多于一个队列相关联。

在一具体示例中,如果实际执行时间和预期执行时间之间的差大于与该请 求VM相关联的预定性能阈值,则将以延迟方式执行后续HDD 260操作,或 者换言之,将后续HDD 260操作扼流。参考图3,例如,如果来自队列301的 请求比盘驱动器模型处理得更快,则过滤器驱动程序230可选择延迟从VM 201 发出的服务请求。在另一实施例中,如果物理盘硬件比盘驱动器模型性能更好, 则该请求的延迟的量可以基于所述比较的差(例如,如果物理盘硬件执行地快 得多,则施加更长的延迟)。相应地,过滤器驱动程序尝试将盘驱动器模型所 预测的时间与HDD处理请求实际花的时间进行同步。

然而,如果请求VM正接收比当前扼流方案所施加的预定限制更好的性能 (不必要地减慢了文件系统),则过滤器驱动程序230提升请求上的延迟。从 而,过滤器驱动程序230可以加快或减慢请求的流来模仿HDD的性能特性。 例如,过滤器驱动程序230被装备成改变到HDD 260的性能的等级,无论HDD 260表示个人台式计算机上的物理盘硬件还是HDD 260表示在数据中心中采用 的商业级盘。

在执行其作为到HDD 260的请求的流的管理器的职责时,过滤器驱动程 序230可执行各种回调例程来实现这些职责。回调例程之一涉及操作前回调 (preoperation callback),所述操作前回调由过滤器管理器230对于每一 盘I/O请求在HDD 260处理该请求之前调用。最初,操作前回调确定是否应当 立即处理该请求。该判定是基于物理盘硬件所消耗的总时间和使用盘驱动器模 型处理相同请求的总的预期时间之间的差的。如果该判定指示应当立即处理该 请求,则过滤器驱动程序230将该请求传递到文件系统和存储驱动程序栈(参 见图2的附图标记240和245)。如果应当以延迟方式处理该请求,则过滤器 驱动程序230将该请求插入适当队列中并调度定时器例程,该定时器例程在稍 后的时间触发对该队列的处理。如同上面提到的,可能对于被扼流的每一VHD 文件存在分开的队列。而且,还可存在与单一VM相关联的一个或多个VHD 文件。

回调例程中的另一个涉及操作后回调(postoperation callback),所述操作 后回调由过滤器管理器230对于每一盘I/O请求在该请求被处理之后调用。在 实施例中,操作后回调记录物理盘硬件处理该请求所消耗的时间并更新物理盘 硬件所消耗的总时间。而且,处理后回调通过访问盘驱动器模型来计算处理该 请求的预期执行时间。该预期执行时间被用来更新盘驱动器模型所花的总时 间。此外,可存储HDD 260的当前状态(诸如盘头位置)以供未来在盘驱动器 模型中参考。

示例性过程流

现在转向图4,示出了流程图,该流程图示出根据本发明的实施例的用于 使用过滤器驱动程序来对从一个或多个VM到HDD的请求进行扼流的示例性 方法400。尽管术语“步骤”和/或“框”可在此处用于指示所采用的方法的不 同元素,但除非而且仅当明确描述了各个步骤的顺序时,该术语不应被解释为 意味着此处公开的各个步骤之中或之间的任何特定顺序。最初,方法400可在 该过滤器驱动程序一从所述VM上运行的服务应用接收到所针对的请求就开 始,如在框410处指示的。作为示例,该所针对的请求可表示定向到VHD文 件的读操作或写操作,其中所述VHD文件在该HDD的硬盘上维护所存储的数 据,其中所述VHD文件与所述VM中的至少一个相关联。通常,HDD的盘头 被配置成分别响应于读操作或写操作来对硬盘进行读或写。

在过滤器驱动程序处解析请求之后,就访问该盘驱动器模型,如在框412 处指示的。在一示例性实施例中,盘驱动器模型与HDD基本类似地动作,并 具体化该HDD的软性盘表示。在一特定情况下,访问的过程包括读取盘驱动 器模型对硬盘驱动器的性能特征的模拟(参见框414),以及读取盘驱动器模 型对于硬盘驱动器的盘头的当前状态的模拟(参见框416)。如同上面提到的, 模拟的性能特性是由一组估计的参数指定的,该组估计的参数对应于硬盘驱动 器上存在的一组实际参数。该组估计的参数至少包括以下各项:控制器的等待 时间;盘头寻道的速度;旋转的等待时间;以及数据传输的速率。控制器等待 时间包括盘控制器施加在解释和执行请求命令上的等待时间。寻道速度包括盘 头跨越硬盘上的轨移动的速率。旋转等待时间包括将硬盘旋转作为该所针对的 请求的目标的数据的位置的时间。并且,数据传输速率包括盘头从硬盘读取作 为该所针对的请求的目标的数据的速度。

由过滤器驱动程序执行的所述方法400可进一步包括以下步骤:根据所述 性能特征和所述盘头的当前状态来计算执行该所针对的请求的预期执行时间, 如在框418处所指示的。在一示例性实施例中,计算执行所针对的请求的预期 执行时间至少涉及以下步骤:表示盘头在执行前一请求时的第一位置;从该盘 驱动器模型推断(extrapolate)该盘头在执行该所针对的请求时的第二位置; 以及计算第一位置和第二位置之间的移动距离。

而且,在过滤器驱动程序允许将所针对的请求传递给HDD后,就测量执 行所述所针对的请求的实际执行时间,如在框420处所指示的。使用预期执行 时间和实际执行时间的比较,对来自VM的请求(所述请求时在到该HDD的 所针对的请求之后发出的)的请求的流量进行扼流,如在框422处所指示的。 在操作中,使用预期执行时间和实际执行时间的比较来对从VM到HDD的请 求的流量进行扼流涉及确定预期执行时间超出实际执行时间的时间量。在一种 情况下,将所述超出时间量与分配给发出该请求的VM的性能阈值进行比较来 确定是否延迟该请求和/或使该请求入队。一旦从队列中释放处该所针对的请 求,则将该所针对的请求传送到HDD以完成该所针对的请求。

转向图5,示出了根据本发明的实施例的用于限制流向该HDD的请求的速 率的示例性方法500的流程图。在实施例中,如在框510处所指示的,方法500 涉及利用盘驱动器模型来计算HDD执行第一请求的预期执行时间。方法500 随后可涉及测量HDD执行第一请求所花的实际执行时间,如在框512处所指 示的。在计算预期执行时间时,盘驱动器模型考虑盘头(用于对HDD的硬盘 读或写数据)从作为第一请求的目标的数据的第一扇区移动至作为第二请求的 目标的数据的第二扇区的时间。

如在框514和516处所指示的,将预期执行时间与实际执行时间进行比较, 并且根据比较的结果来管理允许传递到HDD的请求的速率。在一种情况下, 如在框518处所指示的,管理的过程包括:在预期执行时间比实际执行时间超 出大于性能阈值的值时,在将第二请求传递到HDD之前对该第二请求施加延 迟。在另一种情况下,如在框520处所指示的,管理的过程包括:在预期执行 时间不比实际执行时间超出大于性能阈值的值时,一接收到第二请求就将该第 二请求传递到HDD。

参考各具体实施例描述了本发明的各实施例,各具体实施例在所有方面都 旨在是说明性的而非限制性的。在不背离本发明范围的情况下各替换实施例对 本发明的各实施例的所属领域的普通技术人员将变得显而易见。

从前面的描述可以看出,本发明很好地适用于实现上文所阐述的所有目的 和目标,并且具有对于该系统和方法是显而易见且固有的其他优点。可以理解, 某些特征和子组合是有用的,并且可以在不参考其他特征和子组合的情况下使 用。这由权利要求所构想的,并在权利要求的范围内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号