CN105531972A - 控制数据存储输入/输出请求 - Google Patents

控制数据存储输入/输出请求 Download PDF

Info

Publication number
CN105531972A
CN105531972A CN201480050118.3A CN201480050118A CN105531972A CN 105531972 A CN105531972 A CN 105531972A CN 201480050118 A CN201480050118 A CN 201480050118A CN 105531972 A CN105531972 A CN 105531972A
Authority
CN
China
Prior art keywords
queue
rank
data
stream
place
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
CN201480050118.3A
Other languages
English (en)
Other versions
CN105531972B (zh
Inventor
E·特雷斯卡
H·巴拉尼
G·奥谢
T·卡拉扬尼斯
A·I·T·罗斯特龙
T·M·塔尔佩伊
R·J·布莱克
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105531972A publication Critical patent/CN105531972A/zh
Application granted granted Critical
Publication of CN105531972B publication Critical patent/CN105531972B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/522Dynamic queue service slot or variable bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

对数据存储输入/输出请求进行控制被描述成,例如,将策略应用到在至少一个计算实体与至少一个存贮器之间的数据输入/输出请求的端到端的流。在各种例子中,多个队列被配置在所述端到端的流的一个或多个阶处并被控制以符合策略。在例子中,每个阶具有控制接口,使得该阶能够接收并执行来自控制器的控制指令,控制器可以是集中式的或者分布式的。例如,控制指令包含排队规则和/或队列配置。在各种例子中,队列和排队规则是根据关于如下各项中的任意项的反馈而被动态地创建并修正的:流行为、策略变化、基础设施变化、或其它因素。例如,流端点的高级标识符基于每个阶而被解析成适于该阶使用的低级标识符。

Description

控制数据存储输入/输出请求
背景技术
数据存储系统,例如大数据中心和其它类型的数据存储系统,越来越复杂。去往存储(storage)的输入/输出路径常常较长且包含许多层,在层间具有不透明接口。这使得难以施行用于决定存储输入/输出流的性能(例如用以保证可用于该流的特定带宽)的端到端策略。存储输入/输出流包含一连串在存储与计算端点之间的存储输入/输出请求。例如,用以从文件读取数据、向文件写入数据、或者创建文件来存储数据。
企业数据中心中的物理服务器的虚拟化以及存储的虚拟化已导致了沿着存储输入/输出流的增加的复杂度。
下面描述的实施例并不限于解决已知数据存储系统的任何或全部缺点的实施方式。
发明内容
下面给出了本公开的简化的概要,以便向读者提供基本理解。此概要不是对本公开的广泛概述,并且其也没有标识关键的/决定性的元素或者描绘本发明的保护范围。此概要的唯一目的是要以简化形式给出在本文中公开的概念的选集,作为对稍后给出的具体实施方式的序言。
对数据存储输入/输出请求进行控制被描述成,例如,将策略应用于在至少一个计算实体与至少一个存贮器(store)之间的数据输入/输出请求的端到端(end-to-end)的流。在各种例子中,多个队列被配置在所述端到端的流的一个或多个阶(stage)处并被控制以符合策略。在例子中,每个阶具有控制接口,使得该阶能够接收并执行来自控制器的控制指令,控制器可以是集中式的或者分布式的。例如,控制指令包含排队规则和/或队列配置。在各种例子中,队列和排队规则是根据关于如下各项中的任意项的反馈而被动态地创建并修正的:流行为、策略变化、基础设施变化、或其它因素。例如,流端点的高级标识符基于每个阶而被解析成适于该阶使用的低级标识符。
由于许多附带特征通过参照下面的具体实施方式,结合附图考虑,而变得较好理解,所以这些附带特征将更容易被领会。
附图说明
从根据附图的下列具体实施方式中将会更好地理解本发明的说明书,其中:
图1是包含数据中心的数据存储系统的示意图;
图2是计算服务器与存储服务器的示意图;
图3是在控制器处的方法与在阶(stage)处的方法的流程图;
图4是在控制器处的探查(discovery)方法的流程图;
图5是拓扑图形的示意图;
图6是控制器处的方法的流程图;
图7是在阶处的方法的流程图;
图8是拓扑子图的示意图;
图9示出了示例性的基于计算的设备,在该基于计算的设备中可以实现数据存储系统的阶的实施例;
相同的附图标号被用以指定附图中的相同部分。
具体实施方式
下面结合附图提供的具体实施方式旨在作为对本发明例子的描述,而并非旨在表示其中本发明例子可以被构造或利用的仅有形式。说明书给出了该例子的功能以及用于构造并操作该例子的步骤的顺序。然而,相同的或等价的功能以及顺序可以通过不同的例子来实现。
虽然本发明例子在本文被描述并示出为在具有集中式控制器的数据中心中实现,但是描述的系统是作为例子而非作为限制来提供的。如本领域技术人员将意识到的,本发明例子适用于在包括个人计算机在内的并且其中使用非集中式控制器的各种不同类型的数据存储系统中应用。
如上所描述地,去往存储(storage)的输入/输出路径通常漫长且复杂,并且这使得难以施行端到端策略(例如用以保证特定服务质量或者确保请求是通过净化中间盒(sanitizationmiddlebox)来路由的)。通常,许多不同的客户具有在数据中心或者其它数据存储系统中运行的进程,并且资源被共享。例如,数据存储系统中的实体之间的互连资源以及存储资源。要符合用于对存储输入/输出请求的执行与处理的客户策略(或其它策略)变得非常困难,并且这可能给对云计算服务的采用与发展带来障碍。
在本文中描述的方法和装置使得端到端策略能够被应用到数据存储输入/输出请求的流,其中,流是在指定的端点之间的一连串这种请求。端点中的至少一个是诸如计算服务器之类的计算实体,且端点中的至少一个是诸如存储服务器上的文件共享或计算服务器处的本地存储上的文件共享之类的存贮器(store)。在一些例子中,计算服务器也可以包含存贮器。在一些例子中,存储服务器也可以包含计算实体。以此方式,策略可以应用于“计算到计算(compute-to-compute)”流和/或“服务器到服务器(server-to-server)”流。策略能够被应用于诸如多对一布置、一对多布置以及多对多布置之类的多点流。流的端点可以使用可能为该流的一个或多个层所不理解的高级标识符来规定。在下面会较详细地描述层。
策略包含一个或多个标准(criteria),其规定了流的性能和/或要被应用于流的功能,其中,该流是按照其端点来指定的。例如,用于规定性能的标准可以包含要被应用到流的最小带宽。用于规定功能的标准可以包含要被应用到流的病毒检查功能。
层是数据存储系统的组件,流通过该组件。层的非穷举的例子列表是:计算服务器的管理程序(hypervisor)处的网络驱动器、存储服务器处的网络驱动器、数据存储系统的互连中的交换机。具有控制接口使得层能够与控制器通信的这样的层,在本文档中被称为“阶(stage)”。在本文描述的例子中,至少一个阶被用以控制流以便符合策略。用于操作在本文描述的方法的数据存储系统可以具有一个或多个阶。随着数据中心中的作为阶的层的比例增加,策略实施能力的灵活性与功效也增加。这使得技术能够运行在现行数据存储系统中,而不需将每个层更新以使之变成阶。
每个阶包含多个队列,队列可以作为从控制器接收的控制指令的结果来接收并安装。控制器可以是集中式的或分布式的。通过发送控制指令给阶,队列可以被动态地配置为使能策略施行。将流行为、策略更新、基础设施变化以及其它因素包括在内的反馈可以被用以动态地配置队列。
图1是示出示例存储系统100的示意图,存储系统100包含存储数据的多个存储服务器104与运行计算的多个计算服务器102,所述计算读取自或写入到存储服务器104和/或计算服务器中的一个或多个处的本地存储103。在此例子中,存储输入/输出请求的流是由起自计算服务器102处的两个虚拟机116经由互连110中的交换机108去往单个存储服务器104的虚线120来表示的。这仅是一个例子;存储输入/输出请求可以在虚拟机与本地存储之间或者在其它实体之间流动。
互连110包含将计算服务器102、本地存储103以及存储服务器104互连的任何适当类型的通信链路,例如,以太网、交换结构计算机网络通信链路(诸如InfiniBand(商标)通信链路之类的)、或者其它。一个或多个交换机108可以存在于互连110中,但这不是必不可少的。各种通信协议可以用以在所述通信链路上发送存储输入/输出请求,如在下面详细描述。
虽然此图示出了四个计算服务器以及两个存储服务器,但是在本文中描述的方法同等地可适用于较小的系统(例如,单个PC)或具有与在图1中示出的计算服务器和/或存储服务器相比较多的计算服务器和/或存储服务器的系统。如上所述,使用提供计算服务器功能和存储服务器功能两者而不是将这些功能分开的实体是可行的。
图1还示出了控制器106,其被连接到互连110,并从而能够与数据存储系统的一个或多个阶进行通信。如上所述,阶是流的层,其具有的控制接口使得其能够与控制器通信。在此例子中,控制器是集中式的。然而,控制器的功能还可以分布在数据存储系统100中的多个实体当中,例如在多个阶处。
连接到控制器106的是一个或多个控制应用112,其从运营商、客户、策略库、自动化实体或其它源接收策略114。控制应用与控制器116一起工作以通过向一个或多个阶发送控制指令来实施策略114。在图1的例子中,两个虚拟机116均具有阶118。
替代地或者另外地,在本文描述的控制器和/或阶的功能能够至少部分地由一个或多个硬件逻辑组件来执行。例如且非限制地,能够使用的示例类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)。
图2是具有可以在图1的布置中或在其它布置中使用的计算服务器102的例子和存储服务器104的例子的示意图。在此例子中,计算服务器采用虚拟化。然而,这不是必不可少的;不具有虚拟机和/或管理程序的计算服务器也可以被使用。
计算服务器102包含管理程序214(还称为虚拟机监控器),其能够在计算服务器102处创建并运行一个或多个虚拟机。这使得能够通过针对不同的进程来使用不同的虚拟机,在计算服务器102处并行执行多个不同的进程或应用。管理程序214是使用软件和/或硬件来通过计算机实现的。在图2的例子中,示意性地示出了标记为VM1、VM2、VM3以及VM4的四个虚拟机位于计算服务器102处。然而,其它数量的虚拟机可以被使用(零个、一个、两个或更多个)。
在图2的例子中,虚拟机4使用由图2中的标记为“访客OS”的括号区域指示的访客操作系统来执行应用200。访客操作系统包含通信协议栈以及存储栈。在此例子中,通信协议栈包含传输控制协议(TCP)202、因特网协议(IP)206以及虚拟网络接口卡(VNIC)210。存储栈包含文件系统204、块设备208以及虚拟硬盘212。虚拟硬盘212是经由输入输出协议组件218连接到对计算服务器102处的物理网络接口卡222进行控制的网络驱动器220上的。虚拟网络接口卡210还可以连接到网络驱动器220。该连接经由虚拟交换机216。
输入输出(IO)协议组件218包含多个队列并可以使用服务器消息块(SMB)或其它适当的分布式存储协议来实现。在图2的例子中,IO协议组件被详细地示出为具有两个队列226、228,进入IO分组224(其是存储输入/输出请求)被分配给这两个队列。在此例子中,每个队列是与指定的流相关联的,使得队列226用于流1的分组并且队列228用于流n的分组。然而,队列与特定的流相关联不是必不可少的。例如,队列可以是缺省队列,其携带在该阶处仍然未分配给任何其它队列的任何剩余分组。
IO协议组件218是阶,这是因为其包含控制接口230用于与控制器106通过接口连接。控制器106是图1的控制器的例子。控制器106能够与IO协议组件218以及网络驱动器220通信,以便创建、删除、编辑以及配置队列226、228与排队规则,且以便获得与队列的行为有关的反馈。排队规则可以存储于在此例子中均为阶的IO协议组件218和/或网络驱动器220处。
存储服务器104还包含两个阶,这两个阶是IO协议组件232以及网络驱动器238。IO协议组件可以是使用服务器消息块(SMB)或任何其它适当的分布式存储协议来实现的。在此例子中,存储服务器104处的IO组件232没有已创建的队列(尽管在一些例子中,其可能具有队列)。
存储服务器104包含与对存储磁盘242或其它存储设备进行控制的磁盘驱动器236通信的文件系统234。存储服务器104还包含被连接到网络驱动器238的物理网络接口卡240。
虚线244表示虚拟机4处的应用200与存储服务器104处的存储磁盘242之间的存储输入输出请求的流。在此例子中,该请求流从应用200的文件系统204传到访客操作系统的块设备208,再到虚拟硬盘212以及管理程序的IO协议组件218。该请求流继续到计算服务器102的网络驱动器220,再到物理网络接口卡222,再通过一个或多个通信链路到交换机108,再到存储服务器104的物理网络接口卡240。该请求流通过网络驱动器238进到存储服务器104的IO协议组件232,再到文件系统234以及存储服务器的硬盘驱动器236,并终止于磁盘242。在此例子中,该请求流是双向的。控制器106可以使用在本文描述的方法来对IO请求的流来实施策略。
图3是具有控制器处的例示方法以及阶处的例示方法的流程图。控制器处的方法可以称为控制面(controlplane)处的方法,阶处的方法可以称为数据面(dataplane)处的方法。控制器可以如图1和2中所示地是集中式的或者可以是分布式(例如使用各个阶处的功能)。
控制器访问(300)用于流的策略。例如,该策略可以是预配置的策略,可以是根据阈值、标准或规则从策略库中选择的,可以是由用户输入的,可以是由客户从多个可用的策略选择的,或者可以是以其它方式访问的。
现在给出策略的一些例子,然而这些仅是例子,并且其它策略可被使用。
为便于说明,现在给出如下形式的例示流策略:{[VM的集合],[存储共享的集合]}→策略。然而,用于表示流策略的其它格式也可被使用。
策略P1.{VMp,共享X}→带宽B。在此例子中,VMp运行对存储共享X上的SQL数据文件进行访问的SQL客户端。为了给出较好的查询性能,当访问该共享时,p被保证有带宽B。B可以以每秒的令牌来表示。在下面对令牌进行详细地阐述。
策略P2.{p,X}→最小带宽B。当访问共享X时,与策略P1类似地,设置VMp被承诺有最小带宽B。B可以以每秒的令牌来表示。在下面对令牌进行详细地阐述。因而,当其它VM空闲时,p能够超过其带宽保证量。
策略P3.{p,X}→净化(sanitize)。VMp运行不受信任的代码,并且其业务量(traffic)是通过诸如病毒检查器或其它检查进程之类的净化层来路由的。
策略P4.{p,X}→高优先级。VMp运行对存储共享X上的SQL日志文件进行访问的SQL客户端。为确保针对日志操作的低时延,p的存储业务量需要端到端路径上的高优先级处理。
策略P5.{[p,q,r],[X,Y]}→带宽B。VMp、q以及r属于相同的客户,并且当访问共享X和Y时,VMp、q以及r被保证有带宽B。这种每客户(per-customer)的保证量是有用的,这是因为牵涉的这些VM中的任一者都能够使用该带宽保证量。
策略P1-P4规定对点到点流的处理,而P5适用于多点流。
控制器创建(302)用以执行策略的指令。例如,考虑策略P1。来自Vmp的存储业务量遍历(traverse)计算服务器处的访客OS以及管理程序,然后遍历网络交换机,并最终在抵达磁盘阵列前遍历存储服务器处的OS。为施行此策略,这些层中的至少一个被布置成对用于从VMp向共享X转发请求的速率进行控制。控制指令被创建成对这些层中的一个或多个处的速率进行控制,以施行策略P1。
作为创建控制指令的一部分,控制器可以执行流名字解析。例如,策略被规定成应用到具有使用高级名字来表示的端点的流,该流的一个或多个个体层对高级名字不理解。控制器将高级端点名字解析成被个体层理解的低级标识符。用于解析高级端点名字的进程提供了流名字与低级的特定于阶的IO请求标识符之间的一致性的一对一映射。例如,对于策略P1,从VMp到共享X的层中的任一层都能够用作施行点,然而各个层仅能够观测到从其遍历的请求中的一些低级标识符。流的目的地共享X可以表现为VM内的文件系统,而访客OS表现为管理程序内的块设备(blockdevice)(例如,"/设备/scsidisk5")。管理程序将这映射到存储服务器上的VHD文件(例如,"\\服务器\共享\文件.VHD")。存储服务器转而将此文件(例如,"H:\文件.VHD")映射到特定的设备(例如,"/设备/ssd5")。
控制指令可以包含用以创建、编辑或删除一个或多个队列的指令和/或用以对队列的参数(诸如队列流出速率)进行配置的指令。控制指令还可以包含排队规则,其规定用于向队列分配输入/输出请求的标准。
控制指令可以使用应用编程接口(API)而被写入,API位于诸如SMB之类的分布式存储协议的顶部;然而。这不是必不可少的。下面参照图4和6给出关于控制器如何创建(302)控制指令的更多细节。
控制器发送(304)控制指令给一个或多个选择的阶。例如,控制指令是通过在上面参照图1描述的通信链路来发送的。控制器可以选择用以发送控制指令的一个或多个阶,如在下面详细描述地。例如,使用诸如策略施行的效率之类的标准。
如上所提及地,流策略可以施行在沿着流的路径的一个以上的阶处。例如,策略P1要求VMp的带宽永不超过B。此种带宽限制值能够在VM内的任何阶处、在管理程序处、在网络交换机处甚或在存储服务器自身处施行。相比之下,策略P4必需VMp的分组达到高优先级,使得其需要在沿着端到端路径的所有阶处施行。
多点策略向用于分布式施行的需求增添了另一维度(dimension);也即,发送控制指令给一个以上的阶。例如,策略P5需要从VMp、q以及r到共享X以及Y的总共的业务量是速率限制的。这能够在掌控这些VM的计算服务器的每一个处和/或在安装有共享的存储服务器处施行。
在一些例子中,控制器接收(306)与流行为、队列行为、策略施行或其它因素有关的反馈。控制器使用反馈来动态地创建控制指令以实现策略。以此方式,控制器处的进程能够连续地采用控制指令,以便在面临变化的情况时争取公平且精确的策略施行。这可以称为“动态施行(dynamicenforcement)”。
在不需要动态施行的基础上可以施行的策略的一个例子是策略P1,其设置用于VMp的业务量的静态带宽限制值。静态施行规则还可操作用于策略P3和P4。相比之下,策略P2使用动态施行。策略P2要求用于VMp的带宽限制值是基于闲置系统容量来调整的(而不低于最小保证量)。同样地,像P5一样的提供了聚合保证的多点策略使用动态施行规则。
在阶处的进程包含作为来自控制器的控制指令的部分来接收一个或多个排队规则。该阶根据控制指令来配置(310)其一个或多个队列,并根据排队规则来转发(312)存储IO分组给该阶处的恰当队列。该阶例如根据还可以由控制器规定的服务标准与规则来服务(314)其队列。
图4是控制器(其可以是集中式的或分布式的)处的探查方法的流程图。此方法使得控制器能够创建并维持诸如数据中心或其它存储系统之类的存储系统的阶层拓扑图(stage-leveltopologygraph)。当控制器是分布式的且包含每个阶处的功能,那么在一些例子中,每个阶可以创建并维持阶层拓扑图。阶层拓扑图包含存储系统的每个阶所对应的节点、以及按照用于对存储系统中的阶之间的通信链路进行表示的方式将节点连接的边。
控制器在各个阶启动或初始化时从各个阶接收(参见图4的步骤400)消息。例如,每个阶可以在其启动或初始化时配置为发送消息给一个或多个规定的地址,或者配置为对消息进行广播。控制器还可以例如通过观测数据存储系统中的业务量,来检测存储系统的一个或多个层(这些层是存储系统的不具有去往控制器的专用接口的组件)。
控制器探查(404)阶信息,诸如阶所理解的IO报头的类型的细节、或者该阶处的队列的服务属性和路由属性的细节。队列的服务属性管控该队列服务多快,而路由属性决定IO请求被路由到的下一阶。控制器可以通过发送查询给各个阶、通过观测各个阶的行为或者以其它方式,来探查(404)阶信息。
控制器创建并维护(406)诸如数据中心或其它存储系统之类的存储系统的阶-层(stage-level)拓扑图。如上所述,阶层拓扑图包含存储系统的每个阶所对应的节点、以及按照用于对存储系统中的阶之间的通信链路进行表示的方式将节点连接的边。在图5中示出了阶层拓扑图的一个例子。可选地,控制器确定该图的边的与物理资源对应的容量。这可以通过使用预配置的拓扑图来实现。通过运行诸如Iometer(商标)或其它测量及特征化工具之类的基准确定(benchmarking)进程来探查容量也是可行的。
图5是图2的布置的阶-层拓扑图。其包含四个阶500、502、504、506。来自虚拟机(VM)的存储IO请求抵达与IO协议组件218对应的第一阶500,并接续抵达作为第二阶502的网络驱动器220。该请求经由交换机108传给存储服务器处的作为图5中的阶504的网络驱动器238。该IO请求继续进行到与图5中的阶506对应的IO协议组件232,并且流结束于存储服务器处的存储磁盘。在图5的例子中,分布式存储协议正被用在SMB中,尽管这不是必不可少的;其它分布式存储协议也可以被使用。图5的阶层拓扑图还包括基础物理资源,其包含网络链路、网络交换机以及存储后端。简单的IO流示出为虚拟机对虚拟硬盘进行访问。在此例子中,控制器已在此图中探查出关于阶的信息并存储了此信息。例如,阶能够使用低级IO报头向队列指派分组。
图6是控制器处的方法的流程图。此方法类似于图3的方法(步骤300-306)且具有更多细节。对于图3,此方法可以实现在集中式控制器处或者可以分布在多个实体之间。
控制器接收(600)或访问策略,如在上面参照图3所描述地。其可以藉由基础物理资源的容量并将现有策略纳入考虑,来检查(602)该策略是可实行的。例如,控制器可以使用其已创建并维护的阶-层拓扑图以及关于其具有的现有策略的信息。
控制器可以决定(604)在何处实现此策略。例如,多个阶可以是可用的并且控制器可以决定这些阶中的哪一个或哪几个用于施行该策略。各种因素可以被考虑在内,诸如可用的CPU资源及其它。
控制器将流端点标识符解析(606)成低级标识符。控制器探查哪些报头类型能够被阶所理解。例如,通过发送消息给阶以请求此信息。通过使用此信息,其将高级端点名字解析成恰当的报头类型,并基于恰当的报头类型来生成排队规则。
控制器创建排队规则,并将排队规则发送给要安装的恰当的阶。用于图2中的计算服务器IO协议组件阶的例示排队规则是:
1:IO报头<VM1,\\服务器X\共享\文件F>→队列Q1
2:IO报头<VM2,\\服务器Z\共享\*>→队列Q2
3:IO报头<VM3,*>→队列Q4
4:<*,*>→队列Q3
其中,“服务器”可以是远程机器或者本地主机。符号“*”是通配符。上面的排队规则1表示,当分组的报头表示该分组来源于VM1并去往服务器X处的文件F时,所述分组被分配给队列1。上面的排队规则2表示,当分组的报头表示所述分组来源于VM2并去往服务器Z上的任何文件时,所述分组被分配给队列2。上面的排队规则3表示当分组的报头表示所述分组来源于VM3时所述分组被分配给队列4。上面的排队规则4表示当分组未被分配给其它任何队列时所述分组被分配给队列3。
用于图2中的存储服务器阶处的IO协议组件的例示排队规则是:
1:IO报头<SIDS1,H:\文件F>→队列Ql
2:IO报头<SIDS2,H:\文件G>→队列Ql
3:IO报头<SIDS2,H:\目录A/*>→队列Q2
4:<*,*>→队列Q3
其中,SID代表用于标识用户、进程以及服务器的安全描述符。上面的排队规则1说明,当分组的报头包含服务器1的SID且该分组的目的地是文件F时,该分组被分配给队列1。上面的排队规则2说明,当分组的报头包含服务器2的SID且该分组的目的地是文件G时该分组被分配给队列1。需要注意的是,这表明了属于不同的流的分组可以指向相同的队列。上面的排队规则3说明,当分组的报头包含服务器2的SID且该分组的目的地是目录A时,该分组被分配给队列2。上面的排队规则4说明,与规则1和2不匹配的分组被分配给队列3。
控制器还确定用于每个队列的配置,诸如队列流出速率(queuedrainrate)以及队列路由。例如,控制器可以设置队列属性,诸如令牌速率、优先级以及队列大小。队列的令牌速率是与分组从该队列流出所用的速率相关的。队列的优先级规定该队列相对于其它队列被服务的次序。队列的大小规定可以存储在该队列中的分组的数量。
将具有可配置服务属性的队列实现了的阶,可以有优先地(preferentially)处理或束流(throttle)IO请求。这样的服务属性使得能够实现性能隔离策略(例如,上面的策略P1、P2、P4、P5)。为了将IO业务量束流,队列可以使用令牌桶提取(token-bucketabstraction)。队列可以以不变的令牌速率受到服务。如由优先级字段指示地,一些队列可以优先于其它队列而被处理。如果队列达到队列大小阈值,那么阶可以通知控制器。控制器可以使用在下面详细描述的API的配置队列服务(configureQueueService)呼叫或者以其它方式,来设置针对队列的服务属性(<令牌速率,优先级,队列大小>)。周期性地,控制器可以使用在下面详细描述的API的呼叫以监控对队列进行描述的统计结果,诸如其平均服务速率与队列大小或者其它统计结果。
一些阶可以允许关于怎样路由经排队的IO请求进行控制。队列可以与缺省的下一跳(next-hop)相关联。例如,在计算服务器的IO协议组件阶处的请求可以被路由到网络驱动器。此阶处的队列可以被配置为允许请求被路由到不同的阶,诸如甚至不在管理程序中的阶。阶的这种可配置的管道系统(plumbing)允许丰富的流策略的集合。例如,控制器可以发送控制指令以将IO请求从不受信任的VM路由通过病毒扫描阶。
如在上面参照图3所描述地,控制器发送(608)控制指令给选定的阶,并可选地接收反馈。其可以接收(610)与对策略的改变有关的信息和/或与对流路径的改变有关的信息。例如,客户可以添加或移除VM。文件可以迁移到不同的存储服务器。这致使产生新的流路径,连同沿着该路径要施行的策略。控制器能够删除在阶处的沿着旧的流路径的排队规则,并添加沿着新的流路径的排队规则。
控制器可以当新策略被定义时更新多个阶。跨越各阶的特定的更新排序在许多情形下是非必需的,并且每个阶处的暂时的非一致性的规则也可以容忍,只要这些规则最终趋同(converge)的话。例如,控制器可以成批处理对相关阶的具有版本号的任何状态更新,等待具有相同版本号的应答,并随后继续进行任何进一步的状态传播。当需要严格的状态排序时,控制器按序更新每个阶,无须要求阶参与分布式同意协议(distributedagreementprotocal)。阶配置可以是软状态(softstate)的,使得沿着路径的阶故障(例如,存储服务器故障)毁弃队列以及处于该阶上的排队规则。当服务器恢复在线时,其与控制服务联系以取得其负责的排队规则的列表。
在一些例子中,控制器跟踪与流相关联的版本号,并在每次其与阶联系时单调增量该号码。在接收到具有历元数(epochnumber)的消息时,阶丢弃具有低版本号(其可能在临时网络分区后已处于系统中)的任何后继消息。
图7是阶处的方法的示意图。当阶启动或者初始化时,阶可以联系(700)控制器以将该阶的存在进行通告。例如,其可以发送消息给处于指定的地址处的控制器或者可以广播通告消息。该阶接收并安装(702)两个或更多个队列以及针对每个队列的至少一个排队规则。其接收这些队列以及排队规则,作为来自控制器的控制指令。该阶通过根据控制指令设置这些队列的流出速率以及路由特性,来配置这些队列。
该阶接收(参见图7中的步骤704)存储IO请求分组(packet)。该阶通过查验例如分组的报头来检查该分组是否与排队规则匹配。如果存在匹配,那么该阶转发(708)该分组给所匹配的队列。如果不存在匹配,那么在一些例子中,该阶阻止(710)请求分组并发送(712)消息给控制器用于请求排队规则。需要注意,阻止步骤710是可选的。如果其接收到回复(714),那么该阶安装(716)从控制器接收的排队规则,并对请求消息解除阻止(718)。如果没有从控制器接收到回复,那么该阶使用(720)缺省队列用于被阻止的请求。然后,队列根据最小堆(min-heap)次序、或其它任何适当的次序而被服务。关于队列行为的反馈可以被发送(724)给控制器。
图8是例示的拓扑子图,其包含与对上面的策略P5的施行相关的阶。沿从VM到阶的路径的其它阶为清楚起见而被省略。
策略P5可以被表示为:{{p,q,r},{X,Y}}→带宽B,其意味着来自将存储共享X806与Y808的虚拟机p800、q802以及r804的分组被保证有总共的带宽B。此策略是特别有吸引力的,因为其涉及多点流,即,其给从多个源(VMp、q、r)到多个目的地(共享X、Y)的IO提供总共的保证量(aggregatedguarantee)。如下所述,这使用对阶的动态配置。例如,如果p是生成IO的唯一VM,那么其应当达到带宽B。
此策略可以按如下施行。给定由控制器106维护的数据中心拓扑图,控制器处的控制应用确定与此策略相关的子图。如图8所示,此子图包含沿着从VMp、q、r到安装有共享X与Y的存储服务器的路径的阶。此图的边是阶之间的链路、物理网络链路以及从存储服务器到真实磁盘的接口。控制应用的操作包含两个步骤。
第一:接纳控制(admissioncontrol)。控制器确保沿上面的图的边具有足够的闲置容量来满足保证量。网络链路以及到磁盘的链路的总带宽容量是由控制器的探查组件来确定的。由于每个链路上的一些容量可能已被保留用于先前已存在的策略,所以仅当每个链路上的未被保留的容量不小于保证量B时,才能接纳此策略。
第二:施行。控制器确保从VMp、q、r到共享X、Y的所有IO的总速率保证总共的带宽B。此种总共的带宽限制值可以在所述图中的任何切入(cut)处施行。如图8所示,其可以被施行在VM所被托管(host)的管理程序处或者在存储服务器处。对于此例子,假设控制器选择在管理程序内部的一个阶处施行该带宽限制。为此,这需要确定每个VM的带宽限制值,使得限制值的和等于B。因而,控制器应用需要进行分布式速率限制。也即,给定一组N个VM(在此例中,N=3),任务是在这些VM之间分布带宽B。这可以通过向每个源给予其对链路的最大-最小公平共享(max-minfairshare)来实现。最大-最小共享基于VM的业务量需求给VM分配速率,即,VM能够发送业务量所用的速率。具体而言,VM按照需求递增的次序被分配速率,使得没有VM得到比其需求大的速率且需求未被满足的VM得到均等的速率。因而,给定针对VM的需求集合D,控制器确定最大-最小公平共享f,f转而决定了分配给各个体VM的速率并确保这些速率的和等于所述带宽。
给定这些速率,控制应用对管理程序阶进行配置。对于VMp,其在管理程序中的p所被托管的阶处创建队列,创建排队规则用于将从Vmp到共享X与Y的所有业务量指向此队列,并将该队列的流出带宽配置成分配给p的速率。针对VMq与r的阶配置是相似的。
控制器可以周期性地积攒来自管理程序的统计结果以粗略估计VM需求。控制应用使用这些统计结果,以周期地通过队列流出设置来生成经更新的带宽限制值。
在上面描述的例子确保针对多个流的总共的保证量。在其它例子中,总共的最小带宽保证量可以被提供。这意味着当针对一个流的VM不活动时,其它流的VM能够利用闲置的带宽。例如,控制器收集来自阶队列的业务量统计结果,并跨越所有数据中心IO流使用分布式最大-最小共享算法以确定其带宽限制值。
如上所提及地,每个阶以及控制器可以实现API,该API使得它们能够进行通信。现在给出一个可能的API的例子,尽管这只是一个例子且许多其它的API也可以使用。
A0getQueuelnfo()
此种API调用返回被阶用于排队的IO报头的种类,以及该阶的可配置的队列属性。其还规定可能的下一跳的阶,包括缺省的下一跳的阶。
AlgetQueueStats(Queue-idq)
此API调用返回队列统计结果。
A2createQueueRule(IOHeaderi,Queue-idq)
此API调用创建排队规则i→q
A3removeQueuePvule(IOHeaderi,Queue-idq)
此API调用移除排队规则。
A4configureQueueService(Queue-idq,<tokenrate,priority,queuesize>)
此API调用对令牌速率、优先级以及队列的大小中的一个或多个进行配置。
A5configureQueueRouting(Queue-idq,Next-hopstages)
此API调用对队列要路由到的下一跳的阶进行配置。
A6configureTokenBucket(Queue-idq,<benchmark-results>)
此API调用获取对针对给定的请求要价(chargefor)多少令牌进行指示的基准结果(benchmarkresults)。
图9示出了例示性的基于计算的设备900,其可以被实现成任何形式的计算和/或电子设备,并且在该设备中可以实现控制器和/或阶的实施例。
基于计算的设备900包含一个或多个处理器902,处理器可以是微处理器、控制器、或任何其它适合类型的处理器,用于处理计算机可执行指令以控制该设备的操作从而控制存储系统中的存储输入输出请求。在一些例子中,例如,当芯片架构上的系统被使用时,处理器902可以包括一个或多个固定的功能块(也称为加速器),其在硬件(而不是软件或固件)中实现控制器和/或阶的方法的部分。包含操作系统904的平台软件或者其它任何适当的平台软件可以被提供在基于计算的设备处以使得能够在该设备上执行应用软件。
计算机可执行指令可以使用由基于计算的设备900可访问的任何计算机可读介质来提供。计算机可读介质可以例如包括诸如存储器908的计算机存储介质以及通信介质。诸如存储器908的计算机存储介质包括易失性和非易失性、可移动和不可移动的介质,其以任何方法或技术被实现用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息。计算机存储介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者任何其它的非传输介质,其能够用以存储供计算设备访问的信息。相比之下,通信介质可以包含计算机可读指令、数据结构、程序模块、或者调制数据信号中的其它数据(诸如载波或其它传送机制)。如本文所定义地,计算机存储介质不包括通信介质。因此,计算机存储介质本质上不应当被解释成传播信号。传播信号可以出现在计算机存储介质中,然而传播信号本质上不是计算机存储介质的例子。尽管计算机存储介质(存储器908)被示出在基于计算的设备900内,但将意识到,该存储可以是分布式的或者位于远处并经由网络或其它通信链路(例如,使用通信接口910)而被访问。
当基于计算的设备实现阶时,其包含多个可配置的队列906。当基于计算的设备实现控制器或阶时,其包含控制接口907,该控制接口907使得该设备能够与控制器或阶适当地通信。数据存储912被提供用于存储拓扑图、参数值、排队规则、阈值、标准以及其它数据。
术语“计算机”或“基于计算的设备”在本文用以指代具有处理能力使得其能够执行指令的任何设备。本领域技术人员将认识到,这种处理能力被并入到多种不同的设备中,并因此术语“计算机”和“基于计算的设备”都包括PC、服务器、移动电话(包括智能电话)、平板电脑、机顶盒、媒体播放器、游戏控制台、个人数字助理以及多种其它设备。
在本文描述的方法可以由有形存储介质上的具有机器可读形式的软件(例如,以计算机程序的形式并且计算机程序可以包含在计算机可读介质上)来执行,该计算机程序包含当该程序在计算机上运行时被采用以执行在本文中描述的任何方法的任何步骤的计算机程序代码单元。有形存储介质的例子包括包含诸如磁盘、拇指驱动器、存储器等之类的计算机可读介质的计算机存储设备,且不包括传播信号。传播信号可以出现在有形存储介质中,然而传播信号本质上不是有形存储介质的例子。软件能够适用于并行处理器或串行处理器上的执行,使得方法步骤可以以任何适合次序或同时地实行。
这承认了软件是有用的、可分开交易的商品。其旨在涵盖运行于或者控制“哑”硬件或标准硬件的软件,以执行期望的功能。其还旨在涵盖对硬件的配置进行“描述”或定义的软件(诸如HDL(硬件描述语言),其用于设计硅芯片或者用于配置通用可编程芯片),以执行期望的功能。
本领域技术人员将认识到,被用以存储程序指令的存储设备能够跨越网络而是分布式的。例如,远程计算机可以存储被描述为软件的进程的例子。本地计算机或终端计算机可以访问远程计算机,并下载软件的一部分或全部以运行程序。替代地,本地计算机可以按需下载软件的各部分,或者在本地终端处执行部分软件指令且在远程计算机(或者计算机网络)处执行部分软件指令。本领域技术人员还将认识到,通过利用对本领域技术人员已知的常规技术,全部软件指令或部分软件指令可以由诸如DSP、可编程逻辑阵列或其它之类的专用电路来执行。
如将对技术人员显而易见地,在本文给出的任何范围或设备值可以在不失去所寻求的效果的基础上被扩展或改变。
尽管本发明主题已经用特定于结构特征和/或方法动作的语言进行了描述,但是应当理解,在所附权利要求书中定义的本发明主题不必限于在上面描述的特定的特征或动作。而是,在上面描述的特定的特征和动作被公开作为用于实现权利要求书的例示形式。
应当明白,在上面描述的优点和益处可以涉及一个实施例或者可以涉及若干实施例。这些实施例不限于用于解决所叙述的问题的全部或任一个的那些实施例或者具有所叙述的优点和益处的全部或任一个的那些实施例。还应当明白,对“一个”项目的引用指代一个或多个这种项目。
在本文描述的方法的步骤可以在恰当时以任何适合的次序或同时地执行。此外,各个体块可以从任何方法中删除,而不背离在本文描述的本发明主题的精神和范围。在上面描述的任何例子的各方面可以与描述的任何其它例子的各方面组合,以形成进一步的例子而不失去所寻求的效果。
术语“包含”在本文中被用以意指包括所识别的方法模块或元素,然而这种模块或元素不包含排他列表,并且方法或装置可以包含额外的模块或元素。
应当明白,上面的描述仅作为例子给出,并且可以由本领域技术人员进行各种修改。上面的说明、例子和数据提供了对结构的完整描述和对实施例的使用。尽管在上面已就特定的特殊程度或围绕一个或多个个体实施例而描述了各种实施例,但是本领域技术人员能够对所公开的实施例进行多种改变,而不背离此说明书的精神或范围。

Claims (10)

1.一种在数据存储系统处的由计算机实现的方法,包括:
在处理器处访问包括一个或多个标准的策略,所述策略将应用于数据存储输入/输出请求的流,所述流位于所述流的端点之间,所述端点包括至少一个计算实体和至少一个存贮器;
发送控制指令到数据流的至少一个阶,所述阶是所述数据存储系统的组件,所述流通过所述组件,且所述组件被配置为解释所述控制指令,所述控制指令被布置为对在所述至少一个阶处的多个队列进行控制以便处理数据存储输入/输出请求的所述流,以使得所述策略得到满足。
2.如权利要求1所述的方法,其中,所述流处于三个或更多个端点之间。
3.如权利要求1所述的方法,其中,数据存储输入/输出请求的所述流使用至少部分地与一个或多个其它流共享的资源。
4.如权利要求1所述的方法,其中,访问所述策略包括访问所述至少一个计算实体和所述至少一个存贮器的高级标识符,其中,高级标识符是为所述至少一个阶所不理解的标识符,并且其中,所述方法包括将所述高级标识符解析成被所述至少一个阶理解的低级标识符。
5.如权利要求1所述的方法,其实施在所述数据存储系统中的集中式控制器处,所述数据存储系统具有在多个计算实体与多个存贮器之间的数据存储输入/输出请求的多个流,每个流具有至少一个阶。
6.如权利要求1所述的方法,其中,所述控制指令被布置成创建排队规则,所述排队规则规定哪些类型的数据存储输入/输出请求要被放入在阶处的规定队列中。
7.如权利要求1所述的方法,其中,所述控制指令被布置成配置如下中的一个或多个:队列的服务特性、队列的路由特性。
8.如权利要求1所述的方法,包括:获取与数据存储输入/输出请求的所述流有关的反馈,以及在所述反馈的基础上修改所述控制指令。
9.一种数据存储系统的组件处的由计算机实现的方法,包括:
在处理器处,接收至少一个计算实体与至少一个存贮器之间的数据存储输入/输出请求的流;
接收控制指令;
根据所述控制指令配置一个或多个队列;
根据作为所述控制指令的一部分的排队规则来将所述数据存储输入/输出请求分配给所述队列,并服务所述队列。
10.一种数据存储系统组件,包括:
处理器,其被布置为通过所述处理器处的多个队列在至少一个计算实体与至少一个存贮器之间传输数据存储输入/输出请求的流;
接口,其被布置为从所述数据存储系统的控制器接收控制指令;
所述处理器被布置为根据所述控制指令来配置所述队列,并根据作为所述控制指令的一部分的排队规则来将所述数据存储输入/输出请求分配给所述队列。
CN201480050118.3A 2013-09-13 2014-09-09 控制数据存储输入/输出请求 Active CN105531972B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/027,012 2013-09-13
US14/027,012 US9244615B2 (en) 2013-09-13 2013-09-13 Systems and methods based on policy criteria for controlling the flow of data storage input/output requests between endpoints
PCT/US2014/054634 WO2015038485A1 (en) 2013-09-13 2014-09-09 Controlling data storage input/output requests

Publications (2)

Publication Number Publication Date
CN105531972A true CN105531972A (zh) 2016-04-27
CN105531972B CN105531972B (zh) 2018-10-19

Family

ID=51619290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480050118.3A Active CN105531972B (zh) 2013-09-13 2014-09-09 控制数据存储输入/输出请求

Country Status (6)

Country Link
US (1) US9244615B2 (zh)
EP (1) EP3044919B1 (zh)
JP (1) JP2016536714A (zh)
CN (1) CN105531972B (zh)
RU (1) RU2016108806A (zh)
WO (1) WO2015038485A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109416593A (zh) * 2016-06-30 2019-03-01 微软技术许可有限责任公司 用于添加和逆转操作的转盘控制
CN109725829A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端 QoS 解决方案的系统和方法

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769048B2 (en) 2008-06-18 2014-07-01 Commvault Systems, Inc. Data protection scheduling, such as providing a flexible backup window in a data protection system
US8352954B2 (en) 2008-06-19 2013-01-08 Commvault Systems, Inc. Data storage resource allocation by employing dynamic methods and blacklisting resource request pools
US9128883B2 (en) 2008-06-19 2015-09-08 Commvault Systems, Inc Data storage resource allocation by performing abbreviated resource checks based on relative chances of failure of the data storage resources to determine whether data storage requests would fail
US8725688B2 (en) 2008-09-05 2014-05-13 Commvault Systems, Inc. Image level copy or restore, such as image level restore without knowledge of data object metadata
US9633216B2 (en) 2012-12-27 2017-04-25 Commvault Systems, Inc. Application of information management policies based on operation with a geographic entity
US9459968B2 (en) 2013-03-11 2016-10-04 Commvault Systems, Inc. Single index to query multiple backup formats
US10169121B2 (en) * 2014-02-27 2019-01-01 Commvault Systems, Inc. Work flow management for an information management system
US9648100B2 (en) 2014-03-05 2017-05-09 Commvault Systems, Inc. Cross-system storage management for transferring data across autonomous information management systems
US9755981B2 (en) 2014-03-11 2017-09-05 Vmware, Inc. Snooping forwarded packets by a virtual machine
US9384033B2 (en) 2014-03-11 2016-07-05 Vmware, Inc. Large receive offload for virtual machines
US9742682B2 (en) * 2014-03-11 2017-08-22 Vmware, Inc. Large receive offload for virtual machines
US10164894B2 (en) 2014-05-05 2018-12-25 Nicira, Inc. Buffered subscriber tables for maintaining a consistent network state
US9740574B2 (en) 2014-05-09 2017-08-22 Commvault Systems, Inc. Load balancing across multiple data paths
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9444811B2 (en) 2014-10-21 2016-09-13 Commvault Systems, Inc. Using an enhanced data agent to restore backed up data across autonomous storage management systems
US9405597B1 (en) * 2015-05-01 2016-08-02 Salesforce.Com, Inc. Centralized throttling service
US9588913B2 (en) 2015-06-29 2017-03-07 International Business Machines Corporation Management of allocation for alias devices
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US20180062944A1 (en) * 2016-09-01 2018-03-01 Cisco Technology, Inc. Api rate limiting for cloud native application
US10838821B2 (en) 2017-02-08 2020-11-17 Commvault Systems, Inc. Migrating content and metadata from a backup system
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10891069B2 (en) 2017-03-27 2021-01-12 Commvault Systems, Inc. Creating local copies of data stored in online data repositories
US10776329B2 (en) 2017-03-28 2020-09-15 Commvault Systems, Inc. Migration of a database management system to cloud storage
US11074140B2 (en) 2017-03-29 2021-07-27 Commvault Systems, Inc. Live browsing of granular mailbox data
US10313926B2 (en) 2017-05-31 2019-06-04 Nicira, Inc. Large receive offload (LRO) processing in virtualized computing environments
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
JP7221585B2 (ja) * 2017-07-20 2023-02-14 富士通株式会社 情報処理装置、情報処理システム、情報処理装置制御方法及び情報処理装置制御プログラム
CN109495523A (zh) * 2017-09-11 2019-03-19 北京金山云网络技术有限公司 管理指令下发方法、装置、电子设备及存储介质
US11075822B1 (en) * 2017-10-16 2021-07-27 EMC IP Holding Company, LLC System and method for improved performance QoS with service levels and storage groups
US10795927B2 (en) 2018-02-05 2020-10-06 Commvault Systems, Inc. On-demand metadata extraction of clinical image data
US10761942B2 (en) 2018-03-12 2020-09-01 Commvault Systems, Inc. Recovery point objective (RPO) driven backup scheduling in a data storage management system using an enhanced data agent
US10789387B2 (en) 2018-03-13 2020-09-29 Commvault Systems, Inc. Graphical representation of an information management system
US10860443B2 (en) 2018-12-10 2020-12-08 Commvault Systems, Inc. Evaluation and reporting of recovery readiness in a data storage management system
US11308034B2 (en) 2019-06-27 2022-04-19 Commvault Systems, Inc. Continuously run log backup with minimal configuration and resource usage from the source machine
CN115242726B (zh) * 2022-07-27 2024-03-01 阿里巴巴(中国)有限公司 队列的调度方法和装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010039576A1 (en) * 1999-12-10 2001-11-08 Yasusi Kanada Network policy transmission method from policy server to network node
CN1349472A (zh) * 1999-12-28 2002-05-15 松下电器产业株式会社 信息存储媒体、非接触ic标签、访问装置、访问系统、寿命周期管理系统、输入输出方法及访问方法
US20040199566A1 (en) * 2003-03-14 2004-10-07 International Business Machines Corporation System, method, and apparatus for policy-based data management
CN1577236A (zh) * 2003-06-27 2005-02-09 株式会社日立制作所 存储系统
US20130198450A1 (en) * 2012-01-31 2013-08-01 Kiron Balkrishna Malwankar Shareable virtual non-volatile storage device for a server

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0814795B2 (ja) 1986-01-14 1996-02-14 株式会社日立製作所 マルチプロセッサ仮想計算機システム
US5983368A (en) 1997-08-26 1999-11-09 International Business Machines Corporation Method and system for facilitating hierarchical storage management (HSM) testing
US20040243699A1 (en) 2003-05-29 2004-12-02 Mike Koclanes Policy based management of storage resources
EP1727056B1 (en) 2005-05-25 2008-11-05 Microsoft Corporation Data communication protocol
US7716240B2 (en) 2005-12-29 2010-05-11 Nextlabs, Inc. Techniques and system to deploy policies intelligently
US8141075B1 (en) 2006-05-08 2012-03-20 Vmware, Inc. Rule engine for virtualized desktop allocation system
US8245281B2 (en) 2006-12-29 2012-08-14 Aruba Networks, Inc. Method and apparatus for policy-based network access control with arbitrary network access control frameworks
EP2206051A2 (en) 2007-09-28 2010-07-14 Xcerion Aktiebolag Network operating system
US8031606B2 (en) * 2008-06-24 2011-10-04 Intel Corporation Packet switching
US8713060B2 (en) 2009-03-31 2014-04-29 Amazon Technologies, Inc. Control service for relational data management
US8027354B1 (en) 2009-04-29 2011-09-27 Cisco Technology, Inc. Network consolidation for virtualized servers
US8307362B1 (en) 2009-12-18 2012-11-06 Emc Corporation Resource allocation in a virtualized environment
US8433802B2 (en) 2010-01-26 2013-04-30 International Business Machines Corporation System and method for fair and economical resource partitioning using virtual hypervisor
US8407413B1 (en) 2010-11-05 2013-03-26 Netapp, Inc Hardware flow classification for data storage services
US8429362B1 (en) 2011-03-31 2013-04-23 Emc Corporation Journal based replication with a virtual service layer
KR20130022091A (ko) 2011-08-24 2013-03-06 주식회사 케이티 클라우드 컴퓨팅 서버 시스템의 가상머신 제어 장치 및 방법
US20140330937A1 (en) 2013-05-03 2014-11-06 Microsoft Corporation End-to-end classification of storage traffic streams

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010039576A1 (en) * 1999-12-10 2001-11-08 Yasusi Kanada Network policy transmission method from policy server to network node
CN1349472A (zh) * 1999-12-28 2002-05-15 松下电器产业株式会社 信息存储媒体、非接触ic标签、访问装置、访问系统、寿命周期管理系统、输入输出方法及访问方法
US20040199566A1 (en) * 2003-03-14 2004-10-07 International Business Machines Corporation System, method, and apparatus for policy-based data management
CN1577236A (zh) * 2003-06-27 2005-02-09 株式会社日立制作所 存储系统
US20130198450A1 (en) * 2012-01-31 2013-08-01 Kiron Balkrishna Malwankar Shareable virtual non-volatile storage device for a server

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109416593A (zh) * 2016-06-30 2019-03-01 微软技术许可有限责任公司 用于添加和逆转操作的转盘控制
CN109416593B (zh) * 2016-06-30 2023-09-15 微软技术许可有限责任公司 用于添加和逆转操作的转盘控制
CN109725829A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端 QoS 解决方案的系统和方法
CN109725829B (zh) * 2017-10-27 2021-11-05 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端QoS解决方案的系统和方法

Also Published As

Publication number Publication date
WO2015038485A1 (en) 2015-03-19
US9244615B2 (en) 2016-01-26
US20150081948A1 (en) 2015-03-19
CN105531972B (zh) 2018-10-19
RU2016108806A (ru) 2017-09-14
JP2016536714A (ja) 2016-11-24
EP3044919A1 (en) 2016-07-20
EP3044919B1 (en) 2017-03-22

Similar Documents

Publication Publication Date Title
CN105531972A (zh) 控制数据存储输入/输出请求
Gouareb et al. Virtual network functions routing and placement for edge cloud latency minimization
CN110392999B (zh) 分布式计算系统中的虚拟过滤平台
EP2776925B1 (en) Dynamic policy based interface configuration for virtualized environments
JP5976942B2 (ja) ポリシーベースのデータセンタネットワーク自動化を提供するシステムおよび方法
KR102273413B1 (ko) 네트워크 업데이트의 동적 스케줄링 기법
US9584369B2 (en) Methods of representing software defined networking-based multiple layer network topology views
US8539071B2 (en) System and method for a storage area network virtualization optimization
RU2637419C2 (ru) Способ и система для защиты отображения виртуальной сети, а также компьютерный носитель данных
CN103917967A (zh) 用于配置中间盒的网络控制系统
CN102884763A (zh) 跨数据中心的虚拟机迁移方法、服务控制网关及系统
Kim et al. A research on dynamic service function chaining based on reinforcement learning using resource usage
CN109547349A (zh) 基于虚拟路由的流量管理方法、装置、终端及存储介质
CN105122864A (zh) 通过硬件自检和反射的能力识别和修改
US10333725B2 (en) Overlay network with optimized packet flooding
Farshin et al. A modified knowledge-based ant colony algorithm for virtual machine placement and simultaneous routing of NFV in distributed cloud architecture
CN105052113A (zh) 针对网络设备的共同代理框架
US10397055B2 (en) Priority based scheduling in network controller using graph theoretic method
Moro et al. Network function decomposition and offloading on heterogeneous networks with programmable data planes
Abdellatif et al. Management of industrial communications slices: Towards the Application Driven Networking concept
Allahvirdi et al. Placement of dynamic service function chains in partially VNF-enabled networks
US11563678B1 (en) Orchestration of overlay paths for wide area network virtualization
Houidi Algorithms for virtual network functions chaining
US11405284B1 (en) Generating network link utilization targets using a packet-loss-versus-link utilization model
Arlimatti et al. Software defined network partitioning with graph partitioning algorithms

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