CN103339615B - 存储系统和信息处理方法 - Google Patents
存储系统和信息处理方法 Download PDFInfo
- Publication number
- CN103339615B CN103339615B CN201180066195.4A CN201180066195A CN103339615B CN 103339615 B CN103339615 B CN 103339615B CN 201180066195 A CN201180066195 A CN 201180066195A CN 103339615 B CN103339615 B CN 103339615B
- Authority
- CN
- China
- Prior art keywords
- data
- directory entry
- file
- index file
- file data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
Abstract
一种存储系统,包括:数据划分装置,用于将写入目标数据划分成多个部分数据的单元,并且产生新的划分的文件数据的单元;索引文件生成装置,用于针对部分数据的单元的每一个,生成索引条目,并且通过添加用于检错的测试数据来生成索引文件数据;数据写入装置,用于写入划分的文件数据以及索引文件数据;以及恢复装置,用于基于包括在每个索引条目中的测试数据来检测写入在存储设备中的索引条目中的错误。恢复装置从索引文件数据删除其中检测到错误的索引条目以及存储在存储设备中的索引文件数据中的所有后续索引条目。
Description
技术领域
本发明涉及一种存储系统,其划分将被存储的数据并且将数据存储在存储装置中。
背景技术
近年来,随着计算机的开发和传播,各种类型的信息被置入进数字数据中。对于存储此类数字数据的装置,例如磁带和磁盘的存储装置已经知道。由于待存储的数据逐日增加并且其数量变得巨大,需要大容量存储系统。此外,要求保持存储装置的稳定性而同时减小成本。另外,也要求数据可以在稍后被轻易取回。结果,期望这样一种存储系统,其能够自动地增加存储容量及其性能,并消除复制的存储内容以减小用于存储的成本。
在这样的情况下,最近已经开发了如专利文献1中示出的内容地址存储系统。该内容地址存储系统将数据分布式地存储到多个存储装置中,并且基于对应于数据内容指定的唯一内容地址来指定存储数据的存储位置。具体地,内容地址存储系统将预定的数据划分成多个片段,向其添加片段作为冗余数据,并且分别地将这些片段存储到多个存储装置中。
稍后,通过指定内容地址,可以读取存储在由内容地址指定的存储位置的数据,即,片段,并且在划分前从多个片段恢复预定的数据。
进一步,数据的哈希值作为内容地址使用,该哈希值被生成以便唯一地对应于数据内容。这样,在复制的数据的情况下,通过参考相同存储位置中的数据来获取相同内容的数据。相应地,不需要单独地存储复制的数据,藉此可以消除复制的记录并且减小数据容量。
具有上述复制记录消除功能的存储系统包括上层文件系统和下层文件系统,具有下面的特性:
上层文件系统内部地将写入的文件划分成多个文件。
划分的文件从上层文件系统分别地写入到下层文件系统,并且通过下层文件系统与稳定存储装置同步。
下层文件系统并不确保数据的写入顺序。这样,如果在数据写入过程中发生系统故障,则数据的一部分可能被丢弃。
图1示出了其中文件F通过文件划分而被划分成两个的状态。首先,上层文件系统通过将文件F划分成多个部分数据的单元(F1_1,F2_2,等)来产生文件1(F1)和文件2(F2),并且也产生索引文件Idx,该索引文件记录原始写入的文件F和通过划分产生的文件1(F1)和文件2(F2)的映射信息。索引文件Idx具有部分数据的划分单元(F1_1,F2_2等)的每个划分单元的、作为索引条目(I-1等)的映射信息。
索引文件中的映射信息主要包括下面的信息:
相应文件的信息。
划分之前在文件中从文件的头部的偏移信息。
在划分的文件中从文件的头部的偏移信息。
数据大小信息。
作为其中使用将文件如上划分的文件系统的实例,业已知道用于数据备份的软件。在备份软件中,在文件系统的上层处,备份数据被划分成“数据部分”和由备份软件插入的“标记部分”。通常,以这样的方式来执行数据复制,即文件的数据被分段成具有给定的长度(固定长度或可变长度),并且分段数据的单元被比较。这样,如果在小于分段文件的长度的空间中的一个文件中存在数据差异,则数据的这些部分不被确定为相同的内容数据。这意味着即使在数据的分段单元之间存在相同内容的数据的多个部分,如果存在稍微的差别,数据的两个分段单元都被存储,藉此不能有效地执行待存储的数据的复制。进一步,在用于数据备份的软件中,存在其中对于每次的备份插入唯一信息,例如备份时间的情形,除了待备份的数据以外,并且此类的标记部分阻碍相应的全部备份之间的复制。
相应地,如上所述,通过将备份数据划分成文件系统的上层处的“数据部分”和“标记部分”,可以改进在“数据部分”侧上的备份数据的复制的效果。具体地,在获取对于若干次生成的全部备份的情形中,由于预期复制部分在相应的全部备份之间显著的大,可以进一步改进复制功能,藉此以高的效率来减小存储区域。
专利文献1:JP2005-235171A
然而,在此类的文件系统中,如果系统故障发生在数据写入的过程中,则存在其中划分的文件的每个变成不完整状态的情形,例如图2中未由参考标号所指示的那些部分。特别地,在划分的文件间,记录相应的文件的映射信息的索引文件Idx是重要的文件,并且如果其内容变得不完整,数据访问无法正常地执行。
发明内容
相应地,本发明的目的是提供一种解决上述问题的存储系统,该上述问题即在文件系统中变得无法正常地执行数据访问的缺陷。
为了实现上述的目的,作为本发明的一个方面的存储系统被配置成包括
数据划分装置,用于将待写入到给定存储设备的数据划分成多个部分数据,根据预定的准则将所述部分数据分类成多个类别,并且针对每个所述类别,通过链接所述部分数据来产生新的划分的文件数据;
索引文件生成装置,用于针对所述部分数据的每一个而生成索引条目,该索引条目包括在划分所述部分数据之前待写入的所述数据中的位置信息以及在划分所述部分数据之后生成的所述划分的文件数据中的位置信息,将用于检错的测试数据添加到所述索引条目,并且通过链接多个所述索引条目来生成索引文件数据;
数据写入装置,用于将由所述数据划分装置生成的所述划分的文件数据以及由所述索引文件生成装置生成的所述索引文件数据写入到所述存储设备;以及
恢复装置,用于基于包括在每一个所述索引条目中的测试数据,来检测写入所述存储设备中的所述索引条目中的错误,其中
所述恢复装置从所述索引文件数据删除存储在所述存储设备中的所述索引文件数据中的在其中检测到错误的索引条目以及所有后续索引条目。
进一步,作为本发明的另一方面的一种程序是这样的一种程序,其用于使得信息处理设备实现:
数据划分装置,用于将待写入到给定存储设备的数据划分成多个部分数据,根据预定的准则将所述部分数据分类成多个类别,并且针对每一个所述类别,通过链接所述部分数据来产生新的划分的文件数据;
索引文件生成装置,用于针对所述部分数据的每一个而生成索引条目,该索引条目包括在划分所述部分数据之前待写入的所述数据中的位置信息以及在划分所述部分数据之后生成的所述划分的文件数据中的位置信息,将用于检错的测试数据添加到所述索引条目,并且通过链接多个所述索引条目来生成索引文件数据;
数据写入装置,用于将由所述数据划分装置生成的所述划分的文件数据以及由所述索引文件生成装置生成的所述索引文件数据写入到所述存储设备;以及
恢复装置,用于基于包括在每一个所述索引条目中的所述测试数据,来检测写入所述存储设备中的所述索引条目中的错误,其中
所述恢复装置从所述索引文件数据删除存储在所述存储设备中的所述索引文件数据中的在其中检测到错误的索引条目以及所有后续索引条目。
进一步,作为本发明的另一方面的一种信息处理方法,其配置成在信息处理设备中包括:
将待写入到给定存储设备的数据划分成多个部分数据,根据预定的准则将所述部分数据分类成多个类别,并且针对每一个所述类别,通过链接所述部分数据来产生新的划分的文件数据;
针对所述部分数据的每一个而生成索引条目,该索引条目包括在划分所述部分数据之前待写入的所述数据中的位置信息以及在划分所述部分数据之后生成的所述划分的文件数据中的位置信息,将用于检错的测试数据添加到所述索引条目,并且通过链接多个所述索引条目来生成索引文件数据;
将所述划分的文件数据以及所述索引文件数据写入到所述存储设备;以及
基于包括在每一个所述索引条目中的所述测试数据来检测写入所述存储设备中的所述索引条目中的错误,并且从所述索引文件数据删除存储在所述存储设备中的所述索引文件数据中的在其中检测到错误的索引条目以及所有后续索引条目。
由于本发明被如上配置,即使由于系统故障或类似等而造成在存储设备中写入的数据变得不完整,也可以正常地执行后续的数据访问。
附图说明
图1示出其中待写入存储设备的文件被划分的状态。
图2示出其中存储设备中写入的划分文件变得不完整的状态。
图3示出根据本发明的第一示例性实施例的存储系统的配置。
图4示出图3中公开的文件信息表的实例。
图5是示出图3中公开的存储系统的操作的流程图。
图6是示出图3中公开的存储系统的操作的流程图。
图7是示出图3中公开的存储系统的操作的流程图。
图8是示出图3中公开的存储系统的操作的流程图。
图9是示出图3中公开的存储系统的操作的流程图。
图10示出其中索引文件在图3中公开的存储系统中被修改的状态。
图11示出其中划分的文件在图3中公开的存储系统中被修改的状态。
图12示出其中划分的文件在图3中公开的存储系统中被修改的状态。
图13示出根据本发明的补充注释1的存储系统的配置。
具体实施方式
第一示例性实施例
将参考图3到图12来描述本发明的第一示例性实施例。图3和图4是用于解释根据本实施例的存储系统的配置的图,并且图5到图12是用于解释存储系统的操作的图。
[配置]
本发明的存储系统1由一个服务器计算机或多个彼此连接的服务器计算机配置而成。如图2中所示,存储系统1包括两个文件系统,即文件系统A和文件系统B。文件系统A具有例如控制存储系统1自身的写入和读取操作的功能,并且文件系统B具有将数据实际存储在存储设备中的功能。
应该注意到的是,本实施例的存储系统1是内容地址存储系统,其对数据进行划分并且使得其冗余,分布式地将划分的数据单元存储到多个存储设备中,并且根据设置成对应于待存储的数据的内容的唯一内容地址来指定存储数据的存储位置。由此,存储系统1实现待存储的数据的重复数据删除。然而,本发明的存储系统1并不限于内容地址存储系统,并且不限于具有重复数据删除功能。
本实施例的存储系统1在文件系统A中包括数据属性确定部11、文件划分部12、索引文件生成部13、数据写入部14和恢复部15,这些由并入在算法单元中的程序来配置。存储系统1也包括在主存储器中形成的文件信息表16。
尽管未示出,存储系统1也包括可以由文件系统B访问的多个存储设备。存储系统1具有将在下面的描述的对被划分的文件F1和F2以及索引文件Idx进行划分,使得它们冗余,将它们分布式地存储在多个存储设备中,并且实现重复数据删除。
数据属性确定部11(数据划分装置)确定写入目标文件(写入目标数据)中的每个部分数据的单元属于哪些预定的属性(分类)。在本实施例中,作为写入目标的文件F例如是备份数据,并且数据属性确定部11确定数据属于哪两个属性,即“数据部分”和“标记部分”,该“数据部分”是备份数据的实际数据部分,并且其中的值并不由于生成的时间、更新的数目和类似等而改变,而在“标记部分”中,值将由于更新的时间或数目,例如时间戳或序号而改变,并且其包括文件自身的管理信息。应该注意到,在数据属性确定部11中,已经根据文件F中的每个部分数据的单元的数据内容提前设置了用于确定属性的参考信息,并且根据此类的参考信息来确定属性。
文件划分部12(数据划分装置)根据由数据属性确定部11所确定的属性,将文件F的数据划分成相应的部分数据的单元,通过相应的属性对部分数据的单元进行分类,并且分别最新生成划分的文件数据。例如,在本实施例中,属于文件F中的“数据部分”的部分数据的单元被分类成文件1(F1),该文件1(F1)是划分后的划分文件数据,并且属于“标记部分”的部分数据的单元被分类到文件2(F2)同,该文件2(F2)是划分后的划分文件数据。接着,分类的部分数据的单元由对应于每个属性的每个文件(文件1,文件2)来合并。更具体地,如图1中所示,在作为写入目标的文件F中,部分数据的单元F1_1到F1_7被分类到文件1,并且部分数据的单元F2_1到F2_6被分类到文件2。
这里,在存储系统1的主存储器中执行如上所述的对文件F划分并且生成文件1和2的处理,并且如下所述,在文件系统A和文件系统B数据同步的时刻,文件1和2通过数据写入部14实际写入在存储设备中。
尽管本实施例示例性示出将写入目标文件F划分成两个文件的情形,本发明并不限于其中通过划分生成的文件的数目为二的情形,并且也可以应用于这样的情形,即其中文件被划分成更大数目的文件。
当将文件F的文件划分成如上所述的相应部分数据的单元时,索引文件生成部13(索引文件生成装置)生成对应于相应的部分数据的单元的索引条目,并且将它们链接,由此生成索引文件Idx(索引文件数据)。应该注意的是,使用例如存储在文件信息表16中的信息生成索引条目,并且如图4中所示,包括例如代表在部分数据的单元的划分之前文件F中对应于索引条目的位置信息的“originalFile_offset”、代表从部分数据生成的划分文件数据(文件1或文件2)中的位置信息的“fileA_offset”或“fileB_offset”(在“current_File”中描述文件的偏移信息),作为数据大小信息的“data_size”代表部分数据本身的数据大小,以及“index_sync”代表与文件系统B的同步是否已经完成。应该注意到,尽管“index_sync”的初始设置值为“0”,当与文件系统B的同步已经完成时,值被设置为“1”。
索引文件生成部13也向索引条目的每一个添加用于检错的测试数据,以便检测索引条目中的非规则性。该测试数据例如是诸如“CRC32”的冗余代码,但测试数据并不限于此类的数据。
数据写入部14(数据写入装置)向文件系统B写入作为由文件划分部12所生成的划分的文件数据的文件1和文件2,以及由索引文件生成装置13所生成的索引文件Idx。具体地,数据写入部14在文件系统A和文件系统B的数据同步时刻,将在存储系统1上的主存储器上生成的文件1和2以及索引文件Idx实际写入到辅助存储设备。特别地,当向辅助存储器设备写入索引条目已经完成时,数据写入部14将“index_sync”设置为“1”并且添加具体的信息。
在当数据写入部14向辅助存储器设备写入文件1、文件2和索引文件Idx的时间期间,如果由于存储设备1本身或文件系统B中故障发生而造成系统故障,则在辅助存储设备中写入的数据在下一次被访问时,恢复部15(恢复装置)执行恢复处理,例如数据的检验和恢复。
具体地,通过校验存储在索引文件Idx中的每个索引条目中的用于检错的测试数据,恢复部15执行检错处理。如果恢复部15检测任意索引条目中的错误,则恢复部15执行修改,以从索引文件Idx中删除此类的索引条目以及从此类的索引条目开始所有后续位置相近的索引条目直到最后。在该过程中,恢复部15按顺序执行从末端到索引文件Idx的开始的索引条目的检错处理,并且也执行反向读取以检查每个索引条目中的“index_sync”的值。如果任意索引条目的“index_sync”是“1”,则恢复段15结束从索引文件Idx的末端按顺序执行的检错处理,即反向读取。应该注意到,当在反向读取期间读取到达索引文件Idx的第一条目时,恢复段15也结束反向读取。
进一步,在完成如上所述的相应索引条目的校验和修改时,恢复部15根据位于修改后的索引文件Idx末端处的索引条目中的信息,来指定作为划分的文件的文件1和文件2的文件大小。接着,恢复部15检查指定的文件1和2的指定的文件大小以及实际文件1和2的文件大小的是否彼此符合,并且扩展或删除文件1和2的末端,以便文件1和文件2的实际文件大小符合从索引条目指定的文件大小。下面将描述处理的具体内容。
[操作]
下面,将参考图5到图9以及图10到图12的流程图来描述存储系统1的操作。
首先,参考图5,将描述通过存储系统1的索引文件的文件划分和生成。当将文件F写入进文件系统A时,存储系统1初始化文件信息表16(步骤S1)并且生成文件,以及写入关于文件的例如索引节点号和类似等的各种类型的信息,作为索引文件Idx中的报头(步骤S2)。接着,当文件F被写入时(步骤S3),数据属性确定部11检查每个部分数据的单元的数据属性,并且在文件信息表16中的“current_File”上写入数据属性(步骤S4),并且文件划分部12向对应于数据属性的相应文件1和2写入相应的部分数据的单元(步骤S5)。
接着,每当存储系统1从文件F写入数据时(步骤S6),存储系统1确定数据属性(步骤S7)并且开始数据的写入(步骤S11)。在该过程中,如果由数据属性确定所确定的部分数据的单元不同于紧接在之前所确定的部分数据的单元(在步骤S8处为否),则索引文件生成部13生成索引条目。存储系统1在索引文件Idx上写入索引条目(步骤S9),并且更新“current_File”(步骤S10)。
接着,当已经完成文件F中的所有部分数据的单元的写入时(步骤S11,在步骤S12处为是),则存储系统1最终写入索引条目(步骤S13)。此类的写入在主存储器上执行,并且在稍后执行同步的时刻将数据实际存储在辅助存储设备中。
下面将参考图6的流程图来描述如图5中所示的步骤S5和步骤S11处的数据写入处理。根据文件信息表16中的“current_File”(S21),文件划分部12向文件系统B的文件1或文件2写入文件F的部分数据(步骤S22,S23),并且向文件信息表16中的“data_size”添加写入的部分数据的大小(步骤S24)。
下一步,将参考图7的流程图来描述在图5中示出的步骤S9处的索引条目写入处理。如上所述,如果改变文件F的部分数据的单元的属性,则写入索引条目。在该过程中,检查文件信息表16中的“current_File”(步骤S31),并且基于文件信息表16中的多条信息来计算用于测试的冗余代码(步骤S32、S35)。接着,相应的多条信息和用于测试的冗余代码被写为文件系统B的索引文件Idx上的一个索引条目(步骤S33,S34)。在索引条目写入在索引文件Idx上之后,“data_size”被添加到“fileA_offset”或“fileB_offset”(在“current_File”中描述的文件的偏移信息)以及“originalFile_offset”(步骤S34、S37和S38),并且“index_sync”被设置为0(步骤S39)。
下一步,将参考图8的流程图来描述当向文件系统A发布数据同步指令时的数据同步处理,即,将如上所述生成的文件1和2以及索引文件Idx从主存储器实际写入到辅助存储设备。
当执行数据同步指令时(步骤S41),写入索引条目(步骤S42),并且关于文件系统B的所有文件来发布数据同步指令(步骤S43)。最终,文件信息表16中的“index_sync”被设置为“1”(步骤S44)。由此,紧接在数据同步后生成的索引条目中的“index_sync”是“1”,而其他是“0”。
如果在数据同步期间的向文件系统B写入数据的过程中发生系统故障,将在向文件F的下一次访问时执行恢复处理。将参考图9和图10到图12的流程图来描述该恢复处理。
如图10中所示,在恢复处理中(步骤S51),从索引文件Idx的末端反向读取索引文件Idx中的索引条目(步骤S52)。接着,通过使用用于测试每个索引条目的冗余代码,可以检查是否存在任何不正确的索引条目(步骤S53)。在该过程中,也检查索引条目中的“index_sync”是“1”,还是反向读取到达索引文件Idx的头部(步骤S54)。如果读取并没有到达头部,则读取前一条目(步骤S55),并且执行相同的处理。
在反向读取期间,如果索引条目中的“index_sync”是“1”或者反向读取到达索引文件Idx的头部,则反向读取结束(步骤S54)。在该过程中,如果有任何不正确的索引条目,则删除所有的后续条目索引,即从不正确的一个索引条目到索引文件Idx的末端的索引条目。例如,如果图10中示出的参考标记I_9的索引条目的“index_sync”是“1”并且更靠近于末端的右侧的索引条目是不正确的,则如图10中的箭头所示出的,从参考标记I_9到位置更接近于末端的点线部分的索引条目被删除。
应该注意的是,如果索引条目中的“index_sync”是“1”,则确保在此类的索引条目前的相应文件(文件1、文件2、索引文件)被同步。相应地,不需要在检查在其之前的索引条目是否正确,并且也不需要执行反向读取。如上所述,通过向索引条目添加“索引_同步”,可以缩短反向读取部。
接着,当已经完成索引条目的检查和修改时,检查在文件1和文件2的每个的数据大小和由对应于文件1和文件2的每个的正常最后索引条目所指示的区域的末端之间是否存在差异(步骤S57)。例如,基于文件1中的位置信息和包括在位于图11中示出的索引文件的正常部分的末端处的参考标记I_9的索引条目中的数据大小来指定文件1的大小,并且与实际文件1的大小进行比较。如果实际文件1的大小大于根据最后的索引条目所指定的大小,则在位于由对应于最后索引条目的实际文件1的参考标记F1-5所示出的末端之后的非完整数据被删除以便剪切文件1。这意味着由图11中所虚线所示出的部分数据(其是文件1的末端部分)如通过箭头所示出的删除直到根据最后索引条目所指定的大小(步骤S58)。
另一方面,如果实际文件1的大小小于根据最后索引条目所指定的大小,则文件1的末端被扩展到达由正常最后索引条目所指定的大小(步骤S59)。
接着,关于文件2,也以类似的方式检查在文件2的数据大小和由对应于文件2的正常最后索引条目指示的区域的末端之间是否存在任意的差异(步骤S60)。例如,基于文件2中的位置信息和数据大小来指定文件2的大小,该数据大小包括在位于对应于图11中示出的文件2的索引文件的正常部分的末端处的参考标记I_8的索引条目中,并且将其与实际文件2的大小进行比较。如果实际文件2的大小大于根据最后的索引条目所指定的大小,则位于对应于最后索引条目的实际文件2的末端之后的非完整数据被删除以由此剪切文件2(步骤S61)。
另一方面,如果实际文件2的大小小于根据对应于图2的最后索引条目指定的大小(参考标记I_9),文件2的末端被扩展到由图12中的虚线和箭头示出的正常最后索引条目所指定的大小(步骤S62)。
由于本发明的存储系统被如上配置,即使系统故障发生在写入期间,文件1、文件2和索引文件之间的一致性可以被维护,藉此可以正常地执行相应文件的下一次访问。
<补充注释>
上述的示例性实施例的整体或一部分可以被描述为、但不限于下面的补充注释。在下文中,将参考图13来描述根据本发明的存储系统的配置的总结。然而,本发明不限于下面描述的配置。
(补充注释1)
一种存储系统100,包括:
数据划分装置101,用于将待写入到给定存储设备的数据划分成多个部分数据,根据预定的准则将所述部分数据分类成多个类别,并且针对每一个所述类别,通过链接所述部分数据来产生新的划分的文件数据;
索引文件生成装置102,用于针对所述部分数据的每一个而生成索引条目,所述索引条目包括在划分所述部分数据之前的待写入的所述数据中的位置信息以及在划分所述部分数据之后生成的所述划分的文件数据中的位置信息,将用于检错的测试数据添加到所述索引条目,并且通过链接多个所述索引条目来生成索引文件数据;
数据写入装置103,用于将由所述数据划分装置生成的所述划分的文件数据以及由所述索引文件生成装置生成的所述索引文件数据写入到所述存储设备;以及
恢复装置104,用于基于包括在每一个所述索引条目中的所述测试数据来检测写入所述存储设备中的所述索引条目中的错误,其中
所述恢复装置从所述索引文件数据删除存储在所述存储设备中的所述索引文件数据中的在其中检测到错误的索引条目以及所有后续索引条目。
(补充注释2)
根据补充注释1的存储系统,其中
所述恢复装置按顺序从所述索引文件数据的末端对存储在所述存储设备中的所述索引文件数据中的所述索引条目执行检错处理。
(补充注释3)
根据补充注释2所述的存储系统,其中
所述数据写入装置将所述索引文件数据中的所述索引条目之中的已经被写入所述存储设备中的索引条目存储在所述存储设备中,同时向所述索引条目添加特定信息,并且
当所述恢复装置按顺序从所述索引文件数据的所述末端对所述索引条目执行所述检错处理时,如果所述特定信息被添加到任意的所述索引条目,则所述恢复装置停止对所述索引条目的检错处理。
(补充注释4)
根据补充注释1到3的任何一个所述的存储系统,其中
所述索引文件生成装置允许每一个所述索引条目包括数据大小信息,所述数据大小信息代表对应于所述索引条目的所述部分数据的单元的数据大小,以及
所述恢复装置基于包括在位于所述索引文件的所述末端处的索引条目中所包括的信息来修改所述划分的文件数据的文件大小,所述索引文件数据在删除了在其中检测到错误的所述索引条目和所有所述后续的索引条目之后已经被恢复。
(补充注释5)
根据补充注释4的存储系统,其中
所述恢复装置扩展或删除所述划分的文件数据的所述末端,使得所述划分的文件数据符合这样的文件大小,所述文件大小是包括在位于恢复的所述索引文件数据的所述末端处的所述索引条目中的信息并且由所述划分的文件数据中的位置信息以及所述部分数据的所述单元的所述数据大小信息来指定,对应于所述索引条目的所述部分数据的所述单元被包括在所述划分的文件数据中。
(补充注释6)
一种程序,用于使得信息处理设备实现:
数据划分装置,用于将待写入到给定存储设备的数据划分成多个部分数据,根据预定的准则将所述部分数据分类成多个类别,并且针对每一个所述类别,通过链接所述部分数据来产生新的划分的文件数据;
索引文件生成装置,用于针对所述部分数据的每一个而生成索引条目,所述索引条目包括在划分所述部分数据之前待写入的所述数据中的位置信息以及在划分所述部分数据之后生成的所述划分的文件数据中的位置信息,将用于检错的测试数据添加到所述索引条目,并且通过链接多个所述索引条目来生成索引文件数据;
数据写入装置,用于将由所述数据划分装置生成的所述划分的文件数据以及由所述索引文件生成装置生成的所述索引文件数据写入到所述存储设备;以及
恢复装置,用于基于包括在每一个所述索引条目中的所述测试数据,来检测写入所述存储设备中的所述索引条目中的错误,其中
所述恢复装置从所述索引文件数据删除存储在所述存储设备中的所述索引文件数据中的在其中检测到错误的索引条目以及所有后续索引条目。
(补充注释7)
根据补充注释6的程序,其中
所述恢复装置按顺序从所述索引文件数据的末端对存储在所述存储设备中的所述索引文件数据中的所述索引条目执行检错处理。
(补充注释8)
根据补充注释7的程序,其中
所述数据写入装置将所述索引文件数据中的所述索引条目之中的已经被写入在所述存储设备中的索引条目存储在所述存储设备中,同时向所述索引条目添加特定信息,并且
当所述恢复装置按顺序从所述索引文件数据的所述末端对所述索引条目执行所述检错处理时,如果所述特定信息被添加到任意的所述索引条目,则所述恢复装置停止对所述索引条目执行的检错处理。
(补充注释9)
一种信息处理方法,包括在信息处理设备中:
将待写入到给定存储设备的数据划分成多个部分数据,根据预定的准则将所述部分数据分类成多个类别,并且针对每一个所述类别,通过链接所述部分数据来产生新的划分的文件数据;
针对所述部分数据的每一个而生成索引条目,所述索引条目包括在划分所述部分数据之前待写入的所述数据中的位置信息以及在划分所述部分数据之后生成的所述划分的文件数据中的位置信息,将用于检错的测试数据添加到所述索引条目,并且通过链接多个所述索引条目来生成索引文件数据;
将所述划分的文件数据以及所述索引文件数据写入到所述存储设备;以及
基于包括在每一个所述索引条目中的所述测试数据来检测写入所述存储设备中的所述索引条目中的错误,并且从所述索引文件数据删除存储在所述存储设备中的所述索引文件数据中的在其中检测到错误的索引条目以及所有后续索引条目。
(补充注释10)
根据补充注释9的信息处理方法,进一步包括:
按顺序从所述索引文件数据的所述末端对存储在所述存储设备中的所述索引文件数据中的所述索引条目执行检错处理。
(补充注释11)
根据补充注释10的信息处理方法,其中
所述数据的写入包括将所述索引文件数据中的所述索引条目之中的已经被写入在所述存储设备中的索引条目存储在所述存储设备中,同时向所述索引条目添加特定信息,并且
按顺序从所述索引文件数据的末端对所述索引条目执行检错处理包括:如果所述特定信息被添加到任意的索引条目,则停止对所述索引条目执行的检错处理。
应该注意到,在上述的示例性实施例中,程序可以存储在存储设备或存储在计算机可读记录介质中。例如,记录介质是便携式介质,例如柔性盘、光盘、磁光盘、半导体存储器或类似等。
尽管已经参考上述的示例性实施例描述了本发明,本发明并不限于上述的实施例。本发明的形式和细节可以以本领域技术人员可以理解的各种方式在本发明的范围内改变。
本发明基于并且要求2011年1月28日提交的日本专利申请号2011-16229的优先权,其公开通过援引而整体并入在此。
1存储系统
11数据属性确定部
12文件划分部
13索引文件生成部
14数据写入部
15恢复部
16文件信息表
100存储系统
101数据划分装置
102索引文件生成装置
103数据写入装置
104恢复装置
F文件(写入目标数据)
F1文件1(划分的文件数据)
F2文件2(划分的文件数据)
Idx索引文件
Claims (7)
1.一种存储系统,包括:
数据划分单元,所述数据划分单元用于将待写入到给定存储设备的数据划分成多个部分数据,根据预定的准则将所述部分数据分类成多个类别,并且针对每一个所述类别,通过链接所述部分数据来产生新的划分的文件数据;
索引文件生成单元,所述索引文件生成单元用于针对所述部分数据的每一个而生成索引条目,所述索引条目包括在划分所述部分数据之前的待写入的所述数据中的位置信息以及在划分所述部分数据之后生成的所述划分的文件数据中的位置信息,将用于检错的测试数据添加到所述索引条目,并且通过链接多个所述索引条目来生成索引文件数据;
数据写入单元,所述数据写入单元用于将由所述数据划分单元生成的所述划分的文件数据以及由所述索引文件生成单元生成的所述索引文件数据写入到所述存储设备;以及
恢复单元,所述恢复单元用于基于包括在每一个所述索引条目中的所述测试数据,来检测写入所述存储设备中的所述索引条目中的错误,其中
所述恢复单元从所述索引文件数据删除存储在所述存储设备中的所述索引文件数据中的在其中检测到错误的索引条目以及所有后续索引条目。
2.根据权利要求1所述的存储系统,其中
所述恢复单元按顺序从所述索引文件数据的末端对存储在所述存储设备中的所述索引文件数据中的所述索引条目执行检错处理。
3.根据权利要求2所述的存储系统,其中
所述数据写入单元将所述索引文件数据中的所述索引条目之中的已经被写入所述存储设备中的索引条目存储在所述存储设备中,同时向所述索引条目添加特定信息,并且
当所述恢复单元按顺序从所述索引文件数据的所述末端对所述索引条目执行所述检错处理时,如果所述特定信息被添加到任意的所述索引条目,则所述恢复单元停止对所述索引条目的检错处理。
4.根据权利要求2到3中的任意一个所述的存储系统,其中
所述索引文件生成单元允许每一个所述索引条目包括数据大小信息,所述数据大小信息代表对应于所述索引条目的所述部分数据的单元的数据大小,以及
所述恢复单元基于在位于所述索引文件的所述末端处的索引条目中所包括的信息来修改所述划分的文件数据的文件大小,所述索引文件数据在删除了在其中检测到错误的所述索引条目和所有所述后续的索引条目之后已经被恢复。
5.根据权利要求4所述的存储系统,其中
所述恢复单元扩展或删除所述划分的文件数据的所述末端,使得所述划分的文件数据符合这样的文件大小:所述文件大小是包括在位于恢复的所述索引文件数据的所述末端处的所述索引条目中的信息并且由所述划分的文件数据中的位置信息以及所述部分数据的所述单元的所述数据大小信息来指定,对应于所述索引条目的所述部分数据的所述单元被包括在所述划分的文件数据中。
6.一种信息处理方法,包括在信息处理设备中:
将待写入到给定存储设备的数据划分成多个部分数据,根据预定的准则将所述部分数据分类成多个类别,并且针对每一个所述类别,通过链接所述部分数据来产生新的划分的文件数据;
针对所述部分数据的每一个而生成索引条目,所述索引条目包括在划分所述部分数据之前待写入的所述数据中的位置信息以及在划分所述部分数据之后生成的所述划分的文件数据中的位置信息,将用于检错的测试数据添加到所述索引条目,并且通过链接多个所述索引条目来生成索引文件数据;
将所述划分的文件数据以及所述索引文件数据写入到所述存储设备;以及
基于包括在每一个所述索引条目中的所述测试数据来检测写入所述存储设备中的所述索引条目中的错误,并且从所述索引文件数据删除存储在所述存储设备中的所述索引文件数据中的在其中检测到错误的索引条目以及所有后续索引条目。
7.根据权利要求6所述的信息处理方法,进一步包括:
按顺序从所述索引文件数据的末端对存储在所述存储设备中的所述索引文件数据中的所述索引条目执行检错处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-016229 | 2011-01-28 | ||
JP2011016229 | 2011-01-28 | ||
PCT/JP2011/006679 WO2012101707A1 (ja) | 2011-01-28 | 2011-11-30 | ストレージシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103339615A CN103339615A (zh) | 2013-10-02 |
CN103339615B true CN103339615B (zh) | 2016-03-09 |
Family
ID=46580320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180066195.4A Active CN103339615B (zh) | 2011-01-28 | 2011-11-30 | 存储系统和信息处理方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9858287B2 (zh) |
EP (1) | EP2669804A4 (zh) |
JP (1) | JP5534043B2 (zh) |
CN (1) | CN103339615B (zh) |
CA (1) | CA2825885C (zh) |
WO (1) | WO2012101707A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9773059B2 (en) * | 2010-11-09 | 2017-09-26 | Storagedna, Inc. | Tape data management |
CN103024541B (zh) * | 2012-12-19 | 2016-03-30 | 四川长虹电器股份有限公司 | 一种智能电视机数据存储和可视化的方法 |
CN104021049B (zh) * | 2014-05-16 | 2017-11-03 | 华为技术有限公司 | 分布式存储系统中数据统一的方法和以太接口硬盘 |
CN104408154B (zh) * | 2014-12-04 | 2018-05-29 | 华为技术有限公司 | 重复数据删除方法及装置 |
JP6862951B2 (ja) * | 2017-03-15 | 2021-04-21 | 富士通株式会社 | メモリ制御装置、情報処理装置およびメモリ制御方法 |
CN111552667B (zh) * | 2020-04-29 | 2023-11-03 | 杭州海康威视系统技术有限公司 | 一种数据删除方法、装置及电子设备 |
CN112114753B (zh) * | 2020-09-17 | 2022-09-30 | 杭州海康威视系统技术有限公司 | 一种数据写入方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06290092A (ja) * | 1991-11-04 | 1994-10-18 | American Teleph & Telegr Co <Att> | 記憶装置へのファイル格納装置 |
JPH07146810A (ja) * | 1993-09-27 | 1995-06-06 | Toshiba Corp | 計算機システム |
CN1629823A (zh) * | 2003-12-09 | 2005-06-22 | 伊姆西公司 | 生成内容地址以指示即将写入存储系统的数据单元的方法和设备 |
JP4283440B2 (ja) * | 1998-01-21 | 2009-06-24 | マイクロソフト コーポレーション | ファイル・システムにおけるネーティブ・データ署名 |
CN101799788A (zh) * | 2010-03-23 | 2010-08-11 | 中兴通讯股份有限公司 | 一种分级管理存储资源的方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL8602654A (nl) * | 1986-10-23 | 1988-05-16 | Philips Nv | Werkwijze voor het in kavels verdelen en in een massageheugen bitsgewijs opslaan van een gegevensbestand, alsook voor het adresseren van een kavel, en inrichting voor het uitvoeren van de werkwijze. |
JP3342039B2 (ja) * | 1992-06-12 | 2002-11-05 | 富士通株式会社 | ファイルを管理する処理装置 |
CA2403044A1 (en) * | 2000-03-22 | 2001-09-27 | Interwoven Inc. | Method and apparatus for storing changes to file attributes without having to store an additional copy of the file contents |
US6668262B1 (en) * | 2000-11-09 | 2003-12-23 | Cisco Technology, Inc. | Methods and apparatus for modifying a database |
US7917494B2 (en) * | 2008-07-11 | 2011-03-29 | Adobe Software Trading Company Limited | System and method for a log-based data storage |
US9015181B2 (en) | 2008-09-26 | 2015-04-21 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
-
2011
- 2011-11-30 CA CA2825885A patent/CA2825885C/en active Active
- 2011-11-30 US US13/981,166 patent/US9858287B2/en active Active
- 2011-11-30 EP EP11856977.1A patent/EP2669804A4/en not_active Withdrawn
- 2011-11-30 WO PCT/JP2011/006679 patent/WO2012101707A1/ja active Application Filing
- 2011-11-30 CN CN201180066195.4A patent/CN103339615B/zh active Active
- 2011-11-30 JP JP2012554499A patent/JP5534043B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06290092A (ja) * | 1991-11-04 | 1994-10-18 | American Teleph & Telegr Co <Att> | 記憶装置へのファイル格納装置 |
US5559991A (en) * | 1991-11-04 | 1996-09-24 | Lucent Technologies Inc. | Incremental computer file backup using check words |
JPH07146810A (ja) * | 1993-09-27 | 1995-06-06 | Toshiba Corp | 計算機システム |
JP4283440B2 (ja) * | 1998-01-21 | 2009-06-24 | マイクロソフト コーポレーション | ファイル・システムにおけるネーティブ・データ署名 |
CN1629823A (zh) * | 2003-12-09 | 2005-06-22 | 伊姆西公司 | 生成内容地址以指示即将写入存储系统的数据单元的方法和设备 |
CN101799788A (zh) * | 2010-03-23 | 2010-08-11 | 中兴通讯股份有限公司 | 一种分级管理存储资源的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2012101707A1 (ja) | 2014-06-30 |
US20130339320A1 (en) | 2013-12-19 |
CA2825885A1 (en) | 2012-08-02 |
EP2669804A4 (en) | 2017-10-18 |
WO2012101707A1 (ja) | 2012-08-02 |
JP5534043B2 (ja) | 2014-06-25 |
US9858287B2 (en) | 2018-01-02 |
CA2825885C (en) | 2019-07-02 |
EP2669804A1 (en) | 2013-12-04 |
CN103339615A (zh) | 2013-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103339615B (zh) | 存储系统和信息处理方法 | |
CN108376109B (zh) | 将来源阵列的卷复制到目标阵列的设备和方法、存储介质 | |
US8341460B2 (en) | Verification of computer backup data | |
US7421551B2 (en) | Fast verification of computer backup data | |
US9904601B2 (en) | Synchronization of storage using comparisons of fingerprints of blocks | |
US7640412B2 (en) | Techniques for improving the reliability of file systems | |
JP6309103B2 (ja) | スナップショットおよびクローンの複製 | |
US6158019A (en) | System and apparatus for merging a write event journal and an original storage to produce an updated storage using an event map | |
CN108319602B (zh) | 数据库管理方法及数据库系统 | |
US10162555B2 (en) | Deduplicating snapshots associated with a backup operation | |
US7707373B2 (en) | Storage system and backup method | |
US11138156B2 (en) | Continuous data management system and operating method thereof | |
US20110258408A1 (en) | Creating a snapshot based on a marker transferred from a first storage system to a second storage system | |
US7277997B2 (en) | Data consistency for mirroring updatable source data storage | |
JP2003280964A (ja) | スナップショット取得方法、ストレージシステム及びディスク装置 | |
JP2006268829A (ja) | ストレージシステム間でオブジェクトをミラー化する方法と装置 | |
CN112463724B (zh) | 一种轻量级文件系统的数据处理方法和系统 | |
US7900088B1 (en) | System for performing incremental file system check | |
JP5330432B2 (ja) | データ記憶装置及びテーブル管理方法 | |
KR20120093061A (ko) | 광 디스크 저장 시스템에 저장된 미디어에의 액세스, 압축 및 추적 | |
US8938641B2 (en) | Method and apparatus for synchronizing storage volumes | |
WO2018188618A1 (zh) | 固态硬盘访问 | |
CN111143116A (zh) | 一种磁盘坏块处理的方法及装置 | |
JP2012068891A (ja) | 階層型ストレージシステム及びデータアーカイブ方法 | |
KR102089710B1 (ko) | 연속 데이터 관리 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |