基于网络流控制的动态资源分配的制作方法

文档序号:14649813发布日期:2018-06-08 21:33阅读:239来源:国知局
基于网络流控制的动态资源分配的制作方法

本申请要求对提交于2015年9月1日、名称为“DYNAMIC RESOURCE ALLOCATION BASED UPON NETWORK FLOW CONTROL”的第14/842,086号美国非临时专利申请的优先权、并且要求对提交于2015年7月31日、名称为“DYNAMIC RESOURCE ALLOCATION BASED UPON NETWORK FLOW CONTROL”的第62/199,735号美国临时申请的优先权。第14/842,086号美国非临时专利申请和第62/199,735号美国临时专利申请通过引用而结合于此。



背景技术:

存储网络环境可以包括被配置为向客户端提供对跨一个或者多个存储设备而被存储的用户数据的访问的一个或者多个存储计算设备(例如,存储控制器、节点、存储服务器等)。存储计算设备可以主控被配置为处理数据和/或从存储计算设备向目的地存储计算设备传输数据的各种存储过程。例如,快照存储过程可以被配置为创建由存储计算设备主控的数据卷的快照,其中快照对应于该卷的文件和目录的时间点表示。存储复制过程可以被配置为将快照格式化成可以从存储计算设备向目的地存储计算设备被传输的、用于备份和/或故障保护恢复目的的格式。例如,目的地存储计算设备可以利用快照以保持被主控在目的地存储计算设备和与由存储计算设备主控的该卷的复制对应的镜像卷为最新状态,从而使得镜像卷可以被用来在存储计算设备出故障的情况下向故障保护客户端提供对镜像的用户数据的访问。维护远程镜像卷可能需要联网通信。为了高效地使用联网通信带宽,这些存储过程可以执行一些其它通信。例如,存储过程可以压缩正在通过网络通信的数据以便更好地利用可用性网络带宽。这样的过程可能需要使用辅助计算资源。

PAUSE可以分配存储计算设备的计算资源(比如存储器、CPU周期等)以用于由存储过程使用。例如,可以分配一定数量的主要存储器用于存储复制过程用作高速缓存。可以基于用于给定的硬件配置的历史性能估计或者资源利用历史指定计算资源分配数量。遗憾的是,可能分配太多资源或者太少资源,这可能影响由存储计算设备主控的存储过程和/或其它过程的性能。如果太多资源被分配给存储过程而变得未使用,则其它过程可能提供比如果这样的过程有权访问未使用的资源有所削弱的性能。如果没有向存储过程分配足够资源,则存储过程可能没有产生数据快到足以跟上用于传输数据的可用性带宽,因此可能未充分利用网络带宽。资源分配估计可能不精确并且可能造成低效率、比如浪费资源和/或过程由于缺乏充足资源而性能不足,因为多种可变因素可以影响存储过程可以有成效地利用多少资源(例如,如果基于网卡的相对高带宽向存储过程分配资源,则存储过程可能由于网络通信信道与网卡的吞吐量相比的相对更低网络吞吐量而利用比预计更少的资源)。

附图说明

图1是图示根据这里阐述的条款的一个或者多个条款的示例群集式网络的部件框图。

图2是图示根据这里阐述的条款的一个或者多个条款的示例数据存储系统的部件框图。

图3是图示基于网络流控制的动态资源分配的示例性方法的流程图。

图4A是图示用于基于网络流控制的动态资源分配的示例性计算设备的部件框图。

图4B是图示用于基于网络流控制的动态资源分配的示例性计算设备的部件框图,其中接收通信可用性信号。

图4C是图示用于基于网络流控制的动态资源分配的示例性计算设备的部件框图,其中增加压缩存储过程。

图4D是图示用于基于网络流控制的动态资源分配的示例性计算设备的部件框图,其中接收通信不可用性信号。

图4E是图示用于基于网络流控制的动态资源分配的示例性计算设备的部件框图,其中接收通信可用性信号。

图4F是图示用于基于网络流控制的动态资源分配的示例性计算设备的部件框图,其中减少向复制存储过程的资源分配。

图4G是图示用于基于网络流控制的动态资源分配的示例性计算设备的部件框图,其中调整资源取消分配阈值。

图5是根据这里阐述的条款的一个或者多个条款的计算可读介质的示例。

具体实施方式

现在参照附图描述要求保护的主题内容的一些示例,其中相似标号一般地被用来全篇指代相似单元。在以下描述中,出于说明的目的,阐述许多具体细节以便提供对要求保护的主题内容的理解。然而,可以清楚的是无这些具体细节仍然可以实现要求保护的主题内容。没有承认在这一具体实施方式中的内容为现有技术。

