删除复制数据的存储系统的制作方法

文档序号:6596462阅读:129来源:国知局
专利名称:删除复制数据的存储系统的制作方法
技术领域
本发明涉及存储系统,并且尤其涉及用于删除复制数据的技术。
背景技术
在近来的存储系统的领域,删除复制数据并使用户注意不到删除的技术(在下文中被称为“去复制技术(de-duplication technology)”)已经引起了人们的关注。应用了去复制技术的存储系统通过设置虚拟化层隐藏了复制数据的删除。因此,通过应用去复制技术,用户能够利用常规的访问方法访问用户数据,并同时高效地使用存储系统内的有限的数据存储区域。去复制系统包括完整匹配系统和非完整匹配系统。在完整匹配系统中,例如,从客户端接收到的I/o请求是块等级或文件等级的。在块等级的情况下,当特定块数据的内容 匹配另一块数据的内容时,这些块被确定为是复制数据,并且其中的一个块被删除。在文件等级的情况下,当特定文件的内容完全匹配另一文件的内容时,这些文件被确定为是复制数据,并且其中的一个文件被删除(例如,参见专利文献I)。另一方面,在非完整匹配系统中,从客户端接收到的I/o请求是文件(特别是内容)等级的。在内容等级的情况下,例如,特定内容和其他内容的特征被提取,并且当这些特征之间的相似度高时,这些内容被确定是复制数据(例如,参见专利文献2)。引用列表专利文献专利文献I :美国专利申请No. 5,732,265专利文献2 :日本专利申请公开No. 2005-27499
发明内容
技术问题在常规的去复制方法中,进行比较来确定要去复制的数据是否与可能重叠的所有数据项重叠。因此,例如当要进行比较的数据项的数量或数据的大小增大时,处理性能显著地降低。此外,当要进行比较的数据项的数量增大时,可能会出现高速缓存失效的情况(cache miss),并且因此需要参照低速的元数据索引。从而显著地降低处理性能。另一方面,当要进行比较的数据项的数量增大时,可以将这些数据项分发给多个存储装置,并且这些存储装置可以被允许处理数据项,以提高处理性能。然而,由于是通过参照磁盘而不是高速缓存中的信息来执行去复制处理的,因此难于显著地提高性能。因此,本发明的目的在于提高去复制处理的性能。问题的解决方案当从客户端接收到写入请求时,存储装置执行第一去复制处理,并且在此后的适当的时间执行第二去复制处理。在第一去复制处理中,确定写入目标数据项是否与部分的存储数据项组中的任何的存储数据项重叠,其中所述部分的存储数据项组是在存储装置中存储的用户数据项组。当确定结果为肯定时,写入目标数据项不被存储在存储装置中。在第二去复制处理中,确定目标存储数据项是否与另一存储数据项重叠,其中在所述第一去复制处理中未完成对所述目标存储数据项是否与存储数据项重叠的评估。当确定结果为肯定时,目标存储数据项或与目标存储数据项重叠的相同数据项被从存储装置中删除。控制器具有可以通过执行计算机程序来执行每个处理的处理器。可以从远程服务器或存储介质(例如,CD-ROM、DVD(数字多用途盘)或其他便携式存储介质)来安装计算机程序。可以通过硬件电路来实现至少一部分的控制器。


