首页> 中国专利> 使复制目标能够回收瘦供给存储系统上未使用的存储空间的系统和方法

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

摘要

一种使复制目标能够回收瘦供给存储系统上的未使用的存储空间的计算机实现方法可以包括:1)从复制源向复制目标复制数据;2)识别复制数据中未使用的存储空间;3)产生一条回收请求以便从瘦供给存储系统回收未使用的存储空间,该系统为复制目标提供瘦供给存储;然后4)向该瘦供给存储系统发布该回收请求以便从该瘦供给存储系统回收未使用的存储空间。在此还披露了不同的相关系统、方法、以及经过配置的计算机可读媒质。

著录项

  • 公开/公告号CN102782639A

    专利类型发明专利

  • 公开/公告日2012-11-14

    原文格式PDF

  • 申请/专利权人 赛门铁克公司;

    申请/专利号CN201080063625.2

  • 申请日2010-12-15

  • 分类号G06F3/06;

  • 代理机构北京泛华伟业知识产权代理有限公司;

  • 代理人王勇

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 07:21:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-09-30

    授权

    授权

  • 2013-01-30

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20101215

    实质审查的生效

  • 2012-11-14

    公开

    公开

说明书

背景技术

很多组织机构依赖于数据复制以增强可靠性、容错性、和/或其应用和 /或数据的可访问性。数据复制典型地涉及从主站点或装置(例如应用服务 器)向辅助(即,备份)站点或装置(也称为“复制目标”)复制数据。

由于在数据复制过程中产生大量的数据,数据复制服务的供应商长久 以来一直寻求最大化数据存储性能,同时最小化存储成本。为此,一些供 应商已转向瘦供给解决方案以有效地利用可用的存储空间。典型地,瘦供 给解决方案按照需要或即时地从公共池向计算系统分配存储空间以防止 存储空间浪费。

不幸的是,典型的文件或块级复制技术可以阻止复制目标识别从主站 点(例如,应用服务器)复制数据内可用的或未使用的部分。例如,在无 法访问由主站点(在产生数据时)使用的各种应用程序和/或文件系统API 的情况下,复制目标也许不能够解释从主站点接收的应用程序或文件系统 数据。在缺乏这种知识时,复制目标不能够有效地使用瘦供给存储系统来 存储复制数据,因为复制目标将不能识别(并在随后指令瘦供应存储系统 来回收)瘦供给存储系统上存储的复制数据内可用的或未使用的存储空 间。

发明内容

如以下更为详细说明的,本披露总体上涉及使复制目标能够回收瘦供 给存储系统上未使用的存储空间的多种系统及方法。在一个实例中,在此 描述的各种系统中的一种或多种可以通过如下操作完成这种任务:1)从 复制源(例如服务器)向复制目标复制数据(例如利用文件或块级复制技 术),2)识别复制数据中未使用的存储空间(利用在此描述的方法中的一 种或多种),3)产生一条回收请求以便从瘦供给存储系统回收未使用的存 储空间,该系统为复制目标提供瘦供给存储,然后4)向该瘦供给存储系 统发布该回收请求以便从该瘦供给存储系统回收未使用的存储空间。

在此描述的系统可以采用各种方式并且在各种情况下识别复制数据 内未使用的存储空间。在一个实例中,复制目标可以通过从复制源接收(例 如,通过带内通信协议)识别该未使用的存储空间的信息来识别复制数据 内未使用的存储空间。在一些实例中,该可用空间信息可以包括一条拦截 的最初从复制源发送至瘦供给存储系统的回收请求,该系统为复制源提供 瘦供给存储。在其他实例中,该可用空间信息可以使识别由在复制源上执 行的计算操作(例如磁盘碎片整理操作或文件移除操作)所释放的存储空 间。

在一些实例中,该复制目标可以响应于复制目标所发出的请求从复制 源接收该可用空间信息。例如,复制目标可以定期地或按照需要请求(并 且复制源可以相应地提供)可用空间信息。

