使复制目标能够回收瘦供给存储系统上未使用的存储空间的系统和方法

文档序号:6351930阅读:175来源:国知局
专利名称:使复制目标能够回收瘦供给存储系统上未使用的存储空间的系统和方法
使复制目标能够回收瘦供给存储系统上未使用的存储空间的系统和方法
背景技术
很多组织机构依赖于数据复制以增强可靠性、容错性、和/或其应用和/或数据的可访问性。数据复制典型地涉及从主站点或装置(例如应用服务器)向辅助(即,备份)站点或装置(也称为“复制目标”)复制数据。由于在数据复制过程中产生大量的数据,数据复制服务的供应商长久以来一直寻求最大化数据存储性能,同时最小化存储成本。为此,一些供应商已转向瘦供给解决方案以有效地利用可用的存储空间。典型地,瘦供给解决方案按照需要或即时地从公共池向计算系统分配存储空间以防止存储空间浪费。不幸的是,典型的文件或块级复制技术可以阻止复制目标识别从主站点(例如,应用服务器)复制数据内可用的或未使用的部分。例如,在无法访问由主站点(在产生数据时) 使用的各种应用程序和/或文件系统API的情况下,复制目标也许不能够解释从主站点接收的应用程序或文件系统数据。在缺乏这种知识时,复制目标不能够有效地使用瘦供给存储系统来存储复制数据,因为复制目标将不能识别(并在随后指令瘦供应存储系统来回收)瘦供给存储系统上存储的复制数据内可用的或未使用的存储空间。