图I的图示示出了根据示例I的计算机系统的配置示例。图2的图示示出了存储服务器的硬件配置示例。
图3的图示示出了存储服务器的软件配置示例。图4的图示示出了用户数据管理信息的示例。图5的图示用于说明附加数据。图6的图示示出了完全列表信息的示例。图7的图示示出了同步去复制处理信息的示例。图8是通过写入请求处理部执行的处理的流程图。图9是使用完整匹配系统的同步去复制处理的流程图。图10是使用第一非完整匹配系统的同步去复制处理的流程图。图11是使用第二非完整匹配系统的同步去复制处理的流程图。图12是第一监视处理的流程图。图13是使用完整匹配系统的异步去复制处理的流程图。图14是使用非完整匹配系统的异步去复制处理的流程图。图15是等级更新处理的流程图。图16的图示示出了用于执行去复制处理的设置屏幕的示例。图17的图示示出了监视器的示例。图18的图示示出了根据示例2的存储系统的配置示例。图19的图示示出了根据示例2的存储服务器的软件配置示例。图20的图示示出了服务器管理信息的示例。图21是根据示例2的通过写入请求处理部执行的处理的流程图。图22是通过数据服务器执行的数据存储处理的流程图。图23是根据示例2的非复制数据或复制未知数据的登记处理的流程图。图24是通过名称服务器执行的名称存储处理的流程图。图25是第二监视处理的流程图。图26是服务器分割处理的流程图。图27是服务器整合处理的流程图。
具体实施方式
在下文中将参考附图描述本发明的多个示例。示例 I图I的图示示出了根据示例I的计算机系统的配置示例。一个或多个客户端101通过通信网络102连接到存储系统103。通信网络102的示例包括IP (互联网协议)网络和FC(光纤通道)网络。客户端101是用于将I/O请求(读请求或写入请求)发送到存储系统103的计算机。I/O请求的示例包括文件(包括内容)等级的I/O请求、以及块等级的I/O请求。文件等级的I/o请求用于为每个文件指明作为I/O请求的目标的用户数据项,并请求所指明的用户数据(文件)的I/o。在文件等级的I/O请求的情况下,通过表示用于存储用户数据(文件)的存储目的地的逻辑路径来指明作为I/o目标的用户数据(文件)。在下文中,表示每个文件的用户数据存储目的地的逻辑路径被称为“全局路径”。另一方面,块等级的I/ 0请求为每个块指明作为I/o请求的目标的用户数据,并请求所指明的用户数据(块数据)的I/o。在块等级的I/O请求的情况下,通过逻辑块编号来指明作为I/O目标的用户数据(块数据)。在以下的描述和示例中,主要从客户端101接收到的I/O请求是文件等级的I/0请求,但这样的描述也可以应用于I/O请求是块等级的I/O请求的情况。存储系统103具有存储服务器201。在本示例中,在存储系统103内设置一个存储服务器201。在下文中参照图2至6来描述存储服务器201的配置。图2的图示示出了存储服务器201的硬件配置。存储服务器201具有例如CPU(中央处理单元202)、存储器控制器203、存储器204、输入/输出控制器205、网络控制器206、网络端口 207、磁盘控制器208和磁盘209。这些部件202至209以例如图2所示的方式连接在一起。具体而言,CPU 202、存储器204和输入/输出控制器205连接到存储器控制器203。网络控制器206和磁盘控制器208连接到输入/输出控制器205。网络端口 207连接到网络控制器206,并且磁盘209连接到磁盘控制器208。需要注意的是,可以设置多个磁盘209。一个磁盘209或多个磁盘209中的至少之一可被配置为外部磁盘(在存储服务器201外部设置的磁盘)。存储服务器201和外部磁盘经由例如IP网络、或FC网络等相互连接。图3的图示示出了存储服务器201的软件配置。存储服务器201具有例如同步去复制处理部301、异步去复制处理部302、列表管理处理部303、监视处理部304、设置处理部305、和写入请求处理部306。用于实现处理部301到306的功能的各个计算机程序被存储在存储服务器201的存储器204中。存储服务器201的CPU 202通过执行在存储器204中存储的各个程序来实现处理部301到306功能。下面描述处理部301到306执行的特定处理。存储器204在其中存储了在执行同步去复制处理时参照的同步处理信息307。需要注意的是,同步处理信息307可以被存储在能够以比磁盘209更高的速度被访问的装置中。因此,同步处理信息307可以不仅被存储在存储器204中,而且被存储在例如SSD (固态驱动器)中。除了例如要通过客户端101请求写入的用户数据之外,在磁盘209中还存储用户数据管理信息310、完全列表信息311和指纹数据312。指纹数据312是通过从用户数据提取用户数据的特征获得的并表示用户数据的特征的数据。存储服务器201不仅能够从存储服务器201的外部获得目标用户数据的指纹数据312,而且也能够通过其自身产生指纹数据 312。根据本示例的存储服务器201执行用于防止具有相同内容的用户数据项相互重叠并被存储在存储装置(在本示例中为磁盘209)中的处理(在下文中被称为“去复制处理”)。根据本示例的去复制处理具有两种去复制处理在接收到写入请求时执行的去复制处理(被称作为“同步去复制处理”)、和在适当的时间而与接收到写入请求的时间无关地执行的去复制处理(被称作为“异步去复制处理”)。通过同步去复制处理部301来执行同步去复制处理,而通过异步去复制处理部302来执行异步去复制处理。在去复制处理中,两个用户数据项(在同步去复制处理的情况下为写入目标用户数据项和一个选择的用户数据项,而在异步去复制处理的情况下为两个选择的用户数据项),并确定这些用户数据项是否是相同的。在根据本示例的去复制处理中,当两个用户数据项的数据内容完全匹配时,或者当确定两个用户数据项之间的相似度高并且因此即使在数据内容之间存在不匹配的情况下两个用户数据项在实质上也相同时,确定两个用户数据 项相同。在下文中,通过确定用户数据项的数据内容是否完全匹配来确定用户数据项是否相同的系统被称为“完整匹配系统”,而通过确定用户数据项是否能够被确定为在实质上相同来确定用户数据项是否相同的系统被称为“非完整匹配系统”。具体而言,在使用非完整匹配系统的去复制处理中,基于例如附加数据或特征数据来确定用户数据项是否能被确定为在实质上相同。这里,“附加数据”是指添加到用户数据(用户数据主体)的数据,所述附加数据表示用户数据的属性(元数据、标签数据等)。“特征数据”是指表示用户数据的特征的数据,并例如是指纹数据312。例如,当从客户端101接收到的I/O请求是文件等级的I/O请求和块等级的I/O请求时,可以采用使用完整匹配系统的去复制处理。另一方面,当从客户端101接收到的I/O请求是文件(特别是内容)等级的I/O请求时,可以采用使用非完整匹配系统的去复制处理。图4的图示示出了用户数据管理信息310的示例。用户数据管理信息310包括例如全局路径管理表401和局部路径管理表402,其中全局路径管理表401是用于管理全局路径的信息,而局部路径管理表402是用于管理局部路径的信息。这里,“局部路径”是指在存储系统103中参照的并表示数据存储目的地的物理路径。在全局路径管理表401中,针对每个写入数据项,全局路径、名称哈希值、数据哈希值和数据ID关联于写入数据。这里,“写入数据”是指当客户端101发送写入请求时被写入到存储服务器201中的用户数据,即作为通常处理的写入请求的目标的用户数据。写入数据对应于在磁盘209中实际存储的用户数据项中的任何一个(在下文中被称为“存储数据”)。通过数据ID来管理写入数据和存储数据之间的关联。换句话说,当写入数据(通过全局路径管理表401管理的数据)的数据ID相同于存储数据项(通过局部路径管理表402管理的数据项)的数据ID时,这些数据项相互关联。需要注意的是,当从客户端101接收到的I/O请求是块等级的I/O请求时,逻辑块编号被存储在全局路径的位置中。名称哈希值是根据全局路径生成的哈希值。在示例2中使用名称哈希值。因此,在本示例中,名称哈希值无需被包括在全局路径管理表401中。数据哈希值是根据用户数据或附加数据(元数据、标签数据等)生成的哈希值。当采用完整匹配系统时,根据用户数据生成的哈希值被作为数据哈希值。另一方面,当采用非完整匹配系统时,根据附加数据生成的哈希值被作为数据哈希值。需要注意的是,在以下的描述中,“数据哈希值”类似地指示当采用完整匹配系统时根据用户数据生成的哈希值,并且还指示当采用非完整匹配系统时根据附加数据生成的哈希值。这里,参考图5来简单地描述元数据7和标签数据8。数据项7和8均是添加到用户数据主体9的并表示用户数据主体9的属性的数据项。如图5中所示,元数据7是从外部添加到用户数据主体9的数据。通过元数据7和用户主体9来配置用户数据。另一方面,标签数据8是在用户数据主体9内包括的数据(内部添加的数据)。例如,当用户数据是MP3文件时,艺术家名称等是标签数据8。当用户数据是Word文件时,关于创建者的信息等是标签数据8。在局部路径管理表402中,每个存储数据项的数据ID、数据哈希值、复制数量、总评估标记、列表世代编号、同步评估最大等级、局部路径、和指纹数据路径关联于每个存储 数据项并针对每个存储数据项(针对在磁盘209中存储的每个数据项)存储。需要注意的是,从客户端101接收到的I/O请求是块等级的I/O请求,物理块编号被存储在局部路径的位置处。复制数量是指复制地存储的数据项的数量。更具体而言,复制数量是与数据内容具有对应存储的数据项(在下文中被称为“对应存储数据项”)的写入数据项的数量,即与对应存储的数据项相对应的写入数据项的数量。在图4中所示的示例中,具有数据ID(例如“100”)的存储数据项关联于两个写入数据项,即具有全局路径“/groot/userl/datal”的写入数据项和具有全局路径“/groot/userf/datal”的写入数据项(参见全局路径管理表401)。因此,复制数量为“2”。总评估标记是指示对应存储数据项和所有其他存储数据项之间的比较(确定这些数据项是否相同)是否完成的信息。在本示例中,当对应存储数据项和所有其他存储数据项之间的比较完成时,总评估标记示出为“Y”,而当对应存储数据项和所有其他存储数据项之间的比较未完成时,总评估标记示出为“N”。列表世代编号是指示哪个世代列表被用作针对每个对应存储数据项执行同步去复制处理的基础的信息。同步评估最大等级是指示当执行同步去复制处理时比较完成到哪个等级的存储数据项的信息。指纹数据路径是指示指纹数据312的存储目的地的路径。图6的图示示出了完全列表信息311的示例。完全列表信息311是指示针对所有的或部分的存储数据项所赋予的每一世代的每个存储数据项的等级。这里,等级是指当选择存储数据项作为在去复制处理中进行比较的目标(在下文中被称为“比较目标数据项”)时所参照的顺序。在本示例中,按照具有高等级的存储数据项的顺序来选择比较目标数据项。此外,在同步去复制处理中,获得按照高等级顺序提取的预定数量的存储数据项作为比较目标数据候选(在下文中被称为“比较候选”),并且从比较候选中选择比较目标数据项。具体而言,在同步去复制处理中,比较候选被限制为一部分存储数据项(具有较高等级的存储数据项),从而减小处理负荷。比较候选的数量可以是由存储服务器201事先保存的值,或者是由管理员之后设置的值。通过列表管理处理部303来赋予等级。列表管理处理部303可以向例如预期可能会发生重叠的存储数据项赋予较高的等级。预期可能会发生重叠的数据项的示例包括(A)较高等级的数据项(从外部提供的图表、收视率等等),(B)具有较大复制数量的数据项,
(C)新近存储的数据项,(D)具有高写入/读取比率的数据项,以及(E)登记的数据项,例如格式化样式。此外,列表管理处理部303可以向去复制处理效果(减小磁盘209的使用量的效果)显著的数据项赋予较高等级。去复制处理效果显著的数据的示例包括具有大文件尺寸的数据项。以常规或非常规为基础来更新等级,在每次更新等级时,世代被移位到随后的世代。在本示例中,等级值越低,等级越高。如图6中所示,在完全列表信息311中,每个存储数据项的数据ID、向每个存储数据项赋予的等级、和赋予等级的世代的世代编号关联于在每一世代中存在的每个存储数据项,并针对所述在每一世代中存在的每个存储数据项存储。图7的图示示出了同步去复制处理信息307的示例。同步去复制处理信息307是当执行同步去复制处理时参照的信息。同步去复制处理信息307例如包括部分列表信息601、概括位图602、和高速缓存信息603。部分列表信息601是其中以最新世代的等级为顺序列出比较候选(比较候选的数据ID)的信息。部分列表信息601包括以每个数据哈希值的等级的顺序排列的比较候选列表(被称作为“等级顺序第一列表”)611、和以相对于全部数据哈希值的等级的顺序排列的比较候选列表(被称作为“等级顺序第二列表”)621。概括位图602是当立即确定要进行同步去复制处理的用户数据项(要写入的用户数据项)是否是没有与任何存储数据项重叠的数据项时参照的数据。概括位图602在其中存储了比特值,所述比特值针对哈希空间中的每个数据哈希值指示当哈希值被产生时作为数据哈希值的存储数据项是否存在。在本示例中,当存在作为数据哈希值的存储数据项时,比特值示出为“T (真)”,并且当不存在作为数据哈希值的存储数据项时,比特值示出为“F(假)”。高速缓存信息603是存储在磁盘209中的所有或部分用户数据项的拷贝数据项(即存储数据项)、和/或所有或部分指纹数据项的拷贝数据项(在图7中被描述为“FP”)312。如图3中所示,由于同步去复制处理信息307被存储在存储器204中,可以高速地访问高速缓存信息603中的数据项。在高速缓存信息603中包括的存储数据项可以例如是所有的比较候选或一部分的比较候选。图8是通过写入请求处理部306执行的处理的流程图。当存储服务器201从客户端101接收写入请求时,写入请求处理部306确定要写入的用户数据项(在下文中被称为“写入目标数据项”)是否符合同步去复制处理的不适用条件(在下文中被称为“同步不适用条件”)(3101、5102)。这里,“同步不适用条件”是指用于确定是否针对写入目标数据项执行同步去复制处理的条件。在本示例中,当写入目标数据项符合同步不适用条件时,则不针对写入目标数据项执行同步去复制处理。同步不适用条件的示例包括其中数据项的尺寸大的条件和其中写入目标数据项被加密的条件。由于需要一定量的时间对大尺寸或加密的数据项执行去复制处理,因此希望可以与写入请求的接收异步地执行去复制处理(换句话说,执行异步去复制处理)。当写入目标数据项符合同步不适用条件时(S102 :是),在之后执行步骤S106的处理。另一方面,当写入目标数据项不符合同步不适用条件时(S102 :否),对写入目标数据项执行同步去复制处理(S103)。执行同步去复制处理允许确定写入目标数据项是否是与任何存储数据项重叠(或相同)的数据项(在下文中被称为“复制数据项”)、或不与任何存储数据项重叠(或相同)的数据项(在下文中被称为“非复制数据项”)。需要注意的是,在一些情况下,无法仅通过执行同步去复制处理来确定复制数据项或非复制数据项。这是因为在同步去复制处理中,与写入目标数据项相比较的用户数据项被限制为一部分的存储数据项(比较候选)。在同步去复制处理中,获得未被确定为复制数据项或非复制数据项的数据项(被称为“复制未知数据”)作为同步复制确定处理的目标。在下文中,将参照图9~11来详细描述同步去复制处理。在同步去复制处理中,当写入目标数据项被确定为复制数据项时(S104 :是),写入请求处理部306执行将写入目标数据项登记作为复制数据项的处理(S107)。具体而言,写入请求处理部306将与写入目标数据项相关的条目添加到全局路径管理表401中。所添加的条目的数据ID是被确定为与写入目标数据项相同的存储数据项 的数据ID(在下文中被称为“相同数据项”)。随后,在局部路径管理表402中,相同数据的复制数量加一。此外,在同步去复制处理中,当确定写入目标数据项是复制未知数据时(S104:否,以及S105 :否),在之后执行步骤S106的处理。 在步骤S106中,写入请求处理部306确定写入目标数据项是否符合异步去复制处理的不适用条件(在下文中被称为“异步不适用条件”)(S106)。这里,“异步不适用条件”是指用于确定是否针对写入目标数据项执行异步去复制处理的条件。在本示例中,当写入目标数据项符合异步不适用条件时,则不对写入目标数据项执行异步去复制处理。异步不适用条件的示例包括其中数据项的尺寸极小的条件和其中写入目标数据项被加密的条件。此外,在同步去复制处理中,当写入目标数据项被确定为非复制数据项时(S104 否,而S105 :是),或者当写入目标数据项符合异步不适用条件时(S106 :是),写入请求处理部306执行将写入目标数据项登记为非复制数据项的处理(S108)。具体而言,首先,写入目标数据项被存储在磁盘209中,并且数据ID被分配给该存储数据项。写入请求处理部306随后将概括位图602中的与写入目标数据项的数据哈希值相对应的比特值变更为“真”。写入请求处理部306还将与写入目标数据项相关的条目分别添加到全局路径管理表401和局部路径管理表402。向全局路径管理表401添加的条目(在下文中被称为“全局添加条目”)和向局部路径管理表402添加的条目(在下文中被称为“局部添加条目”)的数据ID是被分配给在磁盘209中存储的写入目标数据项的数据ID。全局添加条目的全局路径是指示用于在其中存储写入目标数据项的目的地的全局路径。局部添加条目的局部路径是指示用于在其中存储写入目标数据项的目的地的局部路径。局部添加条目的复制数量为“1”,并且局部添加条目的总评估标记为“Y”。局部添加条目的列表世代编号是在当同步去复制处理被执行并且局部添加条目的同步评估最大等级是向比较目标数据项(作为在同步去复制处理中执行的比较的目标的存储数据项)赋予的等级中的最低等级时的时间点处的新新的世代编号。需要注意的是,当存在与写入目标数据项相关的指纹数据312时,指纹数据312也被存储在磁盘209中。局部添加条目的指纹数据路径是指示用于存储与写入目标数据项相关的指纹数据312的目的地的路径。
在步骤S106的确定处理中,当写入目标数据项不符合异步不适用条件时(S106 否),写入请求处理部306执行将写入目标数据项登记为复制未知数据项的处理(S109)。除了以下各点之外,S109的处理与S108的处理相同。具体而言,当写入目标数据项是复制未知数据项时,局部添加条目的总评估标记被描述为“N”。图9是使用完整匹配系统的同步去复制处理的流程图。在图8中所示的步骤S103中执行图9至11中所示的处理。当采用完整匹配系统时,执行图9中所示的处理。当采用非完整匹配系统时,执行图10或图11中所示的处理。首先,同步去复制处理部301根据写入目标数据项生成数据哈希值(S201)。在下文中,在该步骤S201中生成的数据哈希值被称为“目标哈希值”。
接下来,同步去复制处理部301确定与概括位图602中的目标哈希值相对应的比特值是否为“假” (S202)。当与目标哈希值对应的比特值为“假”时(S202 :是),同步去复制处理部301将该写入目标数据项确定为非复制数据项。具体而言,在这种情况下,写入目标数据项被立即确定为非复制数据项,而不与存储数据项进行比较。这是因为,由于与目标哈希值对应的比特值为“假”,就已经明确了不存在具有相同数据哈希值的存储数据项。换句话说,不存在相同的存储数据项。另一方面,当与目标哈希值对应的比特值为“真”时(S202 :否),同步去复制处理部301从部分列表信息601获取与目标哈希值相关的等级顺序第一列表(S203)。例如,在图7的示例中,当目标哈希值是“OxOf”时,获取具有数据ID为“102”和“101”的等级顺序第一列表。具有在该步骤203中获取的等级顺序第一列表中包括的数据ID的存储数据项是比较候选。之后,同步去复制处理部301从在步骤S203中获取的等级顺序第一列表中包括的数据ID中选择最高等级的数据ID (除了已经与写入目标数据项相比较的存储数据项之外)(S204)。具有在该步骤S204中选择的数据ID的存储数据项被作为比较目标数据项。之后,同步去复制处理部301将写入目标数据项与比较目标数据项进行比较,并确定两个数据项是否相同(这些数据项的数据内容是否完全匹配)(S205)。当比较目标数据项被包括在高速缓存信息603中时,高速缓存信息603中的比较目标数据项被用于确定写入目标数据项和比较目标数据项是否相同。因此,与从磁盘209读取比较目标数据项来执行比较的情形相比,可以高速地执行比较处理。另一方面,当比较目标数据项未被包括在高速缓存信息603中时,从磁盘208读取比较目标数据项,并且读取的比较目标数据项被用于确定写入目标数据项和比较目标数据项是否相同。需要注意的是,当比较数据项时,可以执行对与两个数据项相关的指纹数据312是否匹配的确定,作为比较全部数据项的预处理。当推测与两个数据项相关的指纹数据312不匹配时,可以在没有比较全部数据项的情况下就确定两个数据项并不相同。当确定写入目标数据项和比较目标数据项相同时(S205 :是),同步去复制处理部301将写入目标数据项确定为复制数据项(S209)。另一方面,当确定写入目标数据项和比较目标数据项并不相同时(S205:否),同步去复制处理部301确定与所有比较候选的比较是否完成(S206)。当未完成所有比较候选的比较时(S206 :否),同步去复制处理部301选择下一个最高等级的数据ID(S204),并使用具有所选择的数据ID的存储数据项作为比较目标数据项,以将其与写入目标数据项进行比较。另一方面,当完成了所有比较候选的比较时(S206 :是),同步去复制处理部301将写入目标数据项确定为复制未知数据项(S207)。图10是使用第一非完整匹配系统的同步去复制处理的流程图。当采用非完整匹配系统时,执行使用第一非完整匹配系统的同步去复制处理,该同步去复制处理尤其是当能够通过参考附加数据来在一定程度上缩减可能重叠的数据项时执行的处理。图10所示的处理中除了步骤S301和S302之外的步骤(与图9中的那些步骤具有相同附图标记的步骤)实质上与图9中所示的处理中的那些步骤相同。在下文中将描述与图9相比的主要差异。
在步骤S301中,同步去复制处理部301根据附加数据生成数据哈希值。在步骤S302中,同步去复制处理部301将与写入目标数据项相关的指纹数据312和与比较目标数据项相关的指纹数据312进行比较,并确定写入目标数据项与比较目标数据项是否相同(是否能够确定两个数据项实质上相同)。具体而言,当与写入目标数据项相关的指纹数据312匹配于与比较目标数据项相关的指纹数据312时,同步去复制处理部301确定写入目标数据项与比较目标数据项相同。需要注意的是,当与写入目标数据项相关的指纹数据312未完全匹配于与比较目标数据项相关的指纹数据312,而是在比一定程度的概率更高的概率上匹配于与比较目标数据项相关的指纹数据312时,可以确定写入目标数据项与比较目标数据项相同。图11是使用第二非完整匹配系统的同步去复制处理的流程图。当采用非完整匹配系统时,执行第二非完整匹配系统的同步去复制处理,并且该第二非完整匹配系统的同步去复制处理尤其是当难于参考附加数据来在一定程度上缩减可能重叠的数据项时执行的处理。首先,同步去复制处理部301从部分列表信息601获取等级顺序第二列表(S401)。具有在该步骤S401中获取的等级顺序第二列表中包括的数据ID的存储数据项被作为比较候选。接下来,同步去复制处理部301从在步骤S401中获取的等级顺序第二列表中包括的数据ID (除了已经和与写入目标数据项相关的指纹数据312进行比较的指纹数据312的存储数据项之外)中选择最高等级的数据ID。具有在该步骤S402中选择的数据ID的存储数据项被作为比较目标数据项。之后,同步去复制处理部301将与写入目标数据项相关的指纹数据312和与比较目标数据项相关的指纹数据312进行比较,并确定写入目标数据项是否与比较目标数据项相同(是否能够确定这两个数据项实质上相同)(S403)。具体而言,当与写入目标数据项相关的指纹数据312匹配于与比较目标数据相关的指纹数据312时,同步去复制处理部301确定写入目标数据项与比较目标数据项相同。需要注意的是,当与写入目标数据项相关的指纹数据312未完全匹配于与比较目标数据项相关的指纹数据312,而是在比一定程度的概率更高的概率上匹配于与比较目标数据项相关的指纹数据312时,可以确定写入目标数据项与比较目标数据项相同。
当确定写入目标数据项与比较目标数据项相同时(S403 :是),同步去复制处理部301将写入目标数据项确定为复制的数据项(S406)。另一方面,当确定写入目标数据项不与比较目标数据项相同时(S403 :否),同步去复制处理部301确定所有比较候选的比较是否完成(S404)。当所有比较候选的比较未完成时(S404 :否),同步去复制处理部301选择下一个最高等级的数据ID (S402),并使用具有所选择的数据ID的存储数据项作为比较目标数据项,以将其与写入目标数据项进行比较。另一方面,当所有比较候选的比较完成时(S404 :是),同步去复制处理部301将写入目标数据项确定为复制未知数据项(S405)。图12是第一监视处理的流程图。 通过监视处理部304来执行第一监视处理,以确定是否执行异步去复制处理。监视处理部304能够在适当的时间执行第一监视处理,在下文中描述常规(例如,每几个小时或每几周)地执行第一监视处理的示例。在待机固定的时间段(例如,几个小时或几周等)后(S501),监视处理部304计算当如的去复制率(S502)。这里,“去复制率”是指不去除了多少复制存储的值,并特别地由接受去复制的复制数据项(即被防止被存储在磁盘209中或从磁盘209中删除的复制数据项)的数量与在特定时间点存在的复制数据项的数量之比。例如,当所有复制数据项均被删除时,去复制率为100%,而当没有复制数据项被删除时,去复制率为0%。监视处理部304能够基于例如全局路径管理表401和局部路径管理表102来计算去复制率。接下来,监视处理部304确定在步骤S502中计算的去复制率是否等于或低于预定目标值(在下文中被称为“去复制目标值”)(S503)。当去复制率大于去复制目标值时(S503 :否),不执行异步复制处理,并且监视处理部304在固定的时间段内待机(S501)。另一方面,当去复制率等于或低于去复制目标值时(S503 :是),监视处理部304确定由客户端101生成的访问负荷(指示根据CPU的使用率、或I/O量等计算出的访问负荷的值)是否等于或低于预定阈值(在下文中被称为“访问负荷阈值”)(S504)。
当访问负荷大于访问负荷阈值时(S504 :否),不执行异步复制处理,并且监视处理部304在预定时间段内待机(S501)。另一方面,当访问负荷等于或低于访问负荷阈值时(S504:是),异步去复制处理部302执行异步去复制处理(S505)。具体而言,当去复制率有些低并且访问负荷低时,执行异步去复制处理。在下文中将参照图13和14来解释同步去复制处理的细节。在执行异步去复制处理后,监视处理部304确定是否针对所有存储数据项中的每一个数据项完成了与所有其他存储数据项的比较(确定所有其他存储数据项是否相同)(换句话说,在局部管理表402中是否不再存在具有总评估标记“N”的任何存储数据项)(S506)。当未针对所有存储数据项中的每一个数据项完成了与所有其他存储数据项的比较时(S506 :否),监视处理部304再次执行步骤S502到S505的处理。另一方面,当针对所有存储数据项中的每一个数据项完成了与所有其他存储数据项的比较时(S506 :是),监视处理部304之后在固定的时间段内待机(S501)。
图13是使用完整匹配系统的异步去复制处理的流程图。首先,异步去复制处理部302参考局部路径管理表402来从具有总评估标记“N”的存储数据项中选择具有最小列表世代编号的一个存储数据项。在下文中,在该步骤S601中选择的存储数据项被称为“选择的数据项”。此外,选择数据项的列表世代编号被称为“选择的世代编号”,并且选择数据项的同步评估最大等级被称为“选择的等级”。接下来,异步去复制处理部302选择比较目标数据项(S602)。具体而言,异步去复制处理部302参考完全列表信息311来选择一个条目,该条目的列表世代编号是选择的世代编号,并且该条目的等级大于选择的等级。获得具有在该步骤S602中选择的条目的数据ID的存储数据项作为比较目标数据项。在图4和图6所示的示例中,获得具有总评估标记“N”的数据ID “300”的存储数据项作为选择的数据项(参见图4)。因此,选择的世代编号为“2”,并且选择的等级为“4”(参见图4)。因此,获得具有数据ID 104存储数据项作为比较目标数据项,其中具有数据ID 104的存储数据项是具有列表世代编号“2”和等级“4”或 更大等级的存储数据项(参见图6)。接下来,异步去复制处理部302获取选择的数据项的数据哈希值和比较目标数据项的数据哈希值(S603)。之后,异步去复制处理部302确定选择的数据项的数据哈希值是否匹配比较目标数据项的哈希值(S604)。当这两个数据哈希值不匹配时(S604 :否),在之后执行步骤S608的处理。另一方面,当这两个哈希值匹配时(S604 :是),异步去复制处理部302将选择的数据项与比较目标数据项进行比较,以确定这两个数据项是否相同(这些数据项的数据内容是否完全匹配)(S605)。当确定所选择的数据项并不相同于比较目标数据项时(S605 :否),之后执行步骤S607的处理。当确定所选择的数据项相同于比较目标数据项时(S605 :是),异步去复制处理部302执行从磁盘209中删除选择的数据项的处理(S606)。更具体而言,异步去复制处理部302将全局路径管理表401上的与选择的数据项对应的写入数据项的数据ID变更为比较目标数据项的数据ID。此外,异步去复制处理部302将局部路径管理表402上的比较目标数据项的复制数量加I。异步去复制处理部302随后从磁盘209删除选择的数据项和与选择的数据项相关的指纹数据312。异步去复制处理部302从局部路径管理表402删除选择的数据项的条目。 在步骤S607,确定是否还可以选择比较目标数据项。当还可以选择比较目标数据项时(S607 :是),再次执行步骤S602之后的处理。另一方面,当不可以选择比较目标数据项时(S607:否),异步去复制处理部302将局部路径管理表402上的选择的数据项的总评估标记变更为“Y” (S608)。图14是使用非完整匹配系统的异步去复制处理的流程图。在图14中所示的处理中,被赋予与图13中的附图标记相同的附图标记的步骤实质上与图13中所示的处理相同。换句话说,在图14所示的处理中,执行步骤S701来替换图13中所示的步骤S603到S605。在步骤S701中,异步去复制处理部302将与选择的数据项相关的指纹数据312和与比较目标数据项相关的指纹数据312进行比较,并确定选择的数据项是否相同于比较目标数据项(是否能够确定两个数据项实质上相同)。更具体而言,当与选择的数据项相关的指纹数据312匹配于与比较目标数据项相关的指纹数据312时,异步去复制处理部302确定选择的数据项相同于比较目标数据项。需要注意的是,当与选择的数据项相关的指纹数据312并不完全匹配于与比较目标数据项相关的指纹数据312,而是在比一定程度的概率更高的概率上匹配于与比较目标数据项相关的指纹数据312时,可以确定选择的数据项与比较目标数据项相同图15是等级更新处理的流程图。定期地或非定期地执行等级更新处理。随着等级被更新,完全列表信息311和同步去复制处理彳目息307的内容被更新。如上所述,基于例如复制的可能性的程度和从去复制处理中获得的效果的显著程度来确定等级。在本示例中,基于去复制数量来确定等级。 首先,列表管理处理部303按照复制数量从高到低的顺序来对通过局部路径管理表402管理的存储数据项进行分类(S801)。随后,列表管理处理部303通过将较高的等级赋予给较大的复制数量来将等级赋予给在步骤S801中分类的存储数据项(S802)。之后,列表管理处理部303将与在步骤S802中赋予的新等级相关的信息登记到完全列表信息311 (S803)。具体而言,列表管理处理部303针对每一个存储数据项将组合存储数据项的数据ID和赋予给存储数据项的新等级的条目添加到完全列表信息311中。通过这样做,列表世代编号是指示新世代的编号(通过向当前列表世代编号加I获得的编号)。列表管理处理部303随后根据更新的完全列表信息311的内容(最新世代的等级顺序)来更新同步去复制处理信息307 (部分列表信息601和高速缓存信息603)的内容(S804)。图16的图示示出了用于执行去复制处理的设置屏幕1600的示例。如该图中所示,用于执行去复制处理的设置屏幕1600被提供有例如输入表项(I)到(5)。输入表项(I)是用于设置去复制处理的处理类型的表项。处理类型的示例包括从客户端101接收到的I/O请求是块等级的I/O请求还是文件等级的I/O请求,以及用于确定数据项是否相同的系统是完整匹配系统还是非完整匹配系统。输入表项(2)是用于设置去复制目标值的表项。输入表项(3)是用于设置比较候选的数量(在同步去复制处理中要比较的存储数据项的数量)的表项。输入表项(4)是用于设置当赋予等级时使用的参照(例如,每个复制数量的大小等)的表项。输入表项(5)是用于输入当赋予等级时参照的数据样式(格式化样式等)的表项。图17的图示示出了监视器1700的示例。监视器1700是用于显示去复制处理(处理结果等)的信息的屏幕。监视器1700被设置有例如显示表项(I)到(3)。显示表项(I)是用于显示当前去复制率的表项。图17的括号中所示的数值是在单个同步去复制处理中获得的去复制率。显示表项(2)是用于显示CPU202的使用率的表项。当CPU 202的使用率过高时,管理员可以例如改变去复制目标值或改变存储系统103的配置(例如通过提供多个存储服务器201,如示例2中所述)。显示表项(3)是用于显示同步去复制处理中所需的处理次数的平均值的表项。当该值过大时,管理员能够例如减少比较候选的数量或改变存储系统103的配置。示例2图18的图示示出了根据示例2的存储系统103的配置示例。如该图中所示,在示例2中,存储系统103被设置有多个存储服务器201。单个存储服务器201的硬件配置实质上相同于在示例I中所描述的硬件配置(图2中所示的硬件配置)。多个存储服务器201中的每一个通过例如LAN(局域网)1802连接到负荷均衡器1801。负荷均衡器1801连接到通信网络102。图19是示出根据示例2的每个存储服务器201的软件配置的图示。
根据示例2的存储服务器201被提供有与示例I中的那些处理部相同的处理部301到306。此外,根据示例2,与示例I中的相应信息和数据相同的信息307、310、311和数据312被存储在存储服务器201的存储器204或磁盘209中。在示例2中,存储服务器201还被提供有服务器分割处理部1901和服务器整合处理部1902。磁盘209还在其中存储有服务器管理信息1910。图20的图示示出了服务器管理信息1910的示例。服务器管理信息1910具有例如名称哈希空间服务器对应表2001、数据哈希空间服务器对应表2002、和待机服务器管理表2003。名称哈希空间服务器对应表2001是示出了名称哈希值(根据全局路径生成的哈希值)的空间(名称哈希空间)和管理(在磁盘209中存储)在名称哈希空间中包括的全局路径的路径名称(字符串)(要生成的哈希值被包括在名称哈希空间中)的服务器201之间的对应关系的表。例如,当具有全局路径“/grootAiserl/data”的名称哈希值是“ObOOOOllll”时,通过参照图20的表2001可以理解管理路径名称“/groot/userl/data”的服务器201是服务器S。数据哈希空间服务器对应表2002是示出了数据哈希值(根据用户数据或附加数据生成的哈希值)的空间(数据哈希空间)和管理(在磁盘209中存储)在数据哈希空间中包括的用户数据(要生成的哈希值被包括在数据哈希空间中)的服务器201之间的对应关系的表。例如,当特定用户数据的数据哈希值是“0bllll0000”时,通过参照图20的表2002可以理解管理用户数据的服务器201是服务器N。待机服务器管理表2003是示出在存储系统103中设置的存储服务器201中处于待机状态的服务器201 (在下文中被称为“待机服务器”)的表。当执行服务器分割处理或服务器整合处理时参照待机管理表2003,如在下文中所描述的。图21是根据示例2的通过写入请求处理部306执行的处理的流程图。已经接收到写入请求的存储服务器201 (在下文中被称为“请求接收服务器”)的写入请求处理部306根据写入目标数据项或附加数据项生成数据哈希值(S901)。当采用完整匹配系统时,根据写入目标数据项生成数据哈希值,或者当采用非完整匹配系统时,根据附加数据生成数据哈希值。在下文中,在该步骤S901中生成的数据哈希值被称为“目标数据哈希值”。接下来,写入请求处理部306参照数据哈希空间服务器对应表2002,并基于目标数据哈希值确定用于管理写入目标数据项的存储服务器201 (在下文中被称为“数据服务器” )(S902)。之后,写入请求处理部306将目标数据哈希值和写入目标数据项发送到在步骤S902中确定的数据服务器201 (S903)。已经接收到目标数据哈希值和写入目标数据项的数据服务器201执行将写入目标数据项存储到磁盘209中的处理(在下文中被称为“数据存储处理”)(S904)。在下文中将参照图22来描述数据存储处理的细节。 当完成了步骤S904的处理时,请求接收服务器201从数据服务器201接收向写入目标数据项赋予的数据ID(S905)。请求接收服务器201的写入请求处理部306随后根据写入目标数据项的全局路径(在下文中被称为“写入目标全局路径”)生成名称哈希值(S906)。在下文中,在该步骤S906中生成的名称哈希值被称为“目标名称哈希值”。接下来,写入请求处理部306参照名称哈希空间服务器对应表2001,来基于目标名称哈希值确定用于管理写入目标全局路径的路径名称的存储服务器201 (在下文中被称为“名称服务器”)。写入请求处理部306随后将写入目标全局路径的路径名称、目标数据哈希值、目标名称哈希值和写入目标数据项的数据ID发送到在步骤S907中确定的名称服务器201(S908)。已经接收到写入目标全局路径的路径名称、目标数据哈希值、目标名称哈希值和写入目标数据项的数据ID的名称服务器201执行将写入目标全局路径的路径名称存储到磁盘209中的处理(在下文中被称为“名称存储处理”)(S909)。在下文中参照图24来描述名称存储处理的细节。当请求接收服务器201从名称服务器201接收到处理完成的响应时(S910),当前
处理结束。图22是通过数据服务器201执行的数据存储处理的流程图。除了步骤S108’和109’之外,图22中所示的处理基本上相同于在图8至11中所示的示例I中的处理。通过数据服务器201的写入请求处理部306执行图22中除了步骤S103之外的处理,并且通过数据服务器201的同步去复制处理部301来执行图22中步骤S103的处理(在图9至11的每一个图中示出的处理)。步骤S108’是用于登记非复制数据项的处理,而步骤S109’是用于登记复制未知数据项的处理。在示例2中,由于提供了多个存储服务器201,因此期望均衡多个存储服务器201的磁盘209的使用率。步骤S108’和S109’的处理如图24中所示。在下文中,将参考图23来描述这些处理。首先,数据服务器201的写入请求处理部306确认基础服务器201的磁盘209是否具有充足的空闲空间(S1001)。当基础服务器201具有充足的空闲空间时(S1001 :是),写入目标数据项被存储在基础服务器201中(S1002)。另一方面,当基础服务器201不具有充足的空闲空间时(S1001 :否),写入目标数据项被存储在具有充足空闲空间的另一服务器201中(S1003)。
当写入目标数据项被存储在磁盘209中时,数据ID被分配给写入目标数据项(S1004)。被分配给写入目标数据项的数据ID可以是每个哈希空间的唯一值,或者可以是对于整个存储系统103而言唯一的值。在每个哈希空间的唯一值的情况下,通过数据哈希值和数据ID的组合来指明用户数据。随后,写入请求处理部306将与写入目标数据项相关的条目添加到局部路径管理表402中(S1005)。在非复制数据的情况下,总评估标记为“Y”。而在复制未知数据的情况下,总评估标记为“N”。需要注意的是,在示例2中也执行异步去复制处理。在示例2中执行的异步去复制处理实质上相同于示例I中的该处理(图12至14)。图24是通过名称服务器201执行的名称存储处理的流程图。已经接收到写入目标全局路径的路径名称、目标数据哈希值、目标名称哈希值、和写入目标数据的数据ID的名称服务器201将所接收到的内容登记到全局路径管理表401 中(SllOl)。图25是第二监视处理的流程图。第二监视处理是通过监视处理部304执行以确定服务器分割处理或服务器整合处理是否被执行的处理。与第一监视处理类似,监视处理部304能够在适当的时间执行第二监视处理,但在下文中描述定期地(例如,每几个小时或每几周)执行第二监视处理的示例。在待机固定的时间段(例如几个小时或几周)之后(S1201),监视处理部304计算存储服务器201上的负荷,以确定存储服务器201上的负荷的水平(S1202)。当确定存储服务器201上的负荷为适当时(S1202 :中等),监视处理部304再次待机固定的时间段(S1201)。另一方面,当确定存储服务器201上的负荷为高或低时(S1202 :高或低),计算去复制率,并且确定去复制率的水平(S1203、S1204)。当确定存储服务器201上的负荷为高并且去复制率为低时(S1203 :低),执行服务器分割处理(S1205)。在下文中将参照图26来描述服务器分割处理的细节。当确定存储服务器201上的负荷为低并且去复制率为高时(S1204 :高),执行服务器整合处理(S1206)。在下文中将参照图27来描述服务器整合处理的细节。当确定存储服务器201上的负荷为高并且去复制率为高或中等时(S1203 :非低),或者当确定存储服务器201上的负荷为低并且去复制率为低或中等时(S1204 :非高),监视处理部304再次待机固定的时间段(S1201)。图26是服务器分割处理的流程图。首先,服务器分割处理部1901参照待机服务器管理表2003并分配两个待机服务器 201(S1301)。服务器分割处理部1901随后分割通过作为分割目标的存储服务器201 (在下文中被称为“分割目标服务器”)管理的名称哈希空间和数据哈希空间(在下文中这两个哈希空间被总称为“相关哈希空间”)(S1302)。例如,当相关哈希空间为“Obi*”时,该相关哈希空间可以被相等地分割为“OblO*”和“ObiI*”两部分,或者可以被分割为“OblOO*”和“OblOl*”+ “Obll*”两部分。相关哈希空间的分割是基于例如存储服务器201上的负荷执行的。在步骤S1301中分配的待机服务器201中的任何一个服务器(在下文中被称为“分割后服务器”)管理分割的哈希空间中的每一个哈希空间。在下文中,通过分割后服务器
201管理的分割的哈希空间被称为“分割的相关哈希空间”。接下来,服务器分割处理部1901将与分割的相关哈希空间相对应的管理信息(与用户数据管理信息310中的分割的相关哈希空间相关的部分和与完全列表信息311中的分割的相关哈希空间相关的部分)发送到分割后服务器中的每一个服务器(S1303)。服务器分割处理部1901随后针对每个分割的相关哈希空间生成与每个分割的相关哈希空间中包括的用户数据相关的同步去复制处理信息307 (在下文中,用户数据被称为“分割目标用户数据”)。随后,服务器分割处理部1901将生成的同步去复制处理信息307写入到管理分割的相关哈希空间的分割后服务器201的存储器204中(S1304)。换句话说,分割目标用户数据、与分割目标用户数据相关的指纹数据312、以及相关于分割目标用户数据生成的部分列表信息601和概括位图602被写入到分割后服务器201的存储器204中。 随后,服务器分割处理部1901将服务器管理信息1910变更为在分割后获得的内容,并向其他存储服务器201通知该变更(S1305)。在完成通知服务器管理信息1910的变更并将数据项发送到分割后服务器201之后,服务器分割处理部1901将分割目标服务器201登记到待机服务器管理表2003中(S1306)。需要注意的是,在当前示例采用的系统中,分配了两个待机服务器201,并且通过待机服务器201执行分割目标服务器201的整个处理,但当前示例也可以采用如下这样的系统,其中分配一个待机服务器201并且通过待机服务器201执行分割目标服务器201的一部分处理。图27是服务器整合处理的流程图。通过作为整合目标的存储服务器201之一的服务器整合处理部1902来执行该处理(在下文中被称为“整合目标服务器”)。首先,服务器整合处理部1902确定是否存在作为整合目标服务器201的另一个适当的服务器201 (S1401)o当不存在作为整合目标服务器201的适当的服务器201时(S1401 :否),服务器整合处理部1902结束该处理。另一方面,当存在作为整合目标服务器201的适当的服务器201时(S1401 :是),服务器整合处理部1902确定该适当的服务器201作为另一个整合目标服务器201。换句话说,在本示例中,两个服务器201 (即执行该处理的服务器201和上述确定的服务器201)被获得作为整合目标服务器201。服务器整合处理部1902参照待机服务器管理表2003并分配一个待机服务器201 (S1402)。接下来,服务器整合处理部1902将与通过每个整合目标服务器管理的哈希空间(在下文中被称为“整合前相关哈希空间”)相对应的管理信息(与用户数据管理信息310中的整合前相关哈希空间相关的部分、和与完全列表信息311中的整合前相关哈希空间相关的部分)发送到在步骤S1402中分配的待机服务器201 ( “整合后服务器”)(S1403)。两个整合前相关哈希空间被整合到通过整合后服务器201管理的一个哈希空间(在下文中被称为“整合的相关哈希空间”)中。
服务器整合处理部1902随后针对整合的相关哈希空间生成与在整合的相关哈希空间中包含的用户数据(在下文中被称为“整合目标用户数据”)相关的同步去复制处理信息307。随后,服务器整合处理部1902将生成的同步去复制处理信息307写入到管理整合的相关哈希空间的整合后服务器201的存储器204中(S1404)。换句话说,整合目标用户数据、与整合目标用户数据相关的指纹数据312、相关于整合目标用户数据生成的部分列表信息601和概括位图602被写入到整合后服务器201的存储器204中。服务器整合处理部1902随后将服务器管理信息1910变更为在整合后获得的内容,并向其他存储服务器201通知该变更(S1405)。在完成服务器管理信息1910中的变更的通知并将数据项发送到整合后服务器201之后,服务器整合处理部1902将每一个整合目标服务器201登记到待机服务器管理表2003 中(S1406)。需要注意的是,在当前示例采用的系统中,分配了一个待机服务器201,并且通过待机服务器201执行每个整合目标服务器201的整个处理,但当前示例也可以采用如下 这样的系统,其中执行到任何一个整合目标服务器201的整合,而不分配任何待机服务器201。上述的本发明的各个示例仅用于示例性地说明本发明,而并不意在将本发明的保护范围限制到这些示例中。可以通过各种其他示例来实现本发明,而不偏离本发明的保护范围。附图标记列表101客户端102通信网络103存储系统
权利要求
1.一种存储系统,包括 通信接口装置(207),所述通信接口装置连接到与客户端(101)连接的通信网络(102); 存储装置(209),在所述存储装置中存储向/从所述客户端写入/读取的用户数据;以及 控制器(202),所述控制器连接到所述通信接口和所述存储装置,其中,当从所述客户端接收到写请求时,所述控制器执行第一去复制处理,并在之后的适当的时间执行第二去复制处理, 在所述第一去复制处理中,所述控制器确定作为写入目标用户数据项的写入目标数据项是否与一部分的存储数据项组中的任何的存储数据项重叠,并且当所述确定的结果为肯定时,不将所述写入目标数据项存储在所述存储装置中,其中所述一部分的存储数据项组是在存储装置中存储的用户数据项组,以及 在所述第二去复制处理中,所述控制器确定所述第一去复制处理中的目标存储数据项是否与所述存储数据项重叠的评估尚未完成的目标存储数据项是否与另一存储数据项重叠,并且当所述确定的结果为肯定时,从所述存储装置中删除所述目标存储数据项或与所述目标存储数据项重叠的相同数据项。
2.如权利要求I所述的存储系统,还包括 存储器(204),所述存储器存储有指示比较候选的第一处理信息,所述比较候选是所述存储数据项中的、可能被作为所述第一去复制处理中的比较目标的数据项,其中, 将指示与所述存储数据项相关的信息的存储数据信息存储在所述存储装置或所述存储器中, 其中,所述控制器 (A)在所述第一去复制处理中执行如下处理(Al)到(A4) (Al)将由所述写入请求指定的写入目标数据项与包括在所述比较候选中的存储数据项进行比较,并且执行第一复制确定,以确定所述写入目标数据项是与任何一个所述存储数据项重叠的复制数据项、还是不与任何一个所述存储数据项重叠的非复制数据项、还是不能被确定为所述复制数据项或非复制数据项的复制未知数据项; (A2)当在所述第一复制确定中将所述写入目标数据项确定为所述复制数据项时,执行将所述写入目标数据项和与所述写入目标数据项相重叠的相同数据相关联的处理,而不将所述写入目标数据项存储在所述存储装置中; (A3)当在所述第一复制确定中将所述写入目标数据项确定为所述非复制数据项时,将所述写入目标数据项存储在所述存储装置中,并且在所述存储数据信息中存储表示所述写入目标数据项是否为所述复制数据项的评估已经完成的信息;以及 (A4)当在所述第一复制确定中将所述写入目标数据项确定为所述复制未知数据时,将所述写入目标数据项存储在所述存储装置中,并且在所述存储数据信息中存储表示所述写入目标数据项是否为所述复制数据项的评估未完成的信息;并且 (B)在所述第二去复制处理中执行如下处理(BI)到(B3) (BI)将未完成目标存储数据项是否为所述复制数据项的评估的目标存储数据项与另一存储数据项进行比较,并执行第二复制确定,以确定所述目标存储数据项是与任何一个其他存储数据项重叠的复制数据项、还是不与任何一个所述其他存储数据项重叠的非复制数据项; (B2)当在所述第二复制确定中将所述目标存储数据项确定为所述复制数据项时,从所述存储装置中删除所述目标存储数据项,并执行将所述目标存储数据项和与所述目标存储数据项相重叠的相同数据相关联的处理;以及 (B3)当在所述第二复制确定中将所述目标存储数据项确定为所述非复制数据项时,在所述存储数据信息中存储对所述目标存储数据项是否为所述复制数据项的评估的完成。
3.如权利要求2所述的存储系统,其中 在所述存储器中存储等级信息,所述等级信息示出了赋予每一世代的所述存储数据项中的每一个数据项的等级, 定期地或者非定期地更新对所述存储数据项中的每一个数据项赋予的所述等级,并且当更新所述等级时,将所述等级的世代移位到下一世代,并且所述控制器执行以下步骤 (1)在所述第一去复制处理中 (1-1)当所述写入目标数据项与包括在所述比较候选中的任何一个所述存储数据项一致时或者当与所述写入目标数据项相关的特征数据和与包括在所述比较候选中的任何一个所述存储数据项相关的特征数据一致时,确定所述写入目标数据项是所述复制数据项;(1-2)当所述写入目标数据项被确定为所述复制数据项时,按照赋予所述存储数据项的等级的从高到低的顺序,从包括在所述比较候选中的所述存储数据项中选择要与所述写入目标数据项进行比较的存储数据项,并结束所述第一复制确定;以及 (1-3)当所述写入目标数据项被确定为所述复制未知数据时,在所述存储装置或所述存储器中存储比较完成信息,所述比较完成信息指示在对所述写入目标数据项执行的所述第一去复制处理中比较完成到特定世代的哪个等级的存储数据项; (2)计算去复制率,并且在当前的去复制率等于或低于目标值时,执行所述第二去复制处理,其中所述去复制率是指不复制存储的去除程度的值;以及 (3)在所述第二去复制处理中 (3-1)当所述目标存储数据项与任何一个所述其他存储数据项一致时或者当与所述目标存储数据项相关的特征数据和与任何一个所述其他存储数据项相关的特征数据一致时,确定所述目标存储数据项是所述复制数据项; (3-2)当所述目标存储数据项被确定为所述复制数据项时,按照赋予所述存储数据项的等级的从高到低的顺序,从所述其他存储数据项中选择要与所述目标存储数据项进行比较的存储数据项,并结束所述第二复制确定;以及 (3-3)参照所述比较完成信息,以将所述目标存储数据项与所述其他存储数据项中未完成所述比较的存储数据项进行比较。
4.如权利要求I或2所述的存储系统,其中所述控制器计算去复制率,并且在当前的去复制率等于或低于目标值时,执行所述第二去复制处理,其中所述去复制率是指示复制存储的去除程度的值。
5.如权利要求2至4中的任一项所述的存储系统,其中将存储数据存在/不存在信息包括在所述第一处理信息中,其中所述存储数据存在/不存在信息针对在哈希空间中的每一个哈希值,指示当生成哈希值时是否存在与所述哈希值相符的存储数据项, 所述控制器在所述第一复制确定中执行以下处理(al)到(a3) (al)生成与所述写入目标数据项相关的哈希值; (a2)参照所述存储数据存在/不存在信息,以确定是否存在与所生成的哈希值相符的存储数据项;以及 (a3)当不存在与所生成的哈希值相符的所述存储数据项时,确定所述写入目标数据项是所述非复制数据项。
6.如权利要求5所述的存储系统,其中所述哈希值是根据全部用户数据或用户数据主体生成的哈希值、或者是根据添加到用户数据主体的数据生成的哈希值。
7.如权利要求2、4至6中的任一项所述的存储系统,其中 将等级信息存储在所述存储器中,其中所述等级信息指示对每一个所述存储数据项赋予的并在确定比较顺序时参照的等级,并且所述控制器 在所述第一复制确定中,按照赋予所述存储数据项的等级的从高到低的顺序,从包括在所述比较候选中的存储数据项中选择要与所述写入目标数据项进行比较的存储数据项,并且当所述写入目标数据项被确定为所述复制数据项时,结束所述第一复制确定;并且在所述第二复制确定中,按照赋予所述存储数据项的等级的从高到低的顺序,从所述其他存储数据项中选择要与所述目标存储数据项进行比较的存储数据项,并且当所述目标存储数据项被确定为所述复制数据项时,结束所述第二复制确定。
8.如权利要求3或7所述的存储系统,其中所述控制器赋予预期可能会重叠的存储数据项较高的等级,或者赋予能有效减小所述存储装置的使用量的数据项较高的等级。
9.如权利要求7或8所述的存储系统,其中针对所述等级信息中的每一世代来管理所述等级,定期地或者非定期地更新对每一个所述存储数据项赋予的所述等级,并且当更新所述等级时,将所述等级的世代移位到下一世代,并且 所述控制器 当在所述第一复制确定中确定所述写入目标数据项为所述复制未知数据时,在所述存储装置或所述存储器中存储比较完成信息,所述比较完成信息指示在对所述写入目标数据项执行的所述第一去复制处理中比较完成到特定世代中的哪个等级的存储数据项;并且在所述第二去复制处理中参照所述比较完成信息,以将所述目标存储数据项与所述其他存储数据项中未完成所述比较的存储数据项进行比较。
10.如权利要求2、4至9中的任一项所述的存储系统,其中所述控制器 在所述第一复制确定中,当所述写入目标数据项与包括在所述比较候选中的任何一个所述存储数据项一致时、或者当与所述写入目标数据项相关的特征数据和与包括在所述比较候选中的任何一个所述存储数据项相关的特征数据一致时,确定所述写入目标数据项是所述复制数据项;并且 在所述第二复制确定中,当所述目标存储数据项与任何一个所述其他存储数据项一致时、或者当与所述目标存储数据项相关的特征数据和与任何一个所述其他存储数据项相关的特征数据一致时,确定所述目标存储数据项是所述复制数据项。
11.如权利要求2至10中的任一项所述的存储系统,还包括多个存储服务器(201), 其中,所述多个存储服务器中的每一个均具有所述通信接口装置、所述存储装置、所述存储器和所述控制器, 所述存储器还存储了指示数据哈希空间和所述存储服务器之间的对应关系的服务器管理信息,其中所述数据哈希空间是与用户数据相关的哈希空间,而所述存储服务器管理包括在所述数据哈希空间中的用户数据, 作为从所述客户端接收写入请求的所述存储服务器的请求接收服务器的控制器 (Xl)生成与由所述写入请求指定的写入目标数据项相关的哈希值; (X2)参照所述服务器管理信息以确定数据服务器,其中所述数据服务器是管理所述写入目标数据项的存储服务器;并且 (X3)将所述写入目标数据项发送到所述数据服务器,其中,当从所述请求接收服务器接收到所述写入目标数据项时,所述数据服务器的控制器执行所述第一去复制处理,并且在之后的适当的时间执行所述第二去复制处理。
12.如权利要求11所述的存储系统,其中,当在所述存储装置中存储所述写入目标数据项时,所述数据服务器的控制器 (Yl)确定所述数据服务器的存储装置是否具有充足的空闲空间; (Y2)当所述数据服务器的存储装置具有充足的空闲空间时,将所述写入目标数据项存储在所述数据服务器的存储装置中;并且 (Y3)当所述数据服务器的存储装置不具有充足的空闲空间时,将所述写入目标数据项存储在与所述数据服务器不同的存储服务器的存储装置中。
13.如权利要求11或12所述的存储系统,其中 所述服务器管理信息包括指示名称哈希空间和所述存储服务器之间的对应关系的信息,其中所述名称哈希空间是与用户数据的全局路径相关的哈希空间,而所述存储服务器管理包括在所述名称哈希空间中的所述全局路径的路径名称,并且 作为从所述客户端接收写入请求的所述存储服务器的请求接收服务器的控制器 (Zl)生成与写入目标全局路径相关的哈希值,其中所述写入目标全局路径是所述写入目标数据项的全局路径; (Z2)参照所述服务器管理信息以确定名称服务器,其中所述名称服务器是管理所述写入目标全局路径的存储服务器;并且 (Z3)将所述写入目标全局路径的路径名称发送到所述名称服务器,其中,当从所述请求接收服务器接收到所述写入目标全局路径的路径名称时,所述名称服务器的控制器将所述写入目标全局路径的路径名称存储到所述名称服务器的存储装置中。
全文摘要
用于改善由存储系统执行的去复制处理的性能。当从客户端接收到写入请求时,存储系统执行第一去复制处理,并在之后的适当的时间执行第二去复制处理。在第一去复制处理中,确定写入目标数据项是否与部分的存储数据项组中的任何的存储数据项重叠,其中所述部分的存储数据项组是在存储装置中存储的用户数据项组,并且当确定结果为肯定时,防止将写入目标数据项存储在存储装置中。在第二去复制处理中,确定目标存储数据项是否与另一存储数据项重叠,其中在所述第一去复制处理中未完成对所述目标存储数据项是否与存储数据项重叠的评估,并且当确定结果为肯定时,将目标存储数据项或与目标存储数据项重叠的相同数据项从存储装置中删除。
文档编号G06F3/06GK102741800SQ200980159529
公开日2012年10月17日 申请日期2009年9月18日 优先权日2009年9月18日
发明者中村隆喜, 山本彰, 岩崎正明, 石井阳介, 高冈伸光 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1