具体实施方式
[第一示例性实施例]
在下文中,将参考附图描述本发明的示例性实施例。注意,在所有的图中,相同的构件由相同的附图标记表示,并且其详细解释将不再重复。
图1是图示根据这个示例性实施例的数据恢复系统(数据插入系统)的概略构造视图。在图1中图示的数据恢复系统提供这样一种数据恢复系统,该数据恢复系统具有存储预定数据的备份存储(数据存储装置)2;从备份存储2接收数据的存储系统(存储装置)1;和,选择从备份存储2发送到存储系统1的数据的备份控制器(数据控制装置)3。该数据恢复系统包括:第一分布索引信息获得单元311,该第一分布索引信息获得单元获得与在备份存储2中存储的数据有关并且与在存储系统1中配置该存储的数据时的时间相关的第一数据配置信息作为第一分布索引信息;构造信息请求单元312,该构造信息请求单元从存储系统1请求指示存储系统1所具有的盘驱动器(存储区)111到114的构造的系统构造信息,和指示存储系统1的第二数据配置信息的第二分布索引信息;装置分布索引信息产生单元1011,该装置分布索引信息产生单元基于盘驱动器111到114的构造产生系统构造信息和第二分布索引信息;以及,新数据配置信息产生单元314,该新数据配置信息产生单元基于由装置分布索引信息产生单元1011产生的系统构造信息和第二分布索引信息和由第一分布索引信息获得单元311获得的第一分布索引信息来产生新数据配置信息。此外,新数据配置信息产生单元314基于所产生的新数据配置信息将在备份存储2中存储的数据存储到盘驱动器111到114中。
如上所述,在这个示例性实施例中,新数据配置信息产生单元314基于系统构造信息、第二分布索引信息和第一分布索引信息产生新数据配置信息。此外,新数据配置信息产生单元314基于所产生的新数据配置信息将在备份存储2中存储的数据存储到盘驱动器111到114中的存储区中。
因此,利用这个示例性实施例,该数据恢复系统能够基于所产生的新数据配置信息将在备份存储2中存储的数据存储到盘驱动器111到114中。这使得数据恢复系统即使在当大量的数据被插入时也能够基于在备份存储2中存储的数据的使用趋势将在备份存储2中存储的数据恢复到存储系统1。
应该指出,在这个示例性实施例中,与在备份存储2中存储的数据相结合地,将与在存储系统1中配置该存储的数据时的时间相关的第一数据配置信息视为包含使用趋势的信息是可能的。更加具体地,通过在产生新数据配置信息时反映第一数据配置信息,可以在进行备份时恢复优化的数据。
如上所述,该数据恢复系统能够使用在备份存储2中存储的大部分第一分布索引信息来恢复存储系统1,由此可以以反映数据使用趋势的方式恢复存储系统1。
应该注意,将在以后详细描述用作存储区的盘驱动器111到114和分布索引信息。
备份控制器3具有第一分布索引信息获得单元311,该第一分布索引信息获得单元获得与在备份存储2中存储的数据有关并且与在存储系统1中配置该存储的数据时的时间相关的第一数据配置信息作为第一分布索引信息;构造信息请求单元312,该构造信息请求单元从存储系统1请求指示存储系统1所具有的盘驱动器(存储区)111到114的构造的系统构造信息,和指示存储系统1的第二数据配置信息的第二分布索引信息;第二分布索引信息接收单元313,该第二分布索引信息接收单元接收由构造信息请求单元312请求的系统构造信息和第二分布索引信息;新数据配置信息产生单元314,该新数据配置信息产生单元基于由第二分布索引信息接收单元313接收的系统构造信息和第二分布索引信息,和由第一分布索引信息获得单元311获得的第一分布索引信息来产生新数据配置信息。此外,新数据配置信息产生单元314基于所产生的新数据配置信息将在备份存储2中存储的数据存储到存储区中。
存储系统1具有存储数据的盘驱动器111到114(多个存储区),并且包括:装置分布索引信息产生单元1011,该装置分布索引信息产生单元基于盘驱动器111到114的构造产生指示存储区的构造的系统构造信息和指示预定数据配置信息的第二分布索引信息;装置分布索引信息发送单元1012,该装置分布索引信息发送单元将由装置分布索引信息产生单元1011产生的系统构造信息和第二分布索引信息发送到备份控制器3;新分布索引信息接收单元1013,该新分布索引信息接收单元接收由新数据配置信息产生单元314产生的新数据配置信息作为新分布索引信息;和,存储适用性确定单元1014,该存储适用性确定单元基于由新分布索引信息接收单元1013接收的新分布索引信息确定将在备份存储2中存储的数据存储到盘驱动器111到114中是否适用。
新数据配置信息产生单元314基于指示在盘驱动器111到114中配置数据时的相关性的关联信息产生维持在盘驱动器111到114中配置的数据的配置位置的至少一部分的新数据配置信息。
利用这个示例性实施例中的这种构造,基于作为指示数据之间的相关性的关联信息并且包含在存储系统1中存储的配置信息的至少一部分的信息来产生新数据配置信息,由此可以在反映使用趋势的同时恢复已经被最优地配置的数据。此外,基于所使用数据的类型的配置信息,作为执行重新组合(defragmentation)的结果而获得的数据的配置信息和其它配置信息能够被视为指示数据之间的相关性的关联信息的一种形式。
此外,因为新数据配置信息产生单元314能够将指示数据之间的相关性的关联信息反映到新数据配置信息,因此可以在将顺序访问加以考虑并且实现盘驱动器111到114的大部分性能的同时存储目标数据。注意,将在第三示例性实施例中详细描述指示数据之间的相关性的关联信息。
存储适用性确定单元1014可以基于由新数据配置信息产生单元314产生的新数据配置信息和盘驱动器111到114中的每一个的存储容量来确定将在备份存储2中存储的数据存储到盘驱动器111到114中的适用性。
在此情形中,因为新数据配置信息和盘驱动器111到114中的每一个的存储容量能够被加以考虑,因此可以在增强将数据存储到盘驱动器111到114中的可能性之后确定存储目标数据的适用性从而避免麻烦。
存储系统1进一步具有:备份接收单元1015,该备份接收单元接收对在盘驱动器111到114中存储的数据进行备份的指令;数据发送输出单元1016,该数据发送输出单元在由备份接收单元1015接收到进行备份的指令时对在盘驱动器111到114中存储的数据进行复制,并且将所实现的副本发送到数据存储单元;以及,分布索引信息产生单元1017,该分布索引信息产生单元基于由数据发送输出单元1016发送的副本,产生在盘驱动器111到114中配置数据时的数据配置信息作为第一分布索引信息。
换言之,在这个示例性实施例中,存储系统1具有存储控制器101和盘驱动器111到114。存储控制器101具有装置分布索引信息产生单元1011、装置分布索引信息发送单元1012、新分布索引信息接收单元1013、存储适用性确定单元1014,和备份接收单元1015。此外,存储控制器101具有数据发送输出单元1016和分布索引信息产生单元1017。
存储系统1通过存储控制器101连接到数据连接网络4和控制网络5。
备份控制器3具有备份管理单元31和备份恢复单元32。备份管理单元31具有第一分布索引信息获得单元311、构造信息请求单元312、第二分布索引信息接收单元313和新数据配置信息产生单元314。此外,在备份控制器3中,备份管理单元31和备份恢复单元32由未示出的中央处理单元(CPU)、存储器、程序存储区、网络连接功能等实现。
在图1中图示的数据恢复系统被连接到具有多个盘驱动器的备份存储2。备份存储2具有比存储系统1所具有的容量更大的容量。
图2是存储控制器101的硬件框图。在图2中图示的存储控制器101具有掌握存储系统1的整个控制的CPU 6、暂时地存储数据的存储器7,和存储程序等的本地非易失性存储器8。此外,存储控制器101具有控制盘驱动器111到114的I/O控制器9,和用于连接到数据连接网络4或者控制网络5的网络控制器10。
存储系统1的盘驱动器111到114中的每一个的数据配置信息均在存储控制器101的存储器7和本地非易失性存储器8中存储。图3图示数据配置信息的一个示例。
图3图示指示在存储器7中存储的数据配置信息的一个示例的数据配置信息表。在这个示例性实施例中,以固定长度块为基础存储数据。术语块如在这里所使用地指的是通过将卷(volume)编号与相对块编号组合而在存储系统1中被唯一地识别的单位,利用所述相对块编号,块能够在卷编号中被唯一地识别。此外,块编号代表块的组合。
在图3中图示的数据配置信息表是能够基于块编号从其提取所存储的盘驱动器的编号和盘驱动器上的数据位置的表。此外,安装了基于块编号提取盘驱动器的编号和在该编号盘驱动器上的数据位置的程序。
如上所述,在这个示例性实施例中,数据配置信息包含块编号、盘驱动器编号和数据配置阵列作为分布索引信息。注意,在其中在备份存储2中存储数据的情形中,除了数据配置信息的块编号以外,还附带了指示备份的标识符。
下面,将参考图4所示序列图对根据该示例性实施例的数据恢复系统的备份处理进行说明。
在图4中图示的数据恢复系统的序列图中,备份管理单元31请求备份存储2准备进行备份(步骤A1)。这个准备请求包含备份识别名称,和作为备份源的盘驱动器111到114的地址。备份存储2响应于包含备份识别名称和作为备份源的存储控制器101的地址的准备指令来准备接收数据(步骤A3)。这个准备例如包括产生网络接收端口,并且识别数据记录介质。
在完成对备份的准备之后,备份存储2向备份管理单元31发送指示准备完成的通知(步骤A5)。
备份管理单元31确定要被备份的数据,并且将要被备份的目标数据通知存储控制器101(步骤A7)。注意,要被备份的目标数据可以预先由备份管理单元31设定,或者所有数据都可以被确定为目标数据。此外,可以仅确定目标用户用作目标数据的量。
存储控制器101从备份管理单元31接收通知,并且确定目标数据(步骤A9)。然后,存储控制器101通知备份管理单元31数据的确定完成(步骤A11)。
应该注意,关于从步骤A1到步骤A11的处理,步骤A1和步骤A7可以被同时执行,或者可以比从步骤A1到步骤A5的处理更早地执行从A7到A11的处理。
接着,在接收到存储控制器101和备份存储2完成备份的准备的通知时,备份管理单元31向存储控制器101发送开始备份的请求(步骤A13)。在接收到开始备份的请求时,存储控制器101将目标数据发送到备份存储2(步骤A15)。
在接收到要被备份的目标数据时,备份存储2记录并且存储所接收的数据(步骤A17)。此时,备份存储2基于备份识别名称和块编号产生能够从其获得所接收的数据的存储位置的内部索引结构。然后,备份存储2记录内部索引结构。
存储控制器101产生关于被发送到备份存储2的目标数据的分布索引信息(步骤A19)。然后,存储控制器101将所产生的分布索引信息发送到备份存储2(步骤A21)。
在从存储控制器101接收到分布索引信息时,备份存储2将分布索引信息存储到盘驱动器中(步骤A23)。
在完成目标数据向备份存储2的发送之后,存储控制器101向备份管理单元31和备份存储2发送指示完成了目标数据的发送的完成通知(步骤A25、A27)。在完成:从存储控制器101接收目标数据;从存储控制器101接收分布索引信息;记录内部索引结构;和从存储控制器101接收完成通知之后,备份存储2向备份管理单元31发送指示备份完成的完成通知(步骤A29)。
在从存储控制器101和备份存储2接收到完成通知时,备份管理单元31结束备份处理(步骤A31)。
下面,将参考图5所示序列图描述根据这个示例性实施例的数据恢复系统的数据恢复处理。
在这个示例性实施例中,作为一个示例,假设在存储系统1中的盘驱动器112出现故障,替代故障盘驱动器112地插入具有相同性能的未示出的盘驱动器115,并且从备份存储2恢复备份数据。
在图5所示数据恢复系统的序列图中,备份恢复单元32从备份存储2请求包含备份识别名称的分布索引信息(步骤B1)。备份存储2从备份恢复单元32接收对包含备份识别名称的分布索引信息的请求(步骤B3)。备份存储2向备份恢复单元32发送与具有指定的备份识别名称的要被备份的目标数据有关的分布索引信息(第一分布索引信息)(步骤B5)。
接下来,备份恢复单元32从存储控制器101请求存储系统1的构造信息(步骤B7)。存储控制器101对应于对构造信息的请求产生系统构造信息和分布索引信息(步骤B9)。
该系统构造信息包括例如盘驱动器的编号列表,和盘驱动器的容量值列表。注意,将在第二示例性实施例中描述除了上述那些之外的项目。此外,关于分布索引信息,基于数据恢复系统的当前使用趋势产生第二分布索引信息。更加具体地,产生指示与在图3中图示的分布索引信息相对应的当前使用趋势的第二分布索引信息。
存储控制器101向备份恢复单元32发送所产生的系统构造信息和所产生的第二分布索引信息(步骤B11)。
在接收到在步骤B11中获得的第一分布索引信息、系统构造信息和第二分布索引信息时,备份恢复单元32产生反映这些信息项的新分布索引信息(在下文中,被称作新分布索引信息),并且对第一分布索引信息进行改变(步骤B13)。基于在备份存储2中存储的第一分布索引信息产生新分布索引信息,使得新分布索引信息的至少一部分包含第一分布索引信息。在这个示例性实施例中,这使得可以反映第一分布索引信息。
将参考图6和图7描述这个示例。图6图示第一分布索引信息的一部分。图7图示第二分布索引信息的一部分。
备份恢复单元32基于第一分布索引信息、系统构造信息和第二分布索引信息产生新分布索引信息。通过在图6和图7之间进行比较,与在图6中图示的第一分布索引信息中的盘驱动器编号相比,在图7中图示的第二分布索引信息中的盘驱动器编号在给定块编号中不同。更加具体地,这个比较指示在图7中的盘驱动器115是被从图6中的盘驱动器112改变得来的。在其它盘驱动器中的数据位置相同。
因为盘驱动器112被移除并且盘驱动器115被添加,所以产生新分布索引信息从而在第一分布索引信息中指示盘驱动器112的所有部分在新分布索引信息中均被改变为盘驱动器115。因此,利用这种新分布索引信息,可以在除了盘驱动器115之外的驱动器中反映过去的使用趋势。
然后,备份恢复单元32向存储控制器101发送通过对第一分布索引信息进行改变而产生的新分布索引信息(步骤B15)。
利用这种构造,在备份数据时已经在同一盘驱动器中在数据配置位置中配置的数据甚至能够在新数据配置位置中被定位到同一盘驱动器,由此可以维持顺序访问性能。
应该注意,作为示例描述了第一分布索引信息和第二分布索引信息,并且这个示例性实施例不限于此。
存储控制器101获得所产生的新分布索引信息,比较盘驱动器111、113、114和115的当前状态,并且确定存储的适用性(步骤B17)。如果盘驱动器适用于存储,则存储控制器101向备份恢复单元32发送指示存储可能的响应。在另一方面,如果盘驱动器不适用于存储,则存储控制器101向备份恢复单元32发送指示存储不可能的响应(步骤B19)。
应该注意,例如在以下情形中数据不能被存储,其中由于CPU的处理负荷引起在访问数据时发生时间限制,或者由于未在系统构造信息中包含的存储装置的物理限制或者其它因素而使得对数据的访问不可能。
在从存储控制器101接收到指示存储可能的响应时,备份恢复单元32向备份存储2发送新分布索引信息,在该新分布索引信息中已经从第一分布索引信息进行改变(步骤B21)。备份存储2基于新分布索引信息向存储控制器101发送目标数据(步骤B23)。
存储控制器101基于在被改变的分布索引信息中的盘驱动器编号将块存储到对应的盘驱动器111、113、114和115中的任何一个中(步骤B25)。存储控制器101将存储盘的位置反映到最近的分布索引信息。
在发送要被备份的所有目标数据之后,备份存储2向存储控制器101发送指示数据的发送完成的完成通知(步骤B27)。然后,在从备份存储2接收到完成通知时,存储控制器101记录要被备份的所有目标数据,并且此后,向备份恢复单元32发送完成通知(步骤B29)。
此外,备份存储2向备份恢复单元32发送指示要被备份的所有目标数据均被发送的完成通知(步骤B31)。
在从存储控制器101和备份存储2接收到完成通知时,备份恢复单元32确定备份恢复处理完成,并且结束该处理(步骤B33)。
如上所述,在第一示例性实施例中的数据恢复系统中,能够基于所产生的新分布索引信息将在备份存储2中存储的数据存储到盘驱动器111到114中。这使得数据恢复系统即使在插入大量数据时也可以基于数据的使用趋势将在备份存储2中存储的数据恢复到存储系统1。
[第二示例性实施例]
图8是图示根据本发明的第二示例性实施例的数据恢复系统的功能框图。在图8中图示的数据恢复系统涉及一种用于备份和恢复在存储系统12中存储的数据的系统。在存储系统12中存储的数据在备份存储15中被备份。然后,在备份存储15中备份的数据被恢复到其构造已经被改变的存储系统12。
存储系统1进一步具有数据接收单元1018,其接收从备份存储2发送的数据作为将被存储到盘驱动器111到114中的数据,和复制分配单元1019,其产生与由数据接收单元1018接收的每一个数据有关的冗余数据以将所产生的冗余数据存储到盘驱动器111到114中的每一个。
存储系统1进一步具有静止点产生单元1020,其与在盘驱动器111到114中存储的数据相关地产生在预定时间点的静止点信息。数据发送输出单元1016,其基于由静止点产生单元1020产生的静止点信息向备份存储2发送在盘驱动器111到114中存储的数据。
存储系统12由存储节点121到124形成,所述存储节点是计算机。存储节点121到124中的每一个均具有CPU、存储器、盘驱动器和网络控制器。因此,存储节点121到124中的每一个均用作在盘驱动器中存储数据的数据存储装置。
图8中的分布管理过程单元121a到124a是在各存储节点121到124上运行的程序。此外,通过网络13,分布管理过程单元121a到124a中的每一个交换关于在每一个存储节点的存储单元121c到124c中的每一个之中存储的数据的访问信息。利用存储系统12的这种构造,使得存储节点121到124的存储单元121c到124c被感受为好像它们是一个文件服务器。
静止点产生过程单元121b到124b是在各存储节点121到124上运行的程序,并且每一个产生遍布所存储的数据一致的快照图像。静止点产生过程单元121b到124b记录所存储的数据的当前版本,在接收到产生静止点的指令时产生静止点编号,并且产生将该版本与该静止点相关联的数据。然后,当对数据的访问发生时,静止点产生过程单元121b到124b产生相对于产生静止点时的版本的数据的差分数据,并且更新数据的版本号。
存储系统12被如此构造,使得存储节点121到124能够连接到网络13,并且分布管理过程单元121a到124a能够相互间发送和接收数据。
此外,存储系统12通过网络13连接到备份存储15。
备份存储15具有盘驱动器151和备份文件服务器功能。备份文件服务器功能是包括CPU、存储器、程序存储区和网络连接功能的计算机。
更加具体地,备份文件服务器功能具有备份资源管理单元152的功能、备份管理单元153的功能,和备份恢复单元154的功能。备份资源管理单元152管理在盘驱动器151上的数据输入和输出。备份管理单元153控制数据的备份操作。备份恢复单元154控制备份数据到系统的恢复。
针对存储节点的数据配置由在存储节点上运行的分布管理过程单元121a到124a确定。分布管理过程单元121a到124a每一个具有响应于特定字节列d而输出特定整数值的哈希函数h(d)和基于从哈希函数输出的范围的节点分配表。
图9是图示利用哈希函数h(d)的节点分配操作的图表。在接收到包含具有特定长度的数据(文件)的存储请求时,该数据(文件)是文件名,存储系统12将所接收的数据分割成具有由分布管理过程确定的固定长度的多个数据片段(数据块)。连续数据块标识符被附于相应的数据块,并且通过添加文件名和数据块标识符获得的数值被输入哈希函数h(d)。然后,基于输出的哈希值,参考节点分配表确定用于存储数据的节点。
图10是图示节点分配表的一个示例的图表。基于输出的哈希值由复制保持节点编号确定用于存储数据的数据存储节点。然后,目标数据作为主数据被传送到用于存储数据的节点。
同时,分布管理过程从基于复制分配表确定的、用于存储数据的节点当中确定复制保持节点。然后,分布管理过程将相同数据作为复制数据发送到复制保持节点。
图11是图示复制分配表的一个示例的图表。基于在图11中图示的复制分配表,对应于初级数据保持节点编号的节点的数据作为复制数据被发送到对应于复制数据保持节点编号的节点。
分布管理过程具有输出哈希函数程序、节点分配表和复制分配表作为部分分布索引信息的功能。
应该注意,这个示例性实施例不限于此,并且例如,可能可以采用这样一种构造,其中通过对预定数目数据块中的数据进行异或产生的奇偶数据被用作冗余数据,并且类似于复制数据地使用分配表来管理该冗余数据。
下面,将参考图12中的序列图描述根据这个示例性实施例的数据恢复系统的备份过程。
在图12中图示的数据恢复系统的序列图中,备份管理单元153请求备份资源管理单元152准备进行备份(步骤C1)。该准备请求包含备份识别名称,和作为备份源的存储节点121到124的地址。备份资源管理单元152响应于包含备份识别名称和作为备份源的存储控制101的地址的准备指令而准备接收数据(步骤C3)。这个准备例如包括产生网络接收端口和识别数据记录介质。
在完成备份准备之后,备份资源管理单元152向备份管理单元153发送指示准备完成的通知(步骤C5)。
备份管理单元153向存储节点121到124中的任何一个发出进行备份的指令。注意,在这个示例性实施例中,假设向存储节点121发出进行备份的指令。接收该指令的存储节点121的分布管理过程单元121a变为主分布管理过程单元121a(步骤C7)。
主分布管理过程单元121a向存储节点121到124的所有静止点产生过程单元121b到124b发出产生静止点的指令(步骤C9)。静止点产生过程单元121b到124b的每一个基于分布快照产生算法在全部存储节点121到124上逻辑一致的点处产生快照图像(步骤C 11)。
静止点产生过程单元121b到124b的每一个向主分布管理过程单元121a发送所产生的快照图像的编号(在下文中,被称作快照编号)(步骤C13)。
在接收到所有快照编号时,主分布管理过程单元121a向所有分布管理过程单元121a到124a发送开始用于将主数据传送到备份资源管理单元152的备份的请求(步骤C15)。上述术语“主数据”指的是不是其它节点中的主数据的复制数据的数据。
在接收到开始备份的请求时,分布管理过程单元121a到124a每一个将主数据发送到备份资源管理单元152(步骤C17)。在从分布管理过程单元121a到124a接收到主数据时,备份资源管理单元152存储所接收的主数据(步骤C19)。
在完成存储节点121到124的所有快照图像上的主数据的发送之后,分布管理过程单元121a到124a向主分布管理过程单元121a发送指示主数据的发送完成的完成通知(步骤C21)。类似地,分布管理过程单元121a到124a向备份资源管理单元152通知主数据的发送完成(步骤C23)。
主分布管理过程单元121a向分布管理过程单元121a到124a发送用于产生部分分布索引信息的请求(步骤C25)。分布管理过程单元121a到124a中的每一个产生存储节点121到124中的每一个的部分分布索引信息(步骤C27)。分布管理过程单元121a到124a向主分布管理过程单元121a发送所产生的部分分布索引信息(步骤C29)。术语“部分分布索引信息”在本说明书中指的是上述哈希函数程序、节点分配表和多个分配表。
主分布管理过程单元121a基于存储节点121到124中的每一个的部分分布索引信息产生一条分布索引信息(步骤C31)。主分布管理过程单元121a将所产生的分布索引信息与哈希函数程序一起发送到备份资源管理单元152(步骤C33)。
在向备份资源管理单元152发送所产生的分布索引信息之后,主分布管理过程单元121a向备份资源管理单元152发送指示备份完成的完成通知(步骤C35)。主分布管理过程单元121a还向备份管理单元153发送指示备份完成的完成通知(步骤C37)。
在从主分布管理过程单元121a接收到分布索引信息时,备份资源管理单元152存储分布索引信息(步骤C39)。然后,备份资源管理单元152向备份管理单元153发送指示备份接收完成的完成通知(步骤C41)。
在从主分布管理过程单元121a和备份资源管理单元152获得完成通知时,备份管理单元153结束备份操作(步骤C43)。
下面,将参考图13中的序列图描述根据这个示例性实施例的数据恢复系统的数据恢复过程。
在这个示例性实施例中,作为一个示例,假设上述备份数据被恢复从而处于其中在存储系统12中插入具有类似于存储节点121到124的性能的存储节点125的状态中。
备份恢复单元154向存储节点121到124中的任何一个发送准备接收备份的指令(步骤D1)。这里,例如假设备份恢复单元154向存储节点121发送准备接收备份的指令。备份恢复单元154从备份资源管理单元152请求分布索引信息(步骤D3)。
在接收到准备接收备份的指令时,存储节点121成为主分布管理过程单元121a。在完成接收备份的准备之后,主分布管理过程单元121a发送接收备份的准备完成的通知作为响应(步骤D5)。
主分布管理过程单元121a从所有分布管理过程单元121a到124a请求存储节点地址列表、盘驱动器的相对性能值列表、相对容量值列表、节点分配表和复制分配表(步骤D7)。
分布管理过程单元121a到124a每一个提取存储节点地址列表、盘驱动器的相对性能值列表、相对容量值列表、节点分配表和复制分配表。此外,分布管理过程单元121a到124a每一个提取其索引信息(步骤D9)。注意存储节点地址列表、盘驱动器的相对性能值列表、相对容量值列表、节点分配表和复制分配表被定义为性能信息。
分布管理过程单元121a到124a每一个将所提取的性能信息和所提取的索引信息发送到主分布管理过程单元121a(步骤D11)。注意索引信息指的是在图3中图示的数据配置信息。
主分布管理过程单元121a基于所获得的性能信息产生系统构造信息。此外,主分布管理过程单元121a基于所获得的索引信息产生在此情形中对应于第二分布索引信息的分布管理信息(步骤D13)。
主分布管理过程单元121a向备份恢复单元154发送所产生的系统构造信息和第二分布产生信息(步骤D15)。此外,主分布管理过程单元121a接收从备份资源管理单元152发送并且在此情形中对应于第一分布索引信息的分布索引信息(步骤D17)。
备份恢复单元154基于从主分布管理过程单元121a接收的系统构造信息和第二分布索引信息,和从备份资源管理单元152接收的第一分布索引信息来重新产生分布索引信息(步骤D19)。
这里,例如以下述方式产生该重新产生的分布索引信息,换言之对应于新分布索引信息的重新产生的分布索引信息。
在该示例中,在非常注重对特定数据的并行访问性能的算法中,数据数量的分布接近于存储大小的比,并且,在备份之前在同一存储节点中存储的数据被尽可能地存储在同一存储节点中。
首先,从在备份时的部分分布索引信息中提取哈希函数h(d)和节点分配表。然后,基于节点分配表,产生在备份时的存储节点地址列表。例如,可以基于在图10中图示的节点分配表中的复制保持节点编号产生存储节点地址列表。
接着,在图9和图10中图示的哈希值范围被改变。例如,哈希函数h(d)的数值范围被分割。这里,进行该分割使得分割的各范围的宽度的比等于系统构造信息的相对容量值列表的比。然后,节点分配表被更新从而与相对容量值列表的比相等。
例如,由于添加了存储节点125的事实,分布索引信息的节点分配表被更新,并且,在添加存储节点125之前每一个均被相等地分配到存储节点121到124的哈希值的分配范围被相等地分配到存储节点121到125。注意,如上所述,由于存储节点121到125的改变而引起的分配的改变还被视为因为反映使用趋势而进行的改变。
利用这种构造,备份恢复单元154能够改变第一分布索引信息,并且产生新分布索引信息。此外,备份恢复单元154将新分布索引信息传送到主分布管理过程单元121a(步骤D21)。
应该注意,分布索引信息的改变不限于在这个示例性实施例中描述的改变。例如,如在第一示例性实施例中描述地,在节点分配表中的节点编号在这个示例性实施例中可以被改变。在此情形中,强调对数据的顺序访问是可能的。
在接收到新分布索引信息时,类似于在步骤B17中的情形,主分布管理过程单元121a针对当前分布索引信息的状态确定关于是否能够存储已经被改变的新分布索引信息的适用性(步骤D23)。如果存储是适用的,则主分布管理过程单元121a向备份恢复单元154发送指示存储可能的响应。在另一方面,如果存储不适用,则主分布管理过程单元121a向备份恢复单元154发送指示存储不可能的响应(步骤D25)。
在从主分布管理过程单元121a接收到指示存储可能的响应时,备份恢复单元154向备份资源管理单元152发送新分布索引信息(步骤D27)。在接收到新分布索引信息时,备份资源管理单元152基于所接收的新分布索引信息向作为存储目的地的存储节点121到124发送来自盘驱动器151的目标数据(步骤D29)。
在接收到要被存储的数据时,存储节点121到124存储目标数据。同时,分布管理过程单元121a到124a基于复制分配表确定用于数据的复制存储节点,并且产生数据的副本。然后,分布管理过程单元121a到124a向复制存储节点发送所产生的数据的副本。用于存储副本的存储节点存储从备份存储15发送的主数据和从其它存储发送的数据的副本(步骤D31)。
在完成发送要被备份的所有目标数据之后,备份资源管理单元152发送指示到备份恢复单元154的数据发送完成的完成通知(步骤D33)。此外,在完成记录要被备份所有目标数据之后,存储节点121到124向备份恢复单元154发送指示数据恢复完成的完成通知(步骤D35)。
在从分布管理过程单元121a到124a和备份资源管理单元152接收到完成通知时,备份恢复单元154结束从备份恢复数据的过程(步骤D37)。
如上所述,在第二示例性实施例中,即使在其中存储节点121到124通过网络而被相互连接的情形中,数据恢复系统也能够通过使用快照而在静止点处进行备份。利用这种构造,在这个示例性实施例中,基于使用趋势对通过网络连接的存储节点进行备份是可能的。此外,在这个示例性实施例中,能够以下述方式恢复基于使用趋势实现的备份数据,该方式即,基于在通过网络连接的存储节点121到124中的使用趋势来配置数据。
[第三示例性实施例]
第三示例性实施例具有这样的构造,其中除了在第二示例性实施例中的分布索引信息之外,在数据备份时还获得数据使用趋势信息。
在第三示例性实施例中的步骤C31中,在从分布管理过程单元121a到124a接收到节点分配表、复制分配表和哈希函数程序时,主分布管理过程单元121a产生第二分布索引信息。此外,主分布管理过程单元121a从分布管理过程单元121a到124a收集关于每一个数据的同时使用频率信息,并且产生数据使用频率信息。
然后,主分布管理过程单元121a向备份恢复单元154发送所产生的第二分布索引信息和所产生的数据使用频率信息。
这里,同时使用频率信息可以例如是通过基于在特定时段内最近的数据访问的访问日志来提取相关规则而获得的频率模式。更加具体地,存储节点123中的数据和存储节点124中的数据每一个均通过分割大的数据而获得,并且对存储节点123的访问和对存储节点124的访问必定被同时执行。注意这种关系被作为指示基于使用趋势的数据之间的相关性的关联信息对待。
在此情形中,在步骤D19中,备份恢复单元154基于给定系统构造信息和所存储的数据使用频率信息来改变分布索引信息的节点分配表。
例如,图14图示在产生备份时存储节点123的分布索引信息的一个示例。在图14中,哈希值范围与复制保持节点编号(121到124)相关联。
当添加了存储节点125时,系统构造信息被改变。此外,在数据使用频率信息中,存储节点123中的数据和存储节点124中的数据这两者被同时使用,并且因此,在步骤D19中,分布索引信息的节点分配表被改变。更加具体地,每一个均已被相等地分配到存储节点121和123的哈希值的分配范围被改变从而被相等地分配到存储节点121、122和125。
图15图示在改变之后的节点分配表。存储节点123和存储节点124被同时使用,并且因此,在数据配置信息中,在维持存储节点123和存储节点124之间的关系时,存储节点121、122和125被相等地分割。
在恢复数据时,基于该数据配置信息产生新分布索引信息,并且从备份存储15到存储系统12执行数据恢复,由此基于使用趋势配置数据是可能的。
如上所述,在第三示例性实施例中,数据恢复系统能够基于数据使用频率信息改变节点分配表,并且能够改变节点分配表从而与其中存储节点被改变的系统构造信息相对应。利用这种构造,根据第三示例性实施例的数据恢复系统能够以将数据使用趋势反映到系统构造信息的方式将在备份存储15中存储的备份数据恢复到存储系统12。
已经参考附图对本发明的示例性实施例进行了说明。然而,这些示例性实施例仅仅是示例性的形式,并且采用除了上述构造之外的不同构造也是可能的。
例如,已经通过作为存储区的一个示例给出盘驱动器111到114描述了第一示例性实施例,但是这个示例性实施例不限于此。例如,存储区可以是硬盘驱动器、动态随机存取存储器(DRAM)、非易失性半导体存储器(闪速存储器、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FeRAM)等。此外,存储区可以是能够记录数据的物理介质诸如磁带和被集成到独立冗余盘阵列(RAID)控制器中的一个或者多个上述介质。此外,可以采用这样一种构造,其中这些介质被放置在存储节点外部,并且控制器进行控制从而能够将数据记录到介质中,并且可能能够组合这些介质和/或构造。
在第一到第三示例性实施例中,虽然备份过程和数据恢复过程被分开地执行,但是本示例性实施例不限于此。例如,在第一到第三示例性实施例中,可能能够同时地执行备份过程和数据恢复过程。
在此情形中,因为当数据恢复过程开始时,备份过程能够同时地开始,所以获得另一备份数据是可能的。利用这种构造,备份过程和数据恢复过程被同时执行,由此替代备份数据是可能的。
应该注意,仅仅有必要的是,在本示例性实施例中的构成元件被以能够实现它们自身的功能的方式构造。例如,可以采用提供预定功能的专用硬件,或者通过计算机程序向其提供预定功能的备份控制器3或者存储系统1。此外,例如可以通过计算机程序实现的备份控制器3或者存储系统1的预定功能或者它们之中的任何一个的组合实现这些构成元件。
此外,将本示例性实施例中的构成元件构造为独立单元不是必要的。例如,可能能够采用这样一种构造,其中:多个构成元件被形成为一个装置;一个构成元件由多个装置形成;一个构成元件形成其它构成元件的一部分;和,一个构成元件的一部分与其它构成元件的一部分重叠。
此外,对于示例性实施例中的备份过程和数据恢复过程,以顺序方式描述了多个步骤。然而,所描述的次序并不是必要地限制执行多个步骤的次序。因此,在执行根据本示例性实施例的方法时,能够在不会不利地影响其内容的程度上改变多个步骤的次序。
此外,在根据示例性实施例的上述方法中的多个步骤不限于以不同的时序被执行。因此,例如可以采用这样一种构造,其中:在当一个步骤正在被执行时的时间期间,其它步骤发生;或者,执行一个步骤的时序部分地或者完全地与执行另一步骤的时序重叠。
例如,在数据恢复过程中,在步骤B7中请求构造信息、在步骤B9中产生构造信息、在步骤B11中的系统构造信息和在步骤B13中改变分布索引信息的次序不限于在第一示例性实施例中描述的次序。更加具体地,可以以任何时序周期地产生系统构造信息,并且在接收到对构造信息的请求时,发送所产生的最近的系统构造信息。
此外,可以例如利用能够发送/接收数据的信息处理装置实现本示例性实施例中的存储系统1和备份控制器3。此外,例如可以通过利用:通用装置诸如CPU、只读存储器(ROM)、随机存取存储器(RAM)和接口(I/F)单元;被配置成能够执行预定信息处理的专用逻辑电路;及其组合配置的硬件来实现存储系统1和备份控制器3。
本申请要求基于在日本于2009年3月30日提交的日本专利申请No.2009-083426的优先权,其全部公开在此通过引用被并入。