CN103116473A - 使用盘驱动器模拟模型来对盘i/o扼流 - Google Patents
使用盘驱动器模拟模型来对盘i/o扼流 Download PDFInfo
- Publication number
- CN103116473A CN103116473A CN2012104651267A CN201210465126A CN103116473A CN 103116473 A CN103116473 A CN 103116473A CN 2012104651267 A CN2012104651267 A CN 2012104651267A CN 201210465126 A CN201210465126 A CN 201210465126A CN 103116473 A CN103116473 A CN 103116473A
- Authority
- CN
- China
- Prior art keywords
- request
- disk drive
- hard disk
- execution time
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3485—Performance evaluation by tracing or monitoring for I/O devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
Abstract
本发明涉及使用盘驱动器模拟模型来对盘I/O扼流。提供用于对从虚拟机(VM)到硬盘驱动器(HDD)的请求进行扼流的计算机化的方法、系统和计算机存储介质。当从VM接收到对盘I/O的请求时,访问盘驱动器模型,所述盘驱动器模型模拟所述HDD的性能特性。在访问期间,收集所述盘驱动器模型对HDD参数的估计和所述盘驱动器模型对所述HDD的盘头的当前状态的估计。根据估计的HDD参数和估计的盘头的当前状态来计算执行所述请求的预期执行时间。而且,当允许所述请求传递到所述HDD时就测量执行所述请求的实际执行时间。使用所述预期执行时间和所述实际执行时间的比较,对来自所述VM的请求的流量进行扼流。
Description
技术领域
本发明涉及使用盘驱动器模拟模型来对盘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的各部分可占据VM203和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的过滤器驱动程序可管理从VM201-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管理定向到HDD260的流量的流。在一个实施例中,盘驱动器模型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轨的所述预期位置处);旋转等待时间(例如,用于所请求的扇区移动到盘头下的位置的估计的时间);以及数据传输时间(例如,读或写给定大小的数据的估计的时间)。从而,通过考虑这些各种输入,对预期执行时间的计算(使用盘驱动器模型)计入了顺序访问和随机访问两者。例如,将寻道时间合并在预期执行时间内帮助计入在对数据的随机访问期间导致的延迟,其中当可通过对数据的顺序访问来执行请求时寻道时间可能是值很大的。
在确定预期执行时间后,就测量存储驱动程序栈和物理盘硬件(例如,HDD260)用来处理定向到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的性能的等级,无论HDD260表示个人台式计算机上的物理盘硬件还是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。
参考各具体实施例描述了本发明的各实施例,各具体实施例在所有方面都旨在是说明性的而非限制性的。在不背离本发明范围的情况下各替换实施例对本发明的各实施例的所属领域的普通技术人员将变得显而易见。
从前面的描述可以看出,本发明很好地适用于实现上文所阐述的所有目的和目标,并且具有对于该系统和方法是显而易见且固有的其他优点。可以理解,某些特征和子组合是有用的,并且可以在不参考其他特征和子组合的情况下使用。这由权利要求所构想的,并在权利要求的范围内。
Claims (15)
1.一个或多个其上包含计算机可执行指令的计算机可读介质,所述计算机可执行指令在被执行时执行一种用于使用过滤器驱动程序对从一个或多个虚拟机(VM)到硬盘驱动器的请求进行扼流的方法,所述方法包括:
从在所述一个或多个VM上运行的服务应用接收(410)所针对的请求;
访问(412)盘驱动器模型,所述盘驱动器模型与所述硬盘驱动器基本类似地行动,其中所述访问的过程包括:
(a)读取(414)所述盘驱动器模型对所述硬盘驱动器的性能特性的模拟;以及
(b)读取(416)所述盘驱动器模型对所述硬盘驱动器的盘头的当前状态的模拟;
根据所述性能特性以及所述盘头的所述当前状态来计算(418)执行所述所针对的请求的预期执行时间;
测量(420)在将所述所针对的请求传送到所述硬盘驱动器之后用于执行所述所针对的请求的实际执行时间;以及
使用所述预期执行时间和所述实际执行时间的比较来对从所述VM到所述硬盘驱动器的所述请求的流量进行扼流。
2.如权利要求1所述的一个或多个计算机可读介质,其特征在于,所述方法还包括将所述所针对的请求发送到硬盘驱动器以完成所述所针对的请求,其中所述所针对的请求表示定向到虚拟硬盘(VHD)文件的读操作或写操作,所述虚拟硬盘文件在所述硬盘驱动器的硬盘上维护被存储的数据,并且其中所述盘头被配置成分别响应于所述读操作和所述写操作来对所述硬盘进行读或写。
3.如权利要求2所述的一个或多个计算机可读介质,其特征在于,所述方法还包括构建所述盘驱动器模型,其中所述盘驱动器模型具体化所述硬盘驱动器的软性盘表示,所述软性盘表示支持与所述一个或多个VM相关联的VHD文件。
4.如权利要求1所述的一个或多个计算机可读介质,其特征在于,计算执行所述所针对的请求的预期执行时间包括:
标识所述盘头在执行前一请求时的第一位置;
从所述盘驱动器模型推断所述盘头在执行所述所针对的请求时的第二位置;以及
计算所述盘头在所述第一位置和所述第二位置之间移动的时间。
5.如权利要求1所述的一个或多个计算机可读介质,其特征在于,所述模拟的性能特性是由一组估计的参数指定的,所述一组估计的参数对应于所述硬盘驱动器上存在的一组实际参数,其中所述一组估计的参数包括控制器的等待时间;并且其中控制器等待时间包括所述控制器解释和执行所述所针对的请求所消耗的时间。
6.如权利要求5所述的一个或多个计算机可读介质,其特征在于,所述一组估计的参数包括所述盘头寻道的速度,并且其中寻道速度包括所述盘头跨越硬盘上的轨移动的速率。
7.如权利要求5所述的一个或多个计算机可读介质,其特征在于,所述一组估计的参数包括旋转等待时间;以及其中所述旋转等待时间包括将硬盘旋转到作为所述所针对的请求的目标的数据的位置的时间。
8.如权利要求5所述的一个或多个计算机可读介质,其特征在于,所述一组估计的参数包括数据传输速率,并且其中所述数据传输速率包括所述盘头从硬盘读取作为所述所针对的请求的目标的数据或将作为所述所针对的请求的目标的数据写到硬盘的速度。
9.如权利要求1所述的一个或多个计算机可读介质,其特征在于,使用所述预期执行时间和所述实际执行时间的比较来对从所述VM到所述硬盘驱动器的所述请求的流量进行扼流包括确定所述预期执行时间超出所述实际执行时间的时间量,所述方法进一步包括为所述VM中的一个分配性能阈值,所述性能阈值基于超出的时间量。
10.如权利要求9所述的一个或多个计算机可读介质,其特征在于,所述方法还与所述性能阈值的值成比例地将从所述VM到所述硬盘驱动器的所述请求在一个或多个队列中延迟。
11.一种能够利用盘驱动器模型对盘驱动器执行来自服务应用的请求的速率进行扼流的计算机系统,所述计算机系统包括被配置成有具有在其上运行的计算机软件组件的计算机存储介质的至少一个物理机,所述计算机软件组件包括:
用于托管所述服务应用(211)的一部分的虚拟机(VM)(201-204),其中所述服务应用发出从与所述VM相关联的虚拟硬盘文件读取数据或者将数据写到与所述VM相关联的虚拟硬盘文件的第二请求;
过滤器驱动程序(230),所述过滤器驱动程序用于将第一请求(270)的预期执行时间与所述第一请求的实际执行时间进行比较、并且用于基于所述比较的结果来影响用于执行所述第二请求的时间,其中所述预期执行时间是使用模拟所述硬盘驱动器(260)的性能特性的所述盘驱动器模型来计算的,所述实际执行时间是在所述硬盘驱动器处执行完所述第一请求之后就测量的。
12.如权利要求11所述的计算机系统,其特征在于,还包括将所述请求从所述服务应用递送到所述过滤器驱动程序的VM总线(205)和用于保留从所述VM发出并由所述过滤器驱动程序延迟的请求的一个或多个队列,其中所述一个或多个队列馈送到所述硬盘驱动器中。
13.如权利要求12所述的计算机系统,其特征在于,所述第一请求表示目标为所述硬盘驱动器的第一扇区上的数据的读或写操作,其中所述第二请求表示目标为所述硬盘的第二扇区上的数据的读或写操作,并且其中所述硬盘驱动器的盘头被配置成响应于所述读或写操作对所述硬盘进行读或写。
14.一种用于限制流向硬盘驱动器的请求的速率的计算机化的方法,所述方法包括:
利用(510)盘驱动器模型来计算所述硬盘驱动器执行第一请求的预期执行时间;
测量(512)所述硬盘驱动器执行所述第一请求所花的实际执行时间;
将所述预期执行时间与所述实际执行时间进行比较(514);以及
根据所述比较的结果来管理(516)被允许传递到所述硬盘驱动器的所述请求的所述速率,所述管理的过程包括:
(a)当所述预期执行时间比所述实际执行时间超出大于性能阈值的值时,在将第二请求传递到所述硬盘驱动器之前向所述第二请求施加(518)延迟,其中所述延迟被施加到所述实际执行时间和所述预期执行时间之间的差满足所述性能阈值时为止;以及
(b)否则,一接收到所述第二请求就将所述第二请求传递(520)到所述硬盘驱动器。
15.如权利要求14所述的计算机化的方法,其特征在于,所述硬盘驱动器包括用于对硬盘读或写数据的盘头,并且其中所述盘驱动器模型考虑供所述盘头从作为所述第一请求的目标的数据的第一扇区移动到作为所述第二请求的目标的数据的第二扇区的时间。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/298,993 | 2011-11-17 | ||
US13/298,993 US9395920B2 (en) | 2011-11-17 | 2011-11-17 | Throttle disk I/O using disk drive simulation model |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103116473A true CN103116473A (zh) | 2013-05-22 |
CN103116473B CN103116473B (zh) | 2016-01-20 |
Family
ID=48414865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210465126.7A Active CN103116473B (zh) | 2011-11-17 | 2012-11-16 | 使用盘驱动器模拟模型来对盘i/o扼流 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9395920B2 (zh) |
EP (1) | EP2780799B1 (zh) |
CN (1) | CN103116473B (zh) |
ES (1) | ES2628611T3 (zh) |
WO (1) | WO2013074426A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243560A (zh) * | 2014-09-02 | 2014-12-24 | 赵军富 | 移动设备上的web服务系统 |
CN104572255A (zh) * | 2013-10-09 | 2015-04-29 | 中国移动通信集团公司 | 一种多层应用托管方法、装置及系统 |
CN110018781A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 磁盘流控方法、装置以及电子设备 |
CN110851075A (zh) * | 2018-08-07 | 2020-02-28 | 马维尔国际贸易有限公司 | 在固态存储装置的虚拟接口上提供服务质量的装置和方法 |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8346935B2 (en) * | 2010-01-15 | 2013-01-01 | Joyent, Inc. | Managing hardware resources by sending messages amongst servers in a data center |
US8555276B2 (en) | 2011-03-11 | 2013-10-08 | Joyent, Inc. | Systems and methods for transparently optimizing workloads |
US8914497B1 (en) * | 2011-12-15 | 2014-12-16 | Amazon Technologies, Inc. | System and method for throttling service requests having non-uniform workloads |
US8782224B2 (en) * | 2011-12-29 | 2014-07-15 | Joyent, Inc. | Systems and methods for time-based dynamic allocation of resource management |
US8547379B2 (en) | 2011-12-29 | 2013-10-01 | Joyent, Inc. | Systems, methods, and media for generating multidimensional heat maps |
US8943284B2 (en) | 2013-03-14 | 2015-01-27 | Joyent, Inc. | Systems and methods for integrating compute resources in a storage area network |
US8677359B1 (en) | 2013-03-14 | 2014-03-18 | Joyent, Inc. | Compute-centric object stores and methods of use |
US9104456B2 (en) | 2013-03-14 | 2015-08-11 | Joyent, Inc. | Zone management of compute-centric object stores |
US8881279B2 (en) | 2013-03-14 | 2014-11-04 | Joyent, Inc. | Systems and methods for zone-based intrusion detection |
US8826279B1 (en) | 2013-03-14 | 2014-09-02 | Joyent, Inc. | Instruction set architecture for compute-based object stores |
US9092238B2 (en) | 2013-03-15 | 2015-07-28 | Joyent, Inc. | Versioning schemes for compute-centric object stores |
US8775485B1 (en) | 2013-03-15 | 2014-07-08 | Joyent, Inc. | Object store management operations within compute-centric object stores |
US8793688B1 (en) | 2013-03-15 | 2014-07-29 | Joyent, Inc. | Systems and methods for double hulled virtualization operations |
US9602426B2 (en) | 2013-06-21 | 2017-03-21 | Microsoft Technology Licensing, Llc | Dynamic allocation of resources while considering resource reservations |
US9122503B1 (en) * | 2013-09-05 | 2015-09-01 | Symantec Corporation | Systems and methods for adaptive throttling of input/output requests in a virtual environment |
US20150142861A1 (en) * | 2013-11-13 | 2015-05-21 | The Weather Channel, Llc | Storage utility network |
JP2015154818A (ja) * | 2014-02-20 | 2015-08-27 | 任天堂株式会社 | 据置型のゲーム装置、ゲーム装置、ゲームシステム、コンピュータプログラム及び速度制御方法 |
US10410155B2 (en) | 2015-05-01 | 2019-09-10 | Microsoft Technology Licensing, Llc | Automatic demand-driven resource scaling for relational database-as-a-service |
US10101920B2 (en) | 2016-06-30 | 2018-10-16 | Microsoft Technology Licensing, Llc | Disk I/O attribution |
JP7221585B2 (ja) * | 2017-07-20 | 2023-02-14 | 富士通株式会社 | 情報処理装置、情報処理システム、情報処理装置制御方法及び情報処理装置制御プログラム |
US10552199B2 (en) * | 2018-02-26 | 2020-02-04 | Nutanix, Inc. | System and method for binary throttling for live migration of virtual machines |
US10552209B2 (en) * | 2018-03-15 | 2020-02-04 | Nutanix, Inc. | System and method for throttling for live migration of virtual machines |
US10552200B2 (en) | 2018-03-22 | 2020-02-04 | Nutanix, Inc. | System and method for dynamic throttling for live migration of virtual machines |
RU2731321C2 (ru) * | 2018-09-14 | 2020-09-01 | Общество С Ограниченной Ответственностью "Яндекс" | Способ определения потенциальной неисправности запоминающего устройства |
RU2718215C2 (ru) | 2018-09-14 | 2020-03-31 | Общество С Ограниченной Ответственностью "Яндекс" | Система обработки данных и способ обнаружения затора в системе обработки данных |
RU2714219C1 (ru) | 2018-09-14 | 2020-02-13 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования передачи операций ввода/вывода |
RU2721235C2 (ru) | 2018-10-09 | 2020-05-18 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для маршрутизации и выполнения транзакций |
RU2714602C1 (ru) | 2018-10-09 | 2020-02-18 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для обработки данных |
RU2711348C1 (ru) | 2018-10-15 | 2020-01-16 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для обработки запросов в распределенной базе данных |
US11188368B2 (en) | 2018-10-31 | 2021-11-30 | Nutanix, Inc. | Asynchronous workload migration control |
US11194620B2 (en) | 2018-10-31 | 2021-12-07 | Nutanix, Inc. | Virtual machine migration task management |
RU2714373C1 (ru) | 2018-12-13 | 2020-02-14 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования выполнения операций ввода/вывода |
RU2749649C2 (ru) | 2018-12-21 | 2021-06-16 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования обработки операций ввода/вывода |
RU2720951C1 (ru) | 2018-12-29 | 2020-05-15 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и распределенная компьютерная система для обработки данных |
RU2746042C1 (ru) | 2019-02-06 | 2021-04-06 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для передачи сообщения |
US11899558B2 (en) * | 2021-01-15 | 2024-02-13 | Netflix, Inc. | Systems and methods for optimizing hard drive throughput |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060171063A1 (en) * | 2005-01-28 | 2006-08-03 | Samsung Electronics., Ltd. | Seek servo control method for adapting to supply voltage variation and disk drive using the same |
US20060187571A1 (en) * | 2004-07-29 | 2006-08-24 | Samsung Electronics Co., Ltd. | Servo controller method and apparatus for high tracks per inch hard disk drives using a delay accomodating state estimator |
EP2333663A2 (en) * | 2009-12-10 | 2011-06-15 | Empire Technology Development LLC | Method and device for providing access to physical resources in a virtual machine environment |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6490651B1 (en) * | 2000-03-14 | 2002-12-03 | Maxtor Corporation | Host-based virtual disk drive for improving the performance of a hard disk drive's input/output |
US7277984B2 (en) * | 2004-06-23 | 2007-10-02 | International Business Machines Corporation | Methods, apparatus and computer programs for scheduling storage requests |
US7761875B2 (en) | 2005-06-10 | 2010-07-20 | Hewlett-Packard Development Company, L.P. | Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change |
US20080021693A1 (en) * | 2006-07-21 | 2008-01-24 | Microsoft Corporation | Storage Device Simulator |
US7669044B2 (en) * | 2006-09-29 | 2010-02-23 | Microsoft Corporation | Accelerated system boot |
US7640412B2 (en) * | 2007-01-04 | 2009-12-29 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques for improving the reliability of file systems |
US7711894B1 (en) | 2007-02-12 | 2010-05-04 | Juniper Networks, Inc. | Dynamic disk throttling in a wide area network optimization device |
KR100900489B1 (ko) | 2007-07-13 | 2009-06-03 | 한국과학기술원 | 디스크 어레이 매스 프리페칭 방법 |
US8407440B2 (en) * | 2008-07-08 | 2013-03-26 | HGST Netherlands B.V. | Techniques for scheduling requests for accessing storage devices using sliding windows |
US8307177B2 (en) * | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
US9285991B2 (en) * | 2011-04-29 | 2016-03-15 | International Business Machines Corporation | System, method and program product to schedule transfer of data |
-
2011
- 2011-11-17 US US13/298,993 patent/US9395920B2/en active Active
-
2012
- 2012-11-12 WO PCT/US2012/064587 patent/WO2013074426A1/en active Application Filing
- 2012-11-12 ES ES12850595.5T patent/ES2628611T3/es active Active
- 2012-11-12 EP EP12850595.5A patent/EP2780799B1/en active Active
- 2012-11-16 CN CN201210465126.7A patent/CN103116473B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060187571A1 (en) * | 2004-07-29 | 2006-08-24 | Samsung Electronics Co., Ltd. | Servo controller method and apparatus for high tracks per inch hard disk drives using a delay accomodating state estimator |
US20060171063A1 (en) * | 2005-01-28 | 2006-08-03 | Samsung Electronics., Ltd. | Seek servo control method for adapting to supply voltage variation and disk drive using the same |
EP2333663A2 (en) * | 2009-12-10 | 2011-06-15 | Empire Technology Development LLC | Method and device for providing access to physical resources in a virtual machine environment |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572255A (zh) * | 2013-10-09 | 2015-04-29 | 中国移动通信集团公司 | 一种多层应用托管方法、装置及系统 |
CN104572255B (zh) * | 2013-10-09 | 2018-09-04 | 中国移动通信集团公司 | 一种多层应用托管方法、装置及系统 |
CN104243560A (zh) * | 2014-09-02 | 2014-12-24 | 赵军富 | 移动设备上的web服务系统 |
CN110018781A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 磁盘流控方法、装置以及电子设备 |
CN110018781B (zh) * | 2018-01-09 | 2022-06-21 | 阿里巴巴集团控股有限公司 | 磁盘流控方法、装置以及电子设备 |
CN110851075A (zh) * | 2018-08-07 | 2020-02-28 | 马维尔国际贸易有限公司 | 在固态存储装置的虚拟接口上提供服务质量的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103116473B (zh) | 2016-01-20 |
EP2780799A4 (en) | 2015-06-24 |
ES2628611T3 (es) | 2017-08-03 |
WO2013074426A1 (en) | 2013-05-23 |
EP2780799B1 (en) | 2017-04-05 |
EP2780799A1 (en) | 2014-09-24 |
US9395920B2 (en) | 2016-07-19 |
US20130132057A1 (en) | 2013-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103116473B (zh) | 使用盘驱动器模拟模型来对盘i/o扼流 | |
US8762309B2 (en) | Storage policy evaluation in a computing environment | |
US11301136B2 (en) | Capacity forecasting based on capacity policies and transactions | |
US7870360B2 (en) | Storage area network (SAN) forecasting in a heterogeneous environment | |
CN102546782B (zh) | 一种分布式系统及其数据操作方法 | |
US8214327B2 (en) | Optimization and staging method and system | |
US9031914B2 (en) | Tier-based data management | |
CN109284068A (zh) | 数据存储管理系统、方法及物件 | |
CN105144142A (zh) | 使用对象多个维度的信息存储对象 | |
CN104272386A (zh) | 通过分层存储系统内的数据迁移减少功耗 | |
WO2013110966A1 (en) | Parameterized dynamic model for cloud migration | |
CN105335219A (zh) | 一种基于分布式的任务调度方法及系统 | |
US20200065195A1 (en) | Space management for snapshots of execution images | |
CN104519119A (zh) | 虚拟化的云环境中异构迁移会话的反应性节流 | |
US11579982B2 (en) | Calculating bandwidth requirements for a specified recovery point objective | |
US11675521B2 (en) | Comprehensive data protection backup | |
JP2017525007A (ja) | アプリケーションデータのバックグランド同期をスケジューリングするためのシステム及び方法 | |
JP2022088338A (ja) | コンピュータ実装方法、システム、コンピュータ・プログラム、及びコンピュータ可読な記録媒体 | |
US8966293B1 (en) | Method and apparatus for allocation of power consumption of a computer storage system to its tenants | |
US20210326249A1 (en) | Media import and export in storage management systems | |
US20210072900A1 (en) | Access ordering for tape cycle optimization | |
US20120233397A1 (en) | System and method for storage unit building while catering to i/o operations | |
Chahal et al. | Implementing cloud storage metrics to improve it efficiency and capacity management | |
US20170185305A1 (en) | Optimization of disk sector duplication in a heterogeneous cloud systems environment | |
US20220413925A1 (en) | Dynamic clustering of edge cluster resources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150717 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150717 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |