用于动态备份会话的系统和方法与流程

文档序号:18179898发布日期:2019-07-17 05:08阅读:222来源:国知局
用于动态备份会话的系统和方法与流程

本公开涉及数据存储。



背景技术:

计算设备生成、使用和存储数据。数据例如可以是与数据相关联的图像、文档、网页或元数据。数据可以存储在持久性存储装置上。可以从持久性存储装置中删除所存储的数据。

可以通过将其存储在第二计算设备上来备份存储在计算设备上的数据的备份。第二计算设备可以在地理上与计算设备分离。



技术实现要素:

在一个方面,根据本发明的一个或多个实施例的用于经由存储网关提供存储访问的协调器包括持久性存储装置和处理器。持久性存储装置包括工作负载策略。处理器从客户端获得数据存储访问请求,标识由数据存储访问请求指示的工作负载类型,使用工作负载策略和所标识的工作负载类型来标识存储网关中用来服务存储访问请求的存储网关,以及分配所标识的存储网关以向客户端提供存储访问。

在一个方面,根据本发明的一个或多个实施例的操作用于经由存储网关提供存储访问的协调器的方法包括通过协调器从客户端获得数据存储访问请求。该方法包括通过协调器标识由数据存储访问请求指示的工作负载类型。该方法包括通过协调器使用工作负载策略和所标识的工作负载类型来标识存储网关中用来服务存储访问请求的存储网关。该方法包括通过协调器分配所标识的存储网关以向客户端提供存储访问。

在一个方面,根据本发明的一个或多个实施例的非暂时性计算机可读介质包括计算机可读程序代码,该计算机可读程序代码在由计算机处理器执行时使计算机处理器能够执行用于操作经由存储网关提供存储访问的协调器的方法。该方法包括通过协调器从客户端获得数据存储访问请求。该方法包括通过协调器标识由数据存储访问请求指示的工作负载类型。该方法包括通过协调器使用工作负载策略和所标识的工作负载类型来标识存储网关中用来服务存储访问请求的存储网关。该方法包括通过协调器分配所标识的存储网关以向客户端提供存储访问。

附图说明

将参考附图描述本发明的某些实施例。然而,附图仅通过示例的方式示出了本发明的某些方面或实施方式,并不意味着限制权利要求的范围。

图1a示出了根据本发明的一个或多个实施例的系统的图。

图1b示出了根据本发明的一个或多个实施例的示例协调器的图。

图1c示出了根据本发明的一个或多个实施例的示例存储网关的图。

图1d示出了根据本发明的一个或多个实施例的示例存储装置的图。

图1e示出了根据本发明的一个或多个实施例的第一示例拓扑的图。

图1f示出了根据本发明的一个或多个实施例的第二示例拓扑的图。

图2a示出了根据本发明的一个或多个实施例的综合存储网关操作指标的示例的图。

图2b示出了根据本发明的一个或多个实施例的并发会话的示例的图。

图2c示出了根据本发明的一个或多个实施例的存储连接特性的示例的图。

图2d示出了根据本发明的一个或多个实施例的示例工作负载策略的图。

图3示出了根据本发明的一个或多个实施例的系统关系的图。

图4a示出了根据本发明的一个或多个实施例的服务客户端的方法的流程图。

图4b示出了根据本发明的一个或多个实施例的标识存储网关的方法的流程图。

图4c示出了根据本发明的一个或多个实施例的标识存储网关集的方法的流程图。

图4d示出了根据本发明的一个或多个实施例的检查容量的方法的流程图。

图5示出了根据本发明的一个或多个实施例的访问存储装置的方法的流程图。

图6示出了根据本发明的一个或多个实施例的计算设备的图。

具体实施方式

下面将参照附图说明本发明的具体实施方式。在以下说明中,阐述了许多细节作为本发明的示例。本领域技术人员应理解,无需这些具体细节即可实践本发明的一种或多种实施方式,并且在不脱离本发明的范围的情况下可做出各种变化或修改。在本文中省略了本领域普通技术人员已知的某些细节,以避免使说明变得模糊。

在以下的附图说明中,在本发明的多种实施方式中参照某个附图说明的任何部件可以等同于参照任何其它附图说明的一个或多个以类似方式命名的部件。为了简洁起见,不会参照每个附图重复说明这些部件。因此,每个附图的部件的每种实施方式通过引用结合在此,并假定其可选地存在于具有一个或多个以类似方式命名的部件的每个其它附图中。此外,根据本发明的多种实施方式,对附图的部件的任何说明应理解为可选的实施方式,这种可选的实施方式可以是除了相对于任何其它附图中的以类似方式命名的相应部件说明的实施方式之外的实施方式,与这些实施方式结合实施,或者代替这些实施方式。

本发明的实施方式总体涉及用于管理数据的系统、装置和方法。更具体地说,所述系统、装置和方法可动态地修改存储网关的并发会话数和/或缓存器行为。动态修改存储网关可使存储网关能够在满足服务质量目标的同时向客户端提供数据管理服务。

在本发明的一种或多种实施方式中,存储网关通过利用多个存储装置向客户端提供数据管理服务。换言之,存储网关可将来自客户端的数据存储在多个存储装置中,以向客户端提供数据管理服务。

在本发明的一种或多种实施方式中,可基于客户端工作负载的类型、存储网关与存储装置之间的连接、和/或存储网关的可用计算资源来修改存储网关。

在本文中所用的计算资源指处理器计算周期、通信带宽、暂时存储输入-输出周期、持久性存储输入-输出周期、和/或暂时或持久性存储器的存储容量。例如可通过随机存取存储器实现暂时存储。用于持久性存储的存储器例如可由固态硬盘驱动器提供。处理器计算周期例如可由中央处理单元提供。通信带宽例如可由网络接口卡提供。

图1a示出了本发明的一种或多种实施方式的计算系统。所述系统可包括客户端(100)、管理客户端数据的存储网关(110)、将各个客户端(102、104)指定给各个存储网关(112、114)的协调器(120)、以及存储来自客户端(100)的数据的存储装置(130)。客户端(100)、存储网关(110)、协调器(120)和存储装置(130)可以可操作地彼此连接。所述连接例如可以是网络连接。每个系统组件将在下文中说明。

客户端(100)可以是计算设备。所述计算设备例如可以是移动电话、平板计算机、便携式计算机、台式计算机、服务器、或云资源。计算设备可包括一个或多个处理器、存储器(例如随机存取存储器)和持久性存储装置(例如磁盘驱动器、固态驱动器等)。持久性存储装置可存储在由计算设备的处理器执行时使计算设备执行本申请中说明的功能和图5中所示的方法的计算机指令,例如计算机代码。在不脱离本发明的情况下,客户端(100)可以是其它类型的计算设备。

客户端(100)可被编程为经由存储网关(110)将数据存储在存储装置(130)中。通过将数据存储在存储装置中,客户端(100)可存储数据的备份副本和/或降低客户端的存储装置利用率。

在本发明的一种或多种实施方式中,客户端(100)经由存储网关(110)将相应客户端的全部或部分数据的副本存储在存储装置(130)中。换言之,存储网关(110)可用于备份客户端的数据。

在本发明的一种或多种实施方式中,客户端(100)经由存储网关(110)将数据存储在存储装置(130)中。换言之,客户端(100)不是将数据存储到本地存储装置中,而是可经由存储网关(110)将数据存储在存储装置(130)中,而不产生存储数据的本地副本。

在本发明的一种或多种实施方式中,每个客户端可指定为经由单个存储网关将数据存储在存储装置(130)中。每个客户端可从协调器(120)接收相应的指定结果。在指定之后,每个客户端可使用指定的存储网关继续向存储装置(130)存储数据。在本发明的一种或多种实施方式中,客户端可执行图5中所示的方法,以获得指定结果和利用所述指定结果向存储装置存储/从存储装置获取数据。

虽然客户端(102、104)被示为指定给单独的存储网关(110),但是在不脱离本发明的情况下,也可将多个客户端指定给同一个存储网关。但是,将多个客户端指定给同一个云网关可能降低向指定给该存储网关的客户端提供的服务质量。例如,向存储装置存储数据或从存储装置提供数据的过程可能消耗存储网关的计算资源。如下文中所进一步详述,协调器可指定客户端由不同的存储网关服务,以保持由存储网关提供的服务质量。

如上所述,客户端(100)可经由存储网关(110)在存储装置中存储数据。存储网关(110)可以是计算设备。所述计算设备例如可以是移动电话、平板计算机、便携式计算机、台式计算机、服务器、分布式计算系统或云资源。计算设备可包括一个或多个处理器、存储器(例如随机存取存储器)和持久性存储装置(例如磁盘驱动器、固态驱动器等)。持久性存储装置可存储在由计算设备的处理器执行时使计算设备执行本申请中说明的功能的计算机指令,例如计算机代码。在不脱离本发明的情况下,存储网关(110)可以是其它类型的计算设备。

在本发明的一种或多种实施方式中,所述存储网关(110)可以是分布式计算设备。在本文中所用的分布式计算设备指由利用一个或多个独立和/或不同的计算设备的计算资源的逻辑设备提供的功能。例如,在本发明的一种或多种实施方式中,存储网关(110)可以是包括分布在多个独立和/或不同的计算设备上的组件的分布式设备。在这种情况中,在不脱离本发明的情况下,存储网关(110)的功能可由多个不同的计算设备执行。

存储网关(110)可管理客户端数据。存储网关(110)可通过从客户端(100)接收存储或获取数据的请求来管理客户端数据。存储网关(110)可响应于这些请求执行适当的动作来满足来自客户端的上述存储/访问请求。欲了解存储网关的更多细节,请参考图1c。

虽然存储网关(112、114)被示为可操作地连接至单独的存储装置集(132、134),但是在不脱离本发明的情况下,多个存储网关可以可操作地连接至共享和单独的存储装置的任何组合。欲了解存储网关(110)与存储装置(130)的存储装置集(132、134)之间的连接的更多细节,请参考图1e-1f。

如上所述,存储网关(110)可通过将客户端数据存储在存储装置(130)中来管理客户端数据。存储装置(130)可以是计算设备。所述计算设备例如可以是移动电话、平板计算机、便携式计算机、台式计算机、服务器、分布式计算系统或云资源。计算设备可包括一个或多个处理器、存储器(例如随机存取存储器)和持久性存储装置(例如磁盘驱动器、固态驱动器等)。持久性存储装置可存储在由计算设备的处理器执行时使计算设备执行本申请中说明的功能的计算机指令,例如计算机代码。在不脱离本发明的情况下,存储装置(130)可以是其它类型的计算设备。

在本发明的一种或多种实施方式中,存储装置(130)可以是分布式计算设备。在本文中所用的分布式计算设备指由利用一个或多个独立和/或不同的计算设备的计算资源的逻辑设备提供的功能。例如,在本发明的一种或多种实施方式中,存储装置(130)可以是包括分布在多个独立和/或不同的计算设备上的组件的分布式设备。在这种情况中,在不脱离本发明的情况下,存储装置(130)的功能可由多个不同的计算设备执行。

存储装置(130)可存储客户端数据或提供先前存储的客户端数据。存储装置(130)可响应于来自存储网关(110)的请求存储或提供客户端数据。存储装置(130)可响应于这些请求执行适当的动作来满足来自存储网关的上述存储/访问请求。欲了解存储装置(130)的更多细节,请参考图1f。

虽然存储装置集(132、134)被示为可操作地连接至单独的存储网关(112、114),但是在不脱离本发明的情况下,多个存储装置集可以可操作地连接至存储网关的任何组合。换言之,存储装置集可为任意数量的存储网关提供存储服务。

如上所述,存储网关(110)可管理客户端。为了保持为客户端(100)提供的服务质量,协调器(120)可将客户端指定给不同的存储网关(110)。协调器(120)可以是计算设备。所述计算设备例如可以是移动电话、平板计算机、便携式计算机、台式计算机、服务器、分布式计算系统或云资源。计算设备可包括一个或多个处理器、存储器(例如随机存取存储器)和持久性存储装置(例如磁盘驱动器、固态驱动器等)。持久性存储装置可存储在由计算设备的处理器执行时使计算设备执行本申请中说明的功能和图4a-4d中所示的方法的计算机指令,例如计算机代码。在不脱离本发明的情况下,协调器(120)可以是其它类型的计算设备。

在本发明的一种或多种实施方式中,协调器(120)可以是分布式计算设备。例如,协调器(120)可以是包括分布在多个单独和/或不同的计算设备上的组件的分布式设备。在这种情况中,在不脱离本发明的情况下,协调器(120)的功能可由多个不同的计算设备执行。

协调器(120)可指定客户端由存储网关(110)服务。协调器(120)可进行所述指定,以保持由存储网关(110)提供给客户端(100)的服务质量。协调器(120)可基于纳入了以下的一个或多个因素的一组规则来进行所述指定:(i)客户端的当前和/或未来工作负载,(ii)存储网关(110)在向客户端(100)提供服务时使用的存储装置之间的连接特性,以及存储网关(110)的计算资源的可用性。在不脱离本发明的情况下,该组规则可考虑更多、不同或更少的因素。欲了解协调器(120)的更多细节,请参考图1b。

为了进一步解释系统组件的操作,图1b-1d示出了图1a的系统的各个组件的示意图。虽然这些示意图示出了系统组件的各个部分,但是在不脱离本发明的情况下,系统的每个组件可包括更多、更少或不同的部分。

图1b示出了本发明的一种或多种实施方式的示例性协调器(140)。示例性协调器(140)可提供与图1a中所示的协调器相同的功能。如参照图1a所述,示例性协调器(140)可将客户端指定给存储网关以获得服务。为了提供上述功能,协调器可包括存储网关监视器(141)、规则引擎(142)、客户端管理器(143)和持久性存储装置(145)。下面说明示例性协调器(140)的每个组件。

在本发明的一种或多种实施方式中,存储网关监视器(141)获得存储网关的操作指标并综合上述指标。综合指标可存储在持久性存储装置(145)上。如下文中所进一步详述,规则引擎(142)可在协助客户端管理器(143)进行客户端指定时利用所述综合指标。

在本发明的一种或多种实施方式中,所述存储网关监视器(141)可以电路的形式实现。例如,存储网关监视器(141)可实现为现场可编程门阵列、应用集成电路、数字信号处理器或模拟电路。在不脱离本发明的情况下,存储网关监视器(141)可实现为其它类型的电路。

在本发明的一种或多种实施方式中,存储网关监视器(141)可实现为存储在非暂时性计算机可读存储介质上的由处理器执行的计算机可读指令。该计算机可读指令可使处理器执行存储网关监视器(141)的上述功能。

规则引擎(142)可协助客户端管理器(143)将客户端指定给存储网关。如上所述,将客户端指定给存储网关可能降低由存储网关提供的服务质量。为了满足存储网关的服务质量要求,客户端管理器(143)可请求规则引擎(142)确定将特定客户端指定给某个存储网关是否会对由云存储网关提供的服务质量产生不良影响。

在本发明的一种或多种实施方式中,规则引擎(142)基于一组规则进行确定。该组规则可基于以下一个或多个因素来规范确定操作:(i)特定客户端将施加给存储网关的工作负载的类型,(ii)施加的工作负载的模式,(iii)客户端与将由云网关用于存储客户端数据的存储装置之间的连接的特性,(iv)将由存储网关用于存储客户端数据的存储装置的特性,以及(v)存储网关的缓存器大小。该确定操作可针对客户端将施加给存储网关的将对存储网关提供的服务质量产生不良影响的工作负载的类型限定并发会话的数目。在本发明的一种或多种实施方式中,规则引擎(142)可基于较少的因素(例如示例性的工作负载策略(230))进行确定。欲了解工作负载策略的更多细节,请参考图2d。

在本发明的一种或多种实施方式中,客户端将施加的工作负载的类型限定客户端将经由存储网关存储的文件的类别。所述类别可以是以下的一种或多种:(a)数据库、(b)非结构化数据、以及(c)文件系统备份。在不脱离本发明的情况下,可基于更多类别来进行分类。每个类别可能会向存储网关施加不同级别的工作负载。例如,由于数据库的更改频率,经由云网关将数据库存储在存储装置中的客户端可能会施加较高的工作负载。与此相反,存储文件系统的备份可能会向云网关施加较低的工作负载。因此,通过对不同类型的工作负载进行分类,规则引擎可提供云网关保持客户端服务质量的能力的准确估算结果。

在本发明的一种或多种实施方式中,施加的工作负载的模式限定由客户端存储的数据是与由客户端存储的相应数据同步维护还是与由客户端存储的相应数据异步维护。同步和异步模式可能会向存储网关施加不同的工作负载。例如,以同步模式操作的客户端可能频繁地向存储网关发送数据的变更内容。与此相反,异步模式可能不太频繁地向存储网关发送变更内容。因此,通过根据操作模式来分类客户端,规则引擎能够提供云网关保持客户端服务质量的能力的准确估算结果。

在本发明的一种或多种实施方式中,连接的特性可能限定客户端与由存储网关用于满足客户端存储需求的存储装置之间的带宽和/或延迟。通过根据客户端与存储装置之间的连接的特性来分类客户端,规则引擎能够确定存储网关是否能向客户端提供一定质量的服务。