在另一个实例中,复制目标可以通过以下操作识别复制数据内未使用 的存储空间:1)中止数据复制,然后2)使用数据管理API(例如文件系 统和/或应用程序API)来独立地识别复制数据内未使用的存储空间。一旦 回收了该未使用的存储空间,复制目标可以指令复制源恢复数据复制。

如以下更为详细解释的,在此描述的系统和方法可以使复制目标能够 从瘦供给存储系统回收未使用的存储空间,该系统为复制目标提供瘦供给 存储。因此,这些系统和方法可以使系统管理员能够在瘦供给存储环境内 对复制解决方案进行配置,从而实现可能的空间和财政节约。

来自上述任一个实施方案的多种特征可以根据在此说明的通用原理 彼此相互结合使用。通过阅读以下的详细说明连同附图和权利要求,将会 更加全面地理解这些以及其他的实施方案、特征和优点。

附图简要说明

附图展示了多个示例性实施方案并且是本说明书的一部分。这些附图 与以下的说明一起展现并解释了本披露的不同原理。

图1是一种使复制目标能够回收瘦供给存储系统上未使用的存储空间 的示例性系统的方框图。

图2是一种使复制目标能够回收瘦供给存储系统上未使用的存储空间 的示例性系统的方框图。

图3是一种使复制目标能够回收瘦供给存储系统上未使用的存储空间 的附加示例性系统的方框图。

图4是一种使复制目标能够回收瘦供给存储系统上未使用的存储空间 的示例性方法的流程图。

图5是一种示例性计算系统的方框图,该计算系统能够实施在此说明 和/或展示的这些实施方案中的一个或多个。

图6是一种示例性计算网络的方框图,该计算网络能够实施在此说明 和/或展示的这些实施方案中的一个或多个。

贯穿这些附图,相同的参考字符以及说明表示相似的但并不一定完全 相同的要素。虽然在此说明的这些示例性实施方案可容许进行不同的修改 以及多种替代形式,在此仍在附图中以举例的方式示出多个具体的实施方 案并且对其进行了详细的说明。然而,在此说明的多个示例性实施方案并 非旨在限于所披露的这些具体形式。相反,本披露覆盖落入所附权利要求 范围内的所有修改形式、等效物、以及替代方案。

示例性实施方案的详细说明

以下将参考图1至3提供使复制目标能够回收瘦供给存储系统上未使 用的存储空间的示例性系统的详细说明。还将结合图4提供相应的计算机 实现的方法的详细说明。另外,将结合图5和图6对应地提供一种示例性 计算系统和网络体系结构的详细说明,它们能够实施在此说明的这些实施 方案中的一个或多个。

图1是一种使复制目标能够回收瘦供给存储系统上的未使用的存储空 间的示例性系统100的方框图。如此图中所示,示例性系统100可以包括 用于执行一项或多项任务的一个或多个模块102。例如,如以下更为详细 解释的,示例性系统100可以包括一个复制模块104,该模块被编程为从 复制源向复制目标复制数据。示例性系统100还可以包括一个识别模块 106,该模块被编程为识别复制数据内未使用的存储空间。

另外,如以下更为详细解释的,示例性系统100可以包括一个回收模 块108,该模块被编程为从瘦供给存储系统回收未使用的存储空间,该瘦 供给存储系统为复制目标提供存储空间。尽管展示为多个分离的元件,图 1中的模块102中的一个或多个可以代表一个单一模块或应用程序中的多 个部分。

在某些实施方案中,图1中模块102的一个或多个可以代表一个或多 个软件应用程序或程序,这些软件应用程序或程序在由计算装置执行时可 以使该计算装置执行一个或多个任务。例如,如以下更为详细解释的,模 块102中的一个或多个可以代表存储并配置为运行在一个或多个计算装置 上的多个软件模块,例如图2中所示的装置(例如,复制源202和/或复制 目标222)、图3中所示的装置(例如,复制源302和/或复制目标322)、 图5中的计算系统510、和/或图6中的示例性网络体系结构600的多个部 分。图1中模块102的一个或多个还可以代表被配置用于执行一项或多项 任务的一个或多个专用计算机的全部或一些部分。

