WO2012101707A1 - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
WO2012101707A1
WO2012101707A1 PCT/JP2011/006679 JP2011006679W WO2012101707A1 WO 2012101707 A1 WO2012101707 A1 WO 2012101707A1 JP 2011006679 W JP2011006679 W JP 2011006679W WO 2012101707 A1 WO2012101707 A1 WO 2012101707A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
index
file
index entry
divided
Prior art date
Application number
PCT/JP2011/006679
Other languages
English (en)
French (fr)
Inventor
賢治 野田
Original Assignee
日本電気株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to CN201180066195.4A priority Critical patent/CN103339615B/zh
Priority to EP11856977.1A priority patent/EP2669804A4/en
Priority to JP2012554499A priority patent/JP5534043B2/ja
Priority to CA2825885A priority patent/CA2825885C/en
Priority to US13/981,166 priority patent/US9858287B2/en
Publication of WO2012101707A1 publication Critical patent/WO2012101707A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data

Definitions

  • the present invention relates to a storage system that divides data to be stored and stores it in a storage device.
  • a content address storage system has been developed in recent years as shown in Patent Document 1.
  • data is distributed and stored in a plurality of storage devices, and the storage location where the data is stored is specified by a unique content address specified according to the content of the data.
  • predetermined data is divided into a plurality of fragments, and a fragment that becomes redundant data is further added, and the plurality of fragments are respectively stored in a plurality of storage devices.
  • the content address for example, a hash value of data generated so as to be unique according to the content of data is used. For this reason, if it is duplicate data, the data of the same content can be acquired by referring to the data at the same storage position. Therefore, it is not necessary to store the duplicate data separately, and duplicate recording can be eliminated and the data capacity can be reduced.
  • the storage system having the duplicate recording elimination function described above has an upper file system and a lower file system, and has the following characteristics.
  • the upper file system internally divides the written file into multiple files.
  • the divided files are written from the upper file system to the lower file system, and synchronized with a stable storage apparatus by the lower file system.
  • the lower file system does not guarantee the data writing order. For this reason, there is a possibility that a part of data may be lost when a system down occurs during data writing.
  • FIG. 1 shows a state in which the file F is divided into two by file division.
  • the original file written
  • An index file Idx for recording the mapping information of the files 1 and 2 divided into F is created.
  • This index file Idx has mapping information of each divided partial data (F1_1, F2_1, etc.) as an index entry (I_1, etc.).
  • mapping information in the index entry is mainly the following information. -Corresponding file information-Offset information from the beginning of the file in the file before division-Offset information from the beginning of the file of the divided file-Data size information
  • An example of a file system that divides a file as described above is software that backs up data.
  • the backup software the backup data is divided into a “data part” and a “marker part” inserted by the backup software at the upper level of the file system.
  • the determination of data deduplication is generally performed by dividing file data into a certain length (fixed length or variable length) and comparing them. For this reason, if there is a difference in data in one file at an interval smaller than the length of dividing the file, they are not determined as data having the same content.
  • the backup data is divided into the “data portion” and the “marker portion” at the upper level of the file system, so that the backup data deduplication effect can be improved on the “data portion” side. .
  • the backup data deduplication effect can be improved on the “data portion” side.
  • each divided file when a system down occurs in the middle of data writing, each divided file is in an incomplete state, such as a part not shown in FIG. there is a possibility.
  • the index file Idx in which the mapping information of each file is recorded is an important file. When the contents are incomplete, data access cannot be normally performed.
  • an object of the present invention is to provide a storage system that solves the above-described problem that data access cannot be normally performed in a file system.
  • Data to be written to a predetermined storage device is divided into a plurality of partial data, each of the partial data is divided into a plurality of classifications according to preset criteria, and new divided file data obtained by combining the partial data for each classification is obtained.
  • Data dividing means to generate each; For each partial data, each index entry including position information in the write target data before the division of the partial data and position information in the divided file data generated after the division of the partial data is generated.
  • an index file creating means for adding inspection data for error detection to each index entry and generating index file data by combining the plurality of index entries;
  • Data writing means for writing the divided file data generated by the data dividing means and the index file data generated by the index file creating means to the storage device;
  • Repair means for detecting an error of each index entry written in the storage device based on the inspection data included in each index entry, The repair means deletes all index entries after the index entry in which an error is detected from the index file in the index file data stored in the storage device,
  • the configuration is as follows.
  • the program which is the other form of this invention is:
  • Data to be written to a predetermined storage device is divided into a plurality of partial data, each of the partial data is divided into a plurality of classifications according to preset criteria, and new divided file data obtained by combining the partial data for each classification is obtained.
  • Data dividing means to generate each; For each partial data, each index entry including position information in the write target data before the division of the partial data and position information in the divided file data generated after the division of the partial data is generated.
  • an index file creating means for adding inspection data for error detection to each index entry and generating index file data by combining the plurality of index entries;
  • Data writing means for writing the divided file data generated by the data dividing means and the index file data generated by the index file creating means to the storage device;
  • An error in each index entry written in the storage device is detected based on the inspection data included in each index entry, and an error is detected in the index file data stored in the storage device Repair means for deleting all index entries after the index entry that has been made, from the index file; It is a program for realizing.
  • an information processing method includes: In the information processing device, Data to be written to a predetermined storage device is divided into a plurality of partial data, each of the partial data is divided into a plurality of classifications according to preset criteria, and new divided file data obtained by combining the partial data for each classification is obtained. Generate each For each partial data, each index entry including position information in the write target data before the division of the partial data and position information in the divided file data generated after the division of the partial data is generated.
  • the present invention is configured as described above, so that subsequent data access can be normally performed even when the data written in the storage device is incomplete due to a system down or the like.
  • FIG. 4 is a flowchart showing the operation of the storage system disclosed in FIG. 3.
  • 4 is a flowchart showing the operation of the storage system disclosed in FIG. 3.
  • 4 is a flowchart showing the operation of the storage system disclosed in FIG. 3.
  • 4 is a flowchart showing the operation of the storage system disclosed in FIG. 3.
  • 4 is a flowchart showing the operation of the storage system disclosed in FIG. 3.
  • 4 is a flowchart showing the operation of the storage system disclosed in FIG. 3.
  • FIG. 4 is a diagram illustrating a state when an index file is modified in the storage system disclosed in FIG. 3.
  • FIG. 4 is a diagram illustrating a state when a divided file is corrected in the storage system disclosed in FIG. 3.
  • FIG. 4 is a diagram illustrating a state when a divided file is corrected in the storage system disclosed in FIG. 3. It is a figure which shows the structure of the storage system in attachment 1 of this invention.
  • FIGS. 3 to 4 are diagrams for explaining the configuration of the storage system in this embodiment
  • FIGS. 5 to 12 are diagrams for explaining the operation of the storage system.
  • the storage system 1 is configured by one server computer or a plurality of connected server computers. As shown in FIG. 2, the storage system 1 includes two file systems, a file system A and a file system B.
  • the file system A has a function of controlling the storage / reproduction operation in the storage system 1 itself
  • the file system B has a function of actually storing data in the storage device.
  • the storage system 1 divides and redundantly stores data, distributes and stores the data in a plurality of storage devices, and stores the data by a unique content address set according to the content of the stored data. It is a content address storage system for specifying a stored location. Thereby, deduplication of stored data is realized.
  • the storage system 1 in the present invention is not limited to being a content address storage system, and is not limited to having a deduplication function.
  • the storage system 1 includes a data attribute determination unit 11, a file division unit 12, an index file creation unit 13, a data writing unit 14,
  • the file system A includes a restoration unit 15.
  • the storage system 1 also includes a file information table 16 formed in the main storage unit.
  • the storage system 1 includes a plurality of storage devices accessible by the file system B.
  • a division file F1, F2 and an index file Idx which will be described later, are further divided and made redundant, distributed and stored in a plurality of storage devices, and provided with a function for realizing deduplication.
  • the data attribute discriminating unit 11 discriminates to which attribute (classification) set in advance each partial data in the file to be written (data to be written) belongs.
  • the file F to be written is backup data, and is the actual data portion of the backup data, and the “data portion” whose value does not change depending on the generated time, the number of updates, etc.
  • the “marker part” including the management information of the file itself, the value of which changes depending on the time and the number of updates, such as a time stamp and serial number, and which attribute is determined.
  • the data attribute determination unit 11 is preset with reference information for determining the attribute from the data content of each partial data in the file F, and performs the attribute determination according to the reference information.
  • the file dividing unit 12 divides each partial data in the file F in accordance with the attribute determination by the data determining unit 11, and distributes the data for each attribute to generate new divided file data. .
  • each partial data belonging to the “data portion” in the file F is distributed to the file 1 (F1) which is the divided file data after the division, and each division belonging to the “marker portion”.
  • the data is distributed to file 2 (F2), which is divided file data after division.
  • the divided partial data are combined for each file (file 1, file 2) corresponding to each attribute to generate file 1 and file 2.
  • the partial data of the symbols F1_1 to F1_7 are allocated to the file 1
  • the partial data of the symbols F2_1 to F2_6 are allocated to the file 2.
  • the process of dividing the file F and generating the files 1 and 2 is performed on the main storage device in the storage system 1, and the files 1 and 2 are stored in the data writing unit 14 as will be described later.
  • the data is actually written to the storage device.
  • the present invention does not limit the number of files to be divided into two, and a larger number of files. It is applicable even when dividing.
  • the index file creating unit 13 (index file creating means) generates and joins index entries of the partial data, and creates an index file Idx (index file). File data).
  • the index entry is created using, for example, information stored in the file information table 16. For example, as shown in FIG. 4, the position information in the file F before the partial data corresponding to the index entry is divided.
  • the data includes “data_size” that is data size information indicating the data size of the partial data itself, and “index_sync” that indicates whether synchronization with the file system B is completed. Note that “index_sync” is initially set to “0”, but is set to “1” when synchronization with the file system B is completed.
  • the index file creation unit 13 adds inspection data for error detection used to detect fraud of the index entry to the index entry described above.
  • the inspection data is, for example, a redundant code such as “CRC32”, but is not limited to such data.
  • the data writing unit 14 (data writing unit) includes the file 1 and the file 2 that are the divided file data generated by the file dividing unit 12 and the index file created by the index file creating unit 13. Write Idx to file system B. Specifically, the files 1 and 2 and the index file Idx generated on the main storage device in the storage system 1 are actually written to the auxiliary storage device at the timing of data synchronization between the file system A and the file system B. .
  • the data writing unit 14 sets “index_sync” in the index entry to “1” and adds specific information, particularly when writing of the index entry to the auxiliary storage device is completed.
  • the restoration unit 15 (repair unit) fails in the storage system 1 itself or the file system B while the data writing unit 14 writes the files 1 and 2 and the index file Idx in the auxiliary storage device. In the event of a system failure such as the occurrence of an error, the recovery process such as confirmation and restoration of the data is performed the next time data written in the auxiliary storage device is accessed.
  • the repair unit 15 examines the inspection data for error detection stored in the index entry in the index file Idx, and performs error detection processing. Then, when the error of the index entry is detected, the restoration unit 15 performs correction to delete all index entries located on the rear end side of the index entry from the index file Idx. At this time, the restoration unit 15 performs error detection processing of the index entry in order from the end side of the index file Idx toward the start end side, and performs back read to check the value of “index_sync” in the index entry. If “index_sync” in the index entry is “1”, the error detection processing, that is, the back read that has been performed in order from the end of the index file Idx is terminated. Note that the restoration unit 15 also ends the back read even when the first entry of the index file Idx is reached during the back read.
  • the restoration unit 15 determines the files 1 and 2 that are the divided files from the information in the index entry located on the end side of the corrected index file Idx. Specify the file size of. Then, it is checked whether or not the file sizes of the specified files 1 and 2 match the actual file sizes of the files 1 and 2 so that the actual files 1 and 2 match the file size specified from the index entry. The end of files 1 and 2 is extended or deleted. Specific processing contents will be described later.
  • the file division and index file creation by the storage system 1 will be described with reference to FIG.
  • the file information table 16 is initialized (step S1), a file is created, and various information such as an inode number for the file is used as an index.
  • write to the file Idx step S2.
  • the data attribute determination unit 11 confirms the data attribute of the partial data, writes the data attribute to “current_File” in the file information table 16 (step S4), and the file dividing unit. 12 writes the partial data to the files 1 and 2 according to the data attributes (step S5).
  • step S6 each time data is written from the file F (step S6), data attribute discrimination (step S7) and data writing (step S11) are performed.
  • step S7 data attribute discrimination
  • step S11 data writing
  • step S9 the index file creating unit 13 creates an index entry, and the index entry is stored in the index file.
  • step S9 write to Idx (step S9), and update "current_File" (step S10).
  • step S13 When the writing of all the partial data in the file F is completed (Yes in step S11 and step S12), the index entry is finally written (step S13). Note that such writing is performed on the main storage unit, and the actual storage in the auxiliary storage device is performed at a later synchronization.
  • the file dividing unit 12 writes the partial data of the file F to the file 1 or the file 2 of the file system B according to “current_File” in the file information table 16 (step S21) (steps S22 and S23).
  • the size of the written partial data is added to “data_size” in the middle (step S24).
  • step S9 when the attribute of the partial data of the file F changes, an index entry is written.
  • “current_File” in the file information table 16 is confirmed (step S31), and a redundant code for inspection is calculated based on each information in the file information table 16 (steps S32 and S35).
  • each information in the file information table 16 and the redundant code for inspection are written as one index entry in the index file Idx of the file system B (steps S33 and S34).
  • step S34 After writing the index entry to the index file Idx, “fileA_offset” or “fileB_offset” (offset information of the file described in “current_File”) and “originalFile_offset” are added with “data_size” (steps S34 and S37). , S38), “index_sync” is set to “0” (step S39).
  • step S41 When the data synchronization command is executed (step S41), the index entry is written (step S42), and the data synchronization command is issued to all the files in the file system B (step S43). Finally, “index_sync” in the file information table 16 is set to “1” (step S44). As a result, “index_sync” in the index entry created immediately after data synchronization is “1”, and “0” in other cases.
  • step S51 the index entry in the index file Idx is back-read from the end side of the index file Idx (step S52). Then, it is checked whether there is an invalid index entry by using the redundant code for inspection in the index entry (step S53). At this time, it is further checked whether or not “index_sync” in the index entry is “1” or reaches the head of the index file Idx (step S54). If not reached, the previous entry is read (step S55). ), The same processing as described above is performed.
  • step S54 when “index_sync” in the index entry is “1” or the head of the index file Idx is reached during the back read, the back read is terminated (step S54).
  • step S56 all index entries after the index entry, that is, from the invalid index entry to the end of the index file Idx are deleted (step S56). For example, when “index_sync” of the index entry of the code I_9 shown in FIG. 10 is “1” and the index entry on the right side that is the terminal side of the index entry is invalid, as shown in FIG.
  • the index entry in the dotted line portion located on the rear end side with respect to the index entry of symbol I_9 is deleted as indicated by the arrow.
  • index_sync in the index entry is “1”, it is guaranteed that each file (file 1, file 2, index file) before the index entry is synchronized. Therefore, it is not necessary to check whether the previous index entry is invalid, and there is no need to back-read. As described above, by adding “index_sync” to the index entry, the back read section can be shortened.
  • step S57 the size of the file 1 is specified based on the position information and the data size in the file 1 included in the index entry of the code I_9 located at the end of the normal part of the index file shown in FIG. Compare the size. If the size of the actual file 1 is larger than the size specified from the end index entry, incomplete data existing behind the end indicated by the code F1_5 of the actual file 1 corresponding to the end index entry. Is deleted and file 1 is truncated. That is, the partial data indicated by the dotted line in FIG. 11 which is the end of the file 1 is deleted as indicated by the arrow from the last index entry to the specified size (step S58).
  • step S59 if the actual size of the file 1 is smaller than the size specified from the final index entry, the end of the file 1 is extended to the size specified by the normal final index entry (step S59).
  • the size of the file 2 is specified based on the position information and the data size in the file 2 included in the index entry of the code I_8 located at the end of the normal part of the index file corresponding to the file 2 shown in FIG. And the actual file 2 size are compared. If the size of the actual file 2 is larger than the size specified from the end index entry, the incomplete data existing behind the end of the actual file 2 corresponding to the final index entry is deleted, File 2 is truncated (step S61).
  • the storage system according to the present invention is configured as described above, so that even when the system goes down during writing, the file 1, file 2, and index file are kept consistent among the files. Access can be performed normally.
  • Data to be written to a predetermined storage device is divided into a plurality of partial data, each of the partial data is divided into a plurality of classifications according to preset criteria, and new divided file data obtained by combining the partial data for each classification is obtained.
  • an index file creating means 102 for adding inspection data for error detection to each index entry and generating index file data obtained by combining the plurality of index entries;
  • a data writing means 103 for writing the divided file data generated by the data dividing means and the index file data generated by the index file creating means to the storage device;
  • Repair means 104 for detecting an error of each index entry written in the storage device based on the inspection data included in each index entry, and The repair means deletes all index entries after the index entry in which an error is detected from the index file in the index file data stored in the storage device, Storage system 100.
  • the storage system according to appendix 2,
  • the data writing means adds specific information to the index entry that has been written to the storage device among the index entries in the index file data, and stores the specific information in the storage device.
  • the repair means stops the error detection processing of the index entry when the specific information is added to the index entry.
  • the index file creation means includes, in the index entry, data size information indicating a data size of the partial data corresponding to the index entry,
  • the repairing means is based on information included in the index entry located on the end side of the repaired index file data after deleting all index entries after the index entry in which the error is detected. Correct the file size of the split file data, Storage system.
  • appendix 5 The storage system according to appendix 4, wherein The repair means is information included in the index entry located on the end side of the repaired index file data, and position information in the divided file data including the partial data corresponding to the index entry and the information Extending or deleting the rear end side of the divided file data so that the file size of the divided file data matches the file size specified by the data size information of the divided data; Storage system.
  • Data to be written to a predetermined storage device is divided into a plurality of partial data, each of the partial data is divided into a plurality of classifications according to preset criteria, and new divided file data obtained by combining the partial data for each classification is obtained.
  • an index file creating means for adding inspection data for error detection to each index entry and generating index file data by combining the plurality of index entries;
  • Data writing means for writing the divided file data generated by the data dividing means and the index file data generated by the index file creating means to the storage device;
  • An error in each index entry written in the storage device is detected based on the inspection data included in each index entry, and an error is detected in the index file data stored in the storage device Repair means for deleting all index entries after the index entry that has been made, from the index file;
  • the data writing means adds specific information to the index entry that has been written to the storage device among the index entries in the index file data, and stores the specific information in the storage device.
  • the repair means stops the error detection processing of the index entry when the specific information is added to the index entry.
  • the program is stored in a storage device or recorded on a computer-readable recording medium.
  • the recording medium is a portable medium such as a flexible disk, an optical disk, a magneto-optical disk, and a semiconductor memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 本発明のストレージシステムは、書き込み対象データを部分データに分割して新たな分割ファイルデータをそれぞれ生成するデータ分割手段と、部分データ毎に各インデックスエントリをそれぞれ生成すると共に誤り検出用の検査データを付加してインデックスファイルデータを生成するインデックスファイル作成手段と、分割ファイルデータとインデックスファイルデータとを記憶装置に書き込むデータ書き込み手段と、記憶装置に書き込まれた各インデックスエントリの誤りを、当該各インデックスエントリに含まれる検査データに基づいて検出する修復手段と、を備え、修復手段は、記憶装置に記憶されているインデックスファイルデータ内において、誤りが検出されたインデックスエントリ以降の全てのインデックスエントリを、インデックスファイルから削除する。

