管理数据删除的方法转让专利

申请号 : CN200680002192.3

文献号 : CN100583096C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 斯蒂芬·J·托德迈克尔·基利安汤姆·托伊杰尔斯弗兰克·马蒂斯基姆·马里沃特

申请人 : 伊姆西公司

摘要 :

本发明致力于从存储系统删除内容单元。当内容单元被删除时,可创建反射并将其保存在存储系统上。所述反射确定所删除的内容单元并可包括另外的信息,如内容单元的一部分内容及关于内容单元的删除的审计信息。

权利要求 :

1、从存储系统删除内容单元的方法,包括步骤:接收删除内容单元的请求;

响应于所述请求,创建确定所述内容单元的、称为反射的替换内 容单元;

将所述反射保存在存储系统上;及

从存储系统删除所述内容单元;

其中存储系统是可内容寻址存储系统,其中删除内容单元的请求 包括所述内容单元的、至少部分基于所述内容单元的部分内容计算的 内容地址,及其中所述反射基于所述内容地址确定内容单元。

2、根据权利要求1的方法,其中所述反射包括所述内容单元的 至少一部分。

3、根据权利要求1的方法,其中所述反射包括确定接收删除内 容单元的请求的大约时间的信息。

4、根据权利要求1的方法,其中所述反射包括确定产生删除内 容单元的请求的实体的信息。

5、根据权利要求1的方法,其中所述反射包括确定内容单元的 大小的信息。

6、根据权利要求1的方法,其中所述内容单元保存在存储系统 上的文件系统中,及其中从存储系统删除内容单元的步骤进一步包括 步骤:从文件系统删除内容单元。

7、根据权利要求1的方法,其中所述内容单元保存在存储系统 的至少一存储装置上,及从存储系统删除内容单元的步骤进一步包括 步骤:盖写至少一存储装置保存所述内容单元的那一部分。

说明书 :

技术领域

本发明涉及数据存储,特别是涉及用于管理存储系统上保存的数 据的删除的方法和装置。

背景技术

存储系统通常具有有限的数据存储容量。因而,保存在存储系统 上的数据有时被有意删除以使存储空间可用于新数据。数据也可被无 意删除,例如,如果用户删除仍在使用的数据,则认为该数据不再需 要。另外,存储系统上的数据可由寻求对组织数据搞破坏或试图掩盖 数据中备有证明文件的不道德活动的恶意用户以未经授权的方式删 除。

发明内容

本发明的一说明性实施例致力于从存储系统删除内容单元的方 法。所述方法包括:接收删除内容单元的请求;响应于所述请求,创 建确定所述内容单元的称为反射的替换内容单元;将所述反射保存在 存储系统上;及从存储系统删除所述内容单元;其中存储系统是可内 容寻址存储系统,其中删除内容单元的请求包括所述内容单元的、至 少部分基于所述内容单元的部分内容计算的内容地址,及其中所述反 射基于所述内容地址确定内容单元。
另一说明性实施例致力于保存内容单元的存储系统。存储系统包 括:输入装置;及连到输入装置的至少一控制器,其:接收删除内容 单元的请求;响应于所述请求,创建确定所述内容单元的反射;将所 述反射保存在存储系统上;及从存储系统删除所述内容单元。
另一说明性实施例致力于在存储系统中处理访问内容单元的请 求的方法,所述方法包括:响应于所述访问请求,确定对于所述内容 单元的反射是否保存在存储系统上,所述反射指示所述内容单元先前 保存在存储系统上但已被删除。另一说明性实施例致力于编码以指令 的至少一计算机可读介质,当所述指令在计算机系统上运行时,执行 上述方法。
另一说明性实施例致力于进行配置以处理访问内容单元的请求 的存储系统。所述存储系统包括:输入装置;及连到所述输入装置的 至少一控制器,其:响应于所述访问请求,确定对于所述内容单元的 反射是否保存在存储系统上,所述反射指示所述内容单元先前保存在 存储系统上但已被删除。
另一说明性实施例致力于管理存储系统上的内容单元的方法,所 述存储系统保存多个内容单元。该方法包括:响应于将新内容单元保 存在存储系统上的请求,将确定新内容单元保存在存储系统上的时间 的信息保存在存储系统上;及响应于从存储系统删除先前保存的内容 单元的请求,将反射保存在存储系统上,所述反射确定先前保存的内 容单元并包括确定先前保存的内容单元从存储系统删除的时间的信 息。另一说明性实施例致力于编码以指令的至少一计算机可读介质, 当所述指令在计算机系统上运行时,执行上述方法。
另一说明性实施例致力于配置成保存多个内容单元的存储系统, 包括:至少一存储装置;及至少一控制器,其:响应于将新内容单元 保存在存储系统的至少一存储装置上的请求,将确定新内容单元保存 在存储系统上的时间的信息保存在存储系统上;及响应于从存储系统 删除先前保存的内容单元的请求,将反射保存在存储系统的至少一存 储装置上,所述反射确定先前保存的内容单元并包括确定先前保存的 内容单元从存储系统删除的时间的信息。
另一说明性实施例致力于管理存储系统上的内容单元的方法,所 述存储系统保存内容单元。所述方法包括:响应于确定在指定时间保 存于存储系统上的内容单元的请求,确定在接收到所述请求时存储系 统上保存的哪些内容单元在指定时间保存于存储系统上;及通过检查 删除的内容单元的反射确定从存储系统删除的哪些内容单元在指定 时间保存于存储系统上,每一反射确定至少一相应的已删除内容单元 并包括确定至少一相应的已删除内容单元从存储系统删除的时间的 信息。另一说明性实施例致力于编码以指令的至少一计算机可读介 质,当所述指令在计算机系统上运行时,执行上述方法。
另一说明性实施例致力于配置成管理内容单元的存储系统。所述 存储系统包括:输入装置;及至少一控制器,其:响应于确定在指定 时间保存于存储系统上的内容单元的请求,确定在接收到所述请求时 存储系统上保存的哪些内容单元在指定时间保存于存储系统上;及通 过检查删除的内容单元的反射确定从存储系统删除的哪些内容单元 在指定时间保存于存储系统上,每一反射确定至少一相应的已删除内 容单元并包括确定至少一相应的已删除内容单元从存储系统删除的 时间的信息。
另一说明性实施例致力于一种方法,其包括:响应于从至少一存 储系统删除第一内容单元的请求,所述第一内容单元具有内容及指明 第一内容单元将被保留的时间段的第一保持周期,所述请求在第一保 持周期期满之前接收到,删除第一内容单元;创建第二内容单元以代 替第一内容单元,第二内容单元包括第一内容单元的至少部分内容并 具有不同于第一保持周期的第二保持周期;及创建用于第一内容单元 的反射,其中所述反射确定第二内容单元为第一内容单元的替换。另 一说明性实施例致力于编码以指令的至少一计算机可读介质,当所述 指令在计算机系统上运行时,执行上述方法。
另一说明性实施例致力于存储系统,包括:输入装置;连到所述 输入装置的至少一控制器,其:响应于从至少一存储系统删除第一内 容单元的请求,所述第一内容单元具有内容及指明第一内容单元将被 保留的时间段的第一保持周期,所述请求在第一保持周期期满之前接 收到,删除第一内容单元;创建第二内容单元以代替第一内容单元, 第二内容单元包括第一内容单元的至少部分内容并具有不同于第一 保持周期的第二保持周期;及创建用于第一内容单元的反射,其中所 述反射确定第二内容单元为第一内容单元的替换。