如图1所示,示例性系统100还可以包括一个或多个数据库,例如数 据库120。在一个实例中,数据库120可以包括有待从复制源复制到复制 目标的数据122(例如,存储在该复制源上)。数据库120可以代表一个单 一数据库或计算装置的多个部分或者多个数据库或计算装置。例如,数据 库120可以代表图2中所示的装置(例如,复制源202和/或复制目标222)、 图3中所示的装置(例如,复制源302和/或复制目标322)、图5中的计 算系统510中的一部分、和/或图6中的示例性网络体系结构600的多个部 分。可替代地,图1中的数据库120可以代表一个或多个物理上分离的装 置,这些装置能够由计算装置访问,例如图2中所示的装置(例如,复制 源202和/或复制目标222)、图3中所示的装置(例如,复制源302和/或 复制目标322)、图5中的计算系统510、和/或图6中的示例性网络体系架 构600的多个部分。

图1中的示例性系统100可以采用各种方式进行部署。例如,示例性 系统100的全部或一部分可以代表图2中示例性系统200的多个部分。如 图2中所示,系统200可以包括与复制目标222进行通信的复制源202。 在此实例中,瘦供给存储系统232可以为复制源202提供瘦供给存储空间 (例如,分配的空间235(1))。类似地,附加的瘦供给存储系统252可以 为复制目标222提供瘦供给存储空间(例如,分配的空间255(1))。

在一个实施方案中,如以下更为详细描述的,图1模块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可以包括图1模块102的一个或多个。

瘦供给存储系统232和252总体上代表能够按照需要和/或即时地为计 算系统存储数据的任意类型或形式的存储系统或装置(例如磁盘阵列)。 在一个实例中,瘦供给存储系统232和252可以在逻辑上分为多个逻辑单 元号(LUN)(例如,分别为LUN 234(1)-(N)和254(1)-(N)),这些单元号 的每一个可以代表对瘦供给存储系统232或252的物理部分的逻辑引用。 LUN 234(1)-(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(1)-(N)可以包含复制源302上的应用程序或文件 系统产生和/或管理的数据。与图2中的示例性系统200一样,瘦供给存储 系统352可以为复制目标322提供瘦供给存储。

图4是一种使复制目标能够回收瘦供给存储系统上未使用的存储空间 的示例性计算机实现方法400的流程图。图4所示的步骤可以由任何适合 的计算机可执行代码和/或计算系统来执行。在一些实施方案中,图4所示 步骤可以由图1中系统100、图2中系统200、图5中计算系统510的多 个组件、和/或图6中示例性体系结构600的多个部分中的一个或多个来执 行。

如图4所示,在步骤402在此描述的各种系统的一个或多个可以从复 制源向复制目标复制数据。例如,图1中的复制模块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(1)内的复制源202的数据复制到复制目标222)。类似 地,图3中的复制代理308可以从复制源302向复制目标322复制本地存 储的数据集334(1)。

返回到图4,在步骤404,在此描述的系统可以识别复制数据内未使 用的存储空间。例如,图1中的识别模块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)从复制源传输到复制目标。本文使 用的短语“带内通信协议”可以指代任意类型或形式的通信机制,该通信 机制既可以传输复制数据,又可以在相同的通信频带内传输与该复制数据 相关联的元数据。带内通信协议的实例包括但不限于VERITAS VOLUME  REPLICATOR所使用的IBC API。

在一些实例中,响应于复制目标222所发出的请求,复制目标222可 以从复制源202接收可用空间信息。例如,识别模块106作为复制目标222 的一部分可以:1)从复制源202请求可用空间信息,然后2)从复制源 202接收该可用空间信息。复制目标222可以在各种情况中(包括例如定 期地和/或按照需求地)从复制源202请求这种信息。