在本发明的一种或多种实施方式中,存储装置的特性限定由存储装置利用的数据结构和/或空间节省机制的类型。由存储装置利用的数据结构和/或空间节省机制的类型可能控制可从存储装置获取存储数据的速率。例如,存储装置可利用重复数据删除来节省空间,但这样做的代价是增加从存储装置获取存储数据所需的时间。通过根据存储装置的特性来分类存储装置,规则引擎能够确定存储网关是否能向客户端提供一定质量的服务。为简单起见,可将利用不同类型的数据结构和/或空间节省机制的不同类型的存储装置分类为由字母表示的类别,例如a、b、c等。每个类别可代表存储网关为存储客户端数据所利用的存储装置用于存储或提供存储在其中的客户端数据的相对时间量。

在本发明的一种或多种实施方式中,缓存器大小特性限定存储网关可用的缓存器量。存储网关的缓存器大小可能影响存储网关向存储装置存储数据/从存储装置获取数据的能力。通过根据缓存器大小来分类存储网关,规则引擎能够确定存储网关是否能向客户端提供一定质量的服务。

为了进一步阐明规则引擎(142)的操作,提供了一组示例性规则,并将其应用于下文中的表1内的五个存储网关。在表1中,前七列表示规则引擎在确定最大数据流数目时所考虑的因素的示例和相应存储网关的标识符。第八列表示相应存储网关的规则引擎的确定,该规则引擎针对可向存储网关分配的相应客户端工作负载限定不会导致存储网关的服务质量降低的最大并发会话数,即,可指定给存储网关的客户端的数量。

表1由规则引擎(142)应用的一组示例性规则

如表1的第1行所示,可向具有标识符cb1的存储网关同时指定最多20个客户端,以服务于数据库工作负载。换言之,可指定最多20个想在cb1存储网关中存储数据库文件的客户端,而不会对存储网关向所指定的客户端提供的服务质量产生不良影响。

与此对比,如表1的第2行所示,可向具有标识符cb2的存储网关同时指定最多256个客户端,以服务于数据库工作负载。换言之,可指定最多256个想在cb2存储网关中存储数据库文件的客户端,而不会对存储网关向所指定的客户端提供的服务质量产生不良影响。cb2具有带宽较大的连接,因此能够支持较多并发会话,而不会降低提供的服务质量。

在cb3-cb5存储网关设备中能看到类似的差异。换言之,规则引擎限定不同的允许并发会话数。

在本发明的一种或多种实施方式中,规则引擎(142)可以电路的形式实现。例如,规则引擎(142)可实现为现场可编程门阵列、应用集成电路、数字信号处理器或模拟电路。在不脱离本发明的情况下,规则引擎(142)可实现为其它类型的电路。

在本发明的一种或多种实施方式中,规则引擎(142)可实现为存储在非暂时性计算机可读存储介质上的由处理器执行的计算机可读指令。该计算机可读指令可使处理器执行规则引擎(142)的上述功能。

如上所述,客户端管理器(143)可使用由规则引擎(142)给出的确定结果向存储网关指定客户端。当客户端试图经由存储网关存储数据时,客户端可首先利用存储请求通知客户端管理器(143)。作为响应,客户端管理器(143)可从规则引擎(142)请求获得关于可能的指定(例如将客户端指定给特定存储网关)的确定结果。响应于该请求,规则引擎(142)向客户端管理器(143)提供确定结果。如果确定结果表明可能的指定会降低由特定存储网关提供的服务质量,那么客户端管理器(143)可以不将该客户端分配给特定存储网关,并且可发送要求确定第二个可能的存储网关的另一个请求。客户端管理器(143)可继续执行上述过程,直到确定所述指定不会对存储网关提供的服务质量产生不良影响。客户端管理器(143)可将客户端指定给能够为客户端提供服务同时不会对存储网关提供的服务质量产生负面影响的存储网关。

在本发明的一种或多种实施方式中,客户端管理器(143)可以电路的形式实现。例如,客户端管理器(143)可实现为现场可编程门阵列、应用集成电路、数字信号处理器或模拟电路。在不脱离本发明的情况下,客户端管理器(143)可实现为其它类型的电路。

在本发明的一种或多种实施方式中,客户端管理器(143)可实现为存储在非暂时性计算机可读存储介质上的由处理器执行的计算机可读指令。该计算机可读指令可使处理器执行客户端管理器(143)的上述功能。

如上所述,存储网关监视器(141)和规则引擎(142)可利用存储在持久性存储装置(145)中的数据结构。持久性存储装置(145)可以是物理设备。物理设备例如可以是固态硬盘驱动器、磁盘驱动器、磁带驱动器或其它非暂时性存储介质。在本发明的一些实施方式中,持久性存储装置(145)可以是利用一个或多个其它设备的物理计算资源来提供数据存储功能的逻辑设备。例如,持久性存储装置(145)可以是利用多个独立计算设备的磁盘驱动器的物理存储容量的逻辑存储装置。

持久性存储装置(145)可存储综合存储网关操作指标(146)和/或工作负载策略(147)。在不脱离本发明的情况下,持久性存储装置(145)可存储更多、不同或更少的数据。

在本发明的一种或多种实施方式中,综合存储网关操作指标(146)可以是存储在持久性存储装置(145)中的数据结构。该数据结构可包含由存储网关监视器(141)和/或示例性协调器(140)的其它组件收集的信息。综合存储网关操作指标(146)可由规则引擎(142)使用,以做出关于为特定客户端提供服务的可能的存储网关的确定。欲了解综合存储网关操作指标(146)的更多细节,请参考图2a。

在本发明的一种或多种实施方式中,工作负载策略(147)可以是存储在持久性存储装置(145)中的数据结构。该数据结构可包含由规则引擎(142)用于做出关于将客户端指定给可能的存储网关的确定的信息。欲了解工作负载策略(147)的更多细节,请参考图2d。

在由协调器指定后,存储网关可向指定给相应存储网关的客户端提供存储服务。所述存储服务包括存储客户端数据和提供先前存储的客户端数据。

图1c示出了本发明的一种或多种实施方式的示例性存储网关(150)。为了提供上述存储服务并使协调器能够做出关于示例性存储网关(150)的确定,示例性存储网关(150)可包括存储管理器(151)、存储网关操作监视器(152)和持久性存储装置(153)。下面论述示例性存储网关(150)的每个组件。