附图说明

图1为根据本发明的一说明性实施例,示出从存储系统删除内容 单元同时留下所述内容单元的反射的过程的流程图。
图2为根据一说明性实施例,存储系统处理删除请求及创建反射 的示意图。
图3为根据一与可内容寻址存储系统一起使用的说明性实施例, 用于确定反射的内容地址的过程的例子的示意图。
图4为本发明的一些实施例可于其上实施的存储系统的框图。
图5为根据一实施例,示出万一未能适当删除内容单元时反射的 使用的示意图。及
图6为根据一实施例,使用反射修改内容单元的保持周期的示意 图。

具体实施方式

申请人已意识到,现有技术存储系统可允许删除其上保存的数 据,但可提供有限的跟踪删除或恢复无意删除的数据的能力,或者根 本没有这样的能力。因而,系统管理员很难或不可能确定数据在何时 删除、为什么删除、及由谁删除。
特定类型的存储系统的例子是可内容寻址存储(CAS)系统,其 接收和处理删除由内容地址确定的内容单元的请求。CAS是这样一种 技术,通过其保存在存储系统上的内容单元可通过使用源自内容单元 的内容的地址进行访问。作为例子,内容单元可提供为散列函数的输 入,所述散列函数产生可用作内容单元的内容地址的散列值。适于产 生内容地址的散列函数的例子是消息摘要5(MD5)散列算法。当主 计算机发送请求给CAS系统以取回数据单元时,主机提供内容单元的 内容地址(如散列值)。之后,存储系统基于内容地址确定内容单元 在存储系统中的物理位置,从该位置取回内容单元,及将内容单元返 回给主计算机。示例性的CAS系统在下面表1中列出的专利申请中详 细描述,每一所述专利申请均通过引用全部组合于此。
CAS系统可以多种方式保存和管理内容单元。在表1的申请中描 述的示例性系统中,内容单元可保存为文件系统中的文件,及各种各 样的数据库可用于管理内容单元和跟踪内容单元在CAS系统上的存 储位置。当CAS系统接收到删除特定内容单元的请求时,其可从文件 系统删除与该内容单元相关联的文件并删除对CAS系统数据库中的 内容单元的引用。因而,当CAS系统随后接收到读所述内容单元的请 求时,CAS系统将不能定位和取回所述内容单元(尽管事实是,实际 的内容数据仍然保存在存储系统中如磁盘上(当CAS系统使用磁盘存 储时))。常规CAS系统不记录删除日志或创建审计踪迹从而不能随 后跟踪删除。
此外,申请人已认识到,在现有技术CAS系统中,其中内容单元 镜象在CAS系统上,已被删除的内容单元可能不合需要地由CAS系统 再生。例如,当CAS系统为分布式存储系统时,这种情形可能发生。 分布式存储系统是包括多个独立结点的系统,每一结点具有其自己的 处理资源,这些资源连在一起(如通过通信网络)并一起运行以提供 存储系统功能。在表1的申请中描述的一些示例性CAS系统中,独立 的结点可包括处理访问请求的访问结点和保存数据的存储结点。当内 容单元保存在存储结点之一上时,内容单元可被镜象到另一存储结 点,使得在主要存储结点失效的情况下存在内容单元的镜象拷贝。然 而,当CAS系统接收删除内容单元的请求时如果保存内容单元的存储 结点之一脱机(如由于临时故障),内容单元不能从该存储结点删除。 CAS系统可能具有控制复制进程并确保内容单元被复制的后台进程。 因而,当存储结点重新联机时,检查以确保内容单元被镜象的后台进 程可确定内容单元未被镜象并可在不同的存储结点上创建该内容单 元的镜象拷贝并用关于该内容单元的信息重新填充CAS系统数据库。 因此,CAS系统可响应于将来的读请求返回内容单元,尽管已接收和 处理删除该内容单元的请求。
此外,CAS系统可进行配置以将数据复制到远程CAS系统(即将 内容单元镜象到远程CAS系统)。因而,由本地CAS系统接收的任何 写请求可被复制到远程CAS系统(例如,使得万一灾难性故障时存在 CAS系统的镜象)。然而,申请人已意识到,删除请求不可复制。也 就是说,当删除内容单元的请求由本地CAS系统处理时,内容单元仅 从该CAS系统删除,而不由远程CAS系统处理。因而,如果内容单元 保存在本地和远程CAS系统上,删除内容单元的请求仅可导致内容单 元的一个拷贝的删除,从而内容单元的一个或多个拷贝仍然存在。
另外,申请人已意识到,一些现有技术CAS系统不能保证在内容 单元删除之前复制。也就是说,例如,用户可具有本地CAS系统,其 被配置成使得其保存的每一内容单元归档到远程CAS系统。用户希望 当从本地CAS系统删除内容单元时,所述内容单元不从远程CAS系统 删除,使得远程CAS系统保存写入本地CAS系统的每一内容单元,不 管该内容单元是否依然由本地CAS系统保存。然而,复制可能异步发 生。即,保存到本地CAS系统的内容单元可能不立即复制到远程CAS 系统。因而,在内容单元复制到远程CAS系统之前,本地CAS系统可 能接收删除内容单元的请求并将其删除。结果,内容单元可能被从本 地CAS系统删除并永远不可按计划复制到远程CAS系统。
申请人还已意识到,在现有技术CAS系统中,由删除释放的存储 空间的量未被记录。因而,很难确定CAS系统上有多少存储空间可用。 例如,可用的存储容量可通过保持写入存储系统的所有内容单元的总 大小的连续计数并从总可用容量减去该数进行确定。然而,申请人已 意识到,当内容单元被删除时,内容单元的大小不被加回总可用容量 从而不能说明删除释放的存储空间量。
本发明的不同实施例解决现有技术存储系统的这些局限性。然 而,应意识到,本发明的每一实施例不必须克服所有这些局限性。实 际上,本发明的实施例可解决部分、所有上述现有技术局限性,甚或 不解决所述局限性。
本发明的一实施例致力于跟踪存储系统上内容单元的删除,使得 关于删除的记录存在。这样的记录可以任何适当的方式保存,因为本 发明在这方面没有限制。在一实施例中,当存储系统接收到删除内容 单元的请求时,存储系统可创建另一内容单元,在此称为反射,以代 替所述内容单元并包括可用于跟踪内容单元的删除的信息。反射可保 存在存储系统上(或别处),且被请求删除的内容单元可被删除、指 定删除或移动。
本发明的一些实施例可于其上实施的存储系统的例子如图4中 所示。在图4中,存储系统401包括处理器405、网络接口403、存 储器409(随机存取存储器)、及数据如内容单元可保存于其上的存 储装置407(如磁盘驱动器),所述网络接口可连到网络以使存储系 统401能在网络上发送和接收通信。
应意识到,图4中所示的存储系统仅是本发明的实施例可于其上 实施的存储系统的一个例子,本发明在这方面没有限制,因为本发明 的实施例可于其上实施的存储系统在材料方面可与图4中所示的存 储系统不同。例如,在图4中,存储系统401仅包括一个存储装置 407和一个处理器405。本发明在这方面没有限制,因为本发明可于 其上实施的存储系统可包括任何适当数量的存储装置和/或任何适当 数量的处理器。此外,存储系统可以是包括多个独立结点的分布式存 储系统(上面详述),每一结点包括单独的存储装置和处理资源。
处理删除请求的例子如图2中所示。在图2中,计算机系统200 包括主计算机201和保存内容单元207的存储系统203。存储系统可 以是任何类型的存储系统。在一实施例中,存储系统203可以是采取 表1列出的申请中描述的任何形式的CAS系统。然而,本发明在这方 面没有限制,且可与其它类型的存储系统一起使用。响应于删除内容 单元207的请求205,创建反射209(如由存储系统203),其确定 内容单元207并包括另外的关于内容单元207及其删除的信息。
反射可包括任何适当的信息。例如,反射可包括将要删除的内容 单元的一部分(或所有)内容、确定将要删除的内容单元的信息、和 /或审计信息。例如,审计信息可包括内容单元的删除时间、产生删 除内容单元的请求的用户或应用程序、产生删除内容单元的请求的计 算机的网络地址、将要删除的内容单元的大小、和/或任何其它适当 的信息。
在一实施例中,反射还可包括指示反射是反射和/或不是实际内 容单元的标记。标记可以任何适当的方式包括在反射中,因为本发明 在这方面没有限制。例如,标记可以是反射的内容的一部分。在反射 作为文件系统中的文件保存在存储系统上的本发明实施例中,标记可 以是反射的文件名的一部分,但致力于保存反射的实施例在这方面没 有限制。在实施在CAS系统上的本发明实施例中,反射可被赋予至少 部分从反射的内容计算的内容地址。指示内容单元是反射的标记可形 成反射的内容地址的一部分。CAS系统可将内容单元保存为文件系统 中的文件,并将内容单元的内容地址使用为对于所述内容单元的文件 的文件名(或文件名的部分)。在这方面,指示内容单元是反射的标 记可位于反射的内容地址及所述反射的文件的文件名中。应意识到, 致力于在CAS系统上使用的实施例不限于在采用文件系统保存内容 单元和/或反射的CAS系统上使用。实际上,CAS系统可以任何适当 的方式保存内容单元,因为本发明在这方面没有限制。在这方面,本 发明不限于将内容单元的内容地址放在文件的文件名中,因为内容地 址可以任何适当的方式与内容相关联(如使用数据库表)。
反射可确定其对应的内容单元,使得可确定反射中保存的信息从 属于哪一内容单元,并使得可找到反射中保存的信息。特定内容单元 的反射可以任何适当的方式确定内容单元。例如,反射的内容可包括 确定内容单元的信息(如内容单元当保存在文件系统中时的文件名)。 在本发明与CAS系统一起使用的实施例中,内容单元的内容地址可包 括在反射中。例如,删除的内容单元的内容地址可包括在反射的内容 中或可包括在反射的内容地址中。
例如,反射的内容地址可包括至少部分从反射的内容及反射对应 的内容单元的内容地址产生的散列值。反射的内容地址还可包括另外 的信息,如指示创建反射的时间(或大致时间)的时间戳、可包括在 内容地址中以保证没有两个内容单元具有相同内容地址的全局唯一 标识符(GUID)、和/或其它适当的信息。因而,例如,如图3中所 示,反射303可使用散列函数307进行散列,从而得到为DEF456的 散列值309。反射可代替具有为ABC123的内容地址305的内容单元 301。内容地址305可与散列值309结合得到用于反射303的为 ABC123.DEF456的内容地址311。应意识到,上述例子中提供的内容 地址仅是内容地址的适当格式的例子,本发明在这方面没有限制。即, 在上述例子中,内容地址为二进制数的ASCII字符表示。内容地址不 必须由ASCII字符表示,因为本发明在这方面没有限制。此外,在上 面提供的例子中,内容单元的内容地址包括6个字符,反射的内容地 址包括12个字符。本发明在这方面没有限制,因为这样的内容地址 可包括任何适当数量的字符(或二进位)。
在计算和保存反射内容的散列的实施例中,反射的完整性可在以 后的时间进行确认。例如,当反射被访问时,反射的内容可被散列并 与先前计算的内容地址散列值进行比较。如果两个值不匹配,则反射 的内容可能已被破坏或改变。
如上所述,响应于删除内容单元的请求,内容单元可被删除、指 定删除、或移到不同位置。这可以任何适当的方式进行,因为本发明 在这方面没有限制。例如,如果内容单元保存为文件系统中的文件, 对应于内容单元的文件可从文件系统删除。
如上所述,一实施例可与表1的申请中描述的CAS系统一起使用。 部分所述CAS系统可将内容保存在称为二进制大对象的单元中。例 如,二进制大对象可以是二进制数据,如病人x光照片、公司财务记 录、或任何其它适当类型的数据。每一二进制大对象具有至少一与其 相关联的内容描述符文件(CDF)。与二进制大对象相关联的CDF可 包括二进制大对象的元数据及对二进制大对象的引用(如二进制大对 象的内容地址)。CDF可引用多个二进制大对象或CDF,使得CDF包 括多个所引用二进制大对象的引用和元数据。CAS系统不允许直接删 除二进制大对象。即,CDF可被直接删除,但删除二进制大对象的请 求可能被CAS系统拒绝。二进制大对象可由CAS系统的后台无用信息 收集进程删除,其确定二进制大对象是否被任何CDF引用。如果二进 制大对象未由任何CDF引用,二进制大对象可由无用信息收集进程删 除。
根据与刚才所述的、将内容保存为二进制大对象和CDF的CAS系 统一起使用的一实施例,删除请求可按图1中所示进行处理。在步骤 101,删除CDF的请求由CAS系统接收。过程进行到步骤103,CAS系 统创建代替CDF的反射。反射可以任何适当的方式创建。如上所述, CAS系统可包括用于管理内容单元和跟踪内容单元在CAS系统上的位 置的一个或多个数据库。根据本发明的一实施例,当反射被创建时, 这些数据库可被更新以包括所述反射,例如,从而使能响应于随后的 读请求找到反射。
接着,过程进行到步骤105,CAS系统的数据库中的任何对CDF 的引用可被删除。其后,过程进行到步骤107,CDF被移到文件系统 中的临时目录。一旦对CDF的引用被从CAS系统的数据库删除且CDF 从其文件系统位置移走,随后的访问所述CDF的请求将失败。所述 CDF可保存在临时目录中用于无用信息收集目的。即,CAS系统可保 持对CAS系统上保存的每一二进制大对象的引用计数,其指示引用二 进制大对象的CDF的数量。后台无用信息收集进程可定期检查临时目 录并可更新对应于在临时目录中找到的CDF的二进制大对象的引用 计数。即,无用信息收集进程可到删除的CDF所在的临时目录、确定 CDF引用的二进制大对象、及递减这些二进制大对象的引用计数。之 后,无用信息收集进程可确定是否CDF引用的二进制大对象的任何引 用计数为0,并可删除引用计数为0的任何二进制大对象。一旦完成 对临时目录中的CDF的处理,无用信息收集进程可从文件系统删除 CDF。
如上所述,在一实施例中,响应于删除请求,内容单元可从其所 在的存储系统上删除,但被移到另一存储位置以保持内容单元可取回 的可能性。这可以任何适当的方式进行。例如,反射可被创建成包括 指示内容单元在另一存储系统上的位置的信息。在一实施例中,另一 存储系统是磁带存储系统。然而,应意识到,本发明在这方面没有限 制,因为删除的内容单元所移到的存储位置可以是任何适当的存储位 置,如采用磁盘或光盘存储装置的存储系统上的位置。
如上所述,在写入本地CAS系统的内容单元被复制到另一远程 CAS系统的一些现有技术系统中,删除本地CAS系统的内容单元的请 求不可复制到也保存内容单元的远程CAS系统,从而内容单元未从远 程CAS系统删除。在本发明的一实施例中,其中CAS系统配置成将内 容单元复制到一个或多个远程CAS系统,当内容单元在CAS系统上被 删除时,内容单元也可在其先前复制到的任何远程CAS系统上删除。 这可以任何适当的方式进行。例如,所删除内容单元的反射可复制到 远程CAS系统。即,当CAS系统接收删除内容单元的请求时,内容单 元可被删除及反射可创建在CAS系统上。之后,所述反射可复制到保 存所述内容单元的拷贝的任何其它CAS系统。所述其它CAS系统可被 配置成,当接收到所复制的反射时,找到代替其的内容单元并使用任 何适当的技术(其例子在上面结合图1描述)将所述内容单元删除。
在某些情形下,可能希望数据从本地CAS系统删除但不删除其先 前复制到的远程CAS系统上的拷贝,使得远程CAS系统可用作本地 CAS系统的档案库存储器(例如,使得从本地CAS系统删除的内容单 元可恢复)。在这些情况下,当反射从本地CAS系统复制到远程CAS 系统时,远程CAS系统可保存反射但不删除与该反射相关联的内容单 元。或者,在这些情况下,反射不可从本地CAS系统复制到远程CAS 系统。
如上所述,在本地CAS系统被配置成将内容单元复制到远程CAS 系统的情形中,可能希望确保在保存到本地CAS系统的内容单元被从 本地CAS系统删除之前其复制到远程CAS系统。在本发明配置成用于 远程复制内容单元的系统的一实施例中,内容单元不可从本地CAS系 统删除,直到它们已被复制到远程CAS系统为止。这可以任何适当的 方式进行。例如,本地CAS系统可被配置成仅在内容单元的反射已被 复制之后删除内容单元。当本地CAS系统接收到删除内容单元的请求 时,可创建所述内容单元的反射,但推迟内容单元的删除。在本地 CAS系统上运行的复制进程可被配置成按时间顺序复制内容单元,使 得先创建的内容单元先被复制,并将最后复制所述内容单元的反射。 一旦内容单元的反射已被复制,内容单元可从本地CAS系统删除。此 外,由于内容单元在反射之前创建,内容单元将已经被复制到远程 CAS系统。当远程系统接收到反射时,如上所述,其可删除相应的内 容单元或保留它。
在上述例子中,CAS系统被设计为本地CAS系统和远程CAS系统。 在上述例子中的术语本地和远程仅用于区分接收请求的CAS系统(即 本地CAS系统)和所述请求复制到其的CAS系统(即远程CAS系统)。 如上所使用的,术语本地和远程不意为CAS系统之间的物理距离。在 本地和远程CAS系统可实际上分开很大的物理距离的同时,本发明涉 及与复制的内容单元一起使用的技术的各方面在这方面没有限制,因 为本地和远程CAS系统也可在同一房间内或在同一计算机机柜或机 架上。
一旦内容单元已从存储系统删除,随后的请求内容单元的请求将 不能定位内容单元,及访问内容单元的请求将失败。例如,访问请求 可包括读请求、已存在请求或删除请求。已存在请求是请求存储系统 确定特定内容单元是否已存在(即保存)于存储系统上。例如,存储 系统可能接收读先前删除的内容单元的请求,其通过内容地址确定内 容单元。存储系统可能试图基于内容地址查找内容单元。可用于查找 存储系统上的内容单元的技术的例子在表1列出的专利申请中描述。 然而,本发明不限于这些例子中的任一个,因为查找存储系统上的内 容单元可以任何适当的方式进行。在上述例子中,其中内容单元被列 在文件系统或存储系统的数据库中,在删除后,由于内容单元未被列 在文件系统或存储系统的数据库中,则所述内容单元将不能由存储系 统找到。然而,当基于所删除内容单元的内容地址搜索时,存储系统 可找到在删除内容单元时创建的内容单元的反射。这可以任何适当的 方式进行。例如,当所删除内容单元的反射包括所删除内容单元的内 容地址时,搜索内容单元的内容地址将找到反射。当存储系统找到内 容单元的反射且没有找到内容单元本身时,存储系统可以任何适当的 方式响应于访问请求,因为本发明在这方面没有限制。例如,存储系 统可向发出请求的实体指明内容单元不存在。或者,存储系统可指明 反射存在和/或可返回反射。
在某些情形下,存储系统可找到内容单元的反射及内容单元本 身。例如,这可在本发明的实施例在分布式CAS系统上实施时出现, 其中CAS系统在两个不同的存储结点保存内容单元的两个拷贝。例 如,如图5中所示,如果两个存储结点中的第一结点(即结点501) 在接收到删除内容单元的请求时脱机,则内容单元可从第二存储结点 (即结点503)删除。然而,由于结点501脱机,内容单元不可从结 点501删除。此外,内容单元的反射505可被创建在结点503上,而 不是结点501上。当结点501随后恢复联机时,响应于随后的访问内 容单元的请求,存储系统可找到响应于删除请求创建的反射505和内 容单元本身(即内容单元507)。
当响应于访问请求同时找到内容单元的反射及内容单元时,存储 系统可以任何适当的方式响应。例如,如图5中所示,存储系统可首 先确定谁保存在存储系统上。如果内容单元先于反射保存,则存储系 统可确定试图删除内容单元失败(如由于存储结点临时故障)并可例 如删除内容单元或处理内容单元好像其不存在。如果反射先于内容单 元保存,则存储系统可确定内容单元在删除请求被处理之后又重新写 入存储系统,因此应保留其存在于存储系统上。
存储系统可以任何适当的方式确定两个内容单元中的哪一个先 被保存,因为本发明在这方面没有限制。例如,在本发明的一实施例 中,内容单元的内容地址可包括指示内容单元初始保存时间的时间 戳。存储系统可检查内容单元(即原始内容单元和反射)的时间戳以 确定其中的每一个在何时保存。应意识到,这仅是存储系统可确定内 容单元保存到存储系统上的时间的方式的一个例子,本发明在这方面 没有限制。
在一实施例中,存储系统可处理查询反射的请求。查询请求是返 回与满足请求中指明的条件的内容单元相关联的信息(如内容地址) (和/或内容单元本身)的请求,例如,查询可请求关于在某一时间 范围期间删除的所有内容单元的信息。作为响应,存储系统可确定在 该时间范围期间创建的所有反射(如使用反射的内容地址中的时间 戳)并返回与所删除内容单元相关联的信息(如反射的内容地址和/ 或反射本身)。
申请人已意识到,当存储系统已长期运行时,存储系统可能保存 大量反射,其占用存储系统的存储容量。因而,在本发明的一实施例 中,反射本身可被删除(即不由另一反射代替)。这可以任何适当的 方式进行。例如,存储系统可包括后台无用信息收集进程,其在反射 已被保存一定时间之后将这些反射删除。或者,存储系统可允许存储 系统的用户直接删除反射(如使用通过内容地址确定反射的删除请 求)。
在一实施例中,反射的删除可通过使用保持周期进行管理。如在 表1中列出的、题为“存储系统中的数据保持方法和装置”的申请 10/731,790中详细描述的,保持周期是与内容单元相关联的时间段, 在其期间内容单元不可删除。当创建反射时保持周期可与反射关联, 存储系统可被配置成,使得在保持周期期满之后存储系统删除反射。 或者,保持分类可用于帮助删除反射。如表1中列出的、题为“修改 存储系统中的数据保持周期的方法和装置”的申请10/762,044中详 细描述的,通过将所有具有相同保持周期的内容单元放入保持分类而 使保持分类应用于一组内容单元。保持分类可对反射进行创建并可具 有与其相关联的某一保持周期。当创建反射时,其可被放入保持分类, 从而赋予其保持周期。当其保持周期已期满时,反射可由存储系统自 动删除。
应意识到,使用保持周期仅是反射的删除可被管理的一种方式, 本发明在这方面没有限制,因为反射的删除可以任何适当的方式管 理。此外,本发明不要求反射必须被删除,因为反射可保留在存储系 统上而不被删除。
在本发明的一实施例中,内容单元可因任何目的进行恢复(例如, 如果认识到内容单元被无意删除且希望恢复该内容单元)。这可以任 何适当的方式完成。例如,当删除内容单元且创建反射以代替内容单 元时,内容单元的全部内容可保存在反射中。因而,如果希望在其删 除之后恢复内容单元,内容可从反射进行恢复且内容单元可被重新写 入存储系统。在内容单元存为二进制大对象和CDF的本发明实施例 中,二进制大对象和CDF的反射可用于恢复这些内容单元,因为本发 明在这方面没有限制。
根据本发明的一实施例,采用使能确定在任何给定时间点什么被 保存在存储系统上的技术。这可以任何适当的方式进行,因为本发明 的该方面不限于任何特定的实施技术。例如,当与上述反射技术一起 使用时,其中整个删除的内容单元可保存在反射中,为确定在特定时 间点什么内容单元被保存在存储系统上,创建当前保存在存储系统上 的所有内容单元的列表,不包括反射。之后,可确定哪些内容单元在 指定时间点之后写入存储系统(如通过检查所有内容单元的内容地址 中的时间戳)。这些内容单元可从列表中删除。接着,可确定哪些内 容单元在指定时间之前写入且在指定时间之后删除。例如,这可通过 找到具有指定日期之后的时间戳的所有反射并确定由这些反射中的 每一个代替的内容单元是否在指定日期之前写入存储系统而完成。所 删除内容单元被写入存储系统的时间可以任何适当的方式确定(如通 过检查其反射的内容地址)。由于反射的内容地址包括所删除内容单 元的内容地址,来自内容单元的内容地址的时间戳包括在反射的内容 地址中。因而,所删除内容单元被写入存储系统的时间可通过检查反 射的内容地址中的该时间戳进行确定。在指定时间点之前写入并在指 定时间点之后删除的内容单元的任何反射均可添加到列表中。因而, 列表可包括在指定时间点保存于存储系统上的所有内容单元。
在另一实施例中,反射可用于使固定的内容可变。例如,内容单 元可能被创建成具有不定的保持周期。在创建内容单元之后,可能需 要改变其保持周期(如改为3年)。然而,保持周期可能保存在内容 单元本身中,改变保持周期则改变内容单元的内容。因而,在保存 于内容单元内的保持周期已被修改之后内容单元可能具有不同的内 容地址。例如,具有不定保持周期的原始内容单元可具有为XYZABC 的内容地址。在保持周期被修改为3年之后,内容单元可具有为 KLMNOP的内容地址。因而,当接收到访问内容地址XYZABC的请求时, 则找不到内容单元,因为内容单元的内容地址已改变。
在本发明的一实施例中,当内容单元被改变时,导致其内容地址 变化,反射可被创建并用作指向修改后的内容单元的新内容地址的指 针。反射的内容地址可采取任何形式。在一例子中,反射的内容地址 可以是内容单元的原始内容地址,与反射的散列值结合。因而,例如, 如图6中所示,具有不定保持周期的内容单元601可具有为XYZABC 的内容地址。内容单元601可被删除并用具有散列值QWERTY(及为 XYZABC.QWERTY的内容地址)的反射603和具有与内容单元301相同 内容的替换内容单元605代替,所述替换内容单元605具有为3年的 保持周期。内容单元605的内容地址可以是KLMNOP。反射603的内 容可包括指向内容单元605的指针(如通过在其内容中包括内容单元 605的内容地址)。因而,例如,反射的内容可包括KLMNOP。当接收 到读内容地址XYZABC的请求时,存储系统可找到反射603并确定内 容单元的新内容地址为KLMNOP。之后,存储系统可找到具有地址 KLMNOP的内容单元并将该内容单元返回给发出请求的实体。
本发明的上述实施例可在任何适当的系统上实施。适当系统的例 子在下表1中列出的专利申请中描述(统称为“CAS申请”),每一 申请通过引用组合于此。应意识到,在这些申请中描述的系统仅是本 发明的实施例可于其上实施的系统的例子,因为本发明不限于在CAS 系统上实施,而是可在任何适当类型的存储系统上实施。
其中反射可创建用于修改保持周期的上述实施例在内容单元的 保持周期将要期满的情形下是有用的。即,一旦内容单元的保持周期 将要期满,内容单元可能被删除且没有办法再找到该内容单元。然而, 通过创建延长内容单元的保持周期的替换内容单元及创建指向所述 替换内容单元的反射,内容单元不可被无意删除(或别的方式删除) 和永久丢失。
表1
  名称   序号   申请日   可内容寻址的信息、封装、   表示及传送   09/236,366   1999年1月21日   在网络上访问可内容寻址的   数据   09/235,146   1999年1月21日   用于可内容寻址的信息的安   全存储、传送和取回的系统   及方法   09/391,360   1999年9月7日   用于存储系统中的数据保持   的方法和装置   10/731,790   2003年12月9日   用于帮助访问数据存储系统   中的内容的方法和装置   10/731,613   2003年12月9日   用于在数据存储系统中缓存   位置索引的方法和装置   10/731,796   2003年12月9日   用于分析内容地址以帮助在   数据存储系统中选择物理存   储位置的方法和装置   10/731,603   2003年12月9日   用于产生内容地址以指示即   将写入存储系统的数据单元   的方法和装置   10/731,845   2003年12月9日
  用于修改存储系统中的数据   保持周期的方法和装置   10/762,044   2004年1月21日   用于延长存储系统中的数据   保持周期的方法和装置   10/761,826   2004年1月21日   用于间接确定存储系统中的   数据保持周期的方法和装置   10/762,036   2004年1月21日   用于间接确定存储系统中的   数据保持周期的方法和装置   10/762,043   2004年1月21日   用于增加数据存储容量的方   法和装置   10/787,337   2004年2月26日   用于在存储环境中保存数据   的方法和装置   10/787,670   2004年2月26日   用于分离可内容寻址的计算   机系统的方法和装置   10/910,985   2004年8月4日   用于访问可内容寻址的存储   系统上的虚拟池中的内容的   方法和装置   10/911,330   2004年8月4日   用于将存储系统容量信息包   括在访问可内容寻址的存储   系统的请求中的方法和装置   10/911,248   2004年8月4日   用于跟踪可内容寻址的存储   系统中的内容存储的方法和   装置   10/911,247   2004年8月4日   用于保存确定可内容寻址系   统上保存的内容单元的来源   的信息的方法和装置   10/911,360   2004年8月4日   提供存储系统功能的软件系   统   律师卷号:   E0295.70210US00   2004年12月23日
  提供可内容寻址存储系统功   能的软件系统   律师卷号:   E0295.70228US00   2004年12月23日   经网络连接的存储装置提供   数据保持能力的方法和装置   律师卷号:   E0295.70229US00   2004年12月23日   管理计算机系统中的存储的   方法和装置   律师卷号:   E0295.70230US00   2004年12月23日   处理计算机系统中的访问请   求的方法和装置   律师卷号:   E0295.70231US00   2004年12月23日   访问层次式文件系统中的信   息的方法和装置   律师卷号:   E0295.70232US00   2004年12月23日