发明内容
如以下更为详细说明的,本披露总体上涉及使复制目标能够回收瘦供给存储系统上未使用的存储空间的多种系统及方法。在一个实例中,在此描述的各种系统中的一种或多种可以通过如下操作完成这种任务1)从复制源(例如服务器)向复制目标复制数据(例如利用文件或块级复制技术),2)识别复制数据中未使用的存储空间(利用在此描述的方法中的一种或多种),3)产生一条回收请求以便从瘦供给存储系统回收未使用的存储空间,该系统为复制目标提供瘦供给存储,然后4)向该瘦供给存储系统发布该回收请求以便从该瘦供给存储系统回收未使用的存储空间。在此描述的系统可以采用各种方式并且在各种情况下识别复制数据内未使用的存储空间。在一个实例中,复制目标可以通过从复制源接收(例如,通过带内通信协议)识别该未使用的存储空间的信息来识别复制数据内未使用的存储空间。在一些实例中,该可用空间信息可以包括一条拦截的最初从复制源发送至瘦供给存储系统的回收请求,该系统为复制源提供瘦供给存储。在其他实例中,该可用空间信息可以使识别由在复制源上执行的计算操作(例如磁盘碎片整理操作或文件移除操作)所释放的存储空间。在一些实例中,该复制目标可以响应于复制目标所发出的请求从复制源接收该可用空间信息。例如,复制目标可以定期地或按照需要请求(并且复制源可以相应地提供)可用空间信息。在另一个实例中,复制目标可以通过以下操作识别复制数据内未使用的存储空间1)中止数据复制,然后2)使用数据管理API (例如文件系统和/或应用程序API)来独立地识别复制数据内未使用的存储空间。一旦回收了该未使用的存储空间,复制目标可以指令复制源恢复数据复制。如以下更为详细解释的,在此描述的系统和方法可以使复制目标能够从瘦供给存储系统回收未使用的存储空间,该系统为复制目标提供瘦供给存储。因此,这些系统和方法可以使系统管理员能够在瘦供给存储环境内对复制解决方案进行配置,从而实现可能的空间和财政节约。来自上述任一个实施方案的多种特征可以根据在此说明的通用原理彼此相互结合使用。通过阅读以下的详细说明连同附图
和权利要求,将会更加全面地理解这些以及其他的实施方案、特征和优点。附图简要说明附图展示了多个示例性实施方案并且是本说明书的一部分。这些附图与以下的说明一起展现并解释了本披露的不同原理。 图I是一种使复制目标能够回收瘦供给存储系统上未使用的存储空间的示例性系统的方框图。图2是一种使复制目标能够回收瘦供给存储系统上未使用的存储空间的示例性系统的方框图。图3是一种使复制目标能够回收瘦供给存储系统上未使用的存储空间的附加示例性系统的方框图。图4是一种使复制目标能够回收瘦供给存储系统上未使用的存储空间的示例性方法的流程图。图5是一种示例性计算系统的方框图,该计算系统能够实施在此说明和/或展示的这些实施方案中的一个或多个。图6是一种示例性计算网络的方框图,该计算网络能够实施在此说明和/或展示的这些实施方案中的一个或多个。贯穿这些附图,相同的参考字符以及说明表示相似的但并不一定完全相同的要素。虽然在此说明的这些示例性实施方案可容许进行不同的修改以及多种替代形式,在此仍在附图中以举例的方式示出多个具体的实施方案并且对其进行了详细的说明。然而,在此说明的多个示例性实施方案并非旨在限于所披露的这些具体形式。相反,本披露覆盖落入所附权利要求范围内的所有修改形式、等效物、以及替代方案。示例性实施方案的详细说明以下将参考图I至3提供使复制目标能够回收瘦供给存储系统上未使用的存储空间的示例性系统的详细说明。还将结合图4提供相应的计算机实现的方法的详细说明。另夕卜,将结合图5和图6对应地提供一种示例性计算系统和网络体系结构的详细说明,它们能够实施在此说明的这些实施方案中的一个或多个。图I是一种使复制目标能够回收瘦供给存储系统上的未使用的存储空间的示例性系统100的方框图。如此图中所示,示例性系统100可以包括用于执行一项或多项任务的一个或多个模块102。例如,如以下更为详细解释的,示例性系统100可以包括一个复制模块104,该模块被编程为从复制源向复制目标复制数据。示例性系统100还可以包括一个识别模块106,该模块被编程为识别复制数据内未使用的存储空间。另外,如以下更为详细解释的,示例性系统100可以包括一个回收模块108,该模块被编程为从瘦供给存储系统回收未使用的存储空间,该瘦供给存储系统为复制目标提供存储空间。尽管展示为多个分离的元件,图I中的模块102中的一个或多个可以代表一个单一模块或应用程序中的多个部分。在某些实施方案中,图I中模块102的一个或多个可以代表一个或多个软件应用程序或程序,这些软件应用程序或程序在由计算装置执行时可以使该计算装置执行一个或多个任务。例如,如以下更为详细解释的,模块102中的一个或多个可以代表存储并配置为运行在一个或多个计算装置上的多个软件模块,例如图2中所示的装置(例如,复制源202和/或复制目标222)、图3中所示的装置(例如,复制源302和/或复制目标322)、图5中的计算系统510、和/或图6中的示例性网络体系结构600的多个部分。图I中模块102的一个或多个还可以代表被配置用于执行一项或多项任务的一个或多个专用计算机的全部或一些部分。如图I所示,示例性系统100还可以包括一个或多个数据库,例如数据库120。在一个实例中,数据库120可以包括有待从复制源复制到复制目标的数据122 (例如,存储在该复制源上)。数据库120可以代表一个单一数据库或计算装置的多个部分或者多个数据 库或计算装置。例如,数据库120可以代表图2中所示的装置(例如,复制源202和/或复制目标222)、图3中所示的装置(例如,复制源302和/或复制目标322)、图5中的计算系统510中的一部分、和/或图6中的示例性网络体系结构600的多个部分。可替代地,图I中的数据库120可以代表一个或多个物理上分离的装置,这些装置能够由计算装置访问,例如图2中所示的装置(例如,复制源202和/或复制目标222)、图3中所示的装置(例如,复制源302和/或复制目标322)、图5中的计算系统510、和/或图6中的示例性网络体系架构600的多个部分。图I中的示例性系统100可以采用各种方式进行部署。例如,示例性系统100的全部或一部分可以代表图2中示例性系统200的多个部分。如图2中所示,系统200可以包括与复制目标222进行通信的复制源202。在此实例中,瘦供给存储系统232可以为复制源202提供瘦供给存储空间(例如,分配的空间235(1))。类似地,附加的瘦供给存储系统252可以为复制目标222提供瘦供给存储空间(例如,分配的空间255(1))。在一个实施方案中,如以下更为详细描述的,图I模块102的一个或多个可以使复制目标222能够通过以下方式回收瘦供给存储系统252上未使用的存储空间1)从复制源(例如,复制源202)接收复制数据,2)识别(例如,利用在此描述的各种技术中的一种)复制数据中的未使用的存储空间(例如,分配的空间255(1)的未使用部分259(1) ),3)产生一条回收请求以便从瘦供给存储系统(例如,瘦供给存储系统252)回收未使用的存储空间,该系统为复制目标提供瘦供给存储,以及4)向该瘦供给存储系统发出该回收请求以便从该瘦供给存储系统回收未使用的存储空间。复制源202总体上代表能够向复制目标复制数据的任意类型或形式的计算装置。复制源202的实例包括但不限于被配置用于提供各种数据库服务和/或运行某些软件应用程序的应用程序服务器和数据库服务器、图5中的示例性计算系统510、或任意其他适合的计算装置。类似地,复制目标222总体上代表能够接收并存储复制数据的任意类型或形式的计算装置。在一个实例中,复制源202可以复制数据和/或通过带内通信协议210向复制目标222发送与复制数据相关的元数据。
如图2所示,在一些实例中复制源202可以包括一个应用程序204。应用程序204总体上代表能够产生和/或管理数据的任意类型或形式的应用程序(例如,数据库)。在一些实例中,应用程序204可以在瘦供给存储系统(例如,瘦供给存储系统232)和/或本地存储装置(以下结合图3进行解释)中存储数据。复制源202还可以包括一个文件系统206。在一些示例中,文件系统206可以包含多个瘦供给卷(即,由瘦供给存储系统(例如瘦供给存储系统232)上的存储器支持的逻辑卷)。复制源202还可以包括从复制源202向复制目标222复制数据的复制代理208。复制代理208总体上代表能够从复制源(例如复制源202)向复制目标(例如复制目标222)复制数据的任意类型或形式的主机或服务器侧代理或模块。如以下更为详细解释的,复制代理208可以利用文件级或块级复制技术来复制数据。 类似地,复制目标222上的复制代理228可以代表能够从复制源(例如复制源202)接收复制数据的任意类型或形式的客户端侧代理或模块。如以下更为详细解释的,在一些实例中,应用程序204、文件系统206、复制代理208、和/或复制代理228可以包括图I模块102的一个或多个。瘦供给存储系统232和252总体上代表能够按照需要和/或即时地为计算系统存储数据的任意类型或形式的存储系统或装置(例如磁盘阵列)。在一个实例中,瘦供给存储系统232和252可以在逻辑上分为多个逻辑单元号(LUN)(例如,分别为LUN 234 (I)-(N)和254 (I)-(N)),这些单元号的每一个可以代表对瘦供给存储系统232或252的物理部分的逻辑引用。LUN 234(I)-(N)和254(1)-(N)可以代表瘦供给存储系统232或252内的磁盘、磁盘的一个区段、整个磁盘阵列、和/或磁盘阵列的一个区段。在一些实例中,瘦供给存储系统232可以为复制源202的一个或多个应用程序或文件系统(例如,应用程序204和/或文件系统206)提供瘦供给存储。在一些实例中,复制源202和/或复制目标222可以通过API 240分别与瘦供给存储系统232和252对接。API 240总体上代表与瘦供给存储系统进行对接的任意类型或形式的编程接口。在一些实例中,与图2相不同的是,复制源可以不采用瘦供给存储。例如,图3中的复制源302可以将一个或多个本地存储装置(例如,数据集334(1)-(N))内存储的数据通过带内通信协议310复制到复制目标322。在此实例中,数据集334(I)-(N)可以包含复制源302上的应用程序或文件系统产生和/或管理的数据。与图2中的示例性系统200 —样,瘦供给存储系统352可以为复制目标322提供瘦供给存储。图4是一种使复制目标能够回收瘦供给存储系统上未使用的存储空间的示例性计算机实现方法400的流程图。图4所示的步骤可以由任何适合的计算机可执行代码和/或计算系统来执行。在一些实施方案中,图4所示步骤可以由图I中系统100、图2中系统200、图5中计算系统510的多个组件、和/或图6中示例性体系结构600的多个部分中的一个或多个来执行。如图4所示,在步骤402在此描述的各种系统的一个或多个可以从复制源向复制目标复制数据。例如,图I中的复制模块104作为图2中复制源202的一部分(例如复制代理208的一部分)可以从复制源202向复制目标222复制数据。在此描述的系统可以利用各种复制技术中的任意一种来复制数据。例如,复制代理208可以利用基于块的复制技术(即,复制代理208可以在块级别上识别复制数据)和/或基于文件的复制技术(即,复制代理208可以在文件级别上识别复制数据)从复制源202向复制目标222复制数据。在一些实例中,在此描述的系统可以利用基于服务器或主机的复制技术来复制数据,这种技术与基于磁盘的复制技术截然不同。例如,复制代理208可以在复制源202上执行,而不是在复制源202 (例如,瘦供给存储系统232)所采用的存储上执行。在一些实例中,步骤402中复制数据可以代表应用程序和/或文件系统所存储和/或管理的数据。例如,复制代理208可以复制数据库应用程序所存储和/或管理的数据,例如应用程序204。另外或可替代地,复制代理208可以复制文件系统(例如文件系统206)的一个或多个卷。
在此描述的系统可以复制本地储存和/或存储在瘦供给存储系统上的数据。例如,在图2所示的实例中,复制代理208可以复制在瘦供给存储系统232上存储的数据(例如,复制代理208可以将分配给瘦供给存储系统232的LUN 234 (I)内的复制源202的数据复制到复制目标222)。类似地,图3中的复制代理308可以从复制源302向复制目标322复制本地存储的数据集334(1)。返回到图4,在步骤404,在此描述的系统可以识别复制数据内未使用的存储空间。例如,图I中的识别模块106作为复制源202和/或复制目标222的一部分(例如,应用程序204、文件系统206、复制代理208、和/或复制代理228的一部分)可以识别从复制源202复制到复制目标222的数据内未使用的存储空间。类似地,识别模块106作为图3中复制源302和/或复制目标322的一部分(例如,应用程序304、文件系统306、复制代理308、和/或复制代理328的一部分)可以识别从复制源302复制到复制目标322的数据内的未使用的存储空间。在此描述的系统可以采用各种方式并且在各种情况下识别复制数据中未使用的存储空间。例如,步骤404的全部或一些部分可以由复制源、复制目标或其组合来执行。例如,复制目标222可以通过从复制源202接收信息(该信息识别从复制源202复制的数据内未使用的存储空间)来执行步骤404。例如,识别模块106作为图2复制源202上的应用程序204、文件系统206、和/或复制代理208的一部分可以1)识别(例如,利用应用程序或文件系统API)分配的空间235(1)内的存储空间的未使用部分239(1),然后2)将识别这种未使用的存储空间的信息传送至复制目标222。类似地,识别模块106作为图3复制源302上的应用程序304、文件系统306、和/或复制代理308的一部分可以1)识别(例如,利用应用程序或文件系统API)数据集334(1)的未使用部分339(1),然后2)将识别这种未使用的存储空间的信息传送至复制目标322。在一些实例中,识别模块106可以将这种可用空间信息通过带内通信协议(例如图2中带内通信协议210)从复制源传输到复制目标。本文使用的短语“带内通信协议”可以指代任意类型或形式的通信机制,该通信机制既可以传输复制数据,又可以在相同的通信频带内传输与该复制数据相关联的元数据。带内通信协议的实例包括但不限于VERITASVOLUME REPLICATOR 所使用的 IBC API。在一些实例中,响应于复制目标222所发出的请求,复制目标222可以从复制源202接收可用空间信息。例如,识别模块106作为复制目标222的一部分可以1)从复制源202请求可用空间信息,然后2)从复制源202接收该可用空间信息。复制目标222可以在各种情况中(包括例如定期地和/或按照需求地)从复制源202请求这种信息。在一些实例中,从复制源接收的可用空间信息可以代表一条拦截的最初从复制源(例如通过瘦供给API)发送至瘦供给存储系统的回收请求,该系统为复制源提供瘦供给存储。例如,识别模块106 (例如,作为复制源202上的复制代理208的一部分)可以拦截应用程序204和/或文件系统206通过API 240向瘦供给存储系统232发出的回收请求,以便回收分配的空间235 (I)的未使用部分239 (I)。一旦拦截到该回收请求,识别模块106可以通过带内通信协议210将其传送至复制目标222。然后复制目标222可以使用该拦截的回收请求以识别从复制源202复制的数据内未使用的存储空间。在一些实例中,从复制源接收的可用空间信息可以识别在复制源上执行的计算操作所释放的存储空间。例如,识别模块106作为图3中复制源302上的应用程序304、文件系统306、和/或复制代理308的一部分可以识别应用程序304和/或文件系统306执行的计算操作所释放的存储空间(例如数据集334 (I)的未使用部分339 (I)。然后识别模块106可以通过带内通信协议310向复制目标322传送识别计算操作所释放的存储空间(例如,未 使用部分339 (I))的信息。在以上实例中,短语“计算操作”可以指代能够释放存储系统内的空间的任意类型或形式的计算操作。这种计算操作的实例包括但不限于磁盘碎片整理操作、文件移除操作等等。这种操作可以由应用程序(例如应用程序304)、文件系统(例如文件系统306)等执行。在另一个实例中,复制目标可以在步骤404中通过以下操作识别复制数据内未使用的存储空间1)中止数据复制,然后2)使用数据管理API来识别复制数据内未使用的存储空间。例如,图I中的复制模块104作为图2中复制目标222的一部分(例如,作为复制代理228的一部分)可以指令(例如通过带内指示协议210)复制源202中止或暂停从复制源202向复制目标222复制数据。当接收到这种指令时,复制代理208 (如以上详细所述,它可以包括图I的复制模块104)可以致使复制源202上的复制数据进入一致状态。例如,复制代理208可以冻结或中止应用程序204和/或文件系统206的操作,从而确保分配给瘦供给存储系统232内的复制源202的存储处于一致状态。接着,复制代理208可以(例如,通过带内通信协议210)从复制源202向复制目标222发送表明复制数据(在本实例中,是瘦供给存储系统232分配给复制源202的存储)处于一致状态的消息。当从复制源202接收到该消息时,复制目标222可以1)限制实施所有即将进行的复制写操作,然后2)使用数据管理API识别瘦供给存储系统252上分配的空间255(1)内未使用的存储空间。例如图I的识别模块106作为图2中复制目标222的一部分可以使用文件系统API和/或应用程序API来识别瘦供给存储系统252上分配的空间255 (I)内的未使用部分259(1)。当回收了该未使用的存储空间时(采用以下详述的结合步骤406和408的方式),复制目标222上的复制代理228可以指令复制源202恢复数据复制。返回到图4,在步骤406在此描述的系统可以产生回收请求以便从瘦供给存储系统回收步骤404识别的未使用的存储空间,该系统为复制目标提供瘦供给储存。例如,图I的回收模块108作为图2中复制目标222的一部分可以产生回收请求以便从瘦供给存储系统252回收未使用的存储空间259(1)。类似地,图I的回收模块108作为图3中复制模块322的一部分可以产生回收请求以便从瘦供给存储系统352回收未使用的存储空间359(1)。在此描述的系统可以采用各种方式执行步骤406。在一个实例中,回收模块108可以利用瘦供给API (例如图2和3中的API 240和340)产生回收请求。在步骤408,在此描述的系统可以向瘦供给存储系统发出回收请求,以便从瘦供给存储系统回收未使用的存储空间。例如,图I的回收模块108作为图2中复制目标222的一部分可以向瘦供给存储系统252发出步骤406中产生的回收请求,以便回收未使用的部分259(1)。类似地,图I的回收模块108作为图3中复制目标322的一部分,可以向瘦供给存储系统352发出步骤406中产生的回收请求,以便回收未使用的部分359(1)。在此描述的系统可以采用各种方式执行步骤408。在一个实例中,回收模块108可以利用瘦供给API (例如图2和3中的API 240和340)产生回收请求。当完成步骤408时,图4中的示例性方法400可以结束。 如上详细所述,在此描述的系统和方法可以使复制目标能够从瘦供给存储系统回收未使用的存储空间,该系统为复制目标提供瘦供给存储。因此,这些系统和方法可以使系统管理员能够在瘦供给存储环境内对复制解决方案进行配置,从而实现可能的空间和财政节约。图5是一个示例性计算系统510的方框图,该系统能够实施在此说明和/或展示的一个或多个实施方案。计算系统510广义上代表能够执行计算机可读指令的任何单处理器或多处理器的计算装置或系统。计算系统510的多个实例包括但不限于工作站、膝上型计算机、客户侧终端、服务器、分布式计算系统、手持装置、或任何其他计算系统或装置。在其最基本的配置中,计算系统510可以包括至少一个处理器514以及一个系统内存516。处理器514总体上代表能够处理数据或解释并执行多个指令的任何类型或形式的处理单元。在某些实施方案中,处理器514可以从软件应用程序或模块中接收指令。这些指令可以使处理器514执行在此所说明和/或展示的这些示例性实施方案中的一个或多个的功能。例如,处理器514可以单独地或与其他元件相结合来执行和/或作为一种手段来执行在此描述的复制、识别、生成、回收、发布、接收、发送、请求、中止、使用以及恢复步骤中的一个或多个。处理器514还可以执行和/或作为一种手段来执行在此说明和/或展示的任何其他步骤、方法、或过程。系统内存516总体上代表能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储装置或媒质。系统内存516的多个实例包括(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、闪存、或任何其他适当的存储装置。尽管未作要求,在某些实施方案中计算系统510可以既包括易失性内存单元(例如,像系统内存516)又包括非易失性存储装置(例如,像以下详细说明的主存储装置532)。在一个实例中,图I模块102中的一个或多个可以载入到系统内存516中。在某些实施方案中,除了处理器514和系统内存516以外,示例性计算系统510还可以包括一个或多个组件或元件。例如,如图5所示,计算系统510可以包括内存控制器518、输入/输出(I/O)控制器520、以及通信接口 522,它们中的每一个可以通过一个通信基础设施512相互连接。通信基础设施512总体上代表能够帮助在计算装置的一个或多个组件之间进行通信的任意类型或形式的基础设施。通信基础设施512的实例包括但不限于通信总线(例如ISA、PCI、PCIe、或类似总线)和网络。内存控制器518总体上代表在计算系统510的一个或多个组件之间操作内存或数据或者控制通信的任意类型或形式的装置。例如。在某些实施方案中,内存控制器518可以通过通信基础设施512控制处理器514、系统内存516以及I/O控制器520之间的通信。在某些实施方案中,内存控制器518可以独立地或与其他元件相结合地执行和/或作为一种手段执行在此描述和/或展示的多个步骤或特征中的一个或多个,例如复制、识别、生成、回收、发布、接收、发送、请求、中止、使用以及恢复。I/O控制器520总体上代表能够协调和/或控制计算装置的输入和输出功能的任何类型或形式的模块。例如,在某些实施方案中,I/o控制器520可以控制或协助计算系统510的一个或多个元件之间的数据传输,例如处理器514、系统内存516、通信接口 522、显示适配器526、输入接口 530以及存储器接口 534。例如,I/O控制器520可以独立地或结合其他元件执行和/或作为一种手段执行在此描述的复制、识别、生成、回收、发布、接收、发送、请求、中止、使用以及恢复步骤中的一个或多个。I/O控制器520还可用于执行和/或作为 一种手段用于执行本披露中提出的其他步骤和特征。通信接口 522广义地代表能够协助示例性计算系统510与一个或多个附加装置之间进行通信的任何类型或形式的通信装置或适配器。例如,在某些实施方案中,通信接口 522可以协助计算系统510与包括多个附加的计算系统的私有或公共网络之间的通信。通信接口 522的实例包括而不限于有线网络接口(例如网络接口卡)、无线网络接口(例如无线网络接口卡)、调制解调器、以及任何其他适当的接口。在至少一个实施方案中,通信接口522可通过到网络(如互联网)的直接链接来提供到远程服务器的直接连接。通信接口 522还可以间接地提供这种连接,例如通过局域网(如以太网)、个人局域网、电话或缆线网、蜂窝电话连接、卫星数据连接、或任何其他适当的连接。在某些实施方案中,通信接口 522还可以代表主机适配器,该主机适配器被配置为用于通过外部总线或通信信道协助计算系统510与一个或多个附加网络或存储装置之间的通信。主机适配器的实例包括但不限于SCSI主机适配器、USB主机适配器、IEEE 1394主机适配器、SATA和eSATA主机适配器、ATA和PATA主机适配器、光纤通道接口适配器、以太网适配器等。通信接口 522还可以允许计算系统510参与分布式计算或远程计算。例如,通信接口 522可以从远程装置接收指令或向远程装置发送指令用于执行。在某些实施方案中,通信接口 522可以独立地或与其他元件相结合地执行和/或作为一种手段执行在此描述的复制、识别、生成、回收、发布、接收、发送、请求、中止、使用以及恢复步骤中的一个或多个。通信接口 522还可以用于执行和/或作为一种手段用于执行本披露中提出的其他步骤和特征。如图5所示,计算系统510还可以包括通过显示适配器526连接至通信基础设施512的至少一个显示装置524。显示装置524总体上代表能够可视地呈现显示适配器526所转发的显示信息的任意类型或形式的装置。类似地,显示适配器526总体上代表任意类型或形式的装置,这些装置被配置用于从通信基础设施512 (或从本领域已知的帧缓冲器)转发图形、文本以及其他数据以便显示在显示装置524上。如图5所示,示例性计算系统510还可以包括通过输入接口 530连接至通信基础设施512的至少一个输入装置528。输入装置528总体上代表能够向示例性计算系统510提供计算机或人员生成的输入的任意类型或形式的输入装置。输入装置528的实例包括但不限于键盘、定位装置、语音识别装置或任意其他输入装置。在至少一个实施方案中,输入装置528可以独立地或结合其他元件执行和/或作为一种手段执行在此描述的复制、识别、生成、回收、发布、接收、发送、请求、中止、使用以及恢复步骤中的一个或多个。输入装置528还可以用于执行和/或作为一种手段来执行本披露中提出的其他步骤和特征。如图5所示,示例性计算系统510还包括通过存储接口 534连接至通信基础设施512的主存储装置532和备份存储装置533。存储装置532和533总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的储存装置或媒质。例如,存储装置532与533可以是磁盘驱动器(例如,所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器、或者类似装置。存储接口 534总体上代表用于在存储装置532和533以及计算系统510的其他组件之间传输数据的任意类型或形式的接口或装置。在一个实例中,图I的数据库120可以存储在主存储装置532中。

在某些实施方案中,存储装置532和533可以被配置为用于读取自和/或写入到可移动存储单元,该可移动存储单元被配置为用于存储计算机软件、数据、或其他计算机可读信息。适当的可移动存储单元的实例包括但不限于软盘、磁带、光盘、闪存装置如等等。存储装置532和533还可以包括其他类似的结构或装置,以允许计算机软件、数据或其他计算机可读指令下载到计算系统510中。例如,存储装置532和533可以被配置用于读或写软件、数据或其他计算机可读信息。存储装置532和533还可以作为计算系统510的一部分或可以是通过其他接口系统访问的一个分离的装置。在某些实施方案中,存储装置532和533可以用于例如独立地或结合其他元件执行和/或作为一种手段执行在此描述的复制、识别、生成、回收、发布、接收、发送、请求、中止、使用以及恢复步骤中的一个或多个。存储装置532和533还可以被用于执行和/或作为一种手段用于执行本披露提出的其他步骤和特征。很多其他装置或子系统可以连接至计算系统510上。相反地,为了实施在此描述和/展示的实施方案,不需要图5中所示的所有组件和装置。以上提到的这些装置和子系统还能够以不同于图5中所示的方式进行相互连接。计算系统510还可使用任何数目的软件、固件、和/或硬件的配置。例如,在此披露的示例性实施方案中的一个或多个可以被编码为一种计算机可读媒质上的计算机程序(也称为计算机软件、软件应用程序、计算机可读指令、或计算机控制逻辑)。短语“计算机可读媒质”总体上是指能够存储或携带计算机可读指令的任何形式的装置、载体、或媒质。计算机可读媒质的实例包括但不限于传输型媒质,如载波,以及物理媒质,如磁性存储媒质(例如,硬盘驱动器和软盘驱动器)、光存储媒质(例如,CD-ROM或DVD-ROM)、电子存储媒质(例如,固态驱动器和闪存媒质)、以及其他分布式系统。包含计算机程序的计算机可读媒质可以载入到计算系统510中。存储在计算机可读媒质上的所有或部分计算机程序然后可以存储在系统内存516和/或存储装置532和533的不同部分上。当由处理器514执行时,载入到计算系统510中的计算机程序可以使处理器514执行和/或作为一种手段执行在此描述和/或展示的示例性实施方案中的一个或多个的功能。额外地或可替代地,在此所说明和/或展示的示例性实施方案中的一个或多个可以在固件和/或硬件中实施。例如计算系统510可被配置用作一种专用集成电路(ASIC),它被适配为用于实施在此所披露的这些示例性实施方案中的一个或多个。图6是示例性网络结构体系600的方框图,其中客户端系统610、620和630以及服务器640和645可以连接至网络650。客户端系统610、620和630总体上代表任意类型或形式的计算装置或系统,例如图5中的示例性计算系统510。类似地,服务器640和645总体上代表被配置为用于提供不同的数据库服务和/或运行某些软件应用程序的计算装置或系统,如应用程序服务器或数据库服务器。网络650总体上代表任何电信或计算机网络,例如它包括内部网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、或互联网。在一个实例中,客户端系统610、620和/或630和/或服务器640和/或645可以包括图I的模块102。如图6所示,一个或多个存储装置660(1)-(N)可以直接附接至服务器640。类似地,一个或多个存储装置670 (I)-(N)可以直接附接至服务器645。存储装置660 (I) - (N)和存储装置670 (I)-(N)总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或媒质。在某些实施方案中,存储装置660 (I)-(N)和存储装置670 (I)-(N) 可代表被配置为用于使用不同协议(例如NFS、SMB、或CIFS)来与服务器640和645进行通信的网络附联存储(NAS )装置。服务器640和645还可以连接至存储区域网络(SAN)结构680。SAN结构680总体上代表能够协助多个存储装置之间通信的任意类型或形式的计算机网络或体系结构。SAN结构680可以协助服务器640和645与多个存储装置690 (I)-(N)和/或智能存储器阵列695之间的通信。SAN结构680还可以通过网络650和服务器640和645协助客户端系统610,620和630与存储装置690 (I)-(N)和/或智能存储器阵列695之间的通信,其方式为装置690 (I)-(N)以及阵列695对客户端系统610、620和630呈现为本地附接的装置。与存储装置660 (I)-(N)和存储装置670 (I)-(N) —样,存储装置690 (I) - (N)和存储阵列695总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或媒质。在某些实施方案中,参考图5的示例性计算系统510,通信接口(例如,图5中的通信接口 522)可用于在每一个客户端系统610、620和630以及网络650之间提供连接性。客户端系统610、620和630能够利用例如网络浏览器或其他客户端软件来访问服务器640和645上的信息。这种软件可以允许客户端系统610、620和630访问由服务器640、服务器645、存储装置660 (I) - (N)、存储装置670 (I) - (N)、存储装置690 (I) - (N)或智能存储器阵列695管理的数据。尽管图6描绘了使用网络(例如互联网)交换数据,但在此描述和/或展示的实施方案不限于互联网或任意具体的基于网络的环境。在至少一个实施方案中,在此披露的示例性实施方案中的一个或多个的全部或一部分可被编码为计算机程序并且加载到服务器640、服务器645、存储装置660 (I)-(N)、存储装置670 (I)-(N)、存储装置690 (I)-(N)、智能存储阵列695、或它们中的任意组合上并由其执行。在此披露的多个示例性实施方案的一个或多个的全部或一部分还可以被编码为计算机程序,存储在服务器640中,由服务器645运行,并在网络650上分发给客户端系统610,620和630。因此,网络体系架构600可以独立地或与其他元件相结合地执行和/或作为一种手段执行在此描述和/或展示的多个步骤或特征中的一个或多个,例如复制、识别、生成、回收、发布、接收、发送、请求、中止、使用以及恢复步骤中的一个或多个。网络体系结构600还可以用于执行和/或作为一种手段来执行本披露中提出的其他步骤和特征。
如以上所述,计算系统510和/或网络体系结构600的一个或者多个部件可以单独地亦或与其他元件相结合地执行和/或作为一种手段来执行使复制目标能够回收瘦供给存储系统上未使存储空间的示例性方法的一个或多个步骤。在一个实施方案中,这种方法可以包括1)从复制源向复制目标复制数据,2)识别复制数据中未使用的存储空间,3)产生一条回收请求以便从瘦供给存储系统回收未使用的存储空间,该系统为复制目标提供瘦供给存储,然后4)向该瘦供给存储系统发布该回收请求以便从该瘦供给存储系统回收未使用的存储空间。在一些实例中,从复制源向复制目标复制数据可以包括利用基于块和/或基于文件的复制技术来复制数据。另外,复制源可以表示服务器计算装置并且复制目标可以表示客户端计算装置。在一个实例中,识别复制数据内未使用的存储空间可以包括从复制源接收识别未使用的存储空间的信息。在一些实例中,该信息可以包括一条拦截的最初从复制源发送至瘦供给存储系统的回收请求,该系统为复制源提供瘦供给存储。在其他实例中,该信息可以识别在复制源上执行的计算操作所释放的存储空间。 在一些实施方案中,从复制源接收信息可以包括通过带内通信协议接收信息。从复制源接收信息还可以包括1)从复制源请求信息,然后2)响应于该请求,从复制源接收该信息。在一些实例中,从复制源请求信息可以包括定期地和/或按照需求地从复制源请求信息。在一个实例中,识别复制数据内未使用的存储空间可以包括I)中止数据复制,然后2)使用数据管理API来识别复制目标上的数据的副本内的未使用的存储空间。在此实例中,中止数据复制可以包括1)使复制源上的复制数据进入一致状态,然后2)从复制源接收表示该复制数据处于一致状态的信息。在此实例中,该方法还可以包括在发出回收请求时恢复数据复制。该数据管理API可以包括文件系统API和/或应用程序API。虽然以上披露使用了多个具体的框图、流程图、以及实例阐明了不同的实施方案,在此说明和/或展示的每个框图部件、流程图步骤、操作、和/或部件都可以单独地和/或共同地使用一个大范围的硬件、软件、或者固件(或者它们的任何组合)配置来实施。另外,在其他部件之中所包括的任何部件的披露都应该看作本质上是示例性的,因为可以实施许多其他的体系结构来达到同样的功能。在一些实例中,图I中示例性系统100的全部或一部分可以表示云计算的或基于网络的环境的多个部分。云计算环境可以通过互联网提供不同的服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等等)可以通过网络浏览器或其他的远程接口进行访问。在此所述的不同功能可以通过远程桌面环境或任何其他的基于云的计算环境来提供。在此说明和/或展示的进程的参数以及步骤的顺序仅仅是以举例的方式给出并且可以按希望来更改。例如,虽然在此展示和/或说明的这些步骤可以按照一个具体的顺序来示出或讨论,但这些步骤并非必须按照所展示或者所讨论的顺序来执行。在此说明和/或展示的不同的示例性方法还可以省略在此说明或展示的一个或者多个步骤或者还可以包括除所披露的那些之外的额外步骤。虽然不同的实施方案在此已经在全功能性计算系统的背景下进行了说明和/或展示,这些示例性实施方案中的一个或者多个能够以多种形式作为一个程序产品来分发,而无论实际用于进行该分发的计算机可读媒质的具体形式如何。在此披露的这些实施方案还可以通过使用执行一些特定任务的软件模块来实施。这些软件模块可以包括脚本、成批文件、或者其他可执行文件,它们可以存储在一种计算机可读的存储媒质上或者在一种计算系统中。在一些实施方案中,这些软件模块可以将一个计算系统配置用于实施在此披露的一个或者多个示例性的实施方案。另外,在此所述的这些模块中的一个或多个可以将数据、物理装置、和/或物理装置的表示从一种形式转换到另一种形式。例如,通过在从瘦供给存储系统252和/或353回收未使用的存储空间(例如,未使用的部分259 (I)和/或359(1),图I中的回收模块108可以转变图2和3中的瘦供给存储系统252和/或353的特性或性质。已经提供了以上说明用于使本领域的其他普通技术人员能够最好地使用在此披露的这些示例性实施方案的不同方面。这种示例性说明并非旨在是穷尽性的或者被限制在所披露的任何准确的形式上。许多修改与变更都是可能的而不背离本披露的精神与范围。 应该认为在此披露的这些实施方案在所有方面都是展示性的而非限制性的。应该参照所附权利要求及其等效物来确定本披露的范围。除非另外说明,如在本说明书与权利要求中所使用的,术语“一种”或“一个”将被解释为“至少一个”的意思。此外,为便于使用,如在本说明书以及权利要求中所使用的文字“包含”和“具有”是可以互换的并且具有与文字“包括”相同的含义。
权利要求
1.一种用于使复制目标能够回收瘦供给存储系统上未使用的存储空间的计算机实现方法,该方法的至少一部分由包括至少一个处理器的计算装置来执行,该方法包括 从复制源向复制目标复制数据; 识别复制数据内未使用的存储空间; 产生一条回收请求以便从瘦供给存储系统回收未使用的存储空间,该系统为该复制目标提供瘦供给存储; 向该瘦供给存储系统发出该回收请求,以便从该瘦供给存储系统回收未使用的存储空间。
2.如权利要求I所述的方法,其中从该复制源向该复制目标复制数据包括 利用基于块的复制技术来复制数据; 利用基于文件的复制技术来复制数据。
3.如权利要求I所述的方法,其中识别该复制数据内未使用的存储空间包括从该复制源接收识别该未使用的存储空间的信息。
4.如权利要求3所述的方法,其中该信息包括一条拦截的最初从该复制源向瘦供给存储系统发送的回收请求,该系统为该复制源提供瘦供给存储。
5.如权利要求3所述的方法,其中该信息识别由在该复制源上执行的计算操作所释放的存储空间。
6.如权利要求3所述的方法,其中从该复制源接收信息包括通过带内通信协议来接收该信息。
7.如权利要求3所述的方法,其中从该复制源接收信息包括 从该复制源请求该信息; 响应于该请求从该复制源接收该信息。
8.如权利要求7所述的方法,其中从该复制源请求该信息包括以下操作中的至少一项 定期地从该复制源请求该信息; 按照需要从该复制源请求该信息。
9.如权利要求I所述的方法,其中识别该复制数据内未使用的存储空间包括 中止数据复制; 利用数据管理API来识别该复制目标上的数据的副本内的未使用的存储空间。
10.如权利要求9所述的方法,其中中止数据复制包括 使该复制源上的复制数据进入一致状态; 从该复制源接收表明该复制数据处于一致状态的消息。
11.如权利要求9所述的方法,其中该数据管理API包括以下内容中的至少一项 文件系统API ; 应用程序API。
12.如权利要求9所述的方法,进一步包括在发出该回收请求时恢复数据复制。
13.如权利要求I所述的方法,其中 该复制源包括服务器计算装置; 该复制目标包括客户端计算装置。
14.一种用于使复制目标能够回收瘦供给存储系统上的未使用的存储空间的系统,该系统包括 一个复制模块,该模块被编程为从复制源向复制目标复制数据; 一个识别模块,该模块被编程为识别该复制数据内的未使用的存储空间; 一个回收模块,该模块被编程为 产生一条回收请求以便从瘦供给存储系统回收未使用的存储空间; 向该瘦供给存储系统发出该回收请求以便从该瘦供给存储系统回收未使用的存储空间; 至少一个处理器,该处理器被配置用于执行该复制模块、该识别模块以及该回收模块。
15.如权利要求14所述的系统,其中该识别模块通过识别从该复制源接收的识别该未使用的存储空间的信息来识别该复制数据内未使用的存储空间。
16.如权利要求15所述的系统,其中该信息包括一条拦截的最初从该复制源向瘦供给存储系统发送的回收请求,该系统为该复制源提供瘦供给存储。
17.如权利要求15所述的系统,其中该信息识别由在该复制源上执行的计算操作所释放的存储空间。
18.如权利要求15所述的系统,其中该回收模块进一步被编程用于 从该复制源请求该信息; 响应于该请求从该复制源接收该信息。
19.如权利要求14所述的系统,其中 该回收模块进一步被编程用于中止数据复制; 该识别模块通过利用数据管理API来识别该复制数据内的未使用的存储空间,以识别该复制目标上的数据的副本内的未使用的存储空间。
20.一种计算机可读存储媒质,包括计算机可执行指令,当由计算装置的至少一个处理器执行时,这些指令使得该计算装置 从复制源向复制目标复制数据; 识别该复制数据内的未使用的存储空间; 产生一 条回收请求以便从瘦供给存储系统回收未使用的存储空间,该系统为该复制目标提供瘦供给存储; 向该瘦供给存储系统发出该回收请求以便从该瘦供给存储系统回收未使用的存储空间。
全文摘要
一种使复制目标能够回收瘦供给存储系统上的未使用的存储空间的计算机实现方法可以包括1)从复制源向复制目标复制数据;2)识别复制数据中未使用的存储空间;3)产生一条回收请求以便从瘦供给存储系统回收未使用的存储空间,该系统为复制目标提供瘦供给存储;然后4)向该瘦供给存储系统发布该回收请求以便从该瘦供给存储系统回收未使用的存储空间。在此还披露了不同的相关系统、方法、以及经过配置的计算机可读媒质。
文档编号G06F3/06GK102782639SQ201080063625
公开日2012年11月14日 申请日期2010年12月15日 优先权日2010年2月24日
发明者N·潘德哈克, S·V·马拉施, V·塔塔娃提 申请人:赛门铁克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1