具体实施方式
<第一示例性实施例>
将参考图1至图6对本发明的第一示例性实施例进行描述。图1是示出了存储系统的配置和数据的存储和参考的方面的框图。图2至图6是示出了存储在形成在存储设备中的CAS单元的数据的方面的框图。
首先,本示例性实施例中的存储系统是所谓的内容可寻址存储系统,其中数据被分发并存储到多个存储设备中,并且存储数据的存储位置通过根据数据内容指定的唯一内容地址而被指定。
内容可寻址存储系统1被一个或多个具有算数设备(未示出)和存储设备20的信息处理设备配置,并且如图1所示,包括通过向算数设备的程序安装而构造的数据存储控制单元10。继而,数据存储控制单元10具有从将被存储的数据(其部分)获得哈希值的功能(数据到哈希转换功能11),并且具有将获得的哈希值转换成地址数据(下文中称为“CA(内容地址)”)的功能(哈希到CA转换功能12),该地址数据表示先前由固定的规则对应的物理存储设备20的存储位置。当存储数据D时,哈希到CA转换功能12返回CA(内容地址)。而且,数据存储控制单元10具有参考功能13,用以从物理存储设备20中检索由CA所参考的数据D。物理存储设备20中用于CA的区域称为CAS单元21。
因此,在将文件或另一CA存储进存储设备20时、新近存储的文件或其他CA具有与已存储在存储设备20中的数据相同的数据内容的情况下,数据存储控制单元10允许通过使用CA来参考已存储在存储设备20中的数据作为新近存储的文件或其他CA,并且具有消除重复记录的效果。
接下来,将参考图2来描述由前述内容可寻址存储系统1生成的文件系统的结构的示例。用于管理文件系统的所谓元数据和实际的文件数据被按需分割成块,并且被存储到CAS单元21中。也就是说,被存储进CAS单元21的块可以存储文件数据的已分割数据和表示另一块的存储位置的CA(内容地址)。因此,在CAS单元21中生成了逻辑树结构。
例如,在将某个文件存储到内容可寻址存储系统中时,需要将文件数据分割成块(当需要时),将通过分割获得的块存储进CAS单元21,并且管理由此获得的CA。对参考通过分割文件而获得的多个块的多个CA进行管理结构应称为“文件管理结构”(文件管理结构数据),并且被存储进CAS单元21,由参考标号41、42和43指示。另外,文件在文件系统内的存储位置称为目录,并且对存储在目录中的文件和参考文件管理目录的CA进行管理的结构称为“目录管理结构”(目录管理结构数据)。例如,目录管理结构被存储进CAS单元21,由图3中的参考标号31、32和33指示。对于目录管理结构,将被参考的文件的名称与参考该文件的文件管理结构的CA、或者将被参考的目录的名称与该目录的目录管理结构的CA是相关的。
根据本发明的内容可寻址存储系统1具有复制已存储在CAS单元21中的文件的功能。具体地说,本示例性实施例中的数据存储控制单元10这样来复制文件:获取上述“文件管理结构”,它是待复制的文件的地址数据(地址数据获取单元),并且在CAS单元21中生成并设置这一“文件管理结构”的复制(地址数据设置单元)。在内容可寻址存储系统中,可以按照上述方式进行复制,因为相同内容的数据被存储在相同地址中。
例如,在图3中示出的示例中,通过将存储在复制源目录管理结构(由参考标号32表示)中的文件管理结构(由参考标号43表示)的CA复制到复制目的地目录管理结构33(由参考标号33表示)中,可以复制对该文件管理结构(由配置由参考标号43表示)中所存储的CA中存储的文件进行配置的数据。此时,由于无论文件数据的大小如何,文件管理结构43中的CA中的数据量都是足够小的数据量,所以可以在短时间内复制文件。
还可以如下考虑上文描述的文件复制。假定以与一般的文件复制相同的方式,检索存在于某个内容可寻址存储系统的文件系统中的文件的数据并且将其作为另一文件新近存储到CAS单元中。此时,数据以与已存储的数据块相同的方式被分割成块,并且被存储进CAS单元21。继而,所有通过数据的存储而获得的CA变成与被检索的文件的文件管理结构管理的CA相同。因此,当该文件管理结构被存储进CAS单元时,与已存储的检索源文件的文件管理结构的CA相同的CA被获得。通过将所获得的文件管理结构的CA和文件的名称之间的对应添加到存储目的地的目录结构并存储进CAS单元而形成的树结构因此与上述通过复制CA获得的树结构是相同的。由此很清楚的是,将文件管理结构的CA复制进复制目的地目录管理结构,具有与复制由文件管理结构指定的整个文件相同的效果。
如稍后的第二示例性实施例所述,由于使得内容可寻址存储系统不知道地址参考源的文件系统的特征,所以一种将文件管理结构的CA复制进复制目的地目录管理结构的方法在概念上允许文件向另一文件系统的复制以及文件在一个文件系统中的复制。由于用于存储文件数据的地址空间在文件系统内是封闭的,因此一般的文件系统需要在将文件复制进另一文件系统时加载并写入数据。另一方面,根据本发明的内容可寻址存储系统在内容可寻址存储系统之内具有文件管理结构的存储目的地,并且具有将文件管理结构的CA复制进另一文件系统的目录管理结构的功能,藉此能够即时生成文件的复制而无需加载或写数据,即便复制源目录和复制目的地目录在不同的文件系统中。
在如参考图3描述的由目录管理结构32和33指定的目录中存储的两个文件指定一个文件管理结构43的CA的情况下,将考虑更新目录之一(32)的文件的情况。图4示出了一个目录(32)的文件被更新之后的状态。通过更新文件数据,新生成了文件管理结构44,并且更新的文件指示新文件管理结构44的CA。这是因为新的文件管理结构44包括更新的文件数据的CA,并且因此被存储进与原始的文件管理结构不同的CA。作为这一操作的结果,复制源文件(43)和复制目的地文件(44)被明确地识别为不同的文件。
如上所述生成的两个文件具有一种自然的结构,它只共享未被更新的数据而彼此不参考被更新部分的数据。另外,在这一操作期间,复制源文件管理结构未发生改变。因此,无需冻结复制源文件的改变。
另外,根据本发明的存储系统被配置成即使在文件管理结构43和44的CA发生如上所述的改变时,仍防止目录管理结构32被存储进另一CA。具体地说,本示例性实施例的CAS单元21分别利用标识符提供将被存储的文件以及存储文件的目录,并且标识符在文件和目录被生成时被给定并且直到被删除之前都不会改变。如图5所示,在CAS单元21之内生成并管理对应映射50,在该对应映射50中,使标识符对应于包括具有该标识符的文件的块(数据)的CA的文件管理结构的CA。另外,如图5所示,在对应映射50中,使标识符与指定具有该标识符的目录的目录管理结构的CA对应。另外,目录管理结构具有文件名称与标识符之间的对应,而非将被参考的文件的名称或另一目录的文件的名称与CA之间的对应。
例如,在图5的示例中,文件F1的标识符“id2”与文件F1的文件管理结构43的CA“CA2”之间的对应被存储进对应映射50,并且文件F1的标识符“id2”被目录管理结构32参考。另外,目录管理结构32的目录的标识符“id1”与目录管理结构32的CA“CA1”之间的对应被存储进对应映射50,并且目录管理结构32的标识符“id1”被更高的目录管理结构31参考。因此,如图5中的虚线箭头所示,可以通过在对应映射50中参考与目录管理结构32、33中所存储的参考目的地的标识符相对应的CA,来参考目标目录的文件。
利用上述配置,可以只通过改变文件的标识符与CA的对应映射50而无需改变目录管理结构来更新文件。例如,如图6所示,在将文件F1的数据内容更新成文件F1’时,参考文件F1的文件管理结构43被改变成新的文件管理结构44,并且在这种情况下,只有与文件F1的标识符“id2”相对应的CA被改变成文件管理结构44的CA“CA3”(见图6中的阴影部分)。
<第二示例性实施例>
接下来,将参考图7至图9来描述本发明的第二示例性实施例。图7是示出了的第二示例性实施例中的存储系统的配置和操作的框图,并且图8和图9是示出了在CAS单元中复制文件的方面的框图。
为方便起见,所描述的是目录管理结构被配置成直接保持CA,但是实际上,如第一示例性实施例中参考图6所描述的,存储在目录管理结构中的是标识符而不是CA,并且使标识符与将被参考的CA相对应的对应映射被存储在CAS单元中。
首先,本示例性实施例中的存储系统被一个或多个具有算数设备和存储设备的信息处理设备配置,类似于上述第一示例性实施例。该存储系统包括文件复制即时生成功能110和CAS文件系统管理功能120,它们通过向算数设备的程序安装而被构造,如图7所示。CAS文件系统管理功能120包括CA获取单元121,路径分析单元122以及具有目录管理结构获取单元124和目录管理结构更新单元125的CA设置单元123。在存储设备中,形成有CAS单元130。
本示例性实施例中的存储系统的CAS单元130存储如图8中示出的内容可寻址文件系统的数据结构,并且存储两个文件系统,即文件系统1和文件系统2。存储在CAS单元130中的文件系统的数目不限于两个,而是可以存储多个文件系统。CAS文件系统管理功能120(数据存储控制单元)具有执行对每个文件系统的管理的功能。下面,将参考图7至图9来描述存储系统的操作。
首先,如图7所示,当作出文件复制请求时,文件复制即时生成功能110接收复制源文件路径(文件说明信息(路径信息))和复制目的地文件路径的输入,复制源文件路径表示将被复制的文件的存储位置,复制目的地文件路径表示复制目的地文件的存储位置(图7中的S1)。继而,文件复制即时生成功能110将复制源文件路径传递至管理文件系统1的数据的CAS文件系统管理功能120的CA获取单元121(图7中的S2)。
CA获取单元121(地址数据获取单元)通过使用路径分析单元122来分析复制源文件路径(图7中的S3),并且在目录管理结构131a中检索CA132(参见图8),该目录管理结构131a指示参考来自CAS单元130的路径所指定的文件(图8中示出的阴影“数据”)(图7中的S4)。继而,CA获取单元121将检索的CA132返回给文件复制生成功能110(图7中的S5)。
随后,文件复制即时生成功能110将返回的CA132和复制目的地文件路径传递给管理文件系统2的数据的CAS文件系统管理功能120的CA设置单元123(图7中的S6)。
CA设置单元123(地址数据设置单元)通过使用路径分析单元122来分析复制目的地文件路径(图7中的S7),并且获得由路径指定的目录管理结构131b的CA(见图9)。继而,CA设置单元123将目录管理结构131b的CA作为输入传递给目录管理结构获取单元124。目录管理结构获取单元124检索与从CAS单元130传递的CA相对应的目录管理结构131b(图7中的S8),并且返回至CA设置单元123。
随后,CA设置单元123将目录管理结构131b作为输入传递给目录管理结构更新单元125。目录管理结构更新单元125将文件名称与CA132之间的对应添加至目录管理结构131b(见图9中的阴影部分),并且向CAS单元130写入和返回更新的目录管理结构131b(图7中的S9)。
因此,指示属于文件系统1的文件管理结构133的CA132被复制到属于文件系统2的目录管理结构131b中,并且因此,完成了文件从文件系统1向文件系统2的复制。
由此,本发明的存储系统可以实现文件的即时复制,不管文件的大小如何都无需大量数据的输入/输出。另外,本发明的存储系统可以在存在于相同的内容可寻址存储系统上的两个文件系统之间复制文件。
尽管在以上描述中,文件的路径信息被用作向文件复制即时生成功能110的输入,但是指定文件系统的关键字信息(文件系统的名称)和被给予文件的文件标识符可被用作用于指定复制源文件和复制目的地文件的信息。根据这种信息,首先,CA获取单元121可以指定复制源文件的存储位置并且获得复制源文件的CA,并且CA设置单元123可以指定位于复制目的地目录的文件并且进行定位以便参考所获得的CA而非文件,从而复制文件。因此,即使在文件复制目的地的路径信息未被公开时也可以复制文件,只要文件系统的名称和标识符已公开即可。复制目的地文件应该事先生成,并且其中可以存在任何数据(文件可以是空的)。
<附记>
以上公开的示例性实施例的全部或部分可以被描述为如下附记。以下,将参考图10对本发明中的存储系统的配置的概要进行描述。然而,本发明不限于下列配置。
(附记1)
存储系统220包括:
存储设备220,用于存储对文件进行配置的分割数据以及还存储基于参考目的地的数据内容和存储位置的地址数据,该地址数据参考分割数据或其他地址数据;以及
数据存储控制单元210,用于在分割数据或其他地址数据将被新近存储进存储设备、并且将被新近存储的分割数据或其他地址数据具有与已存储在存储设备中的数据相同的数据内容的情况下,进行控制以通过使用地址数据来参考已存储在存储设备中的数据作为将被新近存储的分割数据或其他地址数据,
其中数据存储控制单元210包括:地址数据获取单元211,用于接受指定存储在存储设备中的复制目标文件的文件说明信息,并且基于文件说明信息获取复制目标文件的地址数据;以及地址数据设置单元212,用于在存储设备中设置获取的地址数据,以使得复制目标文件被存储进复制目的地目录。
(附记2)
根据附记1的存储系统,其中:
存储设备被配置成存储文件管理结构数据和目录管理结构数据,该文件管理结构数据存储参考对文件进行配置的多个分割数据的多个地址数据,目录管理结构数据存储参考文件管理结构数据的地址数据的并且指定目录,该目录是地址数据的参考目的地中所存储的文件的存储位置;
地址数据获取单元被配置成基于文件说明信息指定存储参考对复制目标文件进行配置的分割数据的地址数据的文件管理结构数据,并且获取参考该文件管理结构数据的地址数据;以及
地址数据设置单元被配置成将由地址数据获取单元获取的地址数据复制到指定位于复制目标文件的复制目的地的目录的目录管理结构数据。
(附记3)
根据附记2的存储系统,其中:
存储设备被配置成存储使得被给予每个文件的标识符对应于参考该文件的文件管理结构数据的地址数据,并且还存储被给予地址数据所参考的文件的标识符以作为参考目录管理结构数据中的参考文件管理结构数据的地址数据;以及
数据存储控制单元被配置成基于在目录管理结构数据中被存储为地址数据的标识符并且基于对应映射来参考文件。
(附记4)
根据附记3的存储系统,其中存储设备被配置成:存储目录管理结构数据,目录管理结构数据存储参考其他目录结构管理数据的地址数据,并且还向对应映射中存储使得被给予每个目录的标识符与指定目录的目录管理结构数据的地址数据相对应的对应映射;并且存储被给予地址数据所参考的目录的标识符,作为目录管理结构数据中的参考其他目录结构管理数据的地址数据。
(附记5)
根据附记3或4的存储系统,其中数据存储控制单元被配置成在改变文件的数据内容时,改变在对应映射中与目录的标识符相对应的地址数据。
(附记6)
根据附记1至5中的任一项的存储系统,其中地址数据获取单元被配置成接受表示复制目标文件的存储位置的路径信息作为文件说明信息,并且获取参考由路径信息指定的文件的地址数据。
(附记7)
根据附记3至5中的任一项的存储系统,其中地址数据获取单元被配置成接受指定存储复制目标文件的文件系统的文件系统说明信息和文件的标识符作为文件说明信息,并且获取参考由文件系统说明信息和文件的标识符指定的文件的地址数据。
(附记8)
一种计算机程序包括指令,该指令用于:
使信息处理设备实现数据存储控制单元,信息处理设备连接至存储设备,存储设备用于存储对文件进行配置的分割数据并且还存储基于参考目的地的数据内容和存储位置的地址数据,地址数据参考分割数据或者其他地址数据,数据存储控制单元用于在分割数据或其他地址数据新近将被存储到存储设备中、并且新近将被存储的分割数据或其他地址数据具有与已存储在存储设备中的数据相同的数据内容的情况下,控制以通过使用地址数据来参考已存储在存储设备中的数据作为新近将被存储的分割数据或其他地址数据;以及
使数据存储控制单元实现地址数据获取单元和地址数据设置单元,地址数据获取单元用于接受指定存储在存储设备中的复制目标文件的文件说明信息,并且基于文件说明信息获取复制目标文件的地址数据,地址数据设置单元用于在存储设备中设置获取的地址数据以使得复制目标文件被存储在复制目的地目录中。
(附记9)
根据附记8的计算机程序,其中:
存储设备被配置成存储文件管理结构数据并且还存储目录管理结构数据,文件管理结构数据存储参考配置文件的多个分割数据的多个地址数据,目录管理结构数据存储参考文件管理结构数据的地址数据并且指定目录,目录是地址数据的参考目的地中所存储的文件的存储位置;
地址数据获取单元被配置成基于文件说明信息来指定存储参考配置复制目标文件的分割数据的地址数据的文件管理结构数据,并且获取参考文件管理结构数据的地址数据;以及
地址数据设置单元被配置成将由地址数据获取单元获取的地址数据复制到指定位于复制目标文件的复制目的地中的目录的目录管理结构数据。
(附记10)
一种数据存储方法,包括由连接至存储设备的信息处理设备执行以下操作,存储设备用于存储对文件进行配置的分割数据并且还存储基于参考目的地的数据内容和存储位置的地址数据,地址数据参考分割数据或其他地址数据,包括:
在分割数据或其他地址数据被新近存储到存储设备中、并且新近将被存储的分割数据或其他地址数据具有与已存储在存储设备中的数据相同的数据内容的情况下,执行数据存储控制,以通过使用地址数据来参考已存储在存储设备中的数据作为新近将被存储的分割数据或其他地址数据;以及
接受指定存储在存储设备中的复制目标文件的文件说明信息,基于文件说明信息来获取复制目标文件的地址数据,并且在存储设备中设置获取的地址数据以使得复制目标文件被存储到复制目的地目录中。
(附记11)
根据附记10的数据存储方法,其中:
由存储设备存储文件管理结构数据并且还存储目录管理结构数据,文件管理结构数据存储参考配置文件的多个分割数据的多个地址数据,目录管理结构数据存储参考文件管理结构数据的地址数据并且指定目录,目录是地址数据的参考目的地中所存储的文件的存储位置;
由信息处理设备基于文件说明信息来指定存储参考配置复制目标文件的分割数据的地址数据的文件管理结构数据,获取参考文件管理结构数据的地址数据,并且将由地址数据获取单元获取的地址数据复制到指定位于复制目标文件的复制目的地中的目录的目录管理结构数据。
在以上描述的每个示例性实施例中,程序被存储在存储设备或记录在计算机可读记录介质中。例如,记录介质是便携式介质,诸如,软盘、光盘、磁光盘和半导体存储器。
尽管已经参考各个示例性实施例对本发明进行描述,但是本发明并不限于以上描述的示例性实施例。本发明的配置和细节可以以各种能够被本领域的技术人员理解的方式、在本发明的范围内被修改。
本发明基于并要求2011年01月28日提交的日本专利申请号2011-016230的优先权的权益,其公开以引用方式被完全并入于此。
参考标号的描述
1 存储系统
10 数据存储控制单元
11 数据到哈希转换功能
12 哈希到CA转换功能
13 参考功能
20 存储设备
21 CAS单元
31-33 目录管理结构
41-44 文件管理结构
50 对应映射
110 文件复制即时生成功能
120 CAS文件系统管理功能
121 CA获取单元
122 路径分析单元
123 CA设置单元
124 目录管理结构获取单元
125 目录管理结构更新单元
130 CAS单元
131a、131b 目录管理结构
132 CA
133 文件管理结构
200 存储系统
210 数据存储控制单元
211 地址数据获取单元
212 地址数据设置单元
220 存储设备