Description

ストレージシステム
 本発明は、記憶対象となるデータを分割して記憶装置に記憶するストレージシステムに関する。
 近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
 このような状況に応じて、近年では、特許文献1に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。具体的に、コンテンツアドレスストレージシステムでは、所定のデータを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントをそれぞれ複数の記憶装置にそれぞれ格納している。
 そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。
 また、上記コンテンツアドレスとして、データの内容に応じて固有となるよう生成される例えばデータのハッシュ値を用いる。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。
 上述した重複記録排除機能を備えたストレージシステムでは、上位のファイルシステムと下位のファイルシステムとを有しており、以下の特徴を有する。
・上位のファイルシステムが、書き込まれたファイルを内部的に複数のファイルに分割する。
・上位のファイルシステムから、分割されたファイルがそれぞれ下位のファイルシステムに書き出され、下位のファイルシステムによって安定的なストレージ装置と同期される。
・下位のファイルシステムでは、データの書き込み順序を保証しない。そのため、データの書き出し途中でシステムダウンが発生した場合に一部のデータが抜けている状態になる可能性がある。
 ここで、図1に、ファイル分割によってファイルFが2つに分割される様子を示す。まず、上位のファイルシステムでは、ファイルFを複数の部分データ(F1_1,F2_1等)に分割することによって作成されたファイル1(F1)とファイル2(F2)の他に、書き込まれた元のファイルFと分割された各ファイル1,2のマッピング情報を記録するインデックスファイルIdxを作成する。このインデックスファイルIdxは、分割された各部分データ(F1_1,F2_1等)のマッピング情報を、インデックスエントリ(I_1等)として有する。
 そして、インデックスエントリ中のマッピング情報は、主に以下のような情報である。
・対応するファイルの情報
・分割される前のファイル内のファイル先頭からのオフセット情報
・分割されたファイルのファイル先頭からのオフセット情報
・データサイズ情報
 上述したようなファイルを分割するファイルシステムが使用される一例として、データをバックアップするソフトウェアがある。バックアップソフトウェアでは、ファイルシステムの上位で、バックアップデータを「データ部」と、バックアップソフトによって挿入された「マーカ部」と、に分割している。ここで、データの重複排除の判定は、一般的に、ファイルのデータをある長さ(固定長または可変長)に区切って、それらを比較することにより行っている。このため、1つのファイル中のデータの差異が、ファイルを区切った長さより小さな間隔で存在すると、それらは同一内容のデータとは判定されない。つまり、区切ったデータ間に同一内容のデータ部分が存在していた場合であっても、わずかな差異が存在すると、両方の区切ったデータが記憶されることとなり、効率よく記憶するデータの重複排除ができない。そして、データをバックアップするソフトウェアでは、バックアップするデータの他に、バックアップ時刻等のバックアップ毎にユニークな情報が挿入されていることがあり、そのようなマーカ部は、各フルバックアップ間における重複排除の妨げになる。
 従って、上述したように、ファイルシステムの上位でバックアップデータを、「データ部」と「マーカ部」とに分割することで、「データ部」側でバックアップデータの重複排除効果を向上させることができる。特に、フルバックアップを数世代取得する場合、各フルバックアップ間では重複している部分が非常に多いことが期待できるため、さらなる重複排除機能の向上を図ることができ、効率よくストレージ領域の削減が行える。