在一些实例中,从复制源接收的可用空间信息可以代表一条拦截的最 初从复制源(例如通过瘦供给API)发送至瘦供给存储系统的回收请求, 该系统为复制源提供瘦供给存储。例如,识别模块106(例如,作为复制 源202上的复制代理208的一部分)可以拦截应用程序204和/或文件系统 206通过API 240向瘦供给存储系统232发出的回收请求,以便回收分配 的空间235(1)的未使用部分239(1)。一旦拦截到该回收请求,识别模块106 可以通过带内通信协议210将其传送至复制目标222。然后复制目标222 可以使用该拦截的回收请求以识别从复制源202复制的数据内未使用的存 储空间。

在一些实例中,从复制源接收的可用空间信息可以识别在复制源上执 行的计算操作所释放的存储空间。例如,识别模块106作为图3中复制源 302上的应用程序304、文件系统306、和/或复制代理308的一部分可以 识别应用程序304和/或文件系统306执行的计算操作所释放的存储空间 (例如数据集334(1)的未使用部分339(1)。然后识别模块106可以通过带 内通信协议310向复制目标322传送识别计算操作所释放的存储空间(例 如,未使用部分339(1))的信息。

在以上实例中,短语“计算操作”可以指代能够释放存储系统内的空 间的任意类型或形式的计算操作。这种计算操作的实例包括但不限于磁盘 碎片整理操作、文件移除操作等等。这种操作可以由应用程序(例如应用 程序304)、文件系统(例如文件系统306)等执行。

在另一个实例中,复制目标可以在步骤404中通过以下操作识别复制 数据内未使用的存储空间:1)中止数据复制,然后2)使用数据管理API 来识别复制数据内未使用的存储空间。例如,图1中的复制模块104作为 图2中复制目标222的一部分(例如,作为复制代理228的一部分)可以 指令(例如通过带内指示协议210)复制源202中止或暂停从复制源202 向复制目标222复制数据。当接收到这种指令时,复制代理208(如以上 详细所述,它可以包括图1的复制模块104)可以致使复制源202上的复 制数据进入一致状态。例如,复制代理208可以冻结或中止应用程序204 和/或文件系统206的操作,从而确保分配给瘦供给存储系统232内的复制 源202的存储处于一致状态。接着,复制代理208可以(例如,通过带内 通信协议210)从复制源202向复制目标222发送表明复制数据(在本实 例中,是瘦供给存储系统232分配给复制源202的存储)处于一致状态的 消息。

当从复制源202接收到该消息时,复制目标222可以:1)限制实施 所有即将进行的复制写操作,然后2)使用数据管理API识别瘦供给存储 系统252上分配的空间255(1)内未使用的存储空间。例如图1的识别模块 106作为图2中复制目标222的一部分可以使用文件系统API和/或应用程 序API来识别瘦供给存储系统252上分配的空间255(1)内的未使用部分 259(1)。当回收了该未使用的存储空间时(采用以下详述的结合步骤406 和408的方式),复制目标222上的复制代理228可以指令复制源202恢 复数据复制。

返回到图4,在步骤406在此描述的系统可以产生回收请求以便从瘦 供给存储系统回收步骤404识别的未使用的存储空间,该系统为复制目标 提供瘦供给储存。例如,图1的回收模块108作为图2中复制目标222的 一部分可以产生回收请求以便从瘦供给存储系统252回收未使用的存储空 间259(1)。类似地,图1的回收模块108作为图3中复制模块322的一部 分可以产生回收请求以便从瘦供给存储系统352回收未使用的存储空间 359(1)。

在此描述的系统可以采用各种方式执行步骤406。在一个实例中,回 收模块108可以利用瘦供给API(例如图2和3中的API 240和340)产 生回收请求。

在步骤408,在此描述的系统可以向瘦供给存储系统发出回收请求, 以便从瘦供给存储系统回收未使用的存储空间。例如,图1的回收模块108 作为图2中复制目标222的一部分可以向瘦供给存储系统252发出步骤406 中产生的回收请求,以便回收未使用的部分259(1)。类似地,图1的回收 模块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)。在一个实 例中,图1模块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的其他组件之间传输数据的任意类型或形式的接口 或装置。在一个实例中,图1的数据库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可以包括图1的模块102。