提供一种或者多种用于基于网络流控制的动态资源分配的技术和/或计算设备。例如,可以标识存储过程为被配置为通过网络通信信道从源存储计算设备经过网络接口向目的地存储计算设备传输数据(例如,从源存储计算设备向目的地存储计算设备复制文件系统的复制存储过程)。网络流控制信息(比如通信可用性信号(例如,网络接口可以具有用于传输数据的可用性带宽,但是存储过程可以没有可用性数据待发送)或者通信不可用性信号(例如,网络接口可能由于网络通信信道被占用而提供数据传输请求拒绝消息))可以被用来在执行存储过程期间向存储过程动态地分配资源。在一个示例中,通信可用性信号可以出现在存储应用已经向通信系统传送数据并且没有更多数据待发送时。在另一示例中,通信不可用性信号可以出现在存储应用尝试使用新传出消息来向通信系统写入、但是被指令不能缓冲新传出消息时。以这种方式,可以在向存储过程分配资源时考虑多种动态因素(例如,网络带宽改变;由可以向除了有助于跨广域网传输数据之外的目的贡献资源的网关机器引入的瞬时变化;等等)(例如,在其中更多网络带宽可用性的低网络使用时段期间,可以向复制存储过程分配更多存储器和CPU周期,从而使得复制存储过程可以更快地产生复制数据用于传输,这可以高效地利用可用性网络带宽)。因此,可以向存储过程提供更多计算资源,从而使得存储过程可以在有用于由存储过程使用的可用性网络资源时更快地和更高效地执行。对照而言,可以在存储过程因缺乏网络资源而瓶颈时向存储过程提供更少计算资源,因此计算资源可以被其它应用、服务和过程更高效地利用、比如用于处理客户端I/O请求。基于网络流控制信息动态地调整资源分配可以提供可以响应于网络资源可用性改变而实时调整的更精确资源分配,因此资源分配可以比仅基于历史性能信息或者历史数据估计资源分配更准确和高效。

为了提供用于基于网络流控制的动态资源分配的情境。图1图示群集式网络环境100或者网络存储环境的一个实施例。然而,可以认识到,可以在群集式网络环境100、非群集网络环境和/或多种其它计算环境、比如桌面型计算环境内实施这里描述的技术等。也就是说,本公开内容、包括所附权利要求的范围无意于限于这里提供的示例。将认识到,在后图中图示、但是先前参照前图讨论过相同或者相似部件、单元、特征、项目、模块等时,可以在描述后图时省略其相似(例如,多余)讨论(例如,为了简化和易于理解)。

图1是图示可以实施这里描述的技术和或系统中的至少一些实施例的示例群集式网络环境100的框图。示例环境100包括通过有助于在存储系统102与104之间(以及其中的一个或者多个模块、部件等,如例如节点116和118)的通信的群集结构106、比如体现为专有Infiniband、Fiber Channel(FC)或者以太网网络的计算网络耦合的数据存储系统或者存储地点102和104。将认识到,尽管在图1中图示两个数据存储系统102和104以及两个节点116和118,但是设想任何适当数目的这样的部件。在一个示例中,节点116、118包括向客户端设备、比如主机设备108、110提供对在数据存储设备128、130内存储的数据的访问的存储控制器(例如,节点116可以包括主要或者本地存储控制器而节点117可以包括辅助或者远程存储控制器)。相似地,除非这里另外具体地提供,这对于这里引用和/或在附图中图示的其它模块、单元、特征、项目等同样成立。也就是说,这里公开的部件、模块、单元、特征、项目等的特定数目无意于用限制意义来解释。

还将认识到,群集式网络不限于任何特定地理区域而可以被本地和/或远程群集。因此,在一个实施例中,可以通过位于多个地理位置中的多个存储系统和/或节点分布群集式网络;而在另一实施例中,群集式网络可以包括驻留在相同地理位置中(例如,在数据存储设备的单个地点上的架中)的数据存储系统(例如,102、104)。

在所示示例中,可以例如包括客户端设备、个人计算机(PC)、用于存储的计算设备(例如,存储服务器)和其它计算机或者外围设备(例如,打印机)的一个或者多个主机设备108、110由存储网络连接112、114耦合到响应数据存储系统102、104。网络连接可以包括例如利用网络附着存储(NAS)协议、比如公共因特网文件系统(CIFS)协议或者网络文件系统(NFS)协议以交换数据分组的局域网(LAN)或者广域网(WAN)。例如,主机设备108、110可以是运行应用的通用计算机并且可以使用客户端/服务器模型用于交换信息来与数据存储系统102、104交互。也就是说,主机设备可以请求来自数据存储系统的数据(例如,被存储在存储设备上的数据,该存储设备由配置为处理由主机设备为存储设备而发出的I/O命令的网络存储控制器管理),并且数据存储系统可以经由一个或者多个网络连接112、114向主机设备返回该请求的结果。

在群集式数据存储系统102、104上的节点116、118可以例如包括网络或者主机节点,这些网络或者主机节点被互连为群集以比如向具有远程位置、云存储(例如,可以在数据云内存储存储端点)等的企业提供数据存储和管理服务。在数据存储和管理网络群集环境100中的这样的节点可以例如是作为接入点、再分发点或者通信端点附着到网络的设备。节点可以能够通过网络通信信道发送、接收和/或转发信息并且可以包括满足这些标准的任何或者所有标准的任何设备。节点的一个示例可以是附着到网络的数据存储和管理服务器,其中服务器可以包括通用计算机或者具体地配置为在数据存储和管理系统中作为服务器操作的计算设备。