特開2005-235171号公報
 しかしながら、このようなファイルシステムでは、データの書き出し途中でシステムダウンが発生した場合、図2に示す符号が付されていない部分などのように、分割されたそれぞれのファイルが不完全な状態となる可能性がある。特に、分割されたファイルの中でも、各ファイルのマッピング情報を記録したインデックスファイルIdxは重要なファイルであり、その内容が不完全となった場合には、データアクセスが正常に行えなくなる。
 このため、本発明の目的は、上述した課題である、ファイルシステムにおいてデータアクセスを正常に行えなくなる、という不都合を解決したストレージシステムを提供することにある。
 上記目的を達成すべく、本発明の一形態であるストレージシステムでは、
 所定の記憶装置に対する書き込み対象データを複数の部分データに分割し、当該各部分データを予め設定された基準に従って複数の分類に振り分け、各分類毎に前記部分データを結合した新たな分割ファイルデータをそれぞれ生成するデータ分割手段と、
 前記部分データ毎に、当該部分データの分割前における前記書き込み対象データ中の位置情報と、前記部分データの分割後に生成された前記分割ファイルデータ中の位置情報と、を含む各インデックスエントリをそれぞれ生成すると共に、当該各インデックスエントリに誤り検出用の検査データを付加し、当該複数のインデックスエントリを結合したインデックスファイルデータを生成するインデックスファイル作成手段と、
 前記データ分割手段にて生成された前記分割ファイルデータと、前記インデックファイル作成手段にて生成された前記インデックスファイルデータと、を前記記憶装置に書き込むデータ書き込み手段と、
 前記記憶装置に書き込まれた前記各インデックスエントリの誤りを、当該各インデックスエントリに含まれる前記検査データに基づいて検出する修復手段と、を備え、
 前記修復手段は、前記記憶装置に記憶されている前記インデックスファイルデータ内において、誤りが検出された前記インデックスエントリ以降の全てのインデックスエントリを、前記インデックスファイルから削除する、
という構成をとる。
 また、本発明の他の形態であるプログラムは、
 情報処理装置に、
 所定の記憶装置に対する書き込み対象データを複数の部分データに分割し、当該各部分データを予め設定された基準に従って複数の分類に振り分け、各分類毎に前記部分データを結合した新たな分割ファイルデータをそれぞれ生成するデータ分割手段と、
 前記部分データ毎に、当該部分データの分割前における前記書き込み対象データ中の位置情報と、前記部分データの分割後に生成された前記分割ファイルデータ中の位置情報と、を含む各インデックスエントリをそれぞれ生成すると共に、当該各インデックスエントリに誤り検出用の検査データを付加し、当該複数のインデックスエントリを結合したインデックスファイルデータを生成するインデックスファイル作成手段と、
 前記データ分割手段にて生成された前記分割ファイルデータと、前記インデックファイル作成手段にて生成された前記インデックスファイルデータと、を前記記憶装置に書き込むデータ書き込み手段と、
 前記記憶装置に書き込まれた前記各インデックスエントリの誤りを、当該各インデックスエントリに含まれる前記検査データに基づいて検出すると共に、記記憶装置に記憶されている前記インデックスファイルデータ内において、誤りが検出された前記インデックスエントリ以降の全てのインデックスエントリを、前記インデックスファイルから削除する修復手段と、
を実現させるためのプログラムである。
 また、本発明の他の形態である情報処理方法は、
 情報処理装置にて、
 所定の記憶装置に対する書き込み対象データを複数の部分データに分割し、当該各部分データを予め設定された基準に従って複数の分類に振り分け、各分類毎に前記部分データを結合した新たな分割ファイルデータをそれぞれ生成し、
 前記部分データ毎に、当該部分データの分割前における前記書き込み対象データ中の位置情報と、前記部分データの分割後に生成された前記分割ファイルデータ中の位置情報と、を含む各インデックスエントリをそれぞれ生成すると共に、当該各インデックスエントリに誤り検出用の検査データを付加し、当該複数のインデックスエントリを結合したインデックスファイルデータを生成し、
 前記分割ファイルデータと前記インデックスファイルデータとを前記記憶装置に書き込み、
 前記記憶装置に書き込まれた前記各インデックスエントリの誤りを、当該各インデックスエントリに含まれる前記検査データに基づいて検出すると共に、記記憶装置に記憶されている前記インデックスファイルデータ内において、誤りが検出された前記インデックスエントリ以降の全てのインデックスエントリを、前記インデックスファイルから削除する、
という構成を取る。
 本発明は、以上のように構成されることにより、システムダウン等によりによって記憶装置に書き込まれたデータが不完全となった場合であっても、その後のデータアクセスを正常に行うことができる。
記憶装置に書き込むファイルを分割したときの様子を示す図である。 記憶装置に書き込まれた分割後のファイルが不完全となったときの様子を示す図である。 本発明実施形態1におけるストレージシステムの構成を示す図である。 図3に開示したファイル情報テーブルの一例を示す図である。 図3に開示したストレージシステムの動作を示すフローチャートである。 図3に開示したストレージシステムの動作を示すフローチャートである。 図3に開示したストレージシステムの動作を示すフローチャートである。 図3に開示したストレージシステムの動作を示すフローチャートである。 図3に開示したストレージシステムの動作を示すフローチャートである。 図3に開示したストレージシステムにおけるインデックスファイルの修正時の様子を示す図である。 図3に開示したストレージシステムにおける分割ファイルの修正時の様子を示す図である。 図3に開示したストレージシステムにおける分割ファイルの修正時の様子を示す図である。 本発明の付記1におけるストレージシステムの構成を示す図である。
<実施形態1>
 本発明の第1の実施形態を、図3乃至図12を参照して説明する。図3乃至図4は、本実施形態におけるストレージシステムの構成を説明するための図であり、図5乃至図12は、ストレージシステムの動作を説明するための図である。