在本发明的一种或多种实施方式中,存储管理器(151)满足来自客户端的数据存储/访问请求。为了满足请求,存储管理器(151)可将数据存储在持久性存储装置(153)内的缓存器(154)中和/或可操作地连接至存储管理器的存储装置中。类似地,存储管理器(151)可检索缓存器(154)和/或可操作地连接至存储管理器的存储装置中的数据。在本发明的一种或多种实施方式中,存储装置独立于示例性存储网关(150),例如是另一个设备的一部分。

在本发明的一种或多种实施方式中,缓存器(154)可保存存储在存储装置中的一部分客户端数据的副本。在满足客户端的请求时,存储管理器(151)可优先检索存储在缓存器(154)中的客户端数据的副本,而不是检索存储在存储装置中的客户端数据的副本。

在本发明的一种或多种实施方式中,存储管理器(151)可以电路的形式实现。例如,存储管理器(151)可实现为现场可编程门阵列、应用集成电路、数字信号处理器或模拟电路。在不脱离本发明的情况下,存储管理器(151)可实现为其它类型的电路。

在本发明的一种或多种实施方式中,存储管理器(151)可实现为存储在非暂时性计算机可读存储介质上的由处理器执行的计算机可读指令。该计算机可读指令可使处理器执行存储管理器(151)的上述功能。

在本发明的一种或多种实施方式中,存储网关操作监视器(152)将关于示例性存储网关(150)的操作的数据存储在持久性存储装置(153)中,作为存储网关操作指标(155)。存储网关操作监视器(152)可监视示例性存储网关(150)的操作,并按任何固定时间间隔的调度计划连续、周期性地更新存储网关操作指标(155),和/或响应于来自协调器的请求更新存储网关操作指标(155)。在不脱离本发明的情况下,可使用不同的调度方案来执行更新。

在本发明的一种或多种实施方式中,存储网关操作监视器(152)可以电路的形式实现。例如,存储网关操作监视器(152)可实现为现场可编程门阵列、应用集成电路、数字信号处理器或模拟电路。在不脱离本发明的情况下,存储网关操作监视器(152)可实现为其它类型的电路。

在本发明的一种或多种实施方式中,存储网关操作监视器(152)可实现为存储在非暂时性计算机可读存储介质上的由处理器执行的计算机可读指令。该计算机可读指令可使处理器执行存储网关操作监视器(152)的上述功能。

持久性存储装置(153)可以是物理设备。物理设备例如可以是固态硬盘驱动器、磁盘驱动器、磁带驱动器或其它非暂时性存储介质。在本发明的一些实施方式中,持久性存储装置(153)可以是利用一个或多个其它设备的物理计算资源来提供数据存储功能的逻辑设备。例如,持久性存储装置(153)可以是利用多个独立计算设备的磁盘驱动器的物理存储容量的逻辑存储装置。

持久性存储装置(153)可存储缓存器(154)和/或存储网关的操作指标(155)。在不脱离本发明的情况下,持久性存储装置(153)可存储更多、不同或更少的数据。

在本发明的一种或多种实施方式中,缓存器(154)是存储在持久性存储装置(153)中的数据结构。该数据结构可包括存储在存储装置中的客户端数据的副本。在一些情况下,客户端数据可首先存储在缓存器(154)中,而客户端数据的副本可随后存储在存储装置中。可删除缓存器中的一部分客户端数据,从而导致在缓存器(154)中仅保存存储在存储装置中的客户端数据的一部分的副本。

在本发明的一种或多种实施方式中,存储网关操作指标(155)可以是存储在持久性存储装置(153)中的数据结构。该数据结构可包括由协调器用于做出关于可能将客户端指定给存储网关的确定的信息。协调器可将存储网关操作指标(155)与来自任何数量的其它示例性存储网关(150)的类似数据综合。欲了解综合存储网关操作指标的更多细节,请参考图2a-2c。

如上所述,为了满足客户端的存储/访问请求,存储网关可利用存储装置。存储装置可以是可操作地连接至存储网关的独立设备。每个存储网关可连接至任意数量的存储装置。图1e和1f示出了存储网关和存储拓扑的示例。

图1e示出了第一示例性存储拓扑的示意图。第一示例性存储拓扑包括可操作地连接至一组存储装置(171)的示例性存储网关(170)。示例性存储网关(170)通过相应的可操作连接(175、176、177)连接至该组存储装置中的存储装置(172、173、174)。

图1f示出了第二示例性存储拓扑的示意图。第二示例性存储拓扑包括可操作地连接至一组存储装置(180)的示例性存储网关(181)。示例性存储网关(180)通过相应的可操作连接(184、185)连接至该组存储装置(181)中的两个存储装置(182、183)。

如图1e和1f所示,不同的存储装置集可包括不同的存储装置和/或相同的存储装置。例如,图1f的存储装置集(181)包括也由图1e的存储装置集(171)使用的存储装置(182)。虽然所述存储装置集被示为包括有限数量的存储装置,但是在不脱离本发明的情况下,存储装置集可包括任意数量的存储装置。另外,虽然每个存储装置被示为通过单独的连接与相应的存储网关(170、180)连接,但是在不脱离本发明的情况下,相应的存储网关与存储装置集之间的连接可采取任何形式,可利用相同或不同的连接,并且可使用有线和/或无线通信技术的任何组合来实现。

如上所述,存储网关可利用存储装置为客户端提供数据存储/访问服务。每个相应的存储装置可提供不同级别或类似级别的客户端数据存储/访问服务。

图1d示出了本发明的一种或多种实施方式的示例性存储装置(160)。示例性存储装置(160)可响应于来自存储网关的请求存储来自存储网关的数据或将存储的数据提供给存储网关。