在一个示例中,第一节点群集、比如节点116、118(例如,被配置为提供对第一存储集合体的访问的第一存储控制器集合,该第一存储集合体包括一个或者多个存储设备的第一逻辑分组)可以位于第一存储地点上。未图示的第二节点群集可以位于第二存储地点(例如,被配置为提供对第二存储集合体的访问的第二存储控制器集合,该第二存储集合体包括一个或者多个存储设备的第二逻辑分组)。可以根据灾难恢复配置来配置第一节点群集和第二节点群集,其中存活节点群集在灾难出现在包括灾难节点群集的灾难存储地点中的情况下提供对灾难节点群集的存储设备的转接访问(例如,第一节点群集在灾难出现此案在第二存储地点的情况下向客户端设备提供对第二存储集合体的存储设备的转接数据访问)。

如示例性环境100中所示,节点116、118可以包括协调以提供用于群集的分布式存储架构的各种功能部件。例如,节点可以包括网络模块120、122和数据模块124、126。网络模块120、122可以被配置为允许节点116、118(例如,网络存储控制器)通过网络连接112、114与主机设备108、110连接从而例如允许主机设备108、110访问在分布式存储系统中存储的数据。另外,网络模块120、122可以提供经过群集结构106的与一个或者多个其它部件的连接。例如,在图1中,第一节点116的第一网络模块120可以通过经过第二节点118的第二数据模块126发送请求来访问第二数据存储设备130。

数据模块124、126可以被配置为将一个或者多个数据存储设备128、130、比如磁盘或者磁盘阵列、闪存或者某个其它形式的数据存储装置连接到节点116、118。节点116、118可以由群集结构106互连从而例如允许群集中的相应节点访问在连接到群集中的不同节点的数据存储设备128、130上的数据。数据模块124、126经常根据存储区域网络(SAN)协议,如例如小型计算机系统接口(SCSI)或者光纤信道协议(FCP)与数据存储设备128、130通信。因此,如从在节点116、118上的操作系统所见,数据存储设备128、130可以表现为本地附着到操作系统。以这种方式,不同节点116、118等可以经过操作系统访问数据块而不是明确地请求抽象文件。

应当认识到,尽管示例实施例100图示相等数目的网络和数据模块,但是其它实施例可以包括不同数目的这些模块。例如,可以有在群集中互连的多个网络和数据模块,该群集没有在网络与数据模块之间的一一对你更。也就是说,不同节点可以具有不同数目的网络和数据模块,并且相同节点可以具有与数据模块不同数目的网络模块。

另外,主机设备108、110可以通过联网连接112、114与群集中的节点116、118联网。作为示例,连接到群集的相应主机设备108、110可以请求群集中的节点116、118的服务(例如,以数据分组的形式交换信息),并且节点116、118可以向主机设备108、110返回请求的服务的结果。在一个实施例中,主机设备108、110可以与在数据存储系统102、104中的节点(例如,网络主机)116、118中驻留的网络模块120、122交换信息。

在一个实施例中,数据存储设备128、130包括卷132,这例如是实施将信息存储到磁盘驱动或者磁盘阵列或者其它存储装置(例如,闪存)上作为用于数据的文件系统。卷可以例如跨越磁盘的部分、磁盘汇集或者磁盘的部分并且通常地定义存储系统中的磁盘空间上的文件存储的总体逻辑布置。在一个实施例中,卷可以包括存储的数据作为在卷内的分级目录结构中驻留的一个或者多个文件。

通常地在可以与特定存储系统关联的格式中配置卷,并且相应卷格式通常地包括向卷提供功能——比如提供用于卷形成群集的能力——的特征。例如,第一存储系统可以利用第一格式用于它们的卷,而第二存储系统可以利用第二格式用于它们的卷。

在示例环境100中,主机设备108、110可以利用数据存储系统102、104以存储和从卷132取回数据。在这一实施例中,例如,主机设备108可以向在数据存储系统102内的节点116中的网络模块120发送数据分组。节点116可以使用数据模块124来向数据存储设备128转发数据,其中数据存储设备128包括卷132A。以这种方式,在这一示例中,主机设备可以使用由网络连接112连接的数据存储系统102来访问存储卷132A以存储和/或取回数据。另外,在这一实施例中,主机设备110可以与在(例如,可以与数据存储系统102远离的)数据存储系统104内的主机118中的网络模块122交换数据。主机118可以使用数据模块126来向数据存储设备130转发数据、由此访问与数据存储设备130关联的卷132B。

可以认识到,可以在群集式网络环境100内实施基于网络流控制的动态资源分配。例如,可以基于网络流控制信息、比如来自网络模块120和/或网络模块122的通信可用性和不可用性信号动态地调整节点116和/或节点118的资源用于在其上执行的存储过程。可以认识到,可以针对任何类型的计算环境和/或在任何类型的计算环境之间实施基于网络流控制的动态资源分配,并且基于网络流控制的动态资源分配可以在物理设备(例如,节点116、节点118等)和/或云计算环境(例如,与群集式网络环境100远离)之间可传送。