本发明的上述实施例可以多种方式中的任一方式实施。例如,实 施例可使用硬件、软件或其组合实施。当以软件实施时,软件代码可 在任何适当的处理器或处理器组上运行,无论提供在单一计算机中还 是分布在多个计算机之间。应意识到,执行上述功能的任何组成部分 或组成部分集合可被一般地视作控制上述功能的一个或多个控制器。 一个或多个控制器可以多种方式中的任一方式实现,如使用微代码或 软件编程以执行上述功能的专用硬件或通用硬件(如一个或多个处理 器)。
在这方面,应意识到,本发明的实施例的一种实施包括编码以计 算机程序(即多条指令)的至少一计算机可读介质(如计算机存储器、 软盘、光盘、磁带等),所述计算机程序在处理器上运行时执行本发 明实施例的上述功能。计算机可读介质可移动,使得其上保存的程序 可被装到任何计算机环境资源上以实现在此描述的本发明的各方面。 此外,应意识到,提及当运行时执行上述功能的计算机程序时不限于 在主计算机上运行的应用程序。而是,术语计算机程序在此按一般意 义使用,其指可用于编程处理器以实施本发明的上述各方面的任何类 型的计算机代码(如软件或微代码)。
应意识到,根据其中方法实施在计算机可读介质中的本发明的几 个实施例,计算机实施的方法在其运行过程期间也可接收人工输入 (如从用户)。
在上述的各个例子中,内容地址被描述为包括字母字符A-Z。应 当理解,这些内容地址仅作为例子给出,内容地址可包括任何字母数 字字符、比特串、或任何其它适当的字符,因为本发明在这方面没有 限制。
在此使用的措辞和术语用于描述的目的,不应被视作限制。“包 括”、“包含”、“具有”、“涉及”及其变化的使用意为包括其后 列出的项目及另外的项目。
上面已详细描述本发明的几个实施例,对本领域技术人员而言, 各种修改和改进将容易发生。这些修改和改进确定在本发明的精神和 范围内。因而,前面的描述仅作为例子,并非意于限制。本发明仅限 制为下述权利要求及其等效内容定义的范围。