如图6所示,一个或多个存储装置660(1)-(N)可以直接附接至服务器 640。类似地,一个或多个存储装置670(1)-(N)可以直接附接至服务器645。 存储装置660(1)-(N)和存储装置670(1)-(N)总体上代表能够存储数据和/或 其他计算机可读指令的任意类型或形式的存储装置或媒质。在某些实施方 案中,存储装置660(1)-(N)和存储装置670(1)-(N)可代表被配置为用于使用 不同协议(例如NFS、SMB、或CIFS)来与服务器640和645进行通信 的网络附联存储(NAS)装置。

服务器640和645还可以连接至存储区域网络(SAN)结构680。SAN 结构680总体上代表能够协助多个存储装置之间通信的任意类型或形式的 计算机网络或体系结构。SAN结构680可以协助服务器640和645与多个 存储装置690(1)-(N)和/或智能存储器阵列695之间的通信。SAN结构680 还可以通过网络650和服务器640和645协助客户端系统610、620和630 与存储装置690(1)-(N)和/或智能存储器阵列695之间的通信,其方式为装 置690(1)-(N)以及阵列695对客户端系统610、620和630呈现为本地附接 的装置。与存储装置660(1)-(N)和存储装置670(1)-(N)一样,存储装置 690(1)-(N)和存储阵列695总体上代表能够存储数据和/或其他计算机可读 指令的任意类型或形式的存储装置或媒质。

在某些实施方案中,参考图5的示例性计算系统510,通信接口(例 如,图5中的通信接口522)可用于在每一个客户端系统610、620和630 以及网络650之间提供连接性。客户端系统610、620和630能够利用例 如网络浏览器或其他客户端软件来访问服务器640和645上的信息。这种 软件可以允许客户端系统610、620和630访问由服务器640、服务器645、 存储装置660(1)-(N)、存储装置670(1)-(N)、存储装置690(1)-(N)或智能存 储器阵列695管理的数据。尽管图6描绘了使用网络(例如互联网)交换 数据,但在此描述和/或展示的实施方案不限于互联网或任意具体的基于网 络的环境。

在至少一个实施方案中,在此披露的示例性实施方案中的一个或多个 的全部或一部分可被编码为计算机程序并且加载到服务器640、服务器 645、存储装置660(1)-(N)、存储装置670(1)-(N)、存储装置690(1)-(N)、 智能存储阵列695、或它们中的任意组合上并由其执行。在此披露的多个 示例性实施方案的一个或多个的全部或一部分还可以被编码为计算机程 序,存储在服务器640中,由服务器645运行,并在网络650上分发给客 户端系统610、620和630。因此,网络体系架构600可以独立地或与其他 元件相结合地执行和/或作为一种手段执行在此描述和/或展示的多个步骤 或特征中的一个或多个,例如复制、识别、生成、回收、发布、接收、发 送、请求、中止、使用以及恢复步骤中的一个或多个。网络体系结构600 还可以用于执行和/或作为一种手段来执行本披露中提出的其他步骤和特 征。

如以上所述,计算系统510和/或网络体系结构600的一个或者多个部 件可以单独地亦或与其他元件相结合地执行和/或作为一种手段来执行使 复制目标能够回收瘦供给存储系统上未使存储空间的示例性方法的一个 或多个步骤。在一个实施方案中,这种方法可以包括:1)从复制源向复 制目标复制数据,2)识别复制数据中未使用的存储空间,3)产生一条回 收请求以便从瘦供给存储系统回收未使用的存储空间,该系统为复制目标 提供瘦供给存储,然后4)向该瘦供给存储系统发布该回收请求以便从该 瘦供给存储系统回收未使用的存储空间。

在一些实例中,从复制源向复制目标复制数据可以包括利用基于块和 /或基于文件的复制技术来复制数据。另外,复制源可以表示服务器计算装 置并且复制目标可以表示客户端计算装置。

在一个实例中,识别复制数据内未使用的存储空间可以包括从复制源 接收识别未使用的存储空间的信息。在一些实例中,该信息可以包括一条 拦截的最初从复制源发送至瘦供给存储系统的回收请求,该系统为复制源 提供瘦供给存储。在其他实例中,该信息可以识别在复制源上执行的计算 操作所释放的存储空间。