[構成]
 本発明におけるストレージシステム1は、1台のサーバコンピュータ、あるいは、接続された複数台のサーバコンピュータ、にて構成されている。そして、図2に示すように、ストレージシステム1は、ファイルシステムAとファイルシステムBといった2つのファイルシステムを備えている。ファイルシステムAは、例えば、ストレージシステム1自体における記憶再生動作を制御する機能を有しており、ファイルシステムBは、実際に記憶装置にデータを記憶する機能を備えている。
 なお、本実施形態におけるストレージシステム1は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、記憶するデータの内容に応じて設定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。これにより、記憶するデータの重複排除を実現している。但し、本発明におけるストレージシステム1は、コンテンツアドレスストレージシステムであることに限定されず、重複排除機能を有していることにも限定されない。
 そして、本実施形態におけるストレージシステム1は、演算装置にプログラムが組み込まれることで構築された、データ属性判別部11と、ファイル分割部12と、インデックスファイル作成部13と、データ書き込み部14と、修復部15と、をファイルシステムAに備えている。また、ストレージシステム1は、主記憶部に形成されたファイル情報テーブル16を備えている。
 さらに、ストレージシステム1は、図示しないが、ファイルシステムBにてアクセス可能な複数の記憶装置を備えている。そして、後述する分割ファイルF1,F2やインデックスファイルIdxを、さらに分割及び冗長化して、複数の記憶装置に分散して記憶し、重複排除を実現する機能を備えている。
 上記データ属性判別部11(データ分割手段)は、書き込み対象となるファイル(書き込み対象データ)中の各部分データが、予め設定されたいずれの属性(分類)に属するか、を判別する。ここで、本実施形態では、例えば、書き込み対象となるファイルFは、バックアップデータであり、当該バックアップデータの実データ部分であり生成された時間や更新回数などによっても値が変化しない「データ部」と、タイムスタンプや通番などのように時間や更新回数などの違いによって値が変化しファイル自体の管理情報を含む「マーカ部」と、いった2属性のうち、いずれの属性であるか判別する。なお、データ属性判別部11には、予めファイルF内の各部分データのデータ内容から、属性を判別する基準情報が予め設定されており、かかる基準情報に従って属性判別を行う。
 上記ファイル分割部12(データ分割手段)は、データ判別部11による属性の判別に従って、ファイルF中の各部分データを分割して、各属性毎にそれぞれ振り分けて新たな分割ファイルデータをそれぞれ生成する。例えば、本実施形態では、上述したようにファイルF中の「データ部」に属する各部分データを、分割後の分割ファイルデータであるファイル1(F1)に振り分け、「マーカ部」に属する各分割データを、分割後の分割ファイルデータであるファイル2(F2)に振り分ける。そして、それぞれ振り分けられた各部分データを、各属性に対応する各ファイル毎(ファイル1、ファイル2)で結合して、ファイル1とファイル2とを生成する。具体的には、図1に示すように、書き込み対象となるファイルFのうち、符号F1_1~F1_7の部分データをファイル1に振り分け、符号F2_1~F2_6の部分データをファイル2に振り分ける。
 ここで、上述したファイルFを分割してファイル1,2を生成する処理は、ストレージシステム1内の主記憶装置上で行われ、かかるファイル1,2は、後述するように、データ書き込み部14によるファイルシステムAとファイルシステムBとのデータ同期時に、実際に記憶装置に書き込まれることとなる。
 なお、本実施形態では、書き込み対象となるファイルFを2つのファイルに分割する場合を例示したが、本発明は分割するファイル数を2つに限定するものではなく、さらに多くの数のファイルに分割する場合でも適用可能である。
 上記インデックスファイル作成部13(インデックスファイル作成手段)は、上述したようにファイルF中の各部分データを分割した際に、当該各部分データのインデックスエントリを生成して結合し、インデックスファイルIdx(インデックスファイルデータ)を生成する。なお、インデックスエントリは、例えば、ファイル情報テーブル16に格納された情報を利用して作成され、例えば、図4に示すように、インデックスエントリに対応する部分データの分割前におけるファイルF中の位置情報を表す”originalFile_offset”と、部分データから生成された分割ファイルデータ(ファイル1又はファイル2)中の位置情報を表す”fileA_offset”もしくは”fileB_offset”(“current_File”に記載されているファイルのoffset情報)、部分データ自体のデータサイズを表すデータサイズ情報である”data_size”、ファイルシステムBとの同期が完了したか否かを表す”index_sync”、といったデータを含んでいる。なお、”index_sync”は、初期設定値は”0”であるが、ファイルシステムBとの同期が完了すると、”1”に設定される。
 また、インデックスファイル作成部13は、上述したインデックスエントリに、当該インデックスエントリの不正を検出するために利用する誤り検出用の検査データを付加する。この検査データは、例えば、「CRC32」といった冗長コードであるが、かかるデータに限定されない。
 上記データ書き込み部14(データ書き込み手段)は、上述したファイル分割部12にて生成された各分割ファイルデータであるファイル1とファイル2、及び、上記インデックスファイル作成部13にて作成されたインデックスファイルIdxを、ファイルシステムBに書き込む。具体的には、ストレージシステム1内の主記憶装置上で生成されたファイル1,2及びインデックスファイルIdxを、ファイルシステムAとファイルシステムBとのデータ同期のタイミングで、実際に補助記憶装置に書き込む。また、データ書き込み部14は、特に、インデックスエントリの補助記憶装置への書き込みが完了すると、当該インデックスエントリ内の”index_sync”を”1”に設定し、特定情報を付加する。
 上記修復部15(修復手段)は、上述したデータ書き込み部14にてファイル1,2、及びインデックスファイルIdxを補助記憶装置に書き込んでいる最中に、ストレージシステム1自体やファイルシステムBなどに障害が発生するなどシステムダウンが発生した場合に、補助記憶装置に書き込まれたデータに次回アクセスする際に、当該データの確認と修復といったリカバリ処理を行う。
 具体的に、修復部15は、インデックスファイルIdx内のインデックスエントリに格納されている誤り検出用の検査データを調べ、誤り検出処理を行う。そして、修復部15は、インデックスエントリの誤りを検出した際には、当該インデックスエントリよりも後端側に位置する全てのインデックスエントリを、インデックスファイルIdx内から削除する修正を行う。このとき、修復部15は、インデックスファイルIdxの終端側から順に始端側に向かって、インデックスエントリの誤り検出処理を行うと共に、当該インデックスエントリ中の”index_sync”の値を調べるバックリードを行う。そして、インデックスエントリ中の”index_sync”が”1”である場合には、インデックスファイルIdxの終端側から順に行っていた誤り検出処理つまりバックリードを終了する。なお、修復部15は、バックリード中にインデックスファイルIdxの先頭のエントリに達した場合も、バックリードを終了する。
 さらに、修復部15は、上述したように各インデックスエントリの確認と修正が完了すると、修正後のインデックスファイルIdxの終端側に位置するインデックスエントリ内の情報から、各分割ファイルであるファイル1,2のファイルサイズを特定する。そして、この特定したファイル1,2のファイルサイズと、実際のファイル1,2のファイルサイズが一致するか否かを調べ、実際のファイル1,2がインデックスエントリから特定したファイルサイズに一致するよう、ファイル1,2の終端を拡張あるいは削除する。なお、具体的な処理内容については後述する。