在本发明的一种或多种实施方式中,示例性存储装置(160)包括持久性存储装置(161)。持久性存储装置(161)可以是物理设备。物理设备例如可以是固态硬盘驱动器、磁盘驱动器、磁带驱动器或其它非暂时性存储介质。在本发明的一些实施方式中,持久性存储装置(161)可以是利用一个或多个其它设备的物理计算资源来提供数据存储功能的逻辑设备。例如,持久性存储装置(161)可以是利用多个独立计算设备的磁盘驱动器的物理存储容量的逻辑存储装置。

在本发明的一种或多种实施方式中,持久性存储装置(161)是数据存储装置(162)。数据存储装置(162)可以是用于存储客户端数据的数据结构。换言之,示例性存储装置(160)可将客户端数据存储在数据存储装置(162)中。

在本发明的一种或多种实施方式中,数据存储装置(162)可在存储之前对客户端数据进行重复数据删除处理。换言之,在将客户端数据存储在数据存储装置(162)中之前,数据存储装置(162)可参照存储在数据存储装置(162)中的数据对该客户端数据进行重复数据删除处理。

在本文中所用的重复数据删除存储指的是:通过在存储装置中首次存储数据时不在存储装置内的数据的存储位置附近存储相同文件或位模式的多个副本来尝试减少存储数据所需的存储空间量的存储方式。重复数据删除存储通过仅将待存储数据与存储在目标存储装置中的所有数据的一部分进行比较来平衡用于实现存储的物理设备的输入输出(i/o)限制与降低的存储空间需求的益处。

为了对数据进行重复数据删除处理,可将待存储数据细分为片段。所述片段可与待存储数据的一部分对应。可产生标识待存储数据的每个片段的指纹。可将产生的指纹与和已存储在存储装置中的数据的一部分相关联的预先存在的指纹的一部分进行比较。与存储在存储装置中的数据部分的指纹不匹配的待存储数据的任何片段可存储在存储装置中,而其它片段不存储在存储装置中。可产生并存储用于产生现在存储的数据的文件模板,以便从存储装置检索现在存储的数据。该模板可包括使得存储在存储装置中的待存储数据的所有片段以及已存储在目标存储装置中的所有数据片段具有与将从目标存储装置检索的待存储数据的片段的指纹匹配的指纹的信息。

在本文中所用的指纹可以是几乎唯一地标识片段的比特序列。在此所用的“几乎唯一地”意味着包括不同数据的两个片段的每个指纹之间存在冲突的概率与其它不可避免的致命错误原因的概率相比可忽略不计。在本发明的一种或多种实施方式中,所述概率是10^-20以下。在本发明的一种或多种实施方式中,不可避免的致命错误可能是由自然力(例如龙卷风)引起的。换言之,标明不同数据的任何两个片段的指纹几乎总是不同的。

在本发明的一种或多种实施方式中,通过获取比特序列的哈希值来产生该比特序列的指纹。例如可使用安全哈希算法(sha)1来产生哈希值。在不脱离本发明的情况下,也可使用其它哈希算法。

上述重复数据删除过程利用计算资源,包括处理周期、存储i/o和/或网络通信带宽。多个客户端可能试图将数据存储在数据管理设备中,从而消耗所有可用的计算资源,导致由存储设备提供的服务质量降低,进而降低了由存储网关向客户端提供的服务质量。本发明的实施方式可通过主动地将客户端指定给存储网关来防止存储装置因超额订阅而降低其服务质量,从而提高存储服务的质量。

为了进一步阐明本发明的实施方式,图2a-2d中示出了由图1a中所示的系统使用的数据结构的示意图。

图2a示出了本发明的一种或多种实施方式的示例性综合存储网关操作指标(200)。当将客户端指定给存储网关时,协调器可使用上述指标。

示例性综合存储网关操作指标(200)可包括与存储网关相关联的条目(201、205)。每个条目(201、205)可包含存储网关标识符(202)、由存储网关标识符(202)标识的存储网关负责的多个并发会话(203)、以及客户端与由存储网关标识符(202)标识的存储网关用于向客户端提供存储服务的存储装置之间的存储连接特性(204)。

图2b示出了本发明的一种或多种实施方式的示例性并发会话(210)。当将客户端指定给存储网关时,协调器可使用示例性并发会话(210)。

示例性并发会话(210)可包括与特定存储网关相关联的条目(211、215)。每个条目(211、215)可包括标识由指定给特定存储网关的客户端施加至特定存储网关的工作负载的类型的工作负载类型标识符(212)以及限定正在执行由工作负载类型标识符标识的工作负载的会话的数目的会话数(213)。每个条目可限定不同的工作负载类型标识符以及正在执行该类型的工作负载的会话的数目。

图2c示出了本发明的一种或多种实施方式的示例性连接特性(220)。当将客户端指定给存储网关时,协调器可使用示例性连接特性(220)。

示例性连接特性(220)可包括与特定存储网关相关联的条目(221、225)。每个条目(221、225)可包括标识连接至特定存储网关的存储装置的存储装置标识符(222)、限定特定存储网关与由存储装置标识符(222)标识的存储装置之间的连接带宽的带宽(223)、以及限定特定存储网关与由存储装置标识符(222)标识的存储装置之间的连接延迟时间的延迟(224)。每个条目可限定不同的存储装置标识符以及所标识的存储装置与特定存储网关之间的相应连接的特性。

图2d示出了本发明的一种或多种实施方式的示例性工作负载策略(230)。当将客户端指定给存储网关时,协调器可使用示例性工作负载策略(230)。

示例工作负载策略(230)可包括与不同类型的工作负载相关联的条目(231、235)。每个条目(231、235)可包括标识与该条目相关联的工作负载的类型的工作负载类型标识符(232)、存储连接特性范围(233)、以及最大并发会话数(234)。最大并发会话数(234)可限定下列各项的工作负载的最大会话数:(i)由工作负载类型标识符(232)限定的类型、以及(ii)具有在由存储连接特性范围(233)限定的范围内的存储连接特性的存储网关。协调器可通过将工作负载和存储网关与存储装置之间的连接特性与某个条目进行匹配来利用工作负载策略。条目的最大并发会话数(234)可限定存储网关能够处理而不会导致提供的服务质量降低的最大并发会话数。