图2是数据存储系统200(例如,图1中的102、104)的示例性示例,该示例提供可以实施这里描述的技术和/或系统的一种或者多种技术和/或系统的部件的一个实施例的更多细节。示例数据存储系统200包括节点202(例如,图1中的主机节点116、118)和数据存储设备234(例如,图1中的数据存储设备128、130)。节点202可以例如是通用计算机或者具体地配置为作为存储服务器操作的某个其它计算设备。主机设备205(例如,图1中的108、110)可以例如,通过网络216连接到节点202以提供对在数据存储设备234上存储的文件和/或其它数据的访问。在一个示例中,节点202包括向客户端设备、比如主机设备205提供对在数据存储设备234内存储的数据的访问的存储控制器。

数据存储设备234可以包括海量存储设备、比如磁盘阵列218、220、222的磁盘224、226、228。将认识到,这里描述的技术和系统不受示例实施例限制。例如,磁盘224、226、228可以包括任何类型的海量存储设备,包括但不限于磁盘驱动、闪存和适于存储信息,例如,包括数据(D)和/或奇偶校验(P)信息的任何其它相似介质。

节点202包括由系统总线242互连的一个或者多个处理器204、存储器206、网络适配器210、群集访问适配器212和存储适配器214。存储系统200也包括在节点202的存储器206中安装的操作系统208,该操作系统可以例如实施冗余独立(或者廉价)磁盘阵列(RAID)优化技术以优化阵列中的出故障的磁盘的数据的重建过程。

操作系统208也可以管理用于数据存储系统的通信和在可以在群集式网络中、比如附着到群集结构215(例如,图1中的106)的其它数据存储系统之间的通信。因此,节点202、比如网络存储控制器可以对主机设备请求做出响应以根据这些主机设备请求来管理数据存储设备234(例如,或者附加群集式设备)上的数据。操作系统208可以经常在数据存储系统200上建立一个或者多个文件系统,其中文件系统可以例如包括实施文件和目录的持久分级名称空间的软件代码和数据结构。作为示例,在向群集式网络系统添加新数据存储设备(未示出)时,向操作系统208通知将在现有目录树中存储与新数据存储设备关联的新文件。这常被称为“装载”文件系统。

在示例数据存储系统200中,存储器206可以包括可由处理器204和适配器210、212、214寻址用于存储有关软件应用代码和数据结构的存储位置。处理器204和适配器210、212、214可以例如包括配置为执行软件代码并且操控数据结构的处理单元和/或逻辑电路装置。操作系统208——其部分通常地驻留在存储器206中可由处理单元执行——通过调用对由存储系统实施的文件服务有支持的存储操作以及其它方式来功能地组织存储系统。本领域技术人员将清楚其它处理和存储器机制、包括各种计算机可读介质可以用于存储和/或执行与这里描述的技术有关的应用指令。例如,操作系统也可以利用一个或者多个控制文件(未示出)以辅助提供虚拟机。

网络适配器210包括为了通过计算机网络216将数据存储系统200连接到主机设备205而需要的机械、电和信令电路装置,该计算机网络可以包括点到点连接或者共享的介质以及其它组成、比如局域网。主机设备205(例如,图1的108、110)可以是配置为执行应用的通用计算机。如以上描述的那样,主机设备205可以根据信息递送的客户端/主机模型与数据存储系统200交互。

存储适配器214与在节点202上执行的操作系统208配合以访问由主机设备205请求的信息(例如,访问在由网络存储控制器管理的存储设备上的数据)。可以在可写入介质、比如磁盘驱动、俺村和/或适于存储信息的任何其它相似介质的任何类型的附着阵列上存储信息。在示例数据存储系统200中,可以在磁盘224、226、228上的数据块中存储信息。存储适配器214可以包括通过I/O互连布置、比如存储区域网络(SAN)协议(例如,小型计算机系统接口(SCSI)、iSCSI、hyperSCSI、光纤信道协议(FCP))耦合到磁盘的输入/输出(I/O)接口电路装置。信息由存储适配器214取回并且如果必要则在通过系统总线242转发到网络适配器210(和/或如果发送到群集中的另一节点则转发到群集访问适配器212)之前由一个或者多个处理器204(或者存储适配器214本身)处理,其中信息被格式化成数据分组并且通过网络连接216返回到主机设备205(和/或通过群集结构215返回到附着到群集的另一节点)。

在一个实施例中,可以实施在阵列218、220、222上存储信息为由定义总体磁盘空间逻辑布置的磁盘224、226、228的群集组成的一个或者多个存储“卷”230、232。通常地组织包括一个或者多个卷的磁盘224、226、228为一组或者多组RAID。作为示例,卷230包括磁盘列218和220的集合体,这些盘阵列包括潘224和226的群集。

在一个实施例中,为了有助于对磁盘224、226、228的访问,操作系统208可以实施文件系统(例如,随处写入文件系统),该文件系统逻辑地组织信息为磁盘上的目录和文件的分级结构。在这一实施例中,可以实施相应文件为配置为存储信息的磁盘块集合,而可以实施目录为其中存储关于其它文件和目录的信息的特殊地格式化的文件。

