CN103917957A - 虚拟盘的带宽节制 - Google Patents

虚拟盘的带宽节制 Download PDF

Info

Publication number
CN103917957A
CN103917957A CN201280054975.1A CN201280054975A CN103917957A CN 103917957 A CN103917957 A CN 103917957A CN 201280054975 A CN201280054975 A CN 201280054975A CN 103917957 A CN103917957 A CN 103917957A
Authority
CN
China
Prior art keywords
access
dish
request
virtual disk
time delay
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
Application number
CN201280054975.1A
Other languages
English (en)
Other versions
CN103917957B (zh
Inventor
A·卡达施
S·科霍伦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN103917957A publication Critical patent/CN103917957A/zh
Application granted granted Critical
Publication of CN103917957B publication Critical patent/CN103917957B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

用于管理计算系统中的资源的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。对于多个物理硬盘驱动通过网络支持的虚拟硬盘驱动,实施盘访问带宽的人为节制,从而每个虚拟硬盘驱动的所得延时行为类似于虚拟硬盘驱动模仿的对应物理硬盘驱动的延时行为。在各种实现方式中,人为节制模拟物理硬盘上的依次访问延时和随机访问延时二者特性。

Description

虚拟盘的带宽节制
相关申请的交叉引用
本申请要求2011年9月23日提交的第13/243,752号美国专利申请的优先权,其内容通过引用并入于此。
技术领域
本说明书涉及管理系统资源。
背景技术
云计算是基于网络的计算,在该基于网络的计算中,在数据中心中容纳的服务器汇集向远程终端用户提供如需要的计算资源和数据存储。一些云计算服务提供者向终端用户提供在一个或者多个服务器上托管的虚拟机并且允许终端用户在虚拟机上安装和执行软件应用。一些云计算服务提供者也通过在一个或者多个虚拟机上运行的web服务器向终端用户提供对软件应用的访问。
虚拟机是在物理主机机器(例如,云计算服务器)上执行的软件过程。虚拟机模仿物理计算机,该物理计算机可以执行其它软件程序并且通过主机机器访问向虚拟机提供的物理和/或虚拟资源。可以在主机机器上起动的多个虚拟机之间共享可用于主机机器的物理和虚拟资源。在一些实现方式中,可以向虚拟机指派用于数据存储的一个或者多个虚拟盘。虚拟机的每个虚拟盘在关于虚拟机的输入/输出(I/O)访问操作方面模仿物理硬盘驱动(HDD)。云服务提供者可以运用不同类型的下层硬件和软件基础结构以提供用于虚拟机的虚拟盘。
发明内容
本说明书描述涉及管理计算系统中的资源的技术。
通常,可以在包括以下动作的方法中体现在本说明书中描述的主题内容的一个创新方面:提供对多个虚拟盘的访问,多个虚拟盘在一个或者多个服务器管理的多个下层物理存储设备上托管;根据多个虚拟盘中的每个虚拟盘模仿的本地物理盘的一个或者多个延时和吞吐量特性为对于虚拟盘接收的每个盘访问请求推导模拟延时成本;并且根据在相应请求的盘访问的模拟延时成本与多个虚拟盘中的每个虚拟盘模仿的本地物理盘的模拟盘访问容量之间的比较来控制对多个下层物理存储设备执行对于虚拟盘的相应请求的盘访问的敏捷性。
通常,可以在包括以下动作的方法中体现在本说明书中描述的主题内容的另一创新方面:接收对于虚拟机的虚拟盘上的盘输入/输出(I/O)访问的第一盘访问请求,虚拟盘模仿用于虚拟机的本地物理盘;根据虚拟盘模仿的本地物理盘的一个或者多个延时和吞吐量特性为请求的盘I/O访问推导模拟延时成本,模拟延时成本包括用于对虚拟盘模仿的本地物理盘执行请求的盘I/O访问的模拟数据传送延时和模拟随机访问延时;并且基于在模拟延时成本与向虚拟盘分派的盘访问服务配额的当前值之间的比较来确定是否延迟执行请求的盘I/O访问,其中盘访问服务配额的当前值随时间被补充、以预定上限值为上限并且在执行对于虚拟盘的每个先前盘访问请求的相应请求的盘I/O访问时被减少先前盘访问请求的相应模拟延时成本。
这些和其它实施例可以各自可选地包括以下特征中的一个或者多个特征。
在一些实现方式中,虚拟盘包括向在多个物理存储设备之中分布的物理数据块映射的逻辑数据块。
在一些实现方式中,动作还包括:假如盘访问配额的当前值在多个盘访问请求的相应模拟延时成本之和以上,对多个物理存储设备并行执行用于多个盘访问请求的请求的I/O访问。
在一些实现方式中,虚拟盘是在多个物理存储设备上托管的多个虚拟盘之一,并且动作还包括:对于多个虚拟盘中的每个虚拟盘:根据与虚拟盘关联的预定补充速率递增虚拟盘的相应盘访问服务配额直至相应盘访问服务配额的当前值达到与虚拟盘关联的相应预定上限值;并且暂时暂停递增直至虚拟盘的相应盘访问服务配额的当前值下降至与虚拟盘关联的相应预定上限值以下。
在一些实现方式中,动作还包括:保持在紧接在当前时间之前的预定时间间隔期间接收的对于虚拟盘的一个或者多个先前盘访问请求的相应结束位置的记录;并且至少基于在第一盘访问请求的请求的盘I/O访问的开始位置与在一个或者多个先前盘访问请求的相应结束位置之中的最近结束位置之间的寻找距离为请求的盘I/O访问计算模拟随机访问延时。
在一些实现方式中,动作还包括:(1)在确定第一盘访问请求的模拟延时成本在向虚拟盘分派的盘访问服务配额的当前值或者以下时:执行第一盘访问请求的请求的盘I/O访问;并且从向虚拟盘分派的盘服务访问配额的当前值扣除请求的I/O访问的模拟延时成本;并且(2)在确定第一盘访问请求的模拟延时成本超过向虚拟盘分派的盘访问服务配额的当前值时:使第一盘访问请求排队直至盘服务访问配额的当前值已经通过调度的补充而达到或者在第一盘访问请求的模拟延时成本以上。
在一些实现方式中,动作还包括:监视用于对于多个虚拟盘的相应盘访问请求的响应时间,多个虚拟盘共享多个下层物理存储设备;监视多个下层物理存储设备的盘访问容量的利用水平;并且调整预定参数组的一个或者多个参数,预定参数组包括多个虚拟盘的相应盘访问服务配额的补充速率和上限值以及在计算请求的盘I/O访问的模拟延时成本时使用的一个或者多个预定值。
可以实施在本说明书中描述的主体内容的具体实施例以便实现以下优点中的一个或者多个优点。
在一些实现方式中,根据虚拟盘模仿的物理硬盘驱动的延时和吞吐量特性节制对虚拟盘的盘访问。为附接物理硬盘驱动的计算机系统优化在虚拟机上安装的许多现有软件应用。通过以模拟物理硬盘驱动的访问延时特性的方式人为节制对虚拟盘的盘访问,在软件应用中实施的现有盘访问优化可以如原先设计的那样工作以提高用户体验。
在一些实现方式中,在多个虚拟机的多个虚拟盘之中共享为了支持对虚拟盘的I/O访问而需要的资源(例如,存储装置和网络资源)。可能在虚拟机中的一些虚拟机以其它虚拟机为代价利用基于云的虚拟盘的盘访问延时特性时有损资源的稳定服务水平和公平共享。通过根据物理硬盘驱动的延时和吞吐量特性人为限制基于云的虚拟盘的盘访问能力,虚拟盘的盘访问服务水平可以被维持在稳定水平。稳定服务水平可以产生更好的用户体验。可以减少由于盘访问资源的不公平共享所致的在对虚拟盘的访问中的大量延时和未预计破坏。
在附图和以下描述中阐述在本说明书中描述的主题内容的一个或者多个实施例的细节。主题内容的其它特征、方面和优点将从描述、附图和权利要求中变得清楚。
附图说明
图1图示托管多个虚拟机的示例系统。
图2图示用于控制多个虚拟机对多个虚拟盘的访问的示例服务管理器。
图3是用于根据虚拟盘模仿的物理硬盘驱动的延时和吞吐量特性节制对虚拟盘的访问的示例过程的流程图。
图4是用于根据虚拟盘模仿的物理硬盘驱动的延时和吞吐量特性节制对虚拟盘的访问的示例过程的流程图。
图5是用于补充向虚拟盘分派的盘访问配额的示例过程的流程图。
图6是用于为对虚拟盘的请求的盘I/O访问计算模拟随机访问成本的示例过程的流程图。
图7是用于基于在与虚拟盘关联的盘访问配额的当前值与请求的盘I/O访问的模拟延时成本之间的比较来控制用于对虚拟盘执行请求的盘I/O访问的定时的示例过程的流程图。
图8是用于监视用于多个物理存储设备支持的多个虚拟盘的访问响应时间和多个物理存储设备的盘访问能力的利用水平并且基于该监视来调整虚拟盘的节制参数的示例过程的流程图。
在各种附图中的相似标号和标示指示相似要素。
具体实施方式
图1是示例云计算环境100的示意图示。云计算环境100包括云计算服务提供者的一个或者多个主机机器102。一个或者多个主机机器102通过一个或者多个网络106向终端用户104提供基于云的服务、比如软件服务、平台服务和框架服务。可以基于主机机器102动态调配、中止和/或去除基于云的服务。
通常,主机机器102是一个或者多个数据处理装置、比如架装服务器或者其它计算设备。主机机器102的数据处理装置可以在不同物理位置驻留,并且可以具有不同能力和计算机架构。多个主机机器102可以通过云服务提供者的一个或者多个内部数据通信网络(未示出)相互通信。主机机器102也可以与外部网络、比如因特网上的设备通信。
每个主机机器102可以执行主机操作系统108或者其它软件,该主机操作系统或者其它软件虚拟化下层主机机器硬件,并且管理一个或者多个虚拟机110的并发执行。此外,一个或者多个主机机器102可以提供在多个其它主机机器102和/或虚拟机110之间可共享的各种服务和/或虚拟化硬件资源。在一些实现方式中,主机机器102可以通过一个或者多个网络(例如,一个或者多个内部网络和/或因特网)访问硬件资源和/或虚拟资源、比如物理数据存储设备和/或虚拟存储设备。
例如,如图1中所示,云计算服务提供者的一个或者多个主机机器102可以在概念上表示为具有物理层112、服务层110、主机操作系统(OS)层116和虚拟机层118的系统。物理层112包括主机机器102的硬件和固件资源,这些资源例如包括存储器、处理器、网络设备、I/O端口、数据存储设备、I/O设备。在一些实现方式中,物理层包括物理资源(例如,硬盘驱动),这些物理资源通过一个或者多个网络可由主机机器102访问,并且无需本地附接主机机器102的数据处理装置。服务层114包括例如通过云计算服务提供者的一个或者多个专用机器和过程变得可用于主机机器102的服务。这些服务例如包括网络服务132、数据库服务134、web托管服务136、防火墙服务138。虚拟机层118包括用来向终端用户104提供基于云的服务的虚拟机110。主机OS层116包括管理虚拟机层118中的虚拟机110的主机操作系统108。主机操作系统108也有助于虚拟机110对服务层114中的服务和物理层112中的物理资源的访问。
在一些实现方式中,主机机器102的主机操作系统108可以起动和关联单个虚拟机110或者多个虚拟机110(例如,虚拟机110a和110b)。每个虚拟机110是在主机操作系统108中执行的软件过程并且模仿下层主机机器软件或者另一计算机架构。虚拟机过程模仿的机器硬件的版本称为虚拟硬件134(例如,虚拟硬件134a和134b)。虚拟机110的虚拟硬件134例如包括虚拟存储器、一个或者多个虚拟处理器和一个或者多个虚拟硬盘驱动(也称为“虚拟盘”)。
在一些实现方式中,虚拟机110的虚拟硬件134可以直接映射到主机机器102的一个或者多个物理设备。在一些实现方式中,虚拟机110的虚拟硬件134可以映射到其它主机机器通过一个或者多个网络向主机机器102提供的一个或者多个虚拟化设备。在一些实现方式中,虚拟机110的虚拟硬件134可以映射到一个或者多个物理设备,该一个或者多个物理设备未本地附接主机机器102的数据处理装置、但是通过一个或者多个网络可由主机机器102的数据处理装置访问。
例如,可以从下层主机操作系统108的虚拟存储器向虚拟机110分配虚拟存储器页面集合。此外,可以从下层主机机器102的一个或者多个物理存储设备向虚拟机110分配虚拟盘块(例如,在一个或者多个虚拟盘上),该一个或者多个物理存储设备包括本地附接主机机器102或者通过一个或者多个网络可由主机机器102访问的一个或者多个物理存储设备。对虚拟盘的每个逻辑数据块可以映射到物理数据存储设备上的相应物理数据块。
在一些实现方式中,云计算服务提供者的主机机器102可以使用在数据中心中容纳的多个物理存储设备来调配大量虚拟盘。每个虚拟盘的逻辑数据块可以映射到在在多个物理存储设备之中分布的物理数据块。同时,多个虚拟盘的逻辑数据块可以映射到相同物理存储设备上的物理数据块。主机机器102可以截获虚拟机和/或其它过程对虚拟盘进行的盘访问请求。主机机器102然后可以代表请求虚拟机和/或过程对虚拟盘的下层物理数据存储设备执行请求的盘访问。在一些实现方式中,主机机器102通过云服务提供者的一个或者多个内部网络和/或中间服务器执行与下层物理数据存储设备的数据通信。
通常,虚拟机110的虚拟硬件134执行的软件称为来宾软件。在许多情况下,来宾软件不能确定它是否在虚拟硬件134上或者在物理主机机器102上执行的。虚拟机110的来宾软件可以包括来宾操作系统136(例如,来宾OS136a和来宾OS136b),该来宾操作系统是如下软件,该软件控制相应来宾软件应用138(例如,来宾应用138a和来宾应用138b)在虚拟机110内的执行。来宾操作系统136也向来宾应用138提供服务、比如网络服务、I/O服务、网络服务等。在一些实现方式中,虚拟机110无需来宾操作系统136以便执行来宾软件应用138。在一些实现方式中,来宾操作系统136对资源、比如网络和数据存储装置的访问由下层主机操作系统108控制。
举例而言并且参照虚拟机116a,在来宾应用138a或者来宾操作系统136a尝试对虚拟机110a的虚拟盘执行I/O操作时,来宾应用138a或者来宾操作系统136a发出对虚拟盘的盘访问请求。盘访问请求指定请求的盘访问操作的开始位置和在请求的盘访问操作中涉及到的数据传送的大小或者范围。请求的盘访问操作的开始位置可以是虚拟盘上的逻辑数据块的标识符。
在托管虚拟机110a的主机操作系统108检测到来宾应用138a或者来宾操作系统136a发出的盘访问请求时,主机操作系统108截获盘访问请求并且代表虚拟机116a对虚拟盘的下层物理存储设备执行请求的盘访问。在一些实现方式中,虚拟机110a的主机操作系统108可以标识下层物理存储设备上的向虚拟盘的逻辑数据块映射的物理数据块并且直接对物理数据块执行请求的I/O访问。在一些实现方式中,虚拟机110a的主机操作系统108可以向另一服务器转发盘访问请求,该另一服务器将对虚拟盘的盘访问与许多其它虚拟盘一起管理。
如更早阐述的那样,在一些实现方式中,云计算服务提供者可以利用不同类型的硬件和软件基础结构以提供虚拟机需要的数据存储装置、包括虚拟盘。可以在位于相同或者不同地理位置的多个硬盘之中分布虚拟机的单个虚拟盘。通常,可以例如根据物理硬盘驱动接收I/O请求的顺序串行执行对硬盘驱动的多个连续的请求的I/O访问。相反,对模仿物理硬盘驱动的虚拟盘的多个连续的请求的I/O访问可以在访问是对于在虚拟盘的下层物理层中的不同存储设备上分布的数据块时被并行执行。因此,在未实施虚拟盘的人为节制时,虚拟盘的延时和吞吐量特性可以很不同于虚拟盘模仿的物理盘的延时和吞吐量特性。
更具体地,对于物理硬盘驱动,依次盘访问和随机盘访问具有不同延时和吞吐量特性。对物理盘的请求的I/O访问在更晚I/O访问的开始位置与更早I/O访问的开始位置与更早I/O访问的结束位置相邻(或者在从结束位置的预定短距离内)时视为与对物理盘执行的紧接先前I/O访问是依次的。请求的I/O访问在请求的I/O访问的开始位置未与对物理盘执行的紧接先前I/O访问的结束位置相邻(或者在从结束位置的预定短距离以外)时视为随机访问。如以下概括的那样,随机访问在随机访问和依次访问中涉及到的数据传送数量相同时时一般比依次访问更耗时。
依次盘I/O访问的延时包括数据传送延时和小的处理开销延时。数据传送延时主要依赖于在请求的盘访问中涉及到的数据传送数量。与依次访问比较,随机访问还包括随机访问延时。随机访问延时基于为了在物理盘的数据存储介质(例如,磁盘母板)上的物理盘块之上物理地移动和定位物理盘的读取头而需要的时间。根据读取头在执行随机访问时的初始位置(例如,紧接先前I/O访问的结束位置),为了移动和定位读取头到随机访问的开始位置的时间可以变化。
在对物理存储设备的请求的I/O访问的随机访问延时与在请求的I/O访问的开始位置与读取头的初始位置的结束位置(例如,紧接先前I/O访问的结束位置)之间的相对位置之间的确切关系依赖于存储设备的物理和机械结构。通常,物理盘的随机访问延时例如包括用于线性移动读取头到盘母板上的希望轨道的时间(所谓“寻道延时”)与用于旋转盘母板使得希望的盘扇区在读取头以下稳定的时间(所谓“旋转延时”)。
物理盘的盘访问容量或者吞吐量依赖于已经对于物理盘而接收的盘访问请求类型。例如,在平均数据传送速率为每秒100兆字节、平均寻道延时为9毫秒并且平均旋转延时为4.2毫秒的示例物理盘中,盘访问容量对于小数据块近似为每秒100个随机I/O访问请求,或者对于依次I/O访问请求近似为每秒100兆字节数据传送。在实践中,盘访问容量在接收依次和随机访问请求的组合时在两个极端之间的某处。
如更早阐述的那样,在一些实现方式中,可以在多个下层物理数据存储设备上提供虚拟盘,从而在不同物理数据存储设备上分布虚拟盘上的不同数据位置。在主机操作系统代表发出盘访问请求的虚拟机或者过程执行对不同物理盘的请求的盘访问时,假如在不同物理设备上分布访问位置,可以并行执行这些盘访问请求中的一些盘访问请求。因此,尤其在短时间量内接收对于虚拟盘的多个随机访问请求时,虚拟盘的访问延时和吞吐量特性可以不同于虚拟盘模仿的物理盘的访问延时和吞吐量性质。
也如更早阐述的那样,云服务提供者一般具有用于使用大量物理数据存储设备(例如,在一个或者多个盘群中的硬盘)来分配许多虚拟盘的基础结构。可以将每个虚拟盘的逻辑数据块映射到多个物理盘的物理数据块。此外,每个物理盘可以提供多个虚拟盘的逻辑数据块中的一些或者所有逻辑数据块。在主机操作系统从多个虚拟机接收对于访问多个虚拟盘的盘访问请求时,主机操作系统确定如何向物理存储设备或者管理物理存储设备的其它中间服务器路由访问请求。请求的访问的访问延时和吞吐量可以根据在向和从物理存储设备传送数据时利用的网络的带宽以及如何在物理存储设备分布访问位置而变化。
有时在短时间量内接收对于访问单个虚拟盘的许多随机访问请求时,可以并行执行这些请求,因为在不同物理盘上分布访问位置。这些并行执行可以占用盘访问资源(例如,服务器处理能力和网络带宽)中的大量盘访问资源,并且妨碍或者延迟相同物理设备和资源集合服务于的其它虚拟盘。
由于虚拟盘的以上延时和吞吐量特性,虚拟机客户端有时可以在如下模式中发出盘访问请求,该模式以其它虚拟机为代价不公平地利用主机机器提供的盘访问容量。虚拟机客户端有时将发现很快执行它的请求的访问,而请求的访问在其它时间可以被恰好已经更早接管盘访问资源中的大量盘访问时间的其它虚拟机阻止延长的时间段。因此,虚拟盘的延时和吞吐量特性在没有在本说明书中描述的人为节制时可以导致盘访问服务水平的不可预测。这一不可预测可以对于用户引起未令人满意的用户体验。
如在本说明书中描述的那样,实施人为节制虚拟盘访问带宽以防止少量个虚拟机客户端例如通过向在下层物理层中的多个设备上分布的虚拟盘发出大量随机访问请求来淹没云计算服务器提供的盘访问资源。在与实现方式中,通过使可用于每个虚拟盘的盘访问服务水平限于下层物理层能够提供的总盘访问容量的预定部分来实施人为节制,
例如,可以实施对用于每个虚拟盘的盘访问容量的限制为盘访问配额。在主机机器代表请求虚拟机接收和处理对于虚拟盘的每个盘访问请求时从盘访问配额的当前值扣除相应延时成本。也例如在于东补充速率随时间补充盘访问配额,从而如果虚拟机已经在短时间量内用尽所有它的盘访问配额,则虚拟机可以在等待时段之后恢复用于访问它的虚拟盘的能力。在盘访问配额的当前值达到用于盘访问配额的预定最大值(或者上限值)时暂时中止补充。
在一些实现方式中,从用于每个盘访问请求的虚拟盘的盘访问配额的当前值取得的扣除数量可以基于虚拟盘模仿的物理盘的延时和吞吐量特性。
例如,扣除数量可以由请求的盘访问的模拟延时成本代表如同对虚拟盘模仿的物理盘执行请求的盘访问。在一些实现方式中,模仿延时成本包括基于在请求的访问中涉及到的数据传送数量的模拟数据传送延时。模拟延时成本还可以包括基于在请求的访问的开始位置与对虚拟盘模仿的访问盘的紧接先前盘访问请求的结束位置之间的相对距离或者位置。在一些实现方式中,虚拟盘模仿的物理盘的特定特性和吞吐量特性特有的一个或者多个其它延时分量(例如,开销延时)也可以与模拟延时成本相加。稍后参照图6在说明书中提供关于计算模拟延时成本的更多细节。
基于在本说明书中描述的技术,向个别虚拟机给予在选择如何基于虚拟机在不同时间的特定数据访问需要来利用向它的虚拟盘分配的盘访问配额时的一些灵活性。虚拟机可以修改它的行为(例如,通过在虚拟机上安装的软件应用中实施的盘访问优化),从而盘访问请求流更好地利用向虚拟盘分派的盘访问配额。虚拟机可以选择在短时间段期间在许多小的随机访问请求的突发中用尽它的配额中的所有或者大部分配额以应对紧急问题或者使用需求急剧上升。虚拟机也可以选择在更长时间段内生成混合的依次访问请求和随机访问请求的平稳流。
然而,由于盘访问配额的补充速率和最大值设置的限制以及归于依次和随机盘访问的模拟延时成本,每个虚拟机关于它的相应虚拟盘的个别行为将对向其它虚拟机提供的关于它们的相应虚拟盘的总服务水平具有很小影响。因此,可以对于主机机器提供的每个虚拟盘维持平稳服务水平,并且可以避免或者减少用于虚拟盘的盘访问服务的不可预测延迟和停用。
在一些实现方式中,在云服务提供者的一个主机机器或者多个主机机器(例如,图1中的主机机器102)中的资源管理可以由在主机机器操作系统(例如,图1中的主机OS108)中执行的一个或者多个资源管理过程提供。图2图示用于管理对主机机器102提供的虚拟盘的盘访问的示例资源管理器(例如,盘访问管理器202)。示例盘访问管理器202实施在本说明书中描述的虚拟盘人为节制。在一些实现方式中,每个虚拟机110可以具有它自己的盘访问管理器,该盘访问管理器实施虚拟机的虚拟盘访问的人为节制。在一些实现方式中,盘访问管理器可以管理多个虚拟机110(例如,相同主机机器102托管的多个虚拟机或者多于一个主机机器102托管的多个虚拟机)的虚拟盘访问。
如图2中所示,主机机器102托管多个虚拟机110。每个虚拟机110附接一个或者多个虚拟盘204并且具有在虚拟机110上安装的来宾操作系统136。通常,主机机器102的资源管理器也在各种配置中向虚拟机110分配其它物理和虚拟资源。
作为示例,在虚拟机110a发起对虚拟机110a的附着虚拟盘204a的I/O请求时,盘访问管理器202截获I/O请求并且根据在接收的盘I/O请求中指定的开始位置和数据访问范围标识虚拟盘110a的一个或者多个下层物理设备。如更早阐述的那样,如果可以对物理层中的不同物理盘执行请求的I/O,则可以并行执行对单个虚拟盘110a的盘访问请求的执行。然而,根据盘访问管理器202实施的人为介质来修改执行请求的盘访问的定时。在一些实现方式中,实施节制以模拟盘访问管理器202管理的虚拟盘中的每个虚拟盘模仿的物理盘的延时和吞吐量行为。
在一些实现方式中,如图2中所示,主机机器102的盘访问管理器202包括服务配额管理器206、延时成本计算器208和盘访问流控制器210。服务配额管理器206将向虚拟盘204a分配的盘访问服务水平与向主机机器102管理的其它虚拟盘分配的盘访问服务水平一起控制。在一些实现方式中,服务配额管理器206为在任何给定的时间向虚拟盘分派的盘访问配额设置最大值(或者上限值)。为每个虚拟盘设置的盘访问配额的最大值可以是主机机器102的总盘访问容量的部分,从而无单个虚拟机可以在任何时间淹没所有盘访问容量。主机机器102的总盘访问容量可以包括主机机器102的本地附着的物理资源、云服务提供者的其它服务器通过一个或者多个网络使得可用于主机机器102的物理资源和/或以上二者的组合提供的盘访问容量。
在一些实现方式中,为每个虚拟盘分配的盘访问配额的最大值可以依赖于主机机器102托管的虚拟盘数目。可以设置虚拟盘的盘访问配额的最大值,从而最大值合计未超过主机机器102的总盘访问容量。在一些实现方式中,可以设置虚拟盘的盘访问配额的最大值为如下水平使得最大值合计未超过主机机器102的总盘访问容量。然而在这样的实现方式中,某个节制水平将仍然生效,因为与在未节制场景中不同,用于每个虚拟盘的盘访问配额的最大值仍然在主机机器102的完全盘访问容量以下。
在一些实现方式中,服务配额管理器206以“令牌桶(tokenbucket)”的形式维持处理盘的盘访问配额。用于每个虚拟盘的盘访问服务配额的当前值受在“令牌桶”中剩余的令牌数目影响。在处理和执行对于虚拟盘的请求的盘访问时,从盘访问配额的当前值扣除某个服务配额数量。换言之,从虚拟盘的“令牌桶”去除某个数目的令牌。
除了从虚拟盘的“令牌桶”去除令牌之外,服务配额管理器206也根据预定补充速率随时间补充虚拟盘的“令牌桶”。例如,可以在规律间隔(例如,每秒)向每个虚拟盘的“令牌桶”添加预定数目的令牌。由于每个虚拟盘的盘访问服务配额以预定最大值为上限,所以如果已经有一段时间未访问虚拟盘,并且服务配额的当前值由于规律补充而达到最大值,则服务配额管理器206可以暂时停止补充“令牌桶”直至已经再次访问虚拟盘并且配额水平已经下降至最大水平以下。
在一些实现方式中,服务配额管理器206保持用于盘访问管理器202管理的每个虚拟机110的每个虚拟盘204的盘访问配额的当前值的记录212。每个虚拟盘的盘访问配额的当前值可以由盘访问流控制器210在确定是否延迟执行对于虚拟盘的接收的盘访问请求时利用。
在一些实现方式中,向每个虚拟盘204分派的盘访问配额的最大值可以对于盘访问管理器202管理的所有虚拟盘相同。在一些实现方式中,一些云服务用户可以支付额外费用以获得用于向它的虚拟盘分派的盘访问配额的更高上限值。在一些实现方式中,可以保持盘访问配额的上限值对于延长的时间段保持恒定。在一些实现方式中,可以随时调整盘访问配额的上限值以提高虚拟盘的效率和性能。
如图2中所示,盘访问管理器202也包括延时成本计算器208。延时成本计算器208为对于每个虚拟盘204接收每个盘访问请求的确定延时成本。可以在执行盘访问请求时从虚拟盘的“令牌桶”扣除与延时成本等效数量的令牌。如果在虚拟盘的“令牌桶”中的令牌数量不足,则延迟执行请求直至已经将虚拟盘的“令牌桶”补充至在该请求的延时成本或者以上的水平。
在一些实现方式中,为每个盘访问请求计算的延时成本是基于虚拟盘模仿的物理盘的延时和吞吐量特性。模拟延时成本无需确切等于将已经在物理盘上引起的延时。然而,根据如下公式计算模拟延时成本,该公式考虑对物理盘的随机访问的延时特性。
如更早阐述的那样,对物理盘的请求的访问的随机访问延时依赖于当前请求的访问的开始位置和读取头在接收请求时的初始位置的相对位置。读取头在接收盘访问请求时的初始位置可以是读取头的归属停放位置或者完成的紧接先前盘访问的结束位置。
在一些实现方式中,盘访问管理器202保持对每个虚拟盘204的完成的盘访问的日志214,该日志包括完成的盘访问的相应结束位置。延时成本计算器208可以使用日志214中的信息以标识用于新接收的盘访问请求的紧接先前盘访问的结束位置并且相应地计算随机访问成本。
在一些实现方式中,日志214仅包括针对短时间段的对于每个虚拟盘的最后访问的结束位置、例如,回找时间=500毫秒。如果在回找时间期间未对虚拟盘执行访问,则将用于当前访问请求的随机访问成本设置成零。此外,如果当前请求的访问具有与对虚拟盘的紧接先前访问的结束位置重叠(或者在从结束位置的预定短距离内)的开始位置,则当前请求的访问视为依次访问请求,并且也将用于当前请求的访问的随机访问成本设置成零。
在一些实现方式中,盘访问管理器202可以保持在回找时间窗期间接收的所有访问请求的日志。延时成本计算器208可以在回找时间期间记下的访问请求之中标识具有与当前访问请求的开始位置最近的结束位置的访问请求。延时成本计算器208可以使用标识的访问请求作为用于当前访问请求的紧接先前访问请求。延时成本计算器208然后可以在确定当前访问请求是否为依次或者随机访问请求时使用标识的访问请求的结束位置。
在一些实现方式中,如果将当前盘访问请求分类为随机访问(例如,在当前访问请求的开始位置与紧接先前访问请求的结束位置之间的寻找距离ID大于预定短距离、例如预定“最小随机IO距离”参数),则可以基于公式K=惩罚距离*惩罚成本+固定随机访问成本计算随机访问成本K。在一些实现方式中,“惩罚距离”可以等于寻找距离D。在一些实现方式中,“惩罚距离”可以等于寻找距离D和预定最大惩罚距离“最大惩罚距离”中的更小距离。“惩罚成本”可以是用来反映用于单位寻找距离的平均延时的预定参数。“固定随机访问成本”是反映在虚拟盘模仿的物理盘中的平均旋转延时的预定参数。
在为请求的盘访问计算模拟随机访问延时时使用的以上公式仅为示例。更好地模拟在虚拟盘模仿的物理盘上的随机访问延时的其它功能和参数是可能的。可以选择在计算对虚拟盘的请求的盘访问的模拟随机访问延时的公式中使用的预定参数,从而根据公式计算的模拟随机访问延时与将在虚拟盘模仿的实际物理盘引起的实际随机访问延时更好地接近匹配。
除了接收的盘访问请求的随机访问成本(例如,模拟随机访问延时)之外,延时成本计算器208也确定用于盘访问请求的数据传送延时。基于在请求的数据访问中涉及到的数据传送数量计算数据传送延时。数据传送速率是可以基于虚拟盘模仿的物理盘的实际数据传送速率的预定参数。数据传送速率也可以在一些实现方式中从虚拟盘模仿的物理盘的实际数据传送速率偏离。例如,数据传送速率可以是可调参数,该参数基于虚拟盘的物理层的数据传送容量或者网络带宽。
在一些实现方式中,除了数据传送延时和随机访问成本之外,请求的盘访问的延时成本也可以包括一个或者多个其它分量、比如固定或者可变开销延时分量。开销延时分量可以例如是预定值,该预定值反映虚拟盘模仿的物理盘的开销延时。
在延时成本计算器208确定对于虚拟盘的接收的盘访问请求的延时成本之后,模拟延时成本可以与虚拟盘的盘访问服务配额的当前值一起向盘访问流控制器210传递。盘访问流控制器210比较请求的访问的延时成本和用于虚拟盘的盘访问服务配额的当前值。基于比较,盘访问流控制器210确定是否将立即执行请求如果在虚拟盘的“令牌桶”中的盘访问令牌不足,则可以在队列216中放置并且更晚重试(例如,在预定延迟时段之后)请求。
在一些实现方式中,在重试请求的访问之前的延迟数量是基于盘访问服务配额的补充速率的预定参数。例如,延迟时段至少大于在补充之间的时段。在预定延迟时段之后,盘访问流控制器210可以再次比较盘访问配额的当前值和排队的访问请求的延时成本。如果已经通过补充将访问配额的当前值升高至在请求的访问的延时成本或者以上的水平,则立即执行请求的访问。如果不是,则向队列216中放回并且在另一延迟时段之后重试访问请求。
在执行或者向另一服务器转发请求的盘访问用于执行时,盘访问流控制器210可以从虚拟盘的盘访问服务配额的当前值扣除延时成本。此外,在盘访问日志214中记录完成的访问的结束位置。如图2中所示,可以对本地附接主机机器102的一个或者多个物理盘218执行请求的盘访问。在一些实现方式中,也可以对云服务提供者的其它服务器通过一个或者多个网络222使得可用于主机机器102的一个或者多个物理盘220执行请求的盘访问。
在一些实现方式中,盘访问管理器202也包括盘访问服务监视器224。盘访问服务监视器224可以保持虚拟盘的下层物理设备的盘访问容量的利用水平的跟踪并且调整在虚拟盘节制中使用的参数。
例如,如果利用水平持续地在低水平,则盘访问服务监视器224可以减少在用于计算随机访问成本K的公式中的“惩罚成本”。盘访问服务监视器224也可以增加用于虚拟盘的盘服务访问配额的上限值。如果由于缺乏盘访问服务配额而频繁延迟处理请求的虚拟盘访问而主机机器的总盘访问容量持续地利用不足,则盘访问服务监视器224可以增加用于每个虚拟盘的盘访问服务配额的上限值或者增加用于盘访问服务配额的补充速率。因此,在一些实现方式中,在本说明书中描述的在节制虚拟盘时使用的预定参数(例如,用于每个虚拟盘的盘访问配额的预定上限值和补充速率)中的一个或者多个参数可以具有动态确定的值,只要值这些值在具体时间段(例如,数小时、一天或者两天)内保持稳定,在这些时间段期间,多个虚拟机对于硬件盘访问资源的竞争保持活跃和未间断。
图2仅为如何可以节制虚拟盘带宽以避免物理层的盘访问容量被特定虚拟盘或者虚拟机客户端淹没的示例。可以用比图2中所示部件更少或者更多的部件实施在本说明书中描述的盘访问管理。此外,如更早阐述的那样,也可以实施关于图2描述的盘访问管理器202的虚拟盘节制功能中的一些或者所有虚拟盘节制功能为在每个虚拟机110的虚拟操作系统136中执行的一个或者多个过程或者模块。
图3是用于根据物理硬盘驱动的延时特性节制虚拟盘访问的示例过程300的流程图。过程300可以例如通过图2中所示盘访问管理器202由云服务提供者的主机机器执行。
在示例过程300中,主机机器提供对多个虚拟盘的访问(302)。在一个或者多个服务器关联的多个下层物理存储设备上托管多个虚拟盘。如在本说明书中描述的那样,主机机器根据多个虚拟盘中的每个虚拟盘模仿的本地物理盘的一个或者多个延时和吞吐量特性为对于虚拟盘接收的每个盘访问请求而推导模拟延时成本(304)。根据在相应请求的盘访问的模拟延时成本与多个虚拟盘中的每个虚拟盘模仿的本地物理盘的模拟盘访问容量之间的比较,主机机器控制对多个下层物理存储设备执行对于虚拟盘的相应请求的盘访问的敏捷性(306)。
图4是用于根据物理硬盘驱动的延时特性节制对虚拟盘的访问的示例过程400的流程图。过程400可以例如通过图2中所示盘访问管理器202由云服务提供者的主机机器执行。
在示例过程400中,接收对于虚拟机的虚拟盘上的盘输入/输出(I/O)访问的第一盘访问请求(402)。虚拟盘模仿用于虚拟机的本地物理盘。然后,根据虚拟盘模仿的本地物理盘的一个或者多个延时和吞吐量特性为请求的盘I/O访问推导模拟延时成本(404)。模拟延时成本包括用于对虚拟盘模仿的本地物理盘执行请求的盘I/O访问的模拟数据传送延时和模拟随机访问延时。然后,基于在模拟延时成本与向虚拟盘分派的盘访问服务配额的当前值之间的比较,确定是否将要延迟执行请求的盘I/O访问(406)。如在本说明书中描述的那样,随时间补充盘访问服务配额的当前值。盘访问服务配额的当前值以预定上限值为上限。此外,盘访问配额的当前值在执行先前盘访问请求的相应请求的盘I/O访问时被减少对于虚拟盘的每个先前盘访问请求的相应模拟延时成本。
在一些实现方式中,虚拟盘包括向在多个物理存储设备之中分布的物理数据块映射的逻辑数据块。假如盘访问配额的当前值在多个盘访问请求的相应模拟延时成本之和以上,可以对多个物理存储设备并行执行用于多个盘访问请求的请求的I/O访问。
图5是用于补充与虚拟盘关联的盘访问配额的示例过程500的流程图。在一些实现方式中,虚拟盘是在多个物理存储设备上托管的多个虚拟盘之一。在示例过程500中,对于多个虚拟盘中的每个虚拟盘:(1)根据与虚拟盘关联的预定补充速率递增虚拟盘的相应盘访问服务配额直至相应盘服务配额的当前值达到与虚拟盘关联的相应预定上限值(502);并且(2)暂时停止递增直至虚拟盘的相应盘访问服务配额的当前值下降至与虚拟盘关联的相应预定上限值以下(504)。
图6是用于计算与盘访问请求关联的模拟随机访问延时成本的示例过程600的流程图。
在示例过程600中,主机机器保持在紧接在当前时间之前的预定时间间隔期间接收的对于虚拟盘的一个或者多个先前盘访问请求的相应结束位置的记录(602)。然后,主机机器可以至少基于在第一盘访问请求的请求的盘I/O访问的开始位置与在一个或者多个先前盘访问请求的相应结束位置之中的最近结束位置之间的寻找距离为请求的盘I/O访问计算模拟随机访问延时(604)。
图7是用于基于在与虚拟盘关联的盘访问配额的当前值与盘访问请求的模拟延时成本之间的比较来控制对虚拟盘执行请求的盘访问的示例过程700的流程图。在示例过程700中,在确定(702)第一盘访问请求的模拟压死成本在向虚拟盘分派的盘访问服务配额的当前值或者以下时,主机机器执行第一盘访问请求的请求的盘I/O访问(704)。此外,主机机器也从向虚拟盘分派的盘服务访问配额的当前值扣除请求的I/O访问的模拟延时成本(706)。在确定第一盘访问请求的模拟延时成本超过向虚拟盘分派的盘访问服务配额的当前值时,主机机器使第一盘访问请求排队直至盘服务访问配额的当前值已经通过调度的补充而到达在第一盘访问请求的模拟延时成本或者以上的水平(708)。
图8是用于监视用于多个虚拟盘的访问响应时间和多个虚拟盘的盘访问能力的利用水平,并且调整用于虚拟盘的节制参数的示例过程800的流程图。
在示例过程800中,主机机器监视用于对于多个虚拟盘的相应盘访问请求的响应时间,该多个虚拟盘共享多个下层物理存储设备(802)。主机机器也监视多个下层物理存储设备的盘访问容量的利用水平(804)。主机机器然后可以调整预定参数组的一个或者多个参数,该预定参数组包括多个虚拟盘的相应盘访问服务配额的补充速率和上限值以及在计算请求的盘I/O访问的模拟延时成本时使用的一个或者多个预定值(806)。
可以在数字电子电路装置中或者在包括在本说明书中公开的结构及其结构等效物的计算机软件、固件或者硬件中或者在它们中的一项或者多项的组合中实施在本说明书中描述的主题内容和操作的实施例。可以实施在本说明书中描述的主题内容的实施例为在计算机存储介质上编码的用于由数据处理装置执行或者用来控制数据处理装置的操作的一个或者多个计算机程序、即一个或者多个计算机程序指令模块。备选地或者附加地,程序指令可以被编码于人为生成的传播信号、例如机器生成的电、光、电磁信号上,该传播信号被生成用于对信息进行编码用于向适当接收器装置传输以供数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储衬底、随机或者串行存取存储器阵列或者设备或者它们中的一项或者多项的组合或者被包含于机器可读存储设备、机器可读存储衬底、随机或者串行存取存储器阵列或者设备或者它们中的一项或者多项的组合中。另外,尽管计算机存储介质不是传播信号,但是计算机存储介质可以是在人为生成的传播信号中编码的计算机程序指令的源或者目的地。计算机存储介质也可以是一个或者多个分离物理部件或者介质(例如,多个CD、盘或者其它存储设备)或者被包含于一个或者多个分离物理部件或者介质中。
可以实施在本说明书中描述的操作为数据处理装置对在一个或者多个计算机可读存储设备上存储的或者从其它来源接收的数据进行的操作。
术语“数据处理装置”涵盖所有种类的用于处理数据的装置、设备和机器、举例而言包括可编程处理器、计算机、片上系统或者前述各项的多项或者组合。该装置可以包括专用逻辑电路装置、例如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。该装置除了硬件之外也可以包括为讨论的计算机程序创建执行环境的代码、例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时间环境、虚拟机或者它们中的一项或者多项的组合的代码。该装置和执行环境可以实现各种不同计算模型基础结构、比如web服务、分布式计算和网格计算基础结构。
可以用包括编译或者解译语言、说明或者过程语言的任何形式的编程语言编写计算机程序(也称为程序、软件、软件应用、脚本或者代码),并且可以用任何形式部署它、包括部署为单独程序或者部署为适合于在计算环境中使用的模块、部件、子例程、对象或者其它单元。计算机程序可以、但是无需对应于文件系统中的文件。程序可以存储于保持其它程序或者数据的文件(例如存储于标记语言文档中的一个或者多个脚本)的部分中、专用于讨论的程序的单个文件中或者多个协同文件(例如,存储一个或者多个模块、子程序或者代码部分的文件)中。计算机程序可以被部署用于在一个计算机上或者在位于一个地点或者分布于多个地点并且由通信网络互连的多个计算机上执行。
在本说明书中描述的过程和逻辑流程可以被一个或者多个可编程处理器执行,该一个或者多个可编程处理器执行一个或者多个计算机程序以通过对输入数据进行操作并且生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路装置、例如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)执行并且也可以实施装置为该专用逻辑电路装置。
举例而言,适合用于执行计算机程序的处理器包括通用和专用微处理器以及任何种类的数字计算机的任何一个或者多个处理器。通常,处理器将从只读存储器或者随机存取存储器或者二者接收指令和数据。计算机的基本单元是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或者多个存储器设备。通常,计算机也将包括用于存储数据的一个或者多个海量存储设备、例如磁盘、光磁盘或者光盘或者被操作地耦合用于从该一个或者多个海量存储设备接收数据或者向该一个或者多个海量存储设备传送数据或者二者。然而计算机无需具有这样的设备。另外,可以在另一设备、聊举数例例如移动电话、个人数字助理(PDA)、移动音频或者视频播放器、游戏控制器、全球定位系统(GPS)接收器或者便携存储设备(例如,通用串行总线(USB)闪存驱动)中嵌入计算机。适合用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备、举例而言包括半导体存储器设备、例如EPROM、EEPROM和闪存设备;磁盘、例如内部硬盘或者可拆卸盘;光磁盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路装置补充或者并入于专用逻辑电路装置中。
为了提供与用户的交互,在本说明书中描述的主题内容的实施例可以实施于计算机上,该计算机具有用于向用户显示信息的显示设备、例如CRT(阴极射线管)或者LCD(液晶显示器)监视器以及用户可以用来向计算机提供输入的键盘和指示设备、例如鼠标或者跟踪球。其它种类的设备也可以用来提供与用户的交互;例如向用户提供的反馈可以是任何形式的感官反馈、例如视觉反馈、听觉反馈或者触觉反馈;并且可以用包括声音、话音或者触觉输入的任何形式接收来自用户的输入。此外,计算机可以通过向用户使用的设备发送文档和从该设备接收文档、例如通过响应于从在用户的客户端设备上的web浏览器接收的请求向web浏览器发送网页来与用户交互。
可以在计算系统中实施在本说明书中描述的主题内容的实施例,该计算系统包括后端部件、例如作为数据服务器或者包括中间件部件、例如应用服务器或者包括前端部件、例如具有图形用户界面或者Web浏览器——用户可以通过该图形用户界面或者Web浏览器与在本说明书中描述的主题内容的实现方式交互——的客户端计算机或者这样的后端、中间件或者前端部件的任何组合。系统的部件可以由任何数字数据通信形式或者介质、例如通信网络互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互连网络(例如,因特网)和对等网络(例如,自组织对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序产生客户端和服务器关系。在一些实施例中,服务器向客户端设备发送数据(例如,HTML页面)(例如,用于向与客户端设备交互的用户显示数据和从该用户接收用户输入)。可以在服务器从客户端设备接收在客户端设备生成的数据(例如,用户交互的结果)。
尽管本说明书包含许多具体实施细节,但是不应解释这些为限制任何公开内容的或者可以要求保护的内容的范围而实际上描述具体公开内容的具体实施例特有的特征。也可以在单个实施例中组合实施在本说明书中在分离实施例的背景中描述的某些特征。反言之,也可以在多个实施例中分离地或者在任何适当子组合中实施在单个实施例的背景中描述的各种特征。另外,虽然以上可以描述特征为在某些组合中动作并且甚至起初这样要求保护,但是来自要求保护的组合的一个或者多个特征可以在一些情况下从该组合中被删除,并且要求保护的组合可以涉及子组合或者子组合的变化。
相似地,尽管在附图中以特定顺序描绘操作,但是这不应理解为要求以所示特定顺序或者以依次顺序进行这样的操作或者进行所有所示操作以实现希望的结果。在某些境况中,多任务和并行处理可以是有利的。另外,在上文描述的实施例中的各种系统部件的分离不应理解为在所有实施例中要求这样的分离,并且应当理解描述的程序部件和系统一般可以一起集成于单个软件产品中或者封装成多个软件产品。
因此,已经描述主题内容的具体实施例。其它实施例在所附权利要求的范围内。在一些情况下,在权利要求中记载的动作可以按不同顺序来进行而仍然实现希望的结果。此外,在附图中描绘的过程未必需要所示具体顺序或者依次顺序以实现希望的结果。在某些实现方式中,多任务和并行处理可以是有利的。

Claims (22)

1.一种计算机实施的方法,所述方法包括:
接收对于虚拟机的虚拟盘上的盘输入/输出(I/O)访问的第一盘访问请求,所述虚拟盘模仿用于所述虚拟机的本地物理盘;
根据由所述虚拟盘模仿的所述本地物理盘的一个或者多个延时和吞吐量特性为所述请求的盘I/O访问推导模拟延时成本,所述模拟延时成本包括用于对由所述虚拟盘模仿的所述本地物理盘执行所述请求的盘I/O访问的模拟数据传送延时和模拟随机访问延时;以及
基于在所述模拟延时成本与向所述虚拟盘分配的盘访问服务配额的当前值之间的比较来确定是否延迟执行所述请求的盘I/O访问,其中所述盘访问服务配额的所述当前值随时间被补充、以预定上限值为上限并且在对于所述虚拟盘的每个先前盘访问请求的相应请求的盘I/O访问被执行时被减少所述先前盘访问请求的相应模拟延时成本。
2.根据权利要求1所述的方法,其中所述虚拟盘包括向在多个物理存储设备之中分布的物理数据块映射的逻辑数据块。
3.根据权利要求2所述的方法,还包括:
假如所述盘访问配额的所述当前值在多个盘访问请求的相应模拟延时成本之和以上,则对所述多个物理存储设备并行执行用于所述多个盘访问请求的请求的I/O访问。
4.根据权利要求1所述的方法,其中所述虚拟盘是在所述多个物理存储设备上托管的多个虚拟盘之一,并且所述方法还包括:
对于所述多个虚拟盘中的每个虚拟盘:
根据与所述虚拟盘关联的预定补充速率递增所述虚拟盘的相应盘访问服务配额直至所述相应盘访问服务配额的当前值达到与所述虚拟盘关联的相应预定上限值;以及
暂时暂停所述递增直至所述虚拟盘的所述相应盘访问服务配额的所述当前值下降至与所述虚拟盘关联的所述相应预定上限值以下。
5.根据权利要求1所述的方法,还包括:
保持在紧接在当前时间之前的预定时间间隔期间接收的对于所述虚拟盘的一个或者多个先前盘访问请求的相应结束位置的记录;以及
至少基于在所述第一盘访问请求的所述请求的盘I/O访问的开始位置与在所述一个或者多个先前盘访问请求的所述相应结束位置之中的最近结束位置之间的寻找距离为所述请求的盘I/O访问计算所述模拟随机访问延时。
6.根据权利要求1所述的方法,还包括:
在确定所述第一盘访问请求的所述模拟延时成本在向所述虚拟盘分配的所述盘访问服务配额的所述当前值或者以下时:
执行所述第一盘访问请求的所述请求的盘I/O访问;以及
从向所述虚拟盘分配的所述盘服务访问配额的所述当前值扣除所述请求的I/O访问的所述模拟延时成本;以及
在确定所述第一盘访问请求的所述模拟延时成本超过向所述虚拟盘分配的所述盘访问服务配额的所述当前值时:
使所述第一盘访问请求排队直至所述盘服务访问配额的所述当前值已经通过调度的补充而达到或者在所述第一盘访问请求的所述模拟延时成本以上。
7.根据权利要求1所述的方法,还包括:
监视用于对于多个虚拟盘的相应盘访问请求的响应时间,所述多个虚拟盘共享多个下层物理存储设备;
监视所述多个下层物理存储设备的盘访问容量的利用水平;以及
调整预定参数组的一个或者多个参数,所述预定参数组包括所述多个虚拟盘的相应盘访问服务配额的补充速率和上限值以及在计算所述请求的盘I/O访问的所述模拟延时成本时使用的一个或者多个预定值。
8.一种计算机实施的方法,所述方法包括:
提供对多个虚拟盘的访问,所述多个虚拟盘在由一个或者多个服务器管理的多个下层物理存储设备上被托管;
根据由所述多个虚拟盘中的每个虚拟盘模仿的本地物理盘的一个或者多个延时和吞吐量特性为对于所述虚拟盘接收的每个盘访问请求推导模拟延时成本;以及
根据在所述相应请求的盘访问的所述模拟延时成本与由所述多个虚拟盘中的每个虚拟盘模仿的所述本地物理盘的模拟盘访问容量之间的比较来控制对所述多个下层物理存储设备执行对于所述虚拟盘的相应请求的盘访问的敏捷性。
9.一种计算机可读介质,具有在其上存储的指令,所述指令在由一个或者多个处理器执行时使所述处理器执行操作,所述操作包括:
接收对于虚拟机的虚拟盘上的盘输入/输出(I/O)访问的第一盘访问请求,所述虚拟盘模仿用于所述虚拟机的本地物理盘;
根据由所述虚拟盘模仿的所述本地物理盘的一个或者多个延时和吞吐量特性为所述请求的盘I/O访问推导模拟延时成本,所述模拟延时成本包括用于对由所述虚拟盘模仿的所述本地物理盘执行所述请求的盘I/O访问的模拟数据传送延时和模拟随机访问延时;以及
基于在所述模拟延时成本与向所述虚拟盘分配的盘访问服务配额的当前值之间的比较来确定是否延迟执行所述请求的盘I/O访问,其中所述盘访问服务配额的所述当前值随时间被补充、以预定上限值为上限并且在对于所述虚拟盘的每个先前盘访问请求的相应请求的盘I/O访问被执行时被减少所述先前盘访问请求的相应模拟延时成本。
10.根据权利要求9所述的计算机可读介质,其中所述虚拟盘包括向在多个物理存储设备之中分布的物理数据块映射的逻辑数据块。
11.根据权利要求10所述的计算机可读介质,其中所述操作还包括:
假如所述盘访问配额的所述当前值在多个盘访问请求的相应模拟延时成本之和以上,则对所述多个物理存储设备并行执行用于所述多个盘访问请求的请求的I/O访问。
12.根据权利要求9所述的计算机可读介质,其中所述虚拟盘是在所述多个物理存储设备上托管的多个虚拟盘之一,并且所述操作还包括:
对于所述多个虚拟盘中的每个虚拟盘:
根据与所述虚拟盘关联的预定补充速率递增所述虚拟盘的相应盘访问服务配额直至所述相应盘访问服务配额的当前值达到与所述虚拟盘关联的相应预定上限值;以及
暂时暂停所述递增直至所述虚拟盘的所述相应盘访问服务配额的所述当前值下降至与所述虚拟盘关联的所述相应预定上限值以下。
13.根据权利要求9所述的计算机可读介质,其中所述操作还包括:
保持在紧接在当前时间之前的预定时间间隔期间接收的对于所述虚拟盘的一个或者多个先前盘访问请求的相应结束位置的记录;以及
至少基于在所述第一盘访问请求的所述请求的盘I/O访问的开始位置与在所述一个或者多个先前盘访问请求的所述相应结束位置之中的最近结束位置之间的寻找距离为所述请求的盘I/O访问计算所述模拟随机访问延时。
14.根据权利要求9所述的计算机可读介质,其中所述操作还包括:
在确定所述第一盘访问请求的所述模拟延时成本在向所述虚拟盘分配的所述盘访问服务配额的所述当前值或者以下时:
执行所述第一盘访问请求的所述请求的盘I/O访问;以及
从向所述虚拟盘分配的所述盘服务访问配额的所述当前值扣除所述请求的I/O访问的所述模拟延时成本;以及
在确定所述第一盘访问请求的所述模拟延时成本超过向所述虚拟盘分配的所述盘访问服务配额的所述当前值时:
使所述第一盘访问请求排队直至所述盘服务访问配额的所述当前值已经通过调度的补充而达到或者在所述第一盘访问请求的所述模拟延时成本以上。
15.根据权利要求9所述的计算机可读介质,其中所述操作还包括:
监视用于对于多个虚拟盘的相应盘访问请求的响应时间,所述多个虚拟盘共享多个下层物理存储设备;
监视所述多个下层物理存储设备的盘访问容量的利用水平;以及
调整预定参数组的一个或者多个参数,所述预定参数组包括所述多个虚拟盘的相应盘访问服务配额的补充速率和上限值以及在计算所述请求的盘I/O访问的所述模拟延时成本时使用的一个或者多个预定值。
16.一种系统,包括:
一个或者多个处理器;以及
存储器,具有在其上存储的指令,所述指令在由所述一个或者多个处理器执行时使所述处理器执行操作,所述操作包括:
接收对于虚拟机的虚拟盘上的盘输入/输出(I/O)访问的第一盘访问请求,所述虚拟盘模仿用于所述虚拟机的本地物理盘;
根据由所述虚拟盘模仿的所述本地物理盘的一个或者多个延时和吞吐量特性为所述请求的盘I/O访问推导模拟延时成本,所述模拟延时成本包括用于对由所述虚拟盘模仿的所述本地物理盘执行所述请求的盘I/O访问的模拟数据传送延时和模拟随机访问延时;以及
基于在所述模拟延时成本与向所述虚拟盘分配的盘访问服务配额的当前值之间的比较来确定是否延迟执行所述请求的盘I/O访问,其中所述盘访问服务配额的所述当前值随时间被补充、以预定上限值为上限并且在对于所述虚拟盘的每个先前盘访问请求的相应请求的盘I/O访问被执行时被减少所述先前盘访问请求的相应模拟延时成本。
17.根据权利要求16所述的系统,其中所述虚拟盘包括向在多个物理存储设备之中分布的物理数据块映射的逻辑数据块。
18.根据权利要求17所述的系统,其中所述操作还包括:
假如所述盘访问配额的所述当前值在多个盘访问请求的相应模拟延时成本之和以上,则对所述多个物理存储设备并行执行用于所述多个盘访问请求的请求的I/O访问。
19.根据权利要求16所述的系统,其中所述虚拟盘是在所述多个物理存储设备上托管的多个虚拟盘之一,并且所述操作还包括:
对于所述多个虚拟盘中的每个虚拟盘:
根据与所述虚拟盘关联的预定补充速率递增所述虚拟盘的相应盘访问服务配额直至所述相应盘访问服务配额的当前值达到与所述虚拟盘关联的相应预定上限值;以及
暂时暂停所述递增直至所述虚拟盘的所述相应盘访问服务配额的所述当前值下降至与所述虚拟盘关联的所述相应预定上限值以下。
20.根据权利要求16所述的系统,其中所述操作还包括:
保持在紧接在当前时间之前的预定时间间隔期间接收的对于所述虚拟盘的一个或者多个先前盘访问请求的相应结束位置的记录;以及
至少基于在所述第一盘访问请求的所述请求的盘I/O访问的开始位置与在所述一个或者多个先前盘访问请求的所述相应结束位置之中的最近结束位置之间的寻找距离为所述请求的盘I/O访问计算所述模拟随机访问延时。
21.根据权利要求16所述的系统,其中所述操作还包括:
在确定所述第一盘访问请求的所述模拟延时成本在向所述虚拟盘分配的所述盘访问服务配额的所述当前值或者以下时:
执行所述第一盘访问请求的所述请求的盘I/O访问;以及
从向所述虚拟盘分配的所述盘服务访问配额的所述当前值扣除所述请求的I/O访问的所述模拟延时成本;以及
在确定所述第一盘访问请求的所述模拟延时成本超过向所述虚拟盘分配的所述盘访问服务配额的所述当前值时:
使所述第一盘访问请求排队直至所述盘服务访问配额的所述当前值已经通过调度的补充而达到或者在所述第一盘访问请求的所述模拟延时成本以上。
22.根据权利要求16所述的系统,其中所述操作还包括:
监视用于对于多个虚拟盘的相应盘访问请求的响应时间,所述多个虚拟盘共享多个下层物理存储设备;
监视所述多个下层物理存储设备的盘访问容量的利用水平;以及
调整预定参数组的一个或者多个参数,所述预定参数组包括所述多个虚拟盘的相应盘访问服务配额的补充速率和上限值以及在计算所述请求的盘I/O访问的所述模拟延时成本时使用的一个或者多个预定值。
CN201280054975.1A 2011-09-23 2012-09-21 计算机实施的方法、设备和系统 Active CN103917957B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/243,752 2011-09-23
US13/243,752 US9069616B2 (en) 2011-09-23 2011-09-23 Bandwidth throttling of virtual disks
PCT/US2012/056683 WO2013044112A1 (en) 2011-09-23 2012-09-21 Bandwidth throttling of virtual disks

Publications (2)

Publication Number Publication Date
CN103917957A true CN103917957A (zh) 2014-07-09
CN103917957B CN103917957B (zh) 2017-06-23

Family

ID=46981155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280054975.1A Active CN103917957B (zh) 2011-09-23 2012-09-21 计算机实施的方法、设备和系统

Country Status (5)

Country Link
US (1) US9069616B2 (zh)
EP (1) EP2758877B1 (zh)
CN (1) CN103917957B (zh)
DE (1) DE202012013464U1 (zh)
WO (1) WO2013044112A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201650A (zh) * 2016-06-29 2016-12-07 联想(北京)有限公司 一种虚拟机控制方法和系统
CN106802847A (zh) * 2015-11-26 2017-06-06 伊姆西公司 用于模拟慢速存储盘的方法和装置

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135037B1 (en) 2011-01-13 2015-09-15 Google Inc. Virtual network protocol
US8874888B1 (en) 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US8745329B2 (en) 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
US8533796B1 (en) 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
US8261295B1 (en) 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US9237087B1 (en) 2011-03-16 2016-01-12 Google Inc. Virtual machine name resolution
US9063818B1 (en) 2011-03-16 2015-06-23 Google Inc. Automated software updating based on prior activity
US9639379B1 (en) * 2011-07-19 2017-05-02 Open Invention Network Llc Dynamic configuration of virtual machines
US9075979B1 (en) 2011-08-11 2015-07-07 Google Inc. Authentication based on proximity to mobile device
US8966198B1 (en) 2011-09-01 2015-02-24 Google Inc. Providing snapshots of virtual storage devices
US8958293B1 (en) 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
US8800009B1 (en) 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
US8983860B1 (en) 2012-01-30 2015-03-17 Google Inc. Advertising auction system
US8677449B1 (en) 2012-03-19 2014-03-18 Google Inc. Exposing data to virtual machines
US9712453B1 (en) * 2012-03-26 2017-07-18 Amazon Technologies, Inc. Adaptive throttling for shared resources
US9069806B2 (en) 2012-03-27 2015-06-30 Google Inc. Virtual block devices
US9830256B1 (en) * 2013-04-19 2017-11-28 Amazon Technologies, Inc. Block device workload analysis
US9262505B2 (en) * 2013-05-17 2016-02-16 Amazon Technologies, Inc. Input-output prioritization for database workload
CN104580124B (zh) * 2013-10-29 2019-04-05 华为技术有限公司 协议栈选择方法、装置及设备
US9515951B2 (en) 2013-11-15 2016-12-06 Microsoft Technology Licensing, Llc Computing system architecture that facilitates forming of customized virtual disks
CN105242955B (zh) * 2014-07-07 2019-01-29 腾讯科技(深圳)有限公司 一种虚拟机磁盘输入输出调度方法及系统
US9917790B2 (en) 2014-07-31 2018-03-13 Microsoft Technology Licensing, Llc Storage device access mediation
US9442669B2 (en) * 2014-08-06 2016-09-13 International Business Machines Corporation Cost-effective IAAS (infrastructure-as-a-service) cloud storage based on adaptive virtual disks (AVD)
US9860317B1 (en) * 2015-04-30 2018-01-02 Amazon Technologies, Inc. Throughput throttling for distributed file storage services with varying connection characteristics
US9923965B2 (en) 2015-06-05 2018-03-20 International Business Machines Corporation Storage mirroring over wide area network circuits with dynamic on-demand capacity
US10474536B2 (en) * 2015-06-10 2019-11-12 International Business Machines Corporation Calculating bandwidth requirements for a specified recovery point objective
US10055242B2 (en) * 2015-10-16 2018-08-21 Microsoft Technology Licensing, Llc Virtualizing audio decoding hardware
US9923839B2 (en) 2015-11-25 2018-03-20 International Business Machines Corporation Configuring resources to exploit elastic network capability
US10216441B2 (en) 2015-11-25 2019-02-26 International Business Machines Corporation Dynamic quality of service for storage I/O port allocation
US10057327B2 (en) 2015-11-25 2018-08-21 International Business Machines Corporation Controlled transfer of data over an elastic network
US9923784B2 (en) 2015-11-25 2018-03-20 International Business Machines Corporation Data transfer using flexible dynamic elastic network service provider relationships
US10177993B2 (en) 2015-11-25 2019-01-08 International Business Machines Corporation Event-based data transfer scheduling using elastic network optimization criteria
US10581680B2 (en) 2015-11-25 2020-03-03 International Business Machines Corporation Dynamic configuration of network features
US9983821B2 (en) * 2016-03-29 2018-05-29 Samsung Electronics Co., Ltd. Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application
US10101920B2 (en) 2016-06-30 2018-10-16 Microsoft Technology Licensing, Llc Disk I/O attribution
US10228868B1 (en) * 2016-09-30 2019-03-12 EMC IP Holding Company LLC Managing lifespan of a flash memory
CN106775924B (zh) * 2016-11-07 2018-08-07 北京百度网讯科技有限公司 虚拟机启动方法和装置
US10768827B2 (en) * 2017-04-07 2020-09-08 Microsoft Technology Licensing, Llc Performance throttling of virtual drives
US10216660B1 (en) * 2017-07-13 2019-02-26 EMC IP Holding Company LLC Method and system for input/output (IO) scheduling in a storage system
US11409450B2 (en) 2019-06-17 2022-08-09 Micron Technology, Inc. Channel architecture for memory devices
US11899558B2 (en) * 2021-01-15 2024-02-13 Netflix, Inc. Systems and methods for optimizing hard drive throughput

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1963765A (zh) * 2005-11-12 2007-05-16 国际商业机器公司 资源优化组件和方法
US20080104150A1 (en) * 2006-10-31 2008-05-01 Sun Microsystems, Inc. Method and system for priority-based allocation in a storage pool
US20090235358A1 (en) * 2004-12-10 2009-09-17 Microsoft Corporation Systems and methods for attaching a virtual machine virtual hard disk to a host machine
US20100095000A1 (en) * 2008-10-14 2010-04-15 Kevin Kettler Enabling Throttling of Resources on a Virtualization Enabled Information Handling System

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463768A (en) 1994-03-17 1995-10-31 General Electric Company Method and system for analyzing error logs for diagnostics
US5778444A (en) 1996-05-06 1998-07-07 Motorola, Inc. Method and apparatus for reset-sensitive and controlled register write accesses in a data processing system with user and test modes
US6178482B1 (en) 1997-11-03 2001-01-23 Brecis Communications Virtual register sets
US6505211B1 (en) 1999-01-26 2003-01-07 International Business Machines Corporation Method for providing for persistence of java classes where the persistence semantics may be orthogonal to the class definition
US6477683B1 (en) 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
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
US6598179B1 (en) 2000-03-31 2003-07-22 International Business Machines Corporation Table-based error log analysis
JP2002207620A (ja) 2001-01-10 2002-07-26 Toshiba Corp ファイルシステム及び該システムにおけるデータキャッシング方法
US7984423B2 (en) 2001-08-14 2011-07-19 National Instruments Corporation Configuration diagram which displays a configuration of a system
US7117243B2 (en) 2001-10-02 2006-10-03 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US6898697B1 (en) 2002-03-29 2005-05-24 Advanced Micro Devices, Inc. Efficient method for mode change detection and synchronization
US7055071B2 (en) 2003-01-09 2006-05-30 International Business Machines Corporation Method and apparatus for reporting error logs in a logical environment
US7373451B2 (en) 2003-12-08 2008-05-13 The Board Of Trustees Of The Leland Stanford Junior University Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
US7529836B1 (en) 2004-01-08 2009-05-05 Network Appliance, Inc. Technique for throttling data access requests
US20050166011A1 (en) 2004-01-23 2005-07-28 Burnett Robert J. System for consolidating disk storage space of grid computers into a single virtual disk drive
US20070271604A1 (en) 2004-03-17 2007-11-22 Fidelitygenetic Ltd. Secure Transaction of Dna Data
JP4147198B2 (ja) 2004-03-23 2008-09-10 株式会社日立製作所 ストレージシステム
US7478388B1 (en) 2004-04-21 2009-01-13 Vmware, Inc. Switching between multiple software entities using different operating modes of a processor in a computer system
US7512721B1 (en) 2004-05-25 2009-03-31 Qlogic, Corporation Method and apparatus for efficient determination of status from DMA lists
US7650331B1 (en) 2004-06-18 2010-01-19 Google Inc. System and method for efficient large-scale data processing
GB2418326B (en) 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
GB2419701A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructure with dynamic control of mapping
GB2419697A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructures each having an infrastructure controller
GB2419702A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructures which can be suspended and later reactivated
US20060161753A1 (en) 2005-01-18 2006-07-20 Aschoff John G Method, apparatus and program storage device for providing automatic performance optimization of virtualized storage allocation within a virtualized storage subsystem
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US7761573B2 (en) 2005-12-07 2010-07-20 Avaya Inc. Seamless live migration of virtual machines across optical networks
EP1818844B1 (de) 2006-02-10 2013-03-13 Secunet Security Networks Aktiengesellschaft Verfahren zur Benutzung von Sicherheitstoken
US20080086515A1 (en) 2006-10-06 2008-04-10 International Business Machines Corporation Method and System for a Soft Error Collection of Trace Files
US7653833B1 (en) 2006-10-31 2010-01-26 Hewlett-Packard Development Company, L.P. Terminating a non-clustered workload in response to a failure of a system with a clustered workload
US20080205415A1 (en) 2007-02-28 2008-08-28 Morales Henry N Jerez Access, Connectivity and Interoperability for Devices and Services
US20080270704A1 (en) 2007-04-30 2008-10-30 He Dingshan Cache arrangement for improving raid i/o operations
US8127295B1 (en) * 2007-08-03 2012-02-28 Oracle America, Inc. Scalable resource allocation
US7836285B2 (en) 2007-08-08 2010-11-16 Analog Devices, Inc. Implementation of variable length instruction encoding using alias addressing
US20090097657A1 (en) 2007-10-05 2009-04-16 Scheidt Edward M Constructive Channel Key
JP4480756B2 (ja) 2007-12-05 2010-06-16 富士通株式会社 ストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラム、データ記憶システムおよびデータ記憶方法
US8156491B2 (en) 2008-02-29 2012-04-10 Red Hat, Inc. Fault tolerant virtual machine
US8336094B2 (en) 2008-03-27 2012-12-18 Juniper Networks, Inc. Hierarchical firewalls
US8990911B2 (en) 2008-03-30 2015-03-24 Emc Corporation System and method for single sign-on to resources across a network
US7596620B1 (en) 2008-11-04 2009-09-29 Aptana, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US8103776B2 (en) 2008-08-29 2012-01-24 Red Hat, Inc. Systems and methods for storage allocation in provisioning of virtual machines
US8065714B2 (en) 2008-09-12 2011-11-22 Hytrust, Inc. Methods and systems for securely managing virtualization platform
US9189268B2 (en) 2008-10-10 2015-11-17 Netapp, Inc. Limiting simultaneous data transfers and efficient throttle management
JP5802137B2 (ja) 2009-02-05 2015-10-28 ダブリューダブリューパス コーポレイションWwpass Corporation 安全なプライベート・データ記憶装置を有する集中型の認証システム、および方法
EP2425341B1 (en) 2009-05-01 2018-07-11 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US8429647B2 (en) 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
US8463885B2 (en) 2009-08-31 2013-06-11 Red Hat, Inc. Systems and methods for generating management agent installations
US20110060882A1 (en) * 2009-09-04 2011-03-10 Petros Efstathopoulos Request Batching and Asynchronous Request Execution For Deduplication Servers
US8949408B2 (en) 2009-12-18 2015-02-03 Microsoft Corporation Session monitoring of virtual desktops in a virtual machine farm
US9953178B2 (en) 2010-02-03 2018-04-24 Os Nexus, Inc. Role based access control utilizing scoped permissions
US9875463B2 (en) 2010-03-17 2018-01-23 Infostreet, Inc. Cloud-based desktop and subscription application platform apparatuses, methods and systems
US9443078B2 (en) 2010-04-20 2016-09-13 International Business Machines Corporation Secure access to a virtual machine
US8745329B2 (en) 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
US8261295B1 (en) 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US8276140B1 (en) 2011-11-14 2012-09-25 Google Inc. Adjustable virtual network performance

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090235358A1 (en) * 2004-12-10 2009-09-17 Microsoft Corporation Systems and methods for attaching a virtual machine virtual hard disk to a host machine
CN1963765A (zh) * 2005-11-12 2007-05-16 国际商业机器公司 资源优化组件和方法
US20080104150A1 (en) * 2006-10-31 2008-05-01 Sun Microsystems, Inc. Method and system for priority-based allocation in a storage pool
US20100095000A1 (en) * 2008-10-14 2010-04-15 Kevin Kettler Enabling Throttling of Resources on a Virtualization Enabled Information Handling System

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106802847A (zh) * 2015-11-26 2017-06-06 伊姆西公司 用于模拟慢速存储盘的方法和装置
US11068371B2 (en) 2015-11-26 2021-07-20 EMC IP Holding Company LLC Method and apparatus for simulating slow storage disk
CN106802847B (zh) * 2015-11-26 2022-05-13 伊姆西Ip控股有限责任公司 用于模拟慢速存储盘的方法和装置
CN106201650A (zh) * 2016-06-29 2016-12-07 联想(北京)有限公司 一种虚拟机控制方法和系统
CN106201650B (zh) * 2016-06-29 2020-08-25 联想(北京)有限公司 一种虚拟机控制方法和系统

Also Published As

Publication number Publication date
US9069616B2 (en) 2015-06-30
DE202012013464U1 (de) 2017-01-30
EP2758877B1 (en) 2019-06-05
WO2013044112A1 (en) 2013-03-28
US20130081014A1 (en) 2013-03-28
EP2758877A1 (en) 2014-07-30
CN103917957B (zh) 2017-06-23

Similar Documents

Publication Publication Date Title
CN103917957A (zh) 虚拟盘的带宽节制
US11082301B2 (en) Forecasting computer resources demand
JP7259033B2 (ja) 機械学習によって推進されるリソース配分
US10374974B2 (en) Resource allocation to game titles in a remote gaming environment
CN1695134B (zh) 动态带宽控制
Nae et al. Dynamic resource provisioning in massively multiplayer online games
US10887167B2 (en) Adaptive software-defined storage for cloud storage workloads
EP2999527B1 (en) Game availability in a remote gaming environment
US10652092B2 (en) Methods and systems that collect and manage latency data in an automated resource-exchange system
RU2701118C2 (ru) Администрирование центра обработки данных многорежимных серверов
EP2228719A1 (en) Method of executing a virtual machine, computing system and computer program
US20180063235A1 (en) Automated resource-price calibration and recalibration by an automated resource-exchange system
CN110826786A (zh) 目的地点人口数量的预测方法、装置及存储介质
US10506031B1 (en) Scalable network for processing virtual environments
US10917467B1 (en) Object subscription rule propagation
WO2016206441A1 (zh) 一种虚拟资源分配方法及装置、计算机存储介质
US20140244545A1 (en) System, method, and recording medium
CN111135586A (zh) 游戏匹配方法、游戏匹配装置、存储介质与电子设备
CN102929693A (zh) 整机柜服务器的性能评测方法及装置
US10911535B1 (en) Object ownership migration
CN108989387A (zh) 控制异步请求的方法、装置及设备
US10298679B1 (en) Object ownership migration
CN117195599B (zh) 一种云边协同的卫星服务迁移验证方法及装置
US10848388B1 (en) Distributed computing framework
Hamling Optimal Orchestration of a Cloud-Based Internet Cafe

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.

CP01 Change in the name or title of a patent holder