为了进一步阐明图1a的系统的组件之间的关系,图3示出了一个关系图。从图中能够看出,任意数量的客户端(300、305)可指定为由单个存储网关(310)服务,例如n对一关系。类似地,存储网关(310)可利用任意数量的存储装置(315、320),例如一对n关系。类似地,协调器(330)可将客户端指定给任意数量的存储网关(310、335),例如一对n关系。类似地,协调器(330)可指定任意数量的客户端(300、305),例如一对n关系。

如上所述,协调器(120,图1a)可将客户端指定给存储网关(110)。图4a-4d示出了本发明的一种或多种实施方式的用于进行指定的方法。

虽然图4a-4d中示出的每个方法作为独立的方法示出,但是在不脱离本发明的情况下,每个方法可顺序地或并行地执行(或者串行和并行执行的组合)。此外,本领域普通技术人员应理解,这些步骤中的一部分或全部可按不同顺序执行,可组合或省略,并且一部分或所有步骤可并行执行。

图4a示出了本发明的一种或多种实施方式的方法的流程图。根据本发明的一种或多种实施方式,图4a中所示的方法可用于为客户端提供服务。图4a中所示的方法例如可由协调器(120,图1a)执行。在不脱离本发明的情况下,图1a中所示的系统的其它组件可执行图4a的方法。

在步骤400中,从客户端获得存储装置访问请求。在本文中所用的存储装置访问请求指用于存储数据的请求或用于获取存储的数据的请求。

在本发明的一种或多种实施方式中,可在从客户端经由网络发送的消息中获得存储装置访问请求。在本发明的一种或多种实施方式中,存储装置访问请求可限定将在被指定为向客户端提供服务的存储网关上施加的工作负载的类型。工作负载可限定客户端将通过存储网关存储的数据结构的类型。

在步骤402中,根据存储装置访问请求所暗示的工作负载的类型,使用限定存储装置可用性的一组规则来确定将为发送存储装置访问请求的客户端提供服务的存储网关。

在本发明的一种或多种实施方式中,通过图4b中所示的方法确定存储网关。在不脱离本发明的情况下,可通过其它方法使用该组规则来确定存储网关。

在步骤404中,使用确定的存储网关为客户端提供服务。通过指定所确定的存储网关为客户端提供服务,可由所确定的存储网关为客户端提供服务。

在本发明的一种或多种实施方式中,所确定的存储网关通过将来自客户端的文件存储在存储装置中和/或从存储装置向客户端提供数据来为客户端服务。

该方法可在步骤404之后结束。

图4b示出了本发明的一种或多种实施方式的方法的流程图。根据本发明的一种或多种实施方式,可使用图4b中所示的方法确定存储网关。图4b中所示的方法例如可由协调器(120,图1a)执行。在不脱离本发明的情况下,图1a中所示的系统的其它组件可执行图4b的方法。

在步骤410中,确定具有可用计算资源的一组存储网关。

在本发明的一种或多种实施方式中,通过图4c中所示的方法确定一组存储网关。在不脱离本发明的情况下,可使用其它方法确定一组存储网关。

在本发明的一种或多种实施方式中,可根据存储网关的计算资源的可用性来确定一组存储网关。

在步骤412中,确定步骤400的存储装置访问请求所暗示的工作负载类型。

在本发明的一种或多种实施方式中,存储装置访问请求限定将通过将客户端指定给存储网关而施加的工作负载的类型。

在步骤414中,选择所确定的一组存储网关中的一个存储网关。在本发明的一种或多种实施方式中,所述选择是随意的。

在步骤416中,确定所选存储网关是否具有可用于所确定的工作负载类型的可用容量。

在本发明的一种或多种实施方式中,使用图4d中所示的方法进行确定。在不脱离本发明的前提下,也可使用进行确定的其它方法。

若确定存储网关具有足够的容量,则该方法转至步骤418。若确定存储网关没有足够的容量,则该方法转至步骤420。

在步骤418中,将选定的存储网关用作图4a的步骤402中的确定的存储网关。该方法可在步骤418之后结束。

回到步骤416,如果选定的存储网关没有用于所确定的工作负载类型的可用容量,则该方法转至步骤420。

在步骤420中,从所确定的一组存储网关中移除所选存储网关。换言之,若所选存储网关没有可用容量来处理所确定的工作负载类型,则将所选存储网关从客户端的潜在服务提供者的考虑范围排除。

该方法可在步骤420之后返回至步骤414。

图4c示出了本发明的一种或多种实施方式的方法的流程图。根据本发明的一种或多种实施方式,可使用图4c中所示的方法确定一组存储网关。图4c中所示的方法例如可由协调器(120,图1a)执行。在不脱离本发明的情况下,图1a中所示的系统的其它组件可执行图4c的方法。

在步骤422中,轮询存储网关,以获得存储网关操作指标。

在步骤424中,使用获得的存储网关操作指标更新综合存储网关操作指标。

在步骤426中,估算满足存储装置访问请求所需的计算资源的可用性。

在本发明的一种或多种实施方式中,根据以下的一个或多个因素来估算所需的计算资源的可用性:(i)客户端的存储容量,(ii)客户端执行的功能,(iii)客户端的数据存储频率,以及(iv)客户端将使用存储网关存储的文件的类型。

在步骤428中,根据更新的综合存储网关操作指标将估算的计算资源可用性与至少一个存储网关进行匹配,使用匹配的至少一个存储网关作为所确定的一组存储网关。

该方法可在步骤428之后结束。

图4d示出了本发明的一种或多种实施方式的方法的流程图。根据本发明的一种或多种实施方式,图4d中所示的方法可用于确定存储网关是否具有为工作负载提供服务的容量。图4d中所示的方法例如可由协调器(120,图1a)执行。在不脱离本发明的情况下,图1a中所示的系统的其它组件可执行图4d的方法。

在步骤430中,获得与所确定的由存储装置访问请求暗示的工作负载类型相关联的工作负载策略。