[動作]
 次に、上述したストレージシステム1の動作を、図5乃至図9のフローチャート、及び、図10乃至図12の図を参照して説明する。
 はじめに、図5を参照して、ストレージシステム1によるファイル分割とインデックスファイルの作成について説明する。ファイルシステムAに対してファイルFを書き込む際には、まず、ファイル情報テーブル16を初期化すると共に(ステップS1)、ファイルの作成を行い、そのファイルに対するinode番号等の各種情報をヘッダとして、インデックスファイルIdxに書き出す(ステップS2)。そして、ファイルFが書き込まれると(ステップS3)、データ属性判別部11が部分データのデータ属性を確認し、ファイル情報テーブル16中の”current_File”にデータ属性を書き込み(ステップS4)、ファイル分割部12がデータの属性に応じて、各部分データを各ファイル1,2へ書き出す(ステップS5)。
 その後、ファイルFからのデータ書き込みの度に(ステップS6)、データ属性の判別(ステップS7)、データ書き出し(ステップS11)を行う。このとき、データ属性判別によって判定された部分データの属性が、ひとつ前の属性と異なる場合は(ステップS8でNo)、インデックスファイル作成部13によって、インデックスエントリが作成され、当該インデックスエントリをインデックスファイルIdxに書き出し(ステップS9)、”current_File”を更新する(ステップS10)。
 そして、ファイルF内の全ての部分データの書き込みが完了すると(ステップS11,ステップS12でYes)、最後にインデックスエントリの書き出しを行う(ステップS13)。なお、かかる書き出しは、主記憶部上で行われ、実際に補助記憶装置への記憶は、後の同期時に行われる。
 次に、図5で説明したステップS5やステップS11におけるデータ書き出し処理について、図6のフローチャートを参照して説明する。ファイル分割部12は、ファイルFの部分データを、ファイル情報テーブル16中の”current_File”に従って(ステップS21)、ファイルシステムBのファイル1又はファイル2に書き出し(ステップS22,S23)、ファイル情報テーブル16中の”data_size”に、書き出した部分データのサイズを加算する(ステップS24)。
 次に、図5で説明したステップS9におけるインデックスエントリ書き出し処理について、図7のフローチャートを参照して説明する。上述したように、ファイルFの部分データの属性が変化した場合には、インデックスエントリを書き出す。このとき、ファイル情報テーブル16中の”current_File”を確認して(ステップS31)、ファイル情報テーブル16中の各情報を元に、検査用の冗長コードを計算する(ステップS32,S35)。そして、ファイル情報テーブル16中の各情報と検査用の冗長コードを一つのインデックスエントリとして、ファイルシステムBのインデックスファイルIdxに書き出す(ステップS33,S34)。インデックスエントリをインデックスファイルIdxに書き出した後は、”fileA_offset”もしくは”fileB_offset”(“current_File”に記載されているファイルのoffset情報)、”originalFile_offset”に、”data_size”を加算し(ステップS34,S37,S38)、”index_sync”を”0”にする(ステップS39)。
 次に、ファイルシステムAに対して、データ同期命令が行われた際のデータ同期処理、つまり、上述したように生成されたファイル1,2及びインデックスファイルIdxを主記憶部から補助記憶装置に実際にデータを書き込むときの動作を、図8のフローチャートを参照して説明する。
 データ同期命令が実行された場合(ステップS41)、インデックスエントリの書き出しを行い(ステップS42)、ファイルシステムBの全てのファイルに対して、データ同期命令を発行する(ステップS43)。最後にファイル情報テーブル16中の”index_sync”を”1”にする(ステップS44)。これにより、データ同期直後に作成されたインデックスエントリ中の”index_sync”は”1”になり、その他の場合は”0”になる。
 続いて、上述したデータ同期時に、ファイルシステムBへのデータ書き出し途中でシステムダウンが発生した場合には、ファイルFへの次回アクセス時にリカバリ処理が行われる。このリカバリ処理について、図9のフローチャートと図10乃至図12を参照して説明する。
 リカバリ処理では(ステップS51)、図10に示すように、インデックスファイルIdx中のインデックスエントリを、当該インデックスファイルIdxの終端側からバックリードする(ステップS52)。そして、インデックスエントリ中の検査用の冗長コードを用いて、不正なインデックスエントリが存在するかどうか確認する(ステップS53)。このとき、さらに、インデックスエントリ中の”index_sync”が”1”、もしくは、インデックスファイルIdxの先頭に達するか否かを調べ(ステップS54)、達していなければ一つ前のエントリを読み込み(ステップS55)、上記同様の処理を行う。
 そして、バックリード中に、インデックスエントリ中の”index_sync”が”1”、もしくは、インデックスファイルIdxの先頭に達した場合にはバックリードを終了する(ステップS54)。このとき、不正なインデックスエントリが存在していた場合には、そのインデックスエントリ以降つまり不正なインデックスエントリからインデックスファイルIdxの終端までのインデックスエントリを、全て削除する(ステップS56)。例えば、図10に示す符号I_9のインデックスエントリの”index_sync”が”1”であり、これよりも終端側である右隣のインデックスエントリが不正であった場合には、図10に示すように、符号I_9のインデックスエントリよりも後端側に位置する点線部分のインデックスエントリを、矢印に示すように削除する。
 なお、インデックスエントリ中の”index_sync”が”1”の場合には、そのインデックスエントリ以前の各ファイル(ファイル1、ファイル2、インデックスファイル)は同期されていることが保証されていることとなる。従って、それ以前のインデックスエントリは不正かどうかを調べる必要はなく、バックリードする必要はない。以上のように、インデックスエントリに”index_sync”を付加することにより、バックリード区間を短くすることができる。
 その後、インデックスエントリの確認と修正が完了すると、各ファイル1,2のデータサイズと、当該各ファイル1,2に対応する正常な最終インデックスエントリが指す領域の終端とに、ずれがあるかどうかを確認する(ステップS57)。例えば、図11に示すインデックスファイルの正常部分の終端に位置する符号I_9のインデックスエントリに含まれるファイル1内の位置情報とデータサイズに基づいてファイル1のサイズを特定し、これと実際のファイル1のサイズとを比較する。そして、実際のファイル1のサイズが、終端インデックスエントリから特定したサイズよりも大きい場合には、当該終端インデックスエントリに対応する実際のファイル1の符号F1_5に示す終端より後方に存在する不完全なデータを削除し、ファイル1を切り詰める。つまり、最終インデックスエントリから特定したサイズまで、ファイル1の終端である図11の点線に示す部分データを、矢印に示すように削除する(ステップS58)。
 一方、実際のファイル1のサイズが、最終インデックスエントリから特定したサイズよりも小さい場合には、正常な最終インデックスエントリにて特定されるサイズまで、ファイル1の終端を拡張する(ステップS59)。
 そして、ファイル2に対しても、上述同様に当該ファイル2のデータサイズと、当該ファイル2に対応する正常な最終インデックスエントリが指す領域の終端とに、ずれがあるかどうかを確認する(ステップS60)。例えば、図11に示すファイル2に対応するインデックスファイルの正常部分の終端に位置する符号I_8のインデックスエントリに含まれるファイル2内の位置情報とデータサイズに基づいてファイル2のサイズを特定し、これと実際のファイル2のサイズとを比較する。そして、実際のファイル2のサイズが、終端インデックスエントリから特定したサイズよりも大きい場合には、当該最終インデックスエントリに対応する実際のファイル2の終端より後方に存在する不完全なデータを削除し、ファイル2を切り詰める(ステップS61)。
 一方、実際のファイル2のサイズが、当該ファイル2に対応する最終インデックスエントリ(符号I_8)から特定したサイズよりも小さい場合には、正常な最終インデックスエントリにて特定されるサイズまで、図12の点線及び矢印に示すように、ファイル2の終端を拡張する(ステップS62)。
 本発明におけるストレージシステムは、以上のように構成することにより、書き込み中にシステムダウンした場合でも、ファイル1、ファイル2、インデックスファイルのファイル間の整合が保たれるため、次回の当該ファイルへのアクセスを正常に行うことができる。