无论在这一数据存储系统200内的下层物理配置如何,可以存储数据为在可以与相应卷标识符、比如在一个示例中可以长度为32位的文件系统标识符(FSID)关联的物理和/或虚拟卷内的文件。

物理卷对应于其地址、可寻址空间、位置等没有改变的物理存储设备中的至少部分,比如一个或者多个数据存储设备234中的至少一些数据存储设备(例如,冗余独立(或者廉价)磁盘阵列(RAID系统))。通常地,物理卷的位置没有改变,因为被用来访问它的地址(范围)一般地保持恒定。

对照而言,在不同物理存储设备的全异部分的集合体之上存储虚拟卷。虚拟卷可以是不同物理存储设备位置的不同可用性部分的汇集、比如来自磁盘224、226和/或228的每个磁盘的某个可用性空间。将认识到,由于虚拟卷没有“连结”到任何一个特定存储设备,所以可以认为虚拟卷包括抽象化和/或虚拟化层,这允许它在一些方面被重设大小和/或灵活。

另外,虚拟卷可以包括一个或者多个逻辑单元编号(LUN)238、目录236、Qtree 235和文件240。这些特征、但是更具体地为LUNS允许如下全异存储器位置以及其它方面,在这些存储器位置内存储数据以例如被标识和分组为数据存储单元。这样,LUN 238可以特征在于构成虚拟磁盘或者驱动,在该虚拟磁盘或者取代上,在虚拟卷内的数据被存储在集合体内。例如,LUN常被称为虚拟驱动,从而使得它们模仿来自通用计算机的硬驱动,而它们实际地包括在卷的各种部分中存储的数据块。

在一个实施例中,一个或者多个数据存储设备234可以具有一个或者多个物理端口,其中可以向每个物理端口指派目标地址(例如,SCSI目标地址)。为了代表在数据存储设备上存储的相应卷,在数据存储设备上的目标地址可以被用来标识一个或者多个LUN 238。因此,例如,在节点202经过存储适配器214连接到卷230、232时,创建在节点202与在卷下面的一个或者多个LUN 238之间的连接。

在一个实施例中,相应目标地址可以标识多个LUN,从而使得目标地址可以代表多个卷。可以实施为存储适配器214中的电路装置和/或软件或者实施为在存储器206中驻留并且由处理器204执行的可执行代码的I/O接口例如可以通过使用标识LUN 238的一个或者多个地址来连接到卷230。

可以认识到,可以实施基于网络流控制的动态资源分配用于数据存储系统200。例如,可以基于网络流控制信息、比如来自网络适配器210的通信可用性和不可用性信号动态地调整节点202的资源用于在其上执行的存储过程。可以认识到,可以针对任何类型的计算环境和/或在任何类型的计算环境之间实施基于网络流控制的动态资源分配,并且基于网络流控制的动态资源分配可以在物理设备(例如,节点202、主机205等)和/或云计算环境(例如,与节点202和/或主机205远离)之间可传送。

图3的示例性方法300图示基于网络流控制的动态资源分配的一个实施例。在302,可以(例如,由存储服务器)标识存储过程为被配置为通过网络通信信道从主控存储过程的源存储计算设备(例如,存储服务器)经过网络接口(例如,网络层)向目的地存储计算设备传输数据。可以认识到,存储计算设备可以是配置为存储、传输和/或接收数据的任何计算设备(例如,存储服务器、节点、存储控制器、膝上型计算机、个人计算机、移动设备、智能设备、云计算环境等)。存储过程可以包括复制存储过程、数据镜像存储过程、介质扫描器存储过程(例如,评估和/或格式化数据的过程)、压缩存储过程、快照存储过程和/或可以处理数据并且向另一计算设备发送处理的数据的任何其它过程、应用或者服务。

在一个示例中,可以在304维护与由网络接口向存储过程提供的通信可用性信号的第一计数对应的第一计数器。在另一示例中,可以维护与一个或者多个通信可用性信号对应的通信可用性指示符(例如,被用来存储关于通信可用性的信息的数据结构、通信可用性信号的实时评估或者能够从网络接口吸收与可用性和/或不可用性信号关联的反馈的任何其它数据或者算法)(例如,取代第一计数器)。通信可用性信号可以对应于来自网络接口(例如,特定网络层)的消息,该消息为网络通信信道未被占用而可用于传输数据。第一计数可以指示存储过程没有被分配用于在高效地利用网络通信信道的速率处理数据(例如,缓冲器可以在接收通信可用性信号时为空)的充足数量的计算资源。在一个示例中,可以在306维护与由网络接口响应于由存储过程向网络接口发送的数据传输请求而向存储过程发送的通信不可用性信号的第二计数对应的第二计数器。在另一示例中,可以维护与一个或者多个通信不可用性信号对应的通信不可用性指示符(例如,被用来存储关于通信不可用性的信息的数据结构、通信不可用性信号的实时评估或者能够从网络接口吸收与可用性和/或不可用性信号关联的反馈的任何其它数据或者算法)(例如,取代第二计数器)。通信不可用性信号可以对应于写入错误消息(例如,在存储过程尝试通过网络通信信道写入数据时的错误)、线程中止事件(例如,可以在占用网络通信信道时中止数据传输线程)、网络通信信道占用消息、数据传输请求拒绝消息(例如,网络接口可以拒绝用以通过网络通信信道发送数据的数据传输请求,因为网络通信信道被占用)和/或其它网络层消息。第二技术可以指示存储过程被分配太多计算资源,因为存储过程可以正在预备数据用于在比网络通信信道可以支持的速率更快的速率传输(例如,网络通信信道可能比如由于广域网的网关计算设备向除了传输数据之外的目的贡献资源、因此造成瞬时变化、比如数据传输减缓而为瓶颈)。