在一些实施方案中,从复制源接收信息可以包括通过带内通信协议接 收信息。从复制源接收信息还可以包括:1)从复制源请求信息,然后2) 响应于该请求,从复制源接收该信息。在一些实例中,从复制源请求信息 可以包括定期地和/或按照需求地从复制源请求信息。

在一个实例中,识别复制数据内未使用的存储空间可以包括:1)中 止数据复制,然后2)使用数据管理API来识别复制目标上的数据的副本 内的未使用的存储空间。在此实例中,中止数据复制可以包括:1)使复 制源上的复制数据进入一致状态,然后2)从复制源接收表示该复制数据 处于一致状态的信息。在此实例中,该方法还可以包括在发出回收请求时 恢复数据复制。该数据管理API可以包括文件系统API和/或应用程序API。

虽然以上披露使用了多个具体的框图、流程图、以及实例阐明了不同 的实施方案,在此说明和/或展示的每个框图部件、流程图步骤、操作、和 /或部件都可以单独地和/或共同地使用一个大范围的硬件、软件、或者固 件(或者它们的任何组合)配置来实施。另外,在其他部件之中所包括的 任何部件的披露都应该看作本质上是示例性的,因为可以实施许多其他的 体系结构来达到同样的功能。

在一些实例中,图1中示例性系统100的全部或一部分可以表示云计 算的或基于网络的环境的多个部分。云计算环境可以通过互联网提供不同 的服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、 基础设施即服务等等)可以通过网络浏览器或其他的远程接口进行访问。 在此所述的不同功能可以通过远程桌面环境或任何其他的基于云的计算 环境来提供。

在此说明和/或展示的进程的参数以及步骤的顺序仅仅是以举例的方 式给出并且可以按希望来更改。例如,虽然在此展示和/或说明的这些步骤 可以按照一个具体的顺序来示出或讨论,但这些步骤并非必须按照所展示 或者所讨论的顺序来执行。在此说明和/或展示的不同的示例性方法还可以 省略在此说明或展示的一个或者多个步骤或者还可以包括除所披露的那 些之外的额外步骤。

虽然不同的实施方案在此已经在全功能性计算系统的背景下进行了 说明和/或展示,这些示例性实施方案中的一个或者多个能够以多种形式作 为一个程序产品来分发,而无论实际用于进行该分发的计算机可读媒质的 具体形式如何。在此披露的这些实施方案还可以通过使用执行一些特定任 务的软件模块来实施。这些软件模块可以包括脚本、成批文件、或者其他 可执行文件,它们可以存储在一种计算机可读的存储媒质上或者在一种计 算系统中。在一些实施方案中,这些软件模块可以将一个计算系统配置用 于实施在此披露的一个或者多个示例性的实施方案。

另外,在此所述的这些模块中的一个或多个可以将数据、物理装置、 和/或物理装置的表示从一种形式转换到另一种形式。例如,通过在从瘦供 给存储系统252和/或353回收未使用的存储空间(例如,未使用的部分 259(1)和/或359(1),图1中的回收模块108可以转变图2和3中的瘦供给 存储系统252和/或353的特性或性质。

已经提供了以上说明用于使本领域的其他普通技术人员能够最好地 使用在此披露的这些示例性实施方案的不同方面。这种示例性说明并非旨 在是穷尽性的或者被限制在所披露的任何准确的形式上。许多修改与变更 都是可能的而不背离本披露的精神与范围。应该认为在此披露的这些实施 方案在所有方面都是展示性的而非限制性的。应该参照所附权利要求及其 等效物来确定本披露的范围。

除非另外说明,如在本说明书与权利要求中所使用的,术语“一种” 或“一个”将被解释为“至少一个”的意思。此外,为便于使用,如在本 说明书以及权利要求中所使用的文字“包含”和“具有”是可以互换的并 且具有与文字“包括”相同的含义。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号