<付記>
 上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージシステムの構成の概略を、図13を参照して説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
 所定の記憶装置に対する書き込み対象データを複数の部分データに分割し、当該各部分データを予め設定された基準に従って複数の分類に振り分け、各分類毎に前記部分データを結合した新たな分割ファイルデータをそれぞれ生成するデータ分割手段101と、
 前記部分データ毎に、当該部分データの分割前における前記書き込み対象データ中の位置情報と、前記部分データの分割後に生成された前記分割ファイルデータ中の位置情報と、を含む各インデックスエントリをそれぞれ生成すると共に、当該各インデックスエントリに誤り検出用の検査データを付加し、当該複数のインデックスエントリを結合したインデックスファイルデータを生成するインデックスファイル作成手段102と、
 前記データ分割手段にて生成された前記分割ファイルデータと、前記インデックファイル作成手段にて生成された前記インデックスファイルデータと、を前記記憶装置に書き込むデータ書き込み手段103と、
 前記記憶装置に書き込まれた前記各インデックスエントリの誤りを、当該各インデックスエントリに含まれる前記検査データに基づいて検出する修復手段104と、を備え、
 前記修復手段は、前記記憶装置に記憶されている前記インデックスファイルデータ内において、誤りが検出された前記インデックスエントリ以降の全てのインデックスエントリを、前記インデックスファイルから削除する、