在维护计数器的一个示例中,可以标识通信可用性信号,该通信可用性信号指示网络通信信道可用于传输数据。可以基于通信可用性信号递增第一计数器的第一计数。可以基于通信可用性信号递减或者重置第二计数器的第二计数(例如,被设置成基值、比如0)。在一个示例中,如果存储过程没有可以被用来传输作为响应于通信可用性信号的数据传输请求的数据(例如,如下指示,该指示为存储过程可以使用附加资源用于预备数据用于传输,因此更好利用网络通信信道的可用性带宽),则可以递增第一计数并且可以递减或者重置第二计数。在另一示例中,如果存储过程具有可以被用来传输的数据(例如,如下指示,该指示为存储过程正在以有成效地利用网络通信信道的可用性带宽的速率预备数据),则可以不递增第一计数并且可以不递减或者重置第二计数。

在维护计数器的一个示例中,可以标识通信不可用性信号,该通信不可用性信号指示网络通信信道不可用于传输数据传输请求的数据。可以基于通信不可用性信号递增第二计数器的第二计数。可以基于通信不可用性信号递减或者重置第一计数器的第一计数(例如,被设置成基值、比如0)。

在一个示例中,可以在308基于第一计数器和第二计数器在存储过程的实时操作期间动态地调整向存储过程对资源存储计算设备的计算资源的资源分配。例如,可以针对第一计数器定义被用来触发动态增加用于存储过程的资源分配的资源分配阈值。可以针对第二计数器定义被用来触发动态减少用于存储过程的资源分配的资源取消分配阈值。响应于第一计数器的第一计数超过资源分配阈值(例如,计数15或者任何其它数目)并且第二计数器的第二计数没有超过阈值(例如,计数0、7或者任何其它数目),可以分配计算资源增加(例如,由存储过程使用的缓冲器的大小增加)。响应于第二计数器的第二计数超过资源取消分配阈值(例如,计数10或者任何其它数目)并且第一计数器的第一计数没有超过阈值(例如,计数0、3或者任何其它数目),可以执行计算资源减少(例如,由存储过程使用的缓冲器的大小减少)。在另一示例中,可以基于通信可用性指示符和通信不可用性指示符动态地调整资源分配(例如,基于来自网络接口的通信可用性和不可用性信号的实时资源分配控制)。在一个示例中,可以已经初始地向存储过程和由源存储计算设备主控的第二存储过程分配相同数量的计算资源,然而可以调整存储过程的资源分配,从而使得存储过程和第二存储过程可以具有不同资源分配。

可以实施平滑和/或滞后用于调整资源分配。在平滑和/或滞后的一个示例中,可以基于第一计数超过资源分配阈值来动态地增加用于存储过程的资源分配。可以在资源分配增加之后随后接收阈值数目的通信不可用性信号,这可以指示存储过程被分配太多资源,从而使得存储过程相对于网络通信信道的可用性而正在太快地处理数据用于传输。因而,可以调整资源分配阈值(例如,从15改变成20)和/或可以调整用于增加资源分配的计算资源数量(例如,有别于添加附加50MB存储器用于增加资源分配,可以分配仅25MB存储器用于增加资源分配)。

在平滑和/或滞后的另一示例中,可以基于第二计数超过资源取消分配阈值动态地减少用于存储过程的资源分配。可以在资源分配减少之后随后接收阈值数目的通信可用性信号,这可以指示存储过程被分配太少资源,从而使得存储过程没有处理数据快到足以完全地利用网络通信信道的可用性。因而,可以调整资源取消分配阈值(例如,从10改变成18)和/或可以调整用于减少资源分配的计算资源数量(例如,有别于去除50MB存储器用于减少资源分配,可以去除仅10MB存储器用于减少资源分配)。

图4A-4G图示用于基于网络流控制的动态资源分配的计算设备400的示例。图4A图示主控压缩存储过程412和复制存储过程414的资源存储计算设备402,这些过程被配置为处理和通过网络通信信道422经过网络接口420从资源存储计算设备402向目的地存储计算设备424发送数据。可以初始地向压缩存储过程412分配50MB存储器以用作第一缓冲器416、CPU周期时间和/或其它资源。可以初始地向复制存储过程414分配50MB存储器以用作第二缓冲器418、CPU周期时间和/或其它资源。