在本发明的一种或多种实施方式中,所获得的工作负载策略的条目限定最大并发会话数。该条目将客户端的工作负载与存储网关的连接特性进行匹配。

在步骤432中,确定所选存储网关是否符合工作负载策略。所选存储网关可以是在图2b的步骤414中选择的存储网关。

在本发明的一种或多种实施方式中,通过将由综合存储网关操作指标限定的所选存储网关执行的当前并发会话的数目与由匹配的条目限定的最大并发会话数进行比较来进行确定。若当前并发会话数小于最大值,则确定所选存储网关符合工作负载策略。

如果所选存储网关符合工作负载策略,则该方法转至步骤434。若所选存储网关不符合工作负载策略,则该方法转至步骤434。

在步骤434中,确定所选存储网关具有可用于所确定的工作负载类型的可用容量。

该方法可在步骤434之后结束。

在步骤436中,确定所选存储网关没有可用于所确定的工作负载类型的可用容量。

该方法可在步骤436之后结束。

如上所述,协调器(120,图1a)可将客户端指定给存储网关(110,图1a)。图5示出了本发明的一种或多种实施方式的可由客户端执行以从存储网关获得服务的方法。本领域普通技术人员应理解,这些步骤中的一部分或全部可按不同顺序执行,可组合或省略,并且一部分或所有步骤可并行执行。

图5示出了本发明的一种或多种实施方式的方法的流程图。根据本发明的一种或多种实施方式,可使用图5中所示的方法从存储网关获得存储服务。图5中所示的方法例如可由客户端(100,图1a)执行。在不脱离本发明的情况下,图1a中所示的系统的其它组件可执行图5的方法。

在步骤500中,通过发送存储装置访问请求来请求访问存储装置。在本发明的一种或多种实施方式中,将该请求发送至协调器。在不脱离本发明的情况下,可将请求发送至图1a的系统的其它组件。在这种情况下,上述其它组件可将请求转发给协调器。

在本发明的一种或多种实施方式中,该请求指定客户端的标识符和/或客户端将在存储网关上施加的工作负载的类型。

在步骤502中,获得指定存储网关的存储网关指定结果。可从协调器获得存储网关指定结果。

在步骤504中,经由存储网关分配结果指定的存储网关向存储装置存储数据/从存储装置读取数据。

该方法可在步骤504之后结束。

可使用由数据管理设备的一个或多个处理器执行的指令来实现本发明的一种或多种实施方式。此外,这样的指令可与存储在一个或多个非暂时性计算机可读介质上的计算机可读指令对应。

图6示出了本发明的一种或多种实施方式的计算装置的示意图。计算设备(600)可包括一个或多个计算机处理器(602)、非持久性性存储装置(604)(例如易失性存储器,例如随机存取存储器(ram)、高速缓冲存储器)、持久性存储装置(606)(例如硬盘、光驱(例如光盘(cd)驱动器)或数字通用盘(dvd)驱动器、闪存等)、通信接口(612)(例如蓝牙接口、红外线接口、网络接口、光接口等)、输入装置(610)、输出装置(608)、以及许多其它元件(未示出)和功能。这些组件中的每一个将在下文中说明。

在本发明的一种实施方式中,计算机处理器(602)可以是用于处理指令的集成电路。例如,计算机处理器可以是一个或多个核心、或者是处理器的微核心。计算机设备(600)还可包括一个或多个输入装置(610),例如触摸屏、键盘、鼠标、麦克风、触摸板、电子笔、或任何其它类型的输入装置。此外,通信接口(612)可包括用于将计算设备(600)连接至网络(未示出)(例如局域网(lan)、广域网(wan)(例如因特网)、移动网络或任何其它类型的网络)和/或另一个设备(例如另一个计算设备)的集成电路。

在本发明的一种实施方式中,计算设备(600)可包括一个或多个输出装置(608),例如屏幕(例如液晶显示屏(lcd)、等离子显示屏、触摸屏、阴极射线管(crt)监视器、投影仪或其它显示装置)、打印机、外部存储器、或任何其它输出装置。一个或多个输出装置可与输入装置相同或不同。输入和输出装置可通过本地或远程方式连接至计算机处理器(602)、非持久性存储装置(604)和持久性存储装置(606)。存在许多不同类型的计算设备,并且上述输入和输出装置可以采取其它形式。

本发明的一种或多种实施方式可解决在网络环境中由存储网关提供的服务质量降低的问题。由于存储网关运行的技术环境,会遇到上述问题。由于分布式存储装置的出现,客户端常常将数据存储在远程存储装置中,例如云存储装置。与传统内部存储装置不同的是,远程存储装置提供的服务质量除了取决于传统存储装置的固有性能限制之外,还取决于客户端与存储装置之间的连接的特性和客户端对存储网关施加的工作负载的类型。本发明的实施方式可在指定操作时考虑这些附加的服务质量限制特性,并限制并发会话的数目,以防止服务质量降低。因此,本发明的实施方式根据连接的特性和由客户端执行的工作负载的特性动态地限制并发会话的数目。在指定客户端时,本发明的实施方式可通过使用一组规则确定不会降低性能的最高会话并发性来提供上述益处。上述问题应理解为由本文公开的技术所解决的问题的一个示例,并且本发明不限于解决类似的问题。所公开的技术广泛适用于解决一系列问题。

本发明的一种或多种实施方式可实现下列一种或多种能力:i)通过根据每个会话的工作负载类型限制与客户端的并发会话的数目来保持存储网关提供的数据存储服务的质量,ii)降低因存储网关提供的存储服务质量差而导致从存储装置向客户端传送数据失败的可能性、以及(iii)通过自动选择用于存储数据的存储装置而无需用户干预或反馈来减轻用户的认知负担。

虽然本发明在上文中是参照有限数量的实施方式说明的,但是受益于本公开的本领域技术人员能理解,能够设计出不脱离本文中所公开的本发明的范围的其它实施方式。因此,本发明的范围仅由所附权利要求限定。

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