CN104040524A - 用于存储服务器的流量控制机制 - Google Patents

用于存储服务器的流量控制机制 Download PDF

Info

Publication number
CN104040524A
CN104040524A CN201280066700.XA CN201280066700A CN104040524A CN 104040524 A CN104040524 A CN 104040524A CN 201280066700 A CN201280066700 A CN 201280066700A CN 104040524 A CN104040524 A CN 104040524A
Authority
CN
China
Prior art keywords
credit
server
client computer
request
data
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
CN201280066700.XA
Other languages
English (en)
Other versions
CN104040524B (zh
Inventor
E·塔米尔
P·C·凯顿
B-Z·弗里德曼
R·O·夏普
D·E·伍德
V·马克赫威克斯
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104040524A publication Critical patent/CN104040524A/zh
Application granted granted Critical
Publication of CN104040524B publication Critical patent/CN104040524B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/39Credit based

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

总体上,本公开涉及一种流量控制方法。该方法可包括:响应于来自客户机的请求确定服务器负载;至少部分地基于服务器负载选择信用类型;以及至少部分地基于服务器负载将信用发送到该客户机,其中,服务器负载对应于服务器的使用等级,并且其中,该信用对应于可在该服务器和该客户机之间传递的数据量,并且该信用被配置成如果客户机未使用该信用则该信用随着时间降低。

Description

用于存储服务器的流量控制机制
领域
本公开涉及一种用于存储服务器的流量控制机制。
背景
存储网络通常包括与服务器耦合或整合的多个联网存储设备。远程客户机可被配置成用于经由服务访问这些存储设备中的一个或多个。存储网络的示例包括但不限于存储区域网络(SAN)以及网络附接存储(NAS)。
多个客户机可与服务器建立连接,以便访问这些存储设备中的一个或多个。流量控制可被用于确保服务器具有足够的资源来服务所有这些请求。例如,服务器可能受限于缓冲传入请求所需的可用RAM量。在这种情况下,良好设计的服务器不应允许要求多于总可用缓冲器的同时请求。流量控制的示例包括但不限于速率控制和基于信用的方案。在基于信用的方案中,当客户机与服务器建立连接时,可从服务器为客户机提供信用。
例如,在光纤通道网络协议中,在登录时,在设备之间(例如,客户机和服务器)互换信用。信用对应于可在客户机和服务器之间传递的帧的数量。一旦信用被用尽(即,已经被用完),源设备可不发送新的帧,直至目的设备已经表明它能够处理未处理的所接收的帧并且准备好接收新的帧。目的设备通过通知源设备(即,客户机)其具有更多的信用来发信号表示其准备就绪。然后,可确认所处理的帧或帧序列,表明目的设备已经准备好接收更多的帧。在另一个示例中,在iSCSI网络协议中,目标(例如,服务器)可经由TCP的拥塞窗口机制调节流量。
现有的基于信用的方案的缺点是,一旦信用被授权给连接客户机,则信用保持可用于该客户机,直至其被使用。这可导致连接客户机之间有比服务器所能服务的更多的未清算(outstanding)信用。因此,如果多个客户机同时使用其信用,服务器可能不具有为所有客户机服务所需的内部资源。现有的基于信用的方案的另一个缺点是流量控制方案保持静态。服务器可通过或者丢弃帧或者降低未来信用授权来调整到更大的客户机连接或增加的流量。因此,简单的基于信用的方案可能不能很好地处理具有“爆发性”使用模式的大量连接客户机。
附图简要说明
所要求保护的主题的特征和优点将从与其一致的实施例的以下详细说明中变得明显,应当参照附图来考虑该说明书,在附图中:
图1说明根据本公开的一个示例性系统实施例;
图2是说明根据本公开的服务器的操作的示例性流程图;
图3A是根据本公开的实施例的示例性客户机有限状态机;
图3B是根据本公开的实施例的示例性服务器有限状态机;
图4A是说明根据本公开的实施例的客户机的操作的示例性流程图;
图4B是说明根据本公开的被配置成用于动态流量控制的服务器的操作的示例性流程图;
图5是根据本公开的另一个实施例的示例性服务器有限状态机;
图6是图5中所说明的实施例的服务器的操作的示例性流程图。
尽管将参考说明性实施例进行以下详细说明,其许多替代、修改和变化将对本领域普通技术人员明显。
详细说明
总体上,本公开涉及一种用于存储服务器的流量(flow)控制机制。一种方法和系统被配置成用于向客户机提供信用并且基于流量控制策略对来自客户机的事务请求进行响应。信用对应于可在客户机和服务器之间传递的数据量。所选择的信用类型和响应的选时(例如,何时发送信用)可至少部分地基于流量控制策略。流量控制策略可基于连接客户机的数量和/或服务器负载而动态地改变。服务器负载与服务器的使用等级相对应并且包括任意服务器资源,例如RAM缓冲容量、CPU负载、存储设备带宽、和/或其他服务器资源。服务器负载取决于服务器容量和对服务的请求和/或服务器正在处理的事务的量。如果该量超过了容量,服务器是超载的(即,拥塞的)。可响应于接收到请求、响应于履行请求和/或请求的一部分、响应于在服务器和客户机之间建立连接和/或在向客户机发送信用之前,对连接客户机的数量和服务器负载进行评估。因此,流量控制策略可基于服务器负载和/或连接客户机的数量而动态地改变。应用于客户机的具体策略可对于客户机透明,实现服务器灵活性。
信用类型可包括但不限于衰减、仅命令、以及命令和数据。衰减(decay)信用可随着时间衰减和/或可过期。因此,在预定的时间间隔之后,未清算的未使用衰减信用可变得不可用。由于相对大量的之前空闲的客户机不会以突然的猝发(burst)请求压倒忙碌的服务器,负载可预测性可增加。
服务器和客户机之间的通信量通常包括命令和数据。在根据本公开的实施例中,命令可包括被配置成用于标识与该命令相关联的数据描述符。在此实施例中,服务器可被配置成用于基于流量控制策略丢弃数据并且保持命令。当策略允许时,服务器然后可使用这些描述符从命令取回(retrieve)数据。例如,当服务器太忙而不能为请求服务时,服务器可将命令放置在队列中并且丢弃数据。当服务器负载降低时,服务器可取回数据并且执行所排队的命令。不存储数据允许将这些命令存储在队列中,因为命令通常所占据的空间比数据所占据的空间要少约一到三个数量级。
因此,在此描述了各种流量控制选项,其中,服务器基于流量控制策略选择具体的选项。策略可至少部分地基于服务器负载和/或连接客户机的数量。策略被配置成用于对客户机透明并且可基于瞬时服务器负载而被动态地实现/执行。尽管在此关于存储服务器描述了流量控制机制,流量控制机制可类似地应用于任意类型的服务器,而不背离本公开的范围。
图1说明根据本公开的一个示例性系统实施例。系统100总体上包括主机系统102(服务器)、网络116、多个存储设备118A、118B、...、118N以及多个客户机设备120A、120B、...、120N。每个客户机设备120A、120B、...、120N可包括对应的网络控制器130A、130B、...、130N,这些网络控制器被配置成用于为客户机设备120A、120B、...、120N提供网络116访问。主机系统102可被配置成用于从一个或多个客户机设备120A、120B、...、120N接收访问一个或多个存储设备118A、118B、...、118N的请求(多个)并且被配置如本文所述地对请求(多个)进行响应。
主机系统102总体上包括主机处理器“主机CPU”104、系统存储器106、桥芯片组108、网络控制器110以及存储控制器114。主机CPU104耦合到系统存储器106和桥芯片组108。系统存储器106被配置成用于存储操作系统OS105和应用107。网络控制器110被配置成用于管理主机102和客户机设备120A、120B、...、120N之间的消息的传输和接收。桥芯片组108耦合到系统存储器106、网络控制器110和存储控制器114。存储控制器114经由桥芯片组108耦合到网络控制器110。桥芯片组108可提供存储控制器114和网络控制器110之间的对等连接。在某些实施例中,网络控制器110和存储控制器114可整合。网络控制器110被配置成用于为主机系统102提供网络连接。
存储控制器114耦合到一个或多个存储设备118A、118B、...、118N。存储控制器114被配置成用于存储数据以便将数据存储至(写入)存储设备(多个)118A、118B、...、118N并且从存储设备(多个)118A、118B、...、118N取回(读取)数据。可响应于来自客户机设备(多个)120A、120B、...、120N和/或在主机CPU104上运行的应用的请求来存储/取回数据。
网络控制器110和/或存储控制器114可包括被配置成用于实现如在此所描述的流量控制策略的流量控制管理引擎112。流量控制管理引擎112被配置成用于从一个或多个客户机设备120A、120B、...、120N接收信用请求和/或事务请求。事务请求可包括读取请求或写入请求。读取请求被配置成用于致使存储控制器114从存储设备(多个)118A、118B、...、118N中的一个或多个读取数据并且向请求客户机设备120A、120B、...、120N提供所读取的数据。写入请求被配置成用于致使存储控制器114将从请求客户机设备120A、120B、...、120N接收的数据写入存储设备(多个)118A、118B、...、118N。可使用远程直接存储器访问(RDMA)来读取或写入数据。例如,为RDMA配置的通信协议包括但不限于InfiniBandTM和iWARP。
流量控制管理引擎112可在硬件、软件和/或其组合中实现。例如,软件可被配置成用于计算和分配信用并且硬件可被配置成用于行使(enforce)该信用。
在基于信用的流量控制中,客户机可仅当客户机具有未清算的未使用信用时才发送事务请求。如果客户机不具有未使用的信用,客户机可从服务器请求信用并且然后一旦从服务器接收到信用(多个)就发送事务请求。信用对应于可在客户机和服务器之间传递的数据量。因此,所传送的数据量至少部分地基于未清算的未使用信用量。例如,信用可对应于线路速率乘以服务器处理延迟。这种信用被配置成用于当没有其他客户机是活动的时允许客户机充分地利用线路。信用可对应于帧的数量和/或可传送的数据量。客户机可响应于向服务器发送信用请求、响应于与服务器建立连接和/或响应于客户机和服务器之间的事务来接收信用(多个)。这些信用被配置成用于提供流量控制。
在根据本公开的实施例中,服务器可使用多个信用类型来实现动态流量控制策略。信用类型包括但不限于衰减、仅命令、以及命令和数据。与衰减信用相关联的数据量可随时间而从信用被发布时的初始值降低(“衰减”)到衰减信用过期时的零。衰减信用所降低的速率可基于一个或多个衰减参数。衰减参数包括衰减时间间隔、衰减量、和过期间隔。当发布信用时,服务器可至少部分地基于流量控制策略选择衰减参数。例如,可至少部分地基于活动的连接客户机的数量来选择衰减参数。
衰减信用可被配置成在与衰减时间间隔相对应的时间段结束时降低达衰减量。例如,衰减量可对应于在每个时间间隔结束时未清算的信用量的一个百分比(例如,50%),或可对应于多个数据字节和/或帧。在另一个示例中,衰减量可对应于初始发布的信用量的一个百分比(例如,10%)。
衰减信用可被配置成用于在与过期间隔相对应的时间段结束时过期。例如,过期间隔可对应于多个衰减间隔。在另一个示例中,过期间隔可不对应于多个衰减间隔。
一旦发布了衰减信用,服务器和客户机二者可被配置成用于在对应于衰减时间间隔的时间段结束时(例如,当计时器超时的时候)降低衰减信用达衰减量。因此,服务器可基于被配置成用于在任意时刻限制总的可用信用的流量控制策略发布衰减信用。未清算的衰减信用,如果其未被使用,则将衰减以避免以下情况:已经休眠的多个客户机发起会随后压倒服务器的事务请求。
当可分离地提供命令(和/或控制)和数据时,可使用仅命令信用以及命令和数据信用。当服务器拥塞时(即,资源在阈值以下),这种分离允许服务器丢弃数据但是保留命令。服务器然后可使用命令中的描述符来稍后取回数据。因此,这些命令包括描述符,这些描述符被配置成用于允许服务器基于这些描述符取回合适的数据。服务器是否丢弃数据至少部分地基于流量控制策略、服务器负载和/或当发布信用时的连接客户机的数量。当服务器相对更加拥塞时可发布命令信用(即,为了稍后取回数据)并且当服务器稍微没那么拥塞时可发布命令和数据信用。
图2是说明根据本公开的服务器的操作的示例性流程图200。可由例如图1的服务器102(例如,流量控制管理引擎112)来执行流程图200的操作。例如,可响应于来自客户机的对信用的请求、响应于请求在服务器和客户机之间建立连接(且连接被建立)和/或响应于来自客户机的事务请求来发起流程图200的操作。流程可在操作210开始。操作215可包括确定服务器负载。在某些情况下,可在操作220确定活动且连接的客户机的数量。在操作225,基于策略选择信用类型。例如,信用类型可对应于衰减信用、仅命令信用和/或命令和数据信用,如在此所描述的。信用类型可至少部分地基于服务器负载和/或活动且连接的客户机的数量。操作230可包括基于策略发送信用(具有所选择的信用类型)。例如,取决于服务器负载,可在从客户机接收到事务请求时发送信用或者可在完成相关联的事务时发送信用。程序流程可在操作235结束。
因此,流程图200的操作可被配置成用于基于流量控制策略来选择信用类型(例如,衰减信用)和/或提供信用的选时(timing)。流量控制策略至少部分地基于服务器负载并且可基于活动且连接的客户机的数量。服务器负载以及活动且连接的客户机的数量是可随着时间改变的动态参数。以此方式,可动态地管理服务器负载并且可避免来自多个之前休眠的客户机的数据猝发。
图3A是根据本公开的实施例的示例性客户机有限状态机300。在此实施例中,未清算的信用可随着时间衰减和/或可过期。客户机状态机300包括两种状态:可自由发送305和无信用310。在可自由发送(free to send)状态305下,客户机具有尚未过期的未清算的未使用信用。在无信用状态310下,客户机可能已经用完了之前提供的信用(例如,通过与服务器进行事务)和/或之前提供的信用可能包括已经过期的衰减信用。而在可自由发送状态305下,客户机可被配置成用于处理发送(即,发送事务请求、信用请求、命令和/或数据到服务器)且处理完成(例如,数据读取或写入的完成(completion))。客户机可进一步被配置成用于使用衰减参数和/或本地定时器来调整未清算的信用(例如,衰减信用)。该调整被配置成用于减少如在此所描述的未清算的未使用信用的量。当之前提供的信用已经被用完和/或已经过期时,客户机可从可自由发送状态305转变到无信用状态310。当接收到更多的信用时,客户机可从无信用状态310转变到自由发送状态305。
因此,客户机可通过使用未清算的信用和/或当未使用的未清算信用过期时从可自由发送状态305转变到无信用状态310。未清算信用过期的速率可由服务器基于流量控制策略选择。例如,流量控制策略可被配置成用于限制对于连接到服务器的客户机可用的未使用的未清算信用的数量。
图3B是根据本公开的实施例的示例性服务器有限状态机350。在此实施例中,未清算的信用可随着时间衰减和/或可过期并且发送信用的选时(timing)可基于瞬时服务器负载。服务器有限状态机350包括第一状态355和第二状态360。第一状态(不拥塞)355对应于服务器具有可用于其当前负载和活动的连接客户机数量的足够资源。第二状态(拥塞)360对应于服务器不具有可用于其当前负载和活动的连接客户机数量的足够资源。
当在不拥塞状态355下时,服务器被配置成用于处理请求(例如,来自客户机的事务请求和/或信用请求)和响应于每个传入请求(事务或信用)发送信用。服务器可进一步被配置成用于使用相关联的衰减参数和/或本地定时器为具有未清算的衰减信用的客户机调整未清算的信用(例如,衰减信用)。当在拥塞状态370下时,服务器被配置成用于处理来自客户机的请求而不是响应于每个传入请求发送信用,服务器被配置成用于为每个已完成请求发送信用。以此方式,可至少部分地基于服务器负载提供信用,因为服务器负载可影响完成的定时并且因此影响发送新的信用的时间。服务器可进一步被配置成用于调整未清算信用,类似于不拥塞状态355。
服务器可响应于可用服务器资源跌落375到水位标志以下从不拥塞状态355转变到拥塞状态360。服务器可响应于可用服务器资源上升到水位标志以上380从拥塞状态360转变到不拥塞状态355。水位标志(watermark)代表与服务器容量相关的阈值,从而使得在水位标志以上的可用资源对应于服务器不拥塞状态355并且在水位标志以下的服务器可用资源对应于服务器拥塞状态360。因此,图3B的示例性服务器有限状态机350说明了根据基于服务器负载的流量控制策略而发送信用(当接收到传入请求时或当完成时)的示例。也可在拥塞状态360和不拥塞状态355下都调整未清算的衰减信用。
图4A是说明根据本公开的实施例的客户机的操作的示例性流程图400。在此实施例中,未清算的信用可随着时间衰减和/或可过期。可由图1的一个或多个客户机设备120A、120B、...、120N来执行流程图400的操作。流程可在操作402开始,其中客户机具有初始信用。操作404可包括确定信用是否已过期。例如,未清算的未使用衰减信用可能已经衰减到零。在本示例中,发布衰减信用和操作404之间的时间段可能已足够长从而允许衰减信用衰减到零。在另一个示例中,未清算的未使用信用可已经过期。在本示例中,发布衰减信用和执行操作404的时间之间的时间段可大于等于过期间隔,如在此所描述的。
如果信用已过期,可在操作406发送信用请求到服务器。然后,流程可在操作408返回。如果该信用尚未过期,可在操作410发送事务请求到远程存储设备。例如,事务可以是请求。RDMA可用于传递请求。操作412可包括处理完成。当已经成功地传递与事务请求相关联的数据时,可从远程存储设备接收完成。然后,流程可在操作414返回。
图4B是说明根据本公开的被配置成用于动态流量控制的服务器的操作的示例性流程图450。例如,可由图1的服务器102来执行流程图450的操作。当从客户机接收到事务请求时,流程可在操作452开始。事务请求可以是RDMA事务(例如,读取或写入)请求。可在操作454确定客户机是否具有未清算的未过期信用。例如,可确定未清算的未使用衰减信用是否已经衰减到零和/或从发布相关联的衰减信用开始过期间隔是否已经耗尽。如果客户机不具有未清算的未过期信用,可在操作456处理异常。
如果客户机具有清算的未过期信用,可在操作458确定服务器可用资源是否在水位标志以上。服务器可用资源在水位标志(阈值)以上对应于不拥塞状态。如果服务器资源在水位标志以上,可在操作466发送信用。然后,可在操作468处理所接收的事务请求。例如,数据可从存储设备取回并且经由RDMA提供给请求客户机。在另一个示例中,数据可从请求客户机取回并且写入存储设备。流程可在操作470返回结束。如果服务器可用资源不在水位标志以上,可在操作460处理事务请求。操作462可包括当完成时发送信用。流程可在操作464返回处结束。
因此,使用衰减信用的流量控制可防止客户机在指定的时间间隔之后使用未清算的未使用信用,由此限制了任意时间点的总可用信用。进一步地,响应于事务请求而发布的信用可在当接收到请求时或在完成与请求相关联的事务之后,根据至少部分地基于服务器负载(例如,资源水平)的策略被发送到请求客户机。所使用的策略可对客户机透明。如流程图400所说明的,例如,客户机是否可发布事务请求取决于客户机是否具有未清算的未使用信用。客户机可并不知晓服务器用来授权信用的策略。在此实施例中,服务器可基于瞬时服务器负载确定何时发送信用。延迟向客户机发送信用可导致来自客户机的事务请求的降低速率,因此实现了基于服务器负载的流量控制。
图5是说明根据本公开的实施例的示例性服务器有限状态机500。在此实施例中,可分离地发送命令和数据。当服务器拥塞时,分离地发送命令和数据可为服务器提供对客户机事务请求进行响应的更多灵活性。例如,当服务器拥塞时,服务器可丢弃数据并且可保留命令用于稍后处理。所保留的命令因此可包括数据描述符,这些数据描述符被配置成用于当处理该命令时允许服务器取出(fetch)数据。在另一个示例中,当服务器相对没那么拥塞时,可在发送命令和数据信用之前发送仅命令信用。
服务器状态机500包括三种状态。第一状态(不拥塞)510对应于服务器具有可用于其当前负载和活动连接客户机数量的足够资源。第二状态(第一拥塞状态)530对应于服务器适度地(moderately)拥塞。适度地拥塞对应于服务器资源在第一水位标志以下并且在第二水位标志以上(第二水位标志在第一水位标志以下)。第三状态(第二拥塞状态)550对应于服务器比适度拥塞更加拥塞。第二拥塞状态550对应于服务器资源在第二水位标志以下。
当在不拥塞状态510下时,服务器被配置成用于处理请求(例如,来自客户机的事务请求和/或信用请求)并响应于每个所接收的请求发送命令和数据信用。当在不拥塞状态510下时,单个客户机可以能够例如以线性速率使用服务器的全容量。当在第一拥塞状态530下时,服务器被配置成用于处理来自客户机的请求、响应于所接收的请求发送仅命令信用、并且为每个已完成请求发送命令和数据信用。以此方式,当服务器在第一拥塞状态530下,可至少部分地基于服务器负载向客户机提供仅命令信用以及命令和数据信用。
当在第二拥塞状态550下时,服务器被配置成用于丢弃传入(“推送”)数据并且保留相关联的命令。当处理相关联的命令时,服务器被进一步配置成用于处理命令并且取出数据(使用例如数据描述符)。当完成每个请求时,服务器然后可发送仅命令信用。因此,当服务器在第二拥塞状态550下时,当处理相关联的命令时,进入数据可被丢弃并且可被稍后取出,提供了更大的服务器灵活性。进一步地,向客户机提供信用的选时可至少部分地基于服务器负载。
服务器可响应于可用服务器资源降低到第一水位标志520以下从不拥塞状态510转变到第一拥塞状态530并且可响应于可用服务器资源上升到第二水位标志525以上从第一拥塞状态530转变到不拥塞状态510。服务器可响应于可用服务器资源降低到第二水位标志540以下从第一拥塞状态530转变到第二拥塞状态550。第二水位标志对应于比第一水位标志更少的可用服务器资源。服务器可响应于可用服务器资源上升到第二水位标志545以上(并且第一水位标志以下)从第二拥塞状态550转变到第一拥塞状态530。
因此,服务器有限状态机550被配置成用于为服务器提供在选择其对来自客户机的事务请求的响应方面的灵活性。在此实施例中,可分离地传送命令和数据,从而允许当服务器比适度拥塞更为拥塞时允许丢弃数据并且发送仅命令信用。当服务器适度地拥塞时,可不丢弃数据,可当接收到请求时发送仅命令数据,并且可当完成与请求相关联的事务时发送命令和数据信用。当数据的相关联命令被处理时,可稍后取出该数据。进一步地,可采用至少部分地基于服务器负载的选时来向客户机提供仅命令信用以及命令和数据信用。
图6是用于图5中所说明的有限状态机的服务器的操作的示例性流程图600。例如,可由图1的服务器102来执行流程图600的操作。当从客户机接收到命令和数据时,流程图600的操作可开始620。例如,命令可以是RDMA命令。可在操作604确定客户机是否具有未清算的未过期信用。操作606包括如果客户机不具有未清算的过期信用则处理异常。可在操作608确定服务器可用资源是否在第一水位标志以上。在第一水位标志以上的资源对应于服务器不拥塞。如果服务器不拥塞,可在操作610发送命令和数据信用。可在操作612处理请求并且流程可在返回614处结束。
如果服务器资源在第一水位标志以下,可在操作616确定服务器资源是否在第二水位标志以上。在第一水位标志以下并且在第二水位标志以上的服务器资源对应于图5的第一拥塞状态530。如果服务器在第一拥塞状态下,可在操作618发送仅命令信用。可在操作620处理所接收的请求。操作622可包括当完成与所接收的请求相关联的数据传送时发送命令和数据信用。
如果资源在第二水位标志以下(即,服务器在比第一拥塞状态更拥塞的第二拥塞状态下),可在操作624丢弃数据有效载荷。可在操作626将与所丢弃的数据相关联的命令添加到命令队列。操作628可包括处理命令待办队列(当服务器资源允许时)。可在操作630根据流量控制策略发送新的信用(即,命令和/或数据)。流程可在操作634返回。
因此,在此实施例中(命令和数据分离),可在不同的时间根据至少部分地基于服务器瞬时负载的服务器策略提供仅命令信用以及命令和数据信用。进一步地,当服务器在第二拥塞状态下(相对更加拥塞)时,数据可被丢弃并且保留相关联的命令用于稍后处理。相关联的命令可被放置在命令队列中用于当资源可用时的处理。可随后当处理相关联的命令时取出数据。
已经在此描述了多种流量控制机制。衰减信用可用于限制未清算的信用的数量。服务器可被配置成用于至少部分地基于瞬时服务器负载发送信用。当服务器不拥塞时,当接收到请求时,可响应于请求发送信用。当服务器拥塞时,当接收到请求时可不发送信用但是可被延迟,直至与请求相关联的数据传送完成。对于具有分离的命令和数据的实施例而言,可至少部分地基于服务器负载在不同的时间发送仅命令信用以及命令和数据信用。如果拥塞加剧,可丢弃传入数据并且可将其相关联的命令存储在队列中用于稍后处理。当处理相关联的命令时,可取出数据。因此,服务器可动态地基于瞬时服务器负载和/或活动且连接客户机的数量选择具体的流量控制机制或机制的组合。
尽管前述内容被认为是示例性系统架构和方法,可对本公开进行修改。例如,主机系统存储器内的操作系统105可管理在主机系统102上运行的系统资源和控制任务。例如,可使用Microsoft Windows、HP-UX、Linux或UNIX实现OS105,尽管可使用其他的操作系统。在一个实施例中,图1中所说明的OS105可由可为在一个或多个处理单元上运行的各种操作系统提供底层硬件抽象层的虚拟机替代。
操作系统105可实现一个或多个协议堆栈。协议堆栈可执行一个或多个程序用于处理数据包。协议堆栈的示例是包括一个或多个程序用于处理(例如,处理或生成)数据包以便在网络上传输和/或接收的TCP/IP(传输控制协议/互联网协议)协议堆栈。可替代地,协议堆栈可被包括在专用子系统上,诸如例如TCP分流引擎和/或网络控制器110。
其他修改是可能的。例如,系统存储器(例如,系统存储器106和/或与网络控制器(例如,网络控制器110)相关联的存储器)可包括以下存储器类型中的一种或多种:半导体固件存储器、可编程存储器、非易失性存储器、只读存储器、电可编程存储器、随机存取存储器、闪存、磁盘存储器、和/或光盘存储器。或者附加地或者可替代地,系统存储器106和/或与网络控制器110相关联的存储器可包括其他和/或稍后开发的计算机可读存储器类型。
可在包括一个或多个存储介质的系统中实现在此所描述的方法的实施例,该一个或多个存储介质在其上单独地或结合地存储有当被一个或多个处理器执行时执行这些方法的指令。在此,处理器可包括例如网络控制器中的处理单元和/或可编程电路。因此,旨在根据在此所描述的方法的操作可跨多个物理设备分布,诸如在若干不同物理位置的处理结构。存储介质可包括任意类型的有形介质,例如任意类型的盘,包括软盘、光盘、光盘只读存储(CD-ROM)、光盘可重写(CD-RW)、以及磁光盘、半导体器件,诸如只读存储器(ROM)、随机存取存储器(RAM),诸如动态和静态RAM、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存、磁或光卡、或任意其他类型的适合用于存储电子指令的介质。
以太网通信协议可能够允许使用传输控制协议/互联网协议(TCP/IP)进行通信。以太网协议可符合或兼容电气和电子工程师学会(IEEE)在2002年3月发布的标题为“IEEE802.3标准”的以太网标准和/或该标准的稍后版本。
InfiniBandTM通信协议可符合或兼容InfiniBand贸易协会(IBTA)在2001年6月发布的标题为“InfiniBand架构规范”的InfiniBand规范和/或该规范的稍后版本。
iWARP通信协议可符合或兼容RDMA联盟所开发的并且由互联网工程任务组(IETF)所维护并发布的于2007年发布的标题为“RDMA传输控制协议(TCP)标准”的iWARP标准和/或该标准的稍后版本。
如在本文中的任意实施例中所使用的“电路”可单独地或在任意组合中包括例如存储由可编程电路执行的指令的硬连线电路、可编程电路、状态机电路、和/或固件。
在一个方面中,提供了一种流量控制方法。该方法包括:响应于来自客户机的请求,确定服务器负载;至少部分地基于服务器负载选择信用类型;以及至少部分地基于服务器负载将信用发送到该客户机,其中,服务器负载对应于与服务器的使用等级,并且其中,该信用对应于可在服务器和该客户机之间传递的数据量,并且该信用被配置成如果该客户机未使用该信用则该信用随着时间降低。
在另一个方面中,提供了一种存储系统。该存储系统包括服务器和多个存储设备。该服务器包括流量控制管理引擎,其中,该流量控制管理引擎被配置成用于响应于来自客户机的访问该多个存储设备中的至少一个的请求,确定服务器负载;至少部分地基于服务器负载选择信用类型;以及至少部分地基于服务器负载将信用发送到该客户机,并且其中,服务器负载与该服务器的使用等级相对应,并且其中,该信用对应于可在该服务器和该客户机之间传递的数据量,并且该信用被配置成如果该客户机未使用该信用则该信用随着时间降低。
在另一个方面中,提供了一种系统。该系统包括:其上单独地或结合地存储有指令的一个或多个存储介质,该指令当被一个或多个处理器执行时导致以下内容:响应于来自客户机的请求,确定服务器负载;至少部分地基于服务器负载选择信用类型;以及至少部分地基于服务器负载将信用发送到该客户机,其中服务器负载对应于服务器的使用等级,并且其中该信用对应于可在该服务器和该客户机之间传递的数据量,并且该信用被配置成如果该客户机未使用该信用则该信用随着时间降低。
已经在此使用的术语和表达被用作描述而非限制术语,并且不旨在使用这种术语和表达时排除所说明和描述的特征的任意等效物(或其部分),并且认识到在权利要求书的范围内各种修改是可能的。因此,权利要求书旨在覆盖所有这种等效物。
已经在此描述了各种特征、方面、和实施例。如本领域普通技术人员将理解的那样,这些特征、方面、和实施例易于与彼此以及变体和修改组合。因此,本发明应当被认为包含这种组合、变体、以及修改。

Claims (20)

1.一种流量控制方法,包括:
响应于来自客户机的请求确定服务器负载;
至少部分地基于服务器负载选择信用类型;以及
至少部分地基于服务器负载将信用发送到所述客户机,
其中,服务器负载对应于服务器的使用等级,并且其中,所述信用对应于可在所述服务器和所述客户机之间传递的数据量,并且所述信用被配置成如果所述客户机未使用所述信用则所述信用随着时间降低。
2.如权利要求1所述的方法,其特征在于,所述请求包括连接请求、事务请求和信用请求中的至少之一。
3.如权利要求1所述的方法,其特征在于,如果所述服务器负载对应于在水位标志以上的服务器可用资源,则当所述服务器接收到所述请求时所述信用被发送到所述客户机,或者,如果所述服务器负载对应于在所述水位标志以下的服务器资源,则当完成与所述请求相关联的事务时所述信用被发送到所述客户机。
4.如权利要求1所述的方法,其特征在于,进一步包括:对于所述信用未被使用的每个衰减时间间隔,将所述信用降低达一衰减量。
5.如权利要求1所述的方法,其特征在于,进一步包括:如果所述信用未被使用,则在过期间隔之后致使所述信用过期。
6.如权利要求1所述的方法,其特征在于,所述信用类型是至少部分地基于连接到所述服务器的其他客户机的数量而选择的。
7.如权利要求1所述的方法,其特征在于,所述服务器和所述客户机之间的事务包括命令和相关联的数据,并且如果所述服务器负载对应于在水位标志以下的服务器可用资源,则丢弃所述相关联的数据,并且稍后当所述服务器可用资源增加到所述水位标志以上时取回所述相关联的数据。
8.一种存储系统,包括:
包括流量控制管理引擎的服务器;以及
多个存储设备,其中,所述流量控制管理引擎被配置成用于响应于来自客户机的访问所述多个存储设备中的至少一个的请求而确定服务器负载,至少部分地基于服务器负载选择信用类型,以及至少部分地基于服务器负载将信用发送到所述客户机,并且其中,服务器负载对应于所述服务器的使用等级,并且其中,所述信用对应于可在所述服务器和所述客户机之间传递的数据量,并且所述信用被配置成用于如果所述客户机未使用所述信用则所述信用随着时间降低。
9.如权利要求8所述的存储系统,其特征在于,所述请求包括连接请求、事务请求和信用请求中的至少之一。
10.如权利要求8所述的存储系统,其特征在于,如果所述服务器负载对应于在水位标志以上的服务器可用资源,则当所述服务器接收到所述请求时所述信用被发送到所述客户机,或者,如果所述服务器负载对应于在所述水位标志以下的服务器资源,则当完成与所述请求相关联的事务时所述信用被发送到所述客户机。
11.如权利要求8所述的存储系统,其特征在于,所述流量控制管理引擎进一步被配置成:对于所述信用未被使用的每个衰减时间间隔,将所述信用降低达一衰减量。
12.如权利要求8所述的存储系统,其特征在于,所述流量控制管理引擎进一步被配置成:如果所述信用未被使用,则在过期间隔之后致使所述信用过期。
13.如权利要求8所述的存储系统,其特征在于,所述信用类型是至少部分地基于连接到所述服务器的其他客户机的数量而选择的。
14.如权利要求8所述的存储系统,其特征在于,所述服务器和所述客户机之间的事务包括命令和相关联的数据,并且如果所述服务器负载对应于在水位标志以下的服务器可用资源,则丢弃所述相关联的数据,并且稍后当所述服务器可用资源增加到所述水位标志以上时取回所述相关联的数据。
15.一种系统,包括其上单独地或结合地存储有指令的一个或多个存储介质,所述指令当被一个或多个处理器执行时导致以下操作:
响应于来自客户机的请求确定服务器负载;
至少部分地基于服务器负载选择信用类型;以及
至少部分地基于服务器负载将信用发送到所述客户机,
其中,服务器负载对应于服务器的使用等级,并且其中,所述信用对应于可在所述服务器和所述客户机之间传递的数据量,并且所述信用被配置成如果所述客户机未使用所述信用则所述信用随着时间降低。
16.如权利要求15所述的系统,其特征在于,所述请求包括连接请求、事务请求和信用请求中的至少之一。
17.如权利要求15所述的系统,其特征在于,如果所述服务器负载对应于在水位标志以上的服务器可用资源,则当所述服务器接收到所述请求时所述信用被发送到所述客户机,或者,如果所述服务器负载对应于在所述水位标志以下的服务器资源,则当完成与所述请求相关联的事务时所述信用被发送到所述客户机。
18.如权利要求15所述的系统,其特征在于,所述指令当被一个或多个处理器执行时导致包括以下附加操作:
对于所述信用未被使用的每个衰减时间间隔,将所述信用降低达一衰减量。
19.如权利要求15所述的系统,其特征在于,所述信用类型是至少部分地基于连接到所述服务器的其他客户机的数量而选择的。
20.如权利要求15所述的系统,其特征在于,所述服务器和所述客户机之间的事务包括命令和相关联的数据,并且如果所述服务器负载对应于在水位标志以下的服务器可用资源,则丢弃所述相关联的数据,并且稍后当所述服务器可用资源增加到所述水位标志以上时取回所述相关联的数据。
CN201280066700.XA 2012-01-10 2012-01-10 用于存储服务器的流量控制方法及系统 Expired - Fee Related CN104040524B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/020720 WO2013105932A1 (en) 2012-01-10 2012-01-10 Flow control mechanism for a storage server

Publications (2)

Publication Number Publication Date
CN104040524A true CN104040524A (zh) 2014-09-10
CN104040524B CN104040524B (zh) 2017-01-18

Family

ID=48781756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280066700.XA Expired - Fee Related CN104040524B (zh) 2012-01-10 2012-01-10 用于存储服务器的流量控制方法及系统

Country Status (4)

Country Link
US (1) US20140223026A1 (zh)
CN (1) CN104040524B (zh)
DE (1) DE112012005625B4 (zh)
WO (1) WO2013105932A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104767606A (zh) * 2015-03-19 2015-07-08 华为技术有限公司 数据同步装置及方法
CN107408029A (zh) * 2015-03-23 2017-11-28 Netapp股份有限公司 用于存储环境中的实时活动跟踪的方法和系统
CN112463391A (zh) * 2020-12-08 2021-03-09 Oppo广东移动通信有限公司 内存控制方法、内存控制装置、存储介质与电子设备

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9237111B2 (en) * 2013-03-14 2016-01-12 International Business Machines Corporation Credit-based flow control in lossless ethernet networks
US11921658B2 (en) * 2014-03-08 2024-03-05 Diamanti, Inc. Enabling use of non-volatile media-express (NVMe) over a network
US10277678B2 (en) 2014-05-14 2019-04-30 Hitachi Data Systems Engineering UK Limited Method and an apparatus, and related computer-program products, for managing access request to one or more file systems
CN109995664B (zh) * 2017-12-29 2022-04-05 华为技术有限公司 一种发送数据流的方法、设备和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5416771A (en) * 1992-12-25 1995-05-16 Nec Corporation Signaling method for packet network and system
US6581104B1 (en) * 1996-10-01 2003-06-17 International Business Machines Corporation Load balancing in a distributed computer enterprise environment
CN1809020A (zh) * 2005-01-20 2006-07-26 中兴通讯股份有限公司 一种快速响应的集中式接纳控制系统及控制方法
US20090041057A1 (en) * 2007-08-06 2009-02-12 International Business Machines Corporation Performing a recovery action in response to a credit depletion notification
CN101505281A (zh) * 2009-04-10 2009-08-12 华为技术有限公司 用户流量的调度控制方法、设备及系统
CN101647025A (zh) * 2007-03-26 2010-02-10 微软公司 具有拒绝服务缓解的文件服务器流水线

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035220B1 (en) 2001-10-22 2006-04-25 Intel Corporation Technique for providing end-to-end congestion control with no feedback from a lossless network
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
KR101018924B1 (ko) * 2009-02-18 2011-03-02 성균관대학교산학협력단 교차 도메인 상에서의 데이터 접근 방법, 이를 수행하는 시스템 및 이를 수행하는 프로그램을 기록한 기록매체
US20120106325A1 (en) * 2010-10-29 2012-05-03 Ramsundar Janakiraman Adaptive Shaper for Reliable Multicast Delivery over Mixed Networks
US8705544B2 (en) * 2011-03-07 2014-04-22 Broadcom Corporation Method and apparatus for routing in a single tier switched network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5416771A (en) * 1992-12-25 1995-05-16 Nec Corporation Signaling method for packet network and system
US6581104B1 (en) * 1996-10-01 2003-06-17 International Business Machines Corporation Load balancing in a distributed computer enterprise environment
CN1809020A (zh) * 2005-01-20 2006-07-26 中兴通讯股份有限公司 一种快速响应的集中式接纳控制系统及控制方法
CN101647025A (zh) * 2007-03-26 2010-02-10 微软公司 具有拒绝服务缓解的文件服务器流水线
US20090041057A1 (en) * 2007-08-06 2009-02-12 International Business Machines Corporation Performing a recovery action in response to a credit depletion notification
CN101505281A (zh) * 2009-04-10 2009-08-12 华为技术有限公司 用户流量的调度控制方法、设备及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104767606A (zh) * 2015-03-19 2015-07-08 华为技术有限公司 数据同步装置及方法
CN104767606B (zh) * 2015-03-19 2018-10-19 华为技术有限公司 数据同步装置及方法
CN107408029A (zh) * 2015-03-23 2017-11-28 Netapp股份有限公司 用于存储环境中的实时活动跟踪的方法和系统
CN112463391A (zh) * 2020-12-08 2021-03-09 Oppo广东移动通信有限公司 内存控制方法、内存控制装置、存储介质与电子设备
CN112463391B (zh) * 2020-12-08 2023-06-13 Oppo广东移动通信有限公司 内存控制方法、内存控制装置、存储介质与电子设备

Also Published As

Publication number Publication date
DE112012005625T5 (de) 2014-10-09
DE112012005625B4 (de) 2018-08-02
WO2013105932A1 (en) 2013-07-18
US20140223026A1 (en) 2014-08-07
CN104040524B (zh) 2017-01-18

Similar Documents

Publication Publication Date Title
CN104040524A (zh) 用于存储服务器的流量控制机制
US10318467B2 (en) Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
US10140236B2 (en) Receiving buffer credits by a plurality of channels of one or more host computational devices for transmitting data to a control unit
US10289591B2 (en) Adjustment of buffer credits and other parameters in a startup phase of communications between a plurality of channels and a control unit
US9231878B2 (en) Shaping virtual machine communication traffic
US10078533B2 (en) Coordinated admission control for network-accessible block storage
CN109725829B (zh) 用于数据存储系统的端到端QoS解决方案的系统和方法
CN104516767B (zh) 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统
US10157150B2 (en) Adjustments of buffer credits for optimizing the number of retry operations and transfer ready operations
CN110602156A (zh) 一种负载均衡调度方法及装置
US10250673B1 (en) Storage workload management using redirected messages
CN112491983A (zh) 基于区块链的智能合约调度方法、装置、设备及存储介质
US9641603B2 (en) Method and system for spooling diameter transactions
CN109709905A (zh) 通信处理装置、存储介质和通信处理方法
CN110235106B (zh) 完成侧客户端节流
CN110235105B (zh) 用于在受信任客户端组件中的服务器处理之后的客户端侧节流的系统和方法
US11503140B2 (en) Packet processing by programmable network interface
WO2024066668A1 (en) Fast memory clear of system memory
US20170034267A1 (en) Methods for transferring data in a storage cluster and devices thereof
CN101741706B (zh) 因特网小型计算机系统接口iSCSI服务质量控制方法
CN113811857A (zh) 用于网络连接的资源管理以跨网络处理任务的方法和装置
CN110166429A (zh) 数据包处理方法、装置、计算机可读存储介质及服务器
JP2013239910A (ja) 通信装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170118

Termination date: 20220110

CF01 Termination of patent right due to non-payment of annual fee