可以维持与由网络接口420向压缩存储过程412提供的通信可用性信号的第一计数对应的第一计数器404。可以维持与由网络接口420响应于由压缩存储过程412向网络接口420发送的数据传输请求而向压缩存储过程412提供的通信不可用性信号的第二计数对应的第二计数器406。可以维持与由网络接口420向复制存储过程414提供的通信可用性信号的第三计数对应的第三计数器408。可以维持与由网络接口420响应于由复制存储过程414向网络接口420发送的数据传输请求而向复制存储过程414提供的通信不可用性信号的第四计数对应的第四计数器410。

可以针对第一计数器404和第三计数器408来维持被用来触发动态增加用于压缩存储过程412和/或复制存储过程414的资源分配的资源分配阈值426(例如,计数15)。可以针对第二计数器406和第四计数器410来维持被用来触发动态减少用于压缩存储过程412和/或复制存储过程414的资源分配的资源取消分配阈值428(例如,计数10)。

图4B图示网络接口420向压缩存储过程412发送通信可用性信号430。通信可用性信号430可以指示网络通信信道422未被占用而可用于向目的地存储计算设备424传输数据。由于第一缓冲器416可能缺乏数据用于压缩存储过程412发送以作为响应于通信可用性信号430的数据传输请求,所以可以递增第一计数器404的第一计数从0到1以指示压缩存储过程412可以能够利用更多计算资源用于处理数据用于传输以便更高效地利用网络通信信道422的可用性。

图4C图示第一计数16基于从网络接口420接收一个或者多个通信可用性信号440用于压缩存储过程412而超过资源分配阈值426。因而,可以向压缩存储过程412分配附加计算资源(例如,CPU周期时间增加、执行优先级增加、存储器增加等)。例如,可以增加第一缓冲器416的大小从50MB到75MB从而产生增加的第一缓冲器416a。以这种方式,压缩存储过程412可以利用增加的第一缓冲器416a、增加的CPU周期时间、增加的执行优先级和/或其它资源增加用于在可以更有效地利用网络通信信道422的可用性的速率处理数据。如图4D中所示可以基于增加的计算资源分配将第一计数重置成0。

图4D图示网络接口420响应于由复制存储过程414向网络接口420发送的数据传输请求而向复制存储过程414发送通信不可用性信号450。通信不可用性信号450可以指示网络通信信道422被占用而不可用于向目的地存储计算设备424传输数据。可以递增第四计数器410的第四计数到3(例如,基于接收3个通信不可用性信号)以指示复制存储过程414可能已经被分配比为了复制存储过程414有成效地利用网络通信信道422而需要的计算资源更多的计算资源,因此如果向比如用于服务于客户端I/O请求的其它过程重新分配则可以更好利用分配的计算资源的一些计算资源。

图4E图示网络接口420向复制存储过程414发送通信可用性信号460。可以基于通信可用性信号460递增第三计数器408的第三计数。可以基于通信可用性信号460重置第四计数器410的第四计数为0,因为第四计数器410对应于通信不可用性信号而不是通信可用性信号的计数。

图4F图示第四计数11基于从网络接口420接收一个或者多个通信不可用性信号470用于复制存储过程414而超过资源取消分配阈值428。因而,可以从复制存储过程414取消分配计算资源(例如,减少的CPU周期、减少的存储器等)。例如,可以减少第二缓冲器418的大小从50MB到20MB从而产生减少的第二缓冲器418a。以这种方式,可以向资源存储计算设备402的其它过程、应用和/或服务重新分配取消分配的资源,因为复制存储过程414由于网络通信信道422是瓶颈而不能有成效地利用计算资源。如图4G中所示可以基于减少的计算资源分配将第四计数器重置成0。

图4G图示基于在用于复制存储过程414的计算资源减少之后接收接收阈值数目的通信可用性信号480而修改资源取消分配阈值428。由于通信可用性信号480可以指示从复制存储过程414取消分配太多计算资源,所以可以增加资源取消分配阈值428从10到16(例如,基于各种平滑和/或滞后策略),从而使得可以使得对资源取消分配的触发不敏感。可以调整资源取消分配数量(例如,基于各种平滑和/或滞后策略)比如从减少25MB到减少5MB。例如,可以将减少的第二缓冲器418设置成45MB从而产生调整的第二缓冲器418b。以这种方式,复制存储过程414可以具有对用于有成效地利用网络通信信道422的网络带宽的计算资源的高效分配。

更多另一实施例涉及到一种包括处理器可执行指令的计算机可读介质,这些计算机可执行指令被配置为实施这里描述的技术的一种或者多种技术。在图5中图示以这些方式设计的计算机可读介质或者计算机可读设备的一个示例实施例,其中实现方式500包括在其上对计算机可读数据506进行编码的计算机可读介质508、比如CD-R、DVD-R、闪存驱动、硬盘驱动的母板等。这一计算机可读数据506、比如包括零或者一中的至少一个的二进制数据又包括配置为根据这里阐述的原理的一个或者多个原理操作的计算机指令504的集合。在一些实施例中,处理器可执行计算机指令504被配置为执行方法502。如例如图3的示例性方法300中的至少一些。在一些实施例中,处理器可执行指令504被配置为实施系统,如例如图4A至图4G的示例性系统400中的至少一些。设想了许多这样的计算机可读介质根据这里呈现的技术操作。