ストレージシステム100。
(付記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 (9)

  1.  所定の記憶装置に対する書き込み対象データを複数の部分データに分割し、当該各部分データを予め設定された基準に従って複数の分類に振り分け、各分類毎に前記部分データを結合した新たな分割ファイルデータをそれぞれ生成するデータ分割手段と、
     前記部分データ毎に、当該部分データの分割前における前記書き込み対象データ中の位置情報と、前記部分データの分割後に生成された前記分割ファイルデータ中の位置情報と、を含む各インデックスエントリをそれぞれ生成すると共に、当該各インデックスエントリに誤り検出用の検査データを付加し、当該複数のインデックスエントリを結合したインデックスファイルデータを生成するインデックスファイル作成手段と、
     前記データ分割手段にて生成された前記分割ファイルデータと、前記インデックファイル作成手段にて生成された前記インデックスファイルデータと、を前記記憶装置に書き込むデータ書き込み手段と、
     前記記憶装置に書き込まれた前記各インデックスエントリの誤りを、当該各インデックスエントリに含まれる前記検査データに基づいて検出する修復手段と、を備え、
     前記修復手段は、前記記憶装置に記憶されている前記インデックスファイルデータ内において、誤りが検出された前記インデックスエントリ以降の全てのインデックスエントリを、前記インデックスファイルから削除する、
    ストレージシステム。
  2.  請求項1に記載のストレージシステムであって、
     前記修復手段は、前記記憶装置に記憶されている前記インデックスファイルデータを、その終端側から順に前記インデックスエントリの誤り検出処理を行う、
    ストレージシステム。
  3.  請求項2に記載のストレージシステムであって、
     前記データ書き込み手段は、前記インデックスファイルデータ内の前記インデックスエントリのうち、前記記憶装置に書き込みが完了した前記インデックスエントリに特定情報を付加して当該記憶装置に格納し、
     前記修復手段は、前記インデックスファイルデータをその終端側から順に前記インデックスエントリの誤り検出処理を行う際に、当該インデックスエントリに前記特定情報が付加されている場合に当該インデックスエントリの誤り検出処理を停止する、
    ストレージシステム。
  4.  請求項1乃至3のいずれかに記載のストレージシステムであって、
     前記インデックスファイル作成手段は、前記インデックスエントリに、当該インデックスエントリに対応する前記部分データのデータサイズを表すデータサイズ情報含め、
     前記修復手段は、前記誤りが検出された前記インデックスエントリ以降の全てのインデックスエントリを削除した後における修復された前記インデックスファイルデータの終端側に位置する前記インデックスエントリに含まれる情報に基づいて、前記分割ファイルデータのファイルサイズを修正する、
    ストレージシステム。
  5.  請求項4に記載のストレージシステムであって、
     前記修復手段は、前記修復されたインデックスファイルデータの終端側に位置する前記インデックスエントリに含まれる情報であり、当該インデックスエントリに対応する前記部分データが含まれる前記分割ファイルデータ中の位置情報と当該分割データの前記データサイズ情報とにより特定されるファイルサイズに、前記分割ファイルデータのファイルサイズが一致するよう当該分割ファイルデータの後端側を拡張あるいは削除する、
    ストレージシステム。
  6.  情報処理装置に、
     所定の記憶装置に対する書き込み対象データを複数の部分データに分割し、当該各部分データを予め設定された基準に従って複数の分類に振り分け、各分類毎に前記部分データを結合した新たな分割ファイルデータをそれぞれ生成するデータ分割手段と、
     前記部分データ毎に、当該部分データの分割前における前記書き込み対象データ中の位置情報と、前記部分データの分割後に生成された前記分割ファイルデータ中の位置情報と、を含む各インデックスエントリをそれぞれ生成すると共に、当該各インデックスエントリに誤り検出用の検査データを付加し、当該複数のインデックスエントリを結合したインデックスファイルデータを生成するインデックスファイル作成手段と、
     前記データ分割手段にて生成された前記分割ファイルデータと、前記インデックファイル作成手段にて生成された前記インデックスファイルデータと、を前記記憶装置に書き込むデータ書き込み手段と、
     前記記憶装置に書き込まれた前記各インデックスエントリの誤りを、当該各インデックスエントリに含まれる前記検査データに基づいて検出すると共に、記記憶装置に記憶されている前記インデックスファイルデータ内において、誤りが検出された前記インデックスエントリ以降の全てのインデックスエントリを、前記インデックスファイルから削除する修復手段と、
    を実現させるためのプログラム。
  7.  請求項6に記載のプログラムであって、
     前記修復手段は、前記記憶装置に記憶されている前記インデックスファイルデータを、その終端側から順に前記インデックスエントリの誤り検出処理を行う、
    プログラム。
  8.  情報処理装置にて、
     所定の記憶装置に対する書き込み対象データを複数の部分データに分割し、当該各部分データを予め設定された基準に従って複数の分類に振り分け、各分類毎に前記部分データを結合した新たな分割ファイルデータをそれぞれ生成し、
     前記部分データ毎に、当該部分データの分割前における前記書き込み対象データ中の位置情報と、前記部分データの分割後に生成された前記分割ファイルデータ中の位置情報と、を含む各インデックスエントリをそれぞれ生成すると共に、当該各インデックスエントリに誤り検出用の検査データを付加し、当該複数のインデックスエントリを結合したインデックスファイルデータを生成し、
     前記分割ファイルデータと前記インデックスファイルデータとを前記記憶装置に書き込み、
     前記記憶装置に書き込まれた前記各インデックスエントリの誤りを、当該各インデックスエントリに含まれる前記検査データに基づいて検出すると共に、記記憶装置に記憶されている前記インデックスファイルデータ内において、誤りが検出された前記インデックスエントリ以降の全てのインデックスエントリを、前記インデックスファイルから削除する、
    情報処理方法。
  9.  請求項8に記載の情報処理方法であって、
     前記記憶装置に記憶されている前記インデックスファイルデータを、その終端側から順に前記インデックスエントリの誤り検出処理を行う、
    情報処理方法。
     
PCT/JP2011/006679 2011-01-28 2011-11-30 ストレージシステム WO2012101707A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201180066195.4A CN103339615B (zh) 2011-01-28 2011-11-30 存储系统和信息处理方法
EP11856977.1A EP2669804A4 (en) 2011-01-28 2011-11-30 Storage system
JP2012554499A JP5534043B2 (ja) 2011-01-28 2011-11-30 ストレージシステム
CA2825885A CA2825885C (en) 2011-01-28 2011-11-30 Storage system and information processing method
US13/981,166 US9858287B2 (en) 2011-01-28 2011-11-30 Storage system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-016229 2011-01-28
JP2011016229 2011-01-28

Publications (1)

Publication Number Publication Date
WO2012101707A1 true WO2012101707A1 (ja) 2012-08-02

Family

ID=46580320

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/006679 WO2012101707A1 (ja) 2011-01-28 2011-11-30 ストレージシステム

Country Status (6)

Country Link
US (1) US9858287B2 (ja)
EP (1) EP2669804A4 (ja)
JP (1) JP5534043B2 (ja)
CN (1) CN103339615B (ja)
CA (1) CA2825885C (ja)
WO (1) WO2012101707A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024541A (zh) * 2012-12-19 2013-04-03 四川长虹电器股份有限公司 一种智能电视机数据存储和可视化的方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9773059B2 (en) * 2010-11-09 2017-09-26 Storagedna, Inc. Tape data management
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06175901A (ja) * 1992-06-12 1994-06-24 Fujitsu Ltd ファイルを管理する処理装置
JPH06290092A (ja) * 1991-11-04 1994-10-18 American Teleph & Telegr Co <Att> 記憶装置へのファイル格納装置
JPH07146810A (ja) * 1993-09-27 1995-06-06 Toshiba Corp 計算機システム
JP2002501258A (ja) * 1998-01-21 2002-01-15 マイクロソフト コーポレイション ファイル・システムにおけるネーティブ・データ署名
JP2005235171A (ja) 2003-12-09 2005-09-02 Emc Corp 時間的に近接して記憶システムに書き込まれたデータユニットを示すコンテンツアドレスの生成方法およびその装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
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.
US20010027457A1 (en) * 2000-03-22 2001-10-04 Terrence Yee 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
CN101799788B (zh) 2010-03-23 2014-06-11 中兴通讯股份有限公司 一种分级管理存储资源的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06290092A (ja) * 1991-11-04 1994-10-18 American Teleph & Telegr Co <Att> 記憶装置へのファイル格納装置
JPH06175901A (ja) * 1992-06-12 1994-06-24 Fujitsu Ltd ファイルを管理する処理装置
JPH07146810A (ja) * 1993-09-27 1995-06-06 Toshiba Corp 計算機システム
JP2002501258A (ja) * 1998-01-21 2002-01-15 マイクロソフト コーポレイション ファイル・システムにおけるネーティブ・データ署名
JP2005235171A (ja) 2003-12-09 2005-09-02 Emc Corp 時間的に近接して記憶システムに書き込まれたデータユニットを示すコンテンツアドレスの生成方法およびその装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2669804A4

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024541A (zh) * 2012-12-19 2013-04-03 四川长虹电器股份有限公司 一种智能电视机数据存储和可视化的方法
CN103024541B (zh) * 2012-12-19 2016-03-30 四川长虹电器股份有限公司 一种智能电视机数据存储和可视化的方法

Also Published As

Publication number Publication date
JP5534043B2 (ja) 2014-06-25
CA2825885A1 (en) 2012-08-02
EP2669804A4 (en) 2017-10-18
EP2669804A1 (en) 2013-12-04
JPWO2012101707A1 (ja) 2014-06-30
CN103339615B (zh) 2016-03-09
US9858287B2 (en) 2018-01-02
US20130339320A1 (en) 2013-12-19
CA2825885C (en) 2019-07-02
CN103339615A (zh) 2013-10-02

Similar Documents

Publication Publication Date Title
JP5534043B2 (ja) ストレージシステム
US8341460B2 (en) Verification of computer backup data
US7421551B2 (en) Fast verification of computer backup data
US8972343B2 (en) Storage system
US9396073B2 (en) Optimizing restores of deduplicated data
KR101301828B1 (ko) 플래시 메모리에 기반한 ssd에서의 전원-손실 복구 방법 및 장치
JP6341307B1 (ja) 情報処理装置
CN113885809B (zh) 数据管理系统及方法
JP5517224B2 (ja) ストレージ装置
US9575679B2 (en) Storage system in which connected data is divided
US20190354433A1 (en) Parity log with by-pass
JP2013058134A (ja) データ書き込み装置
JP5660617B2 (ja) ストレージ装置
JP5365236B2 (ja) ストレージシステム
CN111124740A (zh) 一种数据读取方法、装置、存储设备及机器可读存储介质
CN114138566B (zh) 虚拟机的数据存储方法、装置、虚拟机及存储介质
US20220391118A1 (en) Journals for data cloning operations
JP5891842B2 (ja) ストレージシステム
CN107402850B (zh) 一种数据库数据文件的冗余方法与装置
JP6337507B2 (ja) ストレージシステム
JP6343952B2 (ja) ストレージシステム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180066195.4

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11856977

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012554499

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2011856977

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2825885

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13981166

Country of ref document: US