将认识到,可以在硬件、固件和/或软件中实施这里描述的过程、架构和/或程序。也将认识到,这里阐述的条款可以适用于任何类型的专用计算机(例如,文件主机、存储服务器和/或存储服务装置)和/或通用计算机、包括体现为或者包括存储系统的单独计算机或者其部分。另外,这里的教导可以被配置成多种存储系统架构、包括但不限于网络附着存储环境和/或直接地附着到客户端或者主机计算机的存储区域网络和磁盘组件。因此应当广义地解读存储系统除了配置为执行存储功能和与其它装备或者系统关联的任何子系统之外也包括这样的布置。

在一些实施例中,可以完全或者部分在计算机可读介质上实现在本公开内容中描述和/或图示的方法。计算机可读介质可以包括配置为实施这里呈现的方法的一种或者多种方法的处理器可执行指令并且可以包括用于存储随后可以由计算机系统读取的这一数据的任何机制。计算机可读介质的示例包括(硬)驱动(例如,经由网络附着存储(NAS)可访问)、存储区域网络(SAN)、易失性和非易失性存储器、比如只读存储器(ROM)、随机存取存储器(RAM)、EEPROM和/或闪存、CD-ROM、CD-R、CD-RW、DVD、磁盒、磁带、磁盘存储装置、光或者非光数据存储设备和/或可以被用来存储数据的任何其它介质。

虽然已经用结构特征或者方法动作特有的言语描述主题内容,将理解在所附权利要求中定义的主题内容未必地限于以上描述的具体特征或者动作。实际上,公开以上描述的具体特征和动作作为实施权利要求中的至少一些权利要求的示例形式。

这里提供实施例的各种操作。不应解释对操作的一些或者所有操作进行描述的顺序意味着这些操作必然地依赖于顺序。将认识到,具有本说明书的益处的备选排序。另外,将理解不是所有操作必然地存在于这里提供的每个实施例中。也将理解不是所有操作在一些实施例中是必需的。

另外,实施要求保护的主题内容为一种使用标准应用或者工程技术以产生软件、固件、硬件或者其任何组合以控制计算机实施公开的主题内容的方法、装置或者制造品。如这里所用术语“制造品”旨在于涵盖从任何计算机可读设备、载体或者介质可访问的计算机应用。当然,可以对这一配置做出许多修改而没有脱离要求保护的主题内容的范围或者精神实质。

如在本申请中所用,术语“部件”、“模块”、“系统”、“接口”等一般地旨在于指代硬件、硬件和软件的组合、软件或者在执行中的软件的计算机有关实体。例如,部件包括在处理器上运行的过程、处理器、对象、可执行文件、执行的线程、应用或者计算机。举例而言,在控制器上运行的应用和控制器二者可以是部件。在执行的过程或者线程和部件内驻留的一个或者多个部件可以被局限在一个计算机上或者分布于两个或者更多计算机之间。

另外,“示例性”这里被用来意味着用作示例、实例、说明等并且未必地有利。如在本申请中所用,“或者”旨在于意味着包含意义的“或者”而不是排他性的“或者”。此外,除非另有指定或者从上下文清楚是涉及单数形式,一般地解释如在本申请中所用“一个/种”意味着“一个/种或者多个/种”。另外,A和B中的至少一个和/或其它短语一般地意味着A或者B和/或A和B二者。另外,在使用“包括(include)”、“具有”、“有”或者其变体的程度上,这样的术语旨在于以与术语“包括(comprise)”相似的方式有包含意义。

可以对本公开内容做出许多修改而没有脱离要求保护的主题内容的范围或者精神实质。除非另有指定,“第一”、“第二”等没有旨在于意味着时间方面、空间方面、排序等。实际上,仅使用这样的术语作为用于特征、单元、项目等的标识符、名称等。例如,第一信息集和第二信息集一般地对应于信息集A和信息集B或者两个不同或者两个相同信息”或者相同信息集。

另外,虽然已经参照一个或者多个实现方式示出和描述公开内容,但是等效变更和修改将基于对本说明书和附图的阅读和理解而为本领域其他技术人员所清楚。公开内容包括所有这样的修改和变更而仅受所附权利要求的范围限制。具体关于由以上描述的部件(例如,单元、资源等)执行的各种功能,被用来描述这样的部件的术语旨在于除非另有指示则对应于执行描述的部件的指定的功能(例如,功能等效)、即使与公开的结构没有结构等效的任何部件。此外,尽管已经仅参照若干实现方式之一公开本公开内容的特定特征,但是这样的特征可以如针对任何给定或者具体的应用而言可能希望和有利的那样与其它实现方式的一个或者多个其它特征组合。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1