WO2013051129A1 - 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム - Google Patents

格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム Download PDF

Info

Publication number
WO2013051129A1
WO2013051129A1 PCT/JP2011/073085 JP2011073085W WO2013051129A1 WO 2013051129 A1 WO2013051129 A1 WO 2013051129A1 JP 2011073085 W JP2011073085 W JP 2011073085W WO 2013051129 A1 WO2013051129 A1 WO 2013051129A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
chunk
fragment
stored
deduplication
Prior art date
Application number
PCT/JP2011/073085
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 US14/349,561 priority Critical patent/US9542413B2/en
Priority to JP2013537331A priority patent/JP5735654B2/ja
Priority to PCT/JP2011/073085 priority patent/WO2013051129A1/ja
Publication of WO2013051129A1 publication Critical patent/WO2013051129A1/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
    • 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 method for eliminating duplication of stored data, an information processing apparatus, and a deduplication program, and can reduce data capacity by eliminating duplication of stored data for data stored in a recording medium such as a hard disk.
  • the present invention relates to a method for eliminating duplication of stored data, an information processing apparatus, and a deduplication program.
  • General deduplication processing is performed in the following three processes.
  • the chunking method is an important factor that determines the performance.
  • the smaller the chunk size of the chunk to be created the greater the percentage of real data that can be reduced (deduplication rate).
  • the chunk size is set too small, there arises a problem that the amount of metadata necessary to manage each chunk and the time taken to restore the original data from the chunk increase.
  • the chunk size is set larger, the amount of metadata corresponding to each chunk and the time required for data restoration can be reduced, but there is a problem that the deduplication rate decreases.
  • Patent Document 1 As a countermeasure to the dilemma related to the above chunk size, a technique of applying a plurality of chunk sizes according to data to be deduplicated is known (see, for example, Patent Documents 1 and 2).
  • Patent Document 1 after setting a small chunk size and performing chunking, the longest repeated chunk (Largest sequence of Repeated Chunks) included in each created chunk is detected and a chunk larger than the initial value is detected. A technique for newly outputting a chunk having a size is disclosed. Further, in Patent Document 2, chunking processing target data to be stored is chunked with a large size for duplicated data that spreads greatly and non-duplicated data that spreads greatly. In the vicinity of the boundary between the duplicated data and the non-duplicated data, A technique for chunking at a small size is disclosed.
  • Patent Document 1 by consolidating chunks in data into one large chunk, the number of disk accesses during data restoration can be reduced without greatly reducing the deduplication rate. It is stated that the time required for data restoration can be shortened.
  • Patent Document 2 states that a high deduplication rate and a small amount of metadata can be achieved by changing the chunk size according to data duplication and non-duplication.
  • Patent Documents 1 and 2 each include a process of analyzing chunk patterns of all data and a process of performing chunking while referring to the past chunk history. In general, these processes are very time consuming. The deduplication processing is often performed in parallel with the regular data backup processing, and the processing is required to end within the backup window. It may be difficult in actual operation to perform the chunking process according to the methods of Patent Documents 1 and 2 when the backup process is executed each time.
  • the present invention provides a deduplication process that can be performed in the actual operation of the storage system, and can reduce the time required to restore the original data from the data after the deduplication process. It is an object to provide a method, an information processing apparatus, and a deduplication program for eliminating duplication of stored data.
  • a storage area of the storage device is a duplicate data fragment that is a data fragment that overlaps one data fragment constituting data stored in the storage device.
  • Steps A step of generating and recording integrated data fragment attribute information, which is information representing an attribute of the integrated data fragment, from each integrated data fragment, using a plurality of data fragment sequences having the detected repeated data pattern as integrated data fragments. And have.
  • Another aspect of the present invention is a deduplication device for realizing the deduplication method described above.
  • Still another aspect of the present invention provides a deduplication program for causing a computer to execute the deduplication method.
  • a deduplication process that can be performed in actual operation of a storage system is provided, and the time required to restore the original data from the data after the deduplication process can be reduced.
  • An information processing apparatus and a deduplication program can be provided.
  • FIG. 5 is a diagram illustrating an example of a processing flow of a file restoration module 214.
  • FIG. It is the figure which showed the example of the flow of a process of the chunk pattern analysis module.
  • the normal deduplication processing performed at the time of each backup and the data reanalysis processing performed to reduce the time required for data restoration are separated.
  • normal deduplication processing that is required to be completed in a short time can be performed at high speed, and reanalysis processing can be performed when a certain amount of work time can be secured, such as during server maintenance.
  • Patent Documents 1 and 2 disclose only processing related to chunking among the three processes of deduplication described in the background art. Therefore, even if chunking is performed by the methods of Patent Documents 1 and 2 at the time of data reanalysis, it cannot be reflected in normal deduplication processing via metadata. Further, Patent Documents 1 and 2 do not disclose a method of performing chunking using metadata on data that has already undergone deduplication. Therefore, it is necessary to analyze actual data again.
  • Metadata that can be used in normal deduplication processing After re-analyzing the data for these problems, create metadata that can be used in normal deduplication processing. Specifically, first, a set of chunks generated by normal deduplication processing is analyzed to determine chunks that can be integrated without changing the deduplication rate. Next, metadata to be used in normal deduplication processing is created from the determined chunk, and is managed together with the metadata of the chunk before integration. This makes it possible to perform duplication determination and data restoration using metadata in normal deduplication processing. Further, by analyzing using the metadata of the chunk generated by the normal deduplication process, it is possible to determine the integrated chunk more efficiently than analyzing the actual data again.
  • FIG. 1 is a diagram showing an example of the system configuration of a storage system 1 to which the first embodiment of the present invention is applied.
  • the present system 1 includes a host computer 110, a storage device 120, and a deduplication device 130, and these devices are configured to be communicable with each other via a network 101.
  • the host computer 110 is a general computer including at least a CPU (Central Processing Unit) 111, a memory 112, and a network interface 113.
  • the host computer 110 has a function of reading data stored in the storage device 120 onto the memory 112 via the network interface 113 and a function of writing data on the memory 112 into the storage device 120 via the network interface 113.
  • the host computer 110 may include an auxiliary storage device such as a hard disk drive (HDD), a semiconductor drive (Solid State Drive, or SSD).
  • the network interface 113 is selected depending on the type of the network 101 to which the host computer 110 is connected. For example, if the network 101 is a LAN (Local Area Network), a NIC (Network Interface Card) is provided as the network interface 113. .
  • the data is composed of one or more files.
  • the data handled in the present invention is not limited to such a configuration, and generally includes digital data expressed as a binary string.
  • the storage device 120 includes at least a storage control device 121 and a storage device 123.
  • the storage device 120 can take the form of a file storage that can store data in units of files, for example, but may take other forms including block storage.
  • the storage control device 121 includes a network interface 122, can receive data read / write commands from the host computer 110 and the deduplication device 130, and can read / write data from / to the storage device 123.
  • the storage device 123 is configured by a storage medium such as an HDD (Hard Disk Disk Drive) 124 and stores data that has received a write command from the host computer 110 and / or the deduplication apparatus 130.
  • HDD Hard Disk Disk Drive
  • the storage control device 121 includes a processor such as a CPU (not shown), a memory, and a disk adapter as an I / O (Input / Output) interface with the storage device 123. Based on such a configuration, the storage control apparatus 121 creates a plurality of logical volumes from the logical storage area and a function for organizing the logical storage area from the physical storage area of the storage device 123 according to an appropriate RAID level. A function provided to the computer 110 is provided.
  • the deduplication device 130 includes at least a network interface 135, a CPU 131, a memory 132, an auxiliary storage device 133, an I / O interface 134, and an input / output device 136.
  • the deduplication device 130 has a function of reading data stored in the storage device 120 to the memory 132 via the network interface 135 and a function of writing data on the memory 132 to the storage device 120 via the network interface 135.
  • the I / O interface 134 is a data input device such as a keyboard and a mouse, a data output device such as a display and a printer, and includes various devices having a data input / output function of a computer.
  • the deduplication device 130 is configured as a separate computer from the storage device 120, but the function of the deduplication device 130 described later may be implemented in the storage device 120. Good.
  • the functions of the deduplication device 130 are provided by the CPU 131 reading out the program and data for realizing each function stored in the auxiliary storage device 133 to the memory 132 and executing them.
  • the deduplication device 130 includes a standard deduplication function unit 210 and a chunk integration function unit 220.
  • the standard deduplication function 210 divides the data stored in the storage apparatus 120 into a sequence of a plurality of chunks (data fragments), and for the chunks that overlap each other (duplicate data fragments), the real data is stored in only one chunk.
  • the function to store in 120 is provided. With the function of the standard deduplication function unit 210, the usable capacity of the storage device 123 can be increased.
  • the chunk integration function unit 220 analyzes data patterns of repeated chunks in the sequence of chunks generated by the standard deduplication function unit 210, and manages a plurality of chunks as one integrated chunk, thereby reconstructing data. Provides a function to reduce the cost required for Hereinafter, means for realizing each function will be specifically described.
  • the standard deduplication function unit 210 includes at least a chunking module 211 (data division unit), a chunk collation module 212 (data collation unit), a chunk registration module 213 (data registration unit), a file restoration module 214 (data restoration unit), a chunk A management table 216 and a file management table 215 are provided.
  • the chunking module 211 has a function of reading data stored in the storage device 120 and dividing it into a plurality of chunks. Details of the processing by the chunking module 211 will be described later with reference to FIG.
  • the chunk collation module 212 determines whether there is a chunk with duplicate data for each chunk generated by the chunking module 211. Details of the processing by the chunking module 211 will be described later with reference to FIG.
  • the chunk registration module 213 generates attribute information used for managing each chunk including a chunk ID 301, a hash value 302, and a chunk size 303 from each chunk generated by the chunking module 211, and a file management table 215. And has a function of registering the attribute information in the chunk management table 216. Furthermore, the chunk registration module 213 also has a function of storing, in the storage apparatus 120, actual data of only the chunks that the chunk collation module 212 has determined that there are no duplicate chunks. Details of the processing by the chunk registration module 213 will be described later with reference to FIG.
  • the file restoration module 214 is divided into chunks by the chunking module 213 using attribute information stored in the file management table 215 and chunk management table 216 and data corresponding to the chunk stored in the storage device 120. It has a function to restore previous data. Details of the processing by the file restoration module 214 will be described later with reference to FIG.
  • the chunk management table 216 holds the attribute information of the chunk generated by the chunking module 213, and is referred to when the chunk collation module 212 determines a duplicate chunk and when the file restoration module 214 restores data from the chunk. Details of the chunk management table 216 will be described later with reference to FIG.
  • the file management table 215 holds information related to the sequence of chunks constituting each file, and is referred to when data to be read (file) is restored in accordance with a data read command from the host computer 110. Details of the file management table 215 will be described later with reference to FIG.
  • the original data written from the host computer 110 includes a set of a plurality of chunks that do not overlap with each other, and the chunks to be written held by the file management table 215 and the chunk management table 216. Converted to attribute information.
  • this series of conversion processes is referred to as “deduplication processing”, data in which a set of a plurality of chunks that do not overlap each other is deduplicated, and attribute information of each chunk held by the file management table 215 and the chunk management table 216 Is called metadata.
  • the data received from the host computer 110 is also stored. It is not necessary to keep the data. Therefore, when there are a plurality of overlapping chunks, the size of the data subjected to the de-duplication processing is smaller than when the original data is stored as it is.
  • the chunk integration function unit 220 includes at least a chunk pattern analysis module 221 (data analysis unit), a chunk management table update module 222 (data update unit), a chunk pattern information table 223, and an integrated chunk information table 224.
  • the chunk pattern analysis module 221 has a function of analyzing a sequence of chunks for each file managed by the file management table 215 and determining chunks to be integrated in order to reduce reconstruction costs. Details of the processing by the chunk pattern analysis module 221 will be described later with reference to FIG.
  • the chunk management table update module 222 rearranges the data stored in the storage device 120 according to the chunks to be integrated determined by the chunk pattern analysis module 221, and the file management table 215 and the chunk management according to the data rearrangement result. It has a function of updating the information held in the table 216. Details of the processing by the chunk management table update module 222 will be described later with reference to FIG.
  • the chunk pattern information table 223 holds information used by the chunk pattern analysis module 221 to determine chunks to be integrated. Details of the configuration of the chunk pattern information table 223 will be described later with reference to FIG.
  • the integrated chunk information table 224 holds information about chunks that the chunk pattern analysis module 221 determines to be integrated. Details of the configuration of the integrated chunk information table 224 will be described later with reference to FIG.
  • the deduplication device 130 is also provided with an operating system (OS) 230 and a data I / O unit 240.
  • the OS 230 is basic software having a basic data processing function as a computer of the deduplication apparatus 130, and can be appropriately used as an OS of a general computer.
  • the data I / O unit 240 manages data I / O processing between each module provided in the standard deduplication function unit 210 or the chunk integration function unit 220 and the outside via the network interface 135 under the control of the OS 230. .
  • FIGS. 3A and 3B show an example of the chunk management table 216 according to the first embodiment.
  • the following description of each table will be described with reference numerals different from those used in FIG. 2 in order to facilitate understanding of the reference numerals assigned to the components of each table.
  • FIG. 3A shows an example of the state of the file management table 215 after the standard deduplication function unit 210 of the deduplication device 130 performs the data deduplication processing.
  • FIG. 3A shows an example of the state of the file management table 215 after the standard deduplication function unit 210 of the deduplication device 130 performs the data deduplication processing.
  • the chunk integration function unit 220 of the deduplication device 130 integrates chunks identified by chunk IDs 301, 1, and 2, generates a new chunk with chunk ID 301 of 9 and registers it in the chunk management table 216. Represents the state after. The chunk integration process will be described later.
  • the chunk management table 300 illustrated in FIGS. 3A and 3B includes items of a chunk ID 301, a hash value 302, a chunk size 303, a duplication number 304, and a storage destination 306.
  • the chunk ID 301 is an ID for uniquely identifying each chunk.
  • the registration module 213 adds new chunk attribute information to the chunk management table 216, the chunk ID 301 is not the same as the other chunk IDs 301.
  • the registration module 213 assigns each chunk.
  • the hash value 302 stores an output value obtained by inputting data included in each chunk to a hash function.
  • the hash function for example, SHA-1 or the like can be used.
  • the hash value 302 calculated for each chunk may be used as the chunk ID 301.
  • the chunk size 303 represents the size of each chunk as data, and is displayed in units of kilobytes in the examples of FIGS. 3A and 3B.
  • the duplication number 304 represents how many times the chunk specified by the corresponding chunk ID 301 or the hash value 302 appears in the data before executing the deduplication process.
  • the storage destination 305 represents the position on the storage device 123 where the chunk specified by the corresponding chunk ID 301 or hash value 302 is stored, and is recorded as a block address on the logical storage area provided by the storage device 123, for example.
  • the storage destination 305 is used when the deduplication device 130 acquires chunk data on the storage device 123.
  • the file restoration module 214 can read the chunks constituting the file to be read from the storage device 123.
  • FIG. 4A shows an example of chunks stored on the storage device 123 before the chunk integration function unit 220 rearranges chunks.
  • chunks with chunk IDs 301, 1, 2, and 3 are stored at discontinuous positions whose storage destinations 305 are indicated by L_1, L_2, and L_3, respectively.
  • the chunk integration function unit 220 integrates the chunks identified by the chunk IDs 301, 1, 2, and 3 to generate a chunk with the chunk ID 301 of 9, and the chunk on the disk is generated.
  • the example of the state after rearrangement is represented. In FIG.
  • the original three chunks are stored at successive positions as new chunks identified by the chunk ID 301 of 9.
  • the number of accesses from the deduplication device 130 onto the storage device 123 when acquiring a chunk identified by the chunk ID 301 is 9 This will be one time from the previous three times.
  • FIGS. 5A and 5B each show a configuration example of the file management table 500.
  • FIG. 5A illustrates a state before the chunk integration process
  • FIG. 5B illustrates a state after the chunk integration process.
  • the file management table 500 includes items of a file name 501, a file size 502, a chunk count 503, and a configuration chunk ID 505.
  • the file name 501 represents an identifier that uniquely identifies each file.
  • the file size 502 represents the size of each file, for example, in units of kilobytes.
  • the number of chunks 503 represents the number of chunks constituting each file.
  • the configuration chunk ID 505 represents a sequence of chunks constituting each file as a sequence of chunk IDs 301.
  • the deduplication apparatus 130 When receiving a file read command from the host computer 110, the deduplication apparatus 130 includes the file name 501 of the read target file recorded in the file management table 500, and the configuration chunk ID 505 recorded corresponding thereto. As a result, the read target file can be restored from the chunk stored in the storage device 123.
  • the file whose file name 501 is specified by “sample1.txt” is composed of 10 chunks recorded in the configuration chunk ID 505.
  • the ID of each chunk is “1-2-3-4-1-2-3-5-6-1”, and the chunks are arranged in this order.
  • the file whose file name 501 is “sample1.txt” is composed of six chunks. This is because, as shown in FIG. 3B, a new chunk having chunk ID 301 of “1-2-3” is defined as a chunk with chunk ID 301 of 9. Accordingly, in FIG. 5B, the ID array of each chunk constituting the file name “sample1.txt” is “9-4-9-5-6-1”.
  • FIG. 6A shows a configuration example of the chunk pattern information table 600 after repeated chunk pattern detection processing described later
  • FIG. 6B shows a configuration example of the chunk pattern information table 600 after dividing patterns having the same chunk.
  • the chunk pattern information table 223 includes items of a chunk pattern 601, a length 602, an appearance number 603, and an appearance position 604.
  • the chunk pattern 601 represents a pattern that repeatedly appears in a series of chunk sequences stored in the logical storage area provided by the storage device 123 as a sequence of chunk IDs 301.
  • the length 602 represents the number of chunks constituting the chunk pattern 601.
  • the appearance number 603 indicates how many times the chunk pattern 601 appears in the chunk sequence.
  • the appearance position 604 indicates at which position in the series of digital data sequences stored in the logical storage area provided by the storage device 123 the chunk pattern 601 appears using a block address or the like in the logical storage area. .
  • the chunk pattern 601 whose chunk ID 301 is represented by 1-2-3 is represented as appearing first, 100th, and 212th from the top of the digital data sequence.
  • the chunk pattern analysis module 221 dynamically updates the chunk pattern information table 223 to determine chunks to be integrated. Details of the chunk pattern analysis processing by the chunk pattern analysis module 221 will be described later with reference to FIG.
  • the integrated chunk information table 700 includes items of an integrated chunk ID 701, a sub chunk ID 702, the number of appearances 703, and an update date / time 704.
  • the integrated chunk ID 701 is a chunk ID 301 newly assigned by the chunk pattern analysis module 221 to the chunk pattern 601 determined to be integrated by the chunk pattern analysis module 221.
  • the sub chunk ID 702 is a chunk ID 301 representing a smaller chunk (hereinafter referred to as “sub chunk”) that constitutes an integrated chunk.
  • the appearance number 703 represents how many times the integrated chunk appears in the sequence of chunks in the logical storage area of the storage device 123. In the example of FIG. 7, sub chunks 1-2-3 are integrated to generate an integrated chunk, and 9 is assigned as a new chunk ID 301.
  • the update date / time 704 represents the date / time when the chunk pattern analysis module 221 integrated the chunks.
  • FIG. 8 shows an example of a data processing flow executed by the chunking module 211.
  • the first is a method of performing deduplication processing at the timing when the host computer 110 transmits data to the storage apparatus 120.
  • the deduplication device 130 receives the data via the network interface 135, performs deduplication processing, and then divides the storage device 123 into chunks. Write the data.
  • This first method is called an inline method.
  • the second method is a method of performing deduplication processing after the data transmitted from the host computer 110 to the storage device 120 is written into the storage device 123 by the storage control device 121.
  • the deduplication device 130 reads data on the storage device 123, performs deduplication processing, and then writes the deduplication processing data to the storage device 123 again.
  • This second method is called a post-processing method.
  • the deduplication processing by the deduplication device 130 is started at a time determined every week in accordance with the timing of backup processing of data stored in the storage device 123, for example.
  • the post-process method will be described.
  • the present invention can be applied to an in-line method only by changing the start timing of the deduplication process and the data reading destination of the deduplication device 130. .
  • the chunking module 211 reads new data.
  • the new data refers to data that has not been deduplicated by the standard deduplication function unit 210 among the data stored in the storage apparatus 120. Identification of new data in the storage device 120 is performed, for example, by recording whether or not deduplication processing has been performed for each address of the received file unit with a bitmap for the address of the logical storage area of the storage device 123. Can do.
  • the chunking module 211 proceeds to the processing of S802 after reading new data.
  • the chunking module 211 divides the data read in S801 into chunks.
  • the division method into chunks is roughly divided into a fixed length method for dividing a fixed data size such as 1 KB unit, and a variable length method in which a specific byte pattern appears in a digital data sequence and the position is a division position. There is.
  • variable-length chunking is described in the following document, for example.
  • each chunk size 303 is described as being different, that is, variable-length chunking is performed.
  • the chunking module 211 determines the chunk division position by an appropriate division method, and then proceeds to the processing of S803.
  • the chunking module 211 transmits the chunk information determined in S802 to the chunk collation module 212.
  • the chunking module 211 includes new data and information such as an address indicating the division position into the chunk in the chunk information.
  • FIG. 9 is an example of a data processing flow executed by the chunk collation module 212 of this embodiment.
  • the chunk collation module 212 receives the chunk information transmitted by the chunking module 211.
  • the chunk collation module 212 proceeds to the process of S902 after receiving the chunk information.
  • step S ⁇ b> 902 the chunk collation module 212 confirms whether each chunk determined in step S ⁇ b> 802 already exists in the chunk management table 300. This confirmation is performed as follows, for example. First, the chunk verification module 212 calculates the hash value of each received chunk using the same hash function as the hash function used to obtain the hash value 302 recorded for each chunk in the chunk management table 300. . Next, based on each calculated hash value, collation with the hash value 302 of each chunk recorded in the chunk management table 300 is performed to check whether a chunk having the same hash value exists. This chunk collation processing may be performed using a Bloom filter as described in the following document, for example. B. Zhu, K.Li, and H. Patterson, "Avoiding the disk bottleneck in the Data Domain deduplication file system, ”The 6th USENIX Conference on File and Storage Technologies (FAST '08), February 2008.
  • the identity of chunks can be determined by the identity of hash values calculated for them.
  • the chunks stored in the storage device 123 are stored. By comparing the binary data directly, it is possible to correctly determine the identity of the chunk. As described above, after confirming whether or not each received chunk exists in the chunk management table 216, the chunk collation module 212 proceeds to the processing of S903.
  • the chunk collation module 212 transmits the result collated in S902 to the chunk registration module 213 and ends the process.
  • FIG. 10 shows an example of a data processing flow executed by the chunk registration module 213.
  • the chunk registration module 213 receives the verification result transmitted by the chunk verification module in S903.
  • the collation result includes information on whether the same chunk as the received chunk is already stored in the chunk management table 300. After receiving the collation result for each chunk, the chunk registration module 213 performs the processing from S1002 onward for each chunk.
  • the chunk registration module 213 determines whether the target chunk exists in the chunk management table 300. The determination is made based on the result confirmed by the chunk collation module 212 in S902. If the target chunk exists in the chunk management table 216, the same chunk already exists in the storage device 123, so the target chunk is called a duplicate chunk. If the chunk registration module 213 determines that the target chunks are duplicated (S1002, Yes), the chunk registration module 213 proceeds to the process of S1005. If it is determined that the target chunks do not overlap (S1002, No), the chunk registration module 213 proceeds to the process of S1003.
  • the chunk registration module 213 stores the data of the target chunk in the storage device 123. At this time, a method may be used in which the target chunks are not stored in the storage device 123 but temporarily stored in the memory 132 and are stored in the storage device 123 together with other non-overlapping chunks. After saving in the storage device 123 or the memory 132, the chunk registration module 213 proceeds to the processing of S1004.
  • the chunk registration module 213 registers the attribute information of the target chunk in the chunk management table 300.
  • the chunk registration module 213 assigns a value or code that is not the same as the existing chunk ID 301 to the chunk ID 301.
  • the value calculated in S902 is registered.
  • the chunk size 303 the size of the target chunk is calculated and registered. Since there are no other overlapping chunks, the numerical value 1 is registered in the duplication number 304.
  • the storage destination 305 information indicating the location where the chunk is stored in S1003 is registered.
  • the chunk registration module 213 registers the attribute information of each chunk in the chunk management table 300 as described above, and then proceeds to the processing of S1006.
  • the chunk registration module 213 updates the attribute information of the chunk overlapping with the target chunk already registered in the chunk management table 300. In this case, the chunk registration module 213 increases the value of the duplication number 304 recorded for the corresponding chunk by one. After updating the attribute information of the chunk management table 300, the chunk registration module 213 proceeds to the processing of S1006.
  • the chunk registration module 213 adds information on the processed new data (new file) to the file management table 500. That is, the chunk registration module 213 registers the file name 501, the file size 502, the number of chunks 503, and the configuration chunk ID 505 in the file management table 500 for each file included in the new data.
  • FIG. 11 shows an example of a data processing flow executed by the file restoration module 214 of the present embodiment.
  • the file restoration module 214 performs processing at a timing when the host computer 110 transmits a data read command to the storage device 120 and the standard deduplication function unit 210 of the deduplication device 130 receives the data read command via the network interface 135. Start. Since the data that is deduplicated and stored in the storage device 123 is not the same as the original data, when the data read command is received, the deduplication device 130 uses the deduplicated data as the original data ( File). In this specification, this process is called data restoration. Data restoration is performed on all or part of the data stored in the storage device 123. In the following, the process of restoring a single file will be described. However, even in the case of general data, the data is divided into a plurality of files and chunked for each file. Data can be restored by performing the same processing.
  • step S1101 the file restoration module 214 searches the file management table 500 based on the restoration target file name 501 included in the data read command. If it is determined that the file having the file name to be restored is recorded in the file management table 500 (S1101, Yes), the file restoration module 214 acquires the configuration chunk ID 505 of the corresponding file in S1103, and then performs the process of S1104. move on. If it is determined that there is no entry for the file with the corresponding file name 501 in the file management table 500 (No in S1101), the file restoration module 214 ends the process by issuing an error message in S1102.
  • the file restoration module 214 acquires the data of the chunks constituting the file from the storage device 123. Specifically, the following processing is performed for each chunk ID 301 included in the configuration chunk ID 505 acquired in S1103. First, the chunk management table 300 is searched based on the chunk ID 301, and the storage destination 305 of the chunk is acquired. Next, chunk data is acquired from the storage device 123 based on the acquired storage destination 305. The acquired chunk data is temporarily stored in the memory 132. After performing the above processing on all the chunk IDs 301 included in the configuration chunk ID 505, the acquired chunk data is concatenated in the order of the configuration chunk ID 505. Thereafter, the process proceeds to S1105.
  • the file restoration module 214 transmits the data linked in S1104 to the host computer 110 via the network interface 135, and ends the processing.
  • FIG. 12 shows an example of a data processing flow executed by the chunk pattern analysis module 221 of this embodiment.
  • the chunk pattern analysis module 221 can be configured to be started periodically such as once a week by a timer activation from the OS 230 of the deduplication device 130 or manually by an administrator.
  • the chunk pattern analysis module 221 reads the configuration chunk ID 505 included in the file management table 500. At this time, the chunk pattern analysis module 221 may target all the files included in the file management table 500, or may target a part of the files. After reading the configuration chunk ID 505, the chunk pattern analysis module 221 proceeds to the process of S1202.
  • the chunk pattern analysis module 221 replaces the chunk ID 301 that is an integrated chunk among the chunk IDs 301 included in the configuration chunk ID 505 read in S1201 with the sub chunk ID. This processing is performed by the chunk pattern analysis module 221 referring to the integrated chunk information table 700 and confirming whether the read chunk ID 301 is registered in the integrated chunk ID 701. For example, if “9” is included in the chunk ID 301 read in S1201, the chunk pattern analysis module 221 refers to the integrated chunk information table 700 and replaces it with the sub chunk ID “1-2-3”. Proceed to processing.
  • the chunk pattern analysis module 221 creates a chunk pattern information table 600 shown in FIG. 6A. This is realized by the following processing.
  • the chunk pattern analysis module 221 concatenates a set of constituent chunk IDs 505 after rewriting to sub-chunk IDs in S1202 to form one character string.
  • the chunk pattern analysis module 221 inserts an identifier indicating the file delimiter at a position between the configuration chunk IDs 505 as a file delimiter. This identifier is assigned a value different from the identifier indicating the chunk ID 301 and the partition between other files.
  • the chunk pattern analysis module 221 inserts the identifiers $ and ⁇ at the file delimiter positions and inserts“ 1-2-3-4-1-2-3-5-6-1-$-7 ”. -8-4-2-5- ⁇ -3-2 ”. In this way, one character string including the chunk ID 301 and the file delimiter identifier is generated.
  • the chunk pattern analysis module 221 searches all the repeated patterns for a character string formed by concatenating the constituent chunk IDs 505, which is a partial character string search target. Further, the chunk pattern analysis module 221 acquires the length 602, the number of appearances 603, and the appearance position 604 of each repeated pattern, and registers them in the chunk pattern information table 600.
  • the processing for creating the chunk pattern information table 600 has been described above. In the above process, the repeated pattern search is executed for all the read chunk IDs 505. However, by performing the same process for only the duplicate chunks in advance, the memory required for the search is reduced. In addition, the search speed can be improved.
  • Whether each chunk is duplicated can be determined by referring to the chunk management table 500 and confirming whether the duplication number 503 corresponding to each chunk ID 301 is 2 or more. After creating the chunk pattern information table 223, the chunk pattern analysis module 221 proceeds to the process of S1204.
  • the chunk pattern analysis module 221 divides a chunk pattern including the same chunk in the chunk pattern included in the chunk pattern information table 223 into a plurality of chunk patterns.
  • the chunk pattern “1-2-3-1-5-6” in the third row in FIG. 6A has the same chunk “1” therein. Therefore, as shown in the upper table of FIG. 6B, it is divided into “1-2-3” and “1-5-6” which are chunk patterns that do not have the same chunk inside.
  • this division is not unique, but the division is adopted so that the chunk after division becomes as large as possible.
  • the same chunk pattern 601 may be generated in the chunk pattern information table 223. In that case, the same chunk pattern 601 is collected into one entry.
  • the appearance number 603 is rewritten to the sum of the respective appearance numbers 603, and the appearance position 604 is rewritten to the connection of the respective appearance positions 604.
  • the chunk pattern analysis module 221 proceeds to the processing of S1205.
  • the chunk pattern analysis module 221 excludes the chunk pattern that does not satisfy the policy for the chunk pattern 601 from the chunk pattern information table 600.
  • the policy regarding the chunk pattern includes the minimum length, the minimum number of occurrences, etc. of the chunk pattern 601, and these values are set in advance by the administrator or the like by preparing a parameter storage area in the chunk integration function unit 220. Shall be kept.
  • the maximum value of the length 602 of the chunk pattern 601 and the maximum number of appearances 603 may be set as the policy.
  • the chunk pattern analysis module 221 removes the entry of the chunk pattern 601 from the chunk pattern information table 600 according to the set policy, and then proceeds to the processing of S1206.
  • the chunk pattern analysis module 221 excludes the chunk pattern 601 including the same chunk as the other chunk pattern 601. This is a process for further improving deduplication efficiency by not storing duplicated chunks included in different integrated chunks.
  • the chunk patterns “1-2-3” and “1-5-6” include the same chunk “1”. Therefore, either one is excluded from the chunk pattern information table 600.
  • Which chunk pattern is to be excluded can be determined according to a preset rule. This rule can be set, for example, “exclude the one having a lower appearance number 603” or “exclude the one having a smaller length 602”.
  • the chunk pattern analysis module 221 excludes the entry of the chunk pattern 601 including the same chunk from the chunk pattern information table 600, and then proceeds to the processing of S1207.
  • the chunk pattern analysis module 221 updates the integrated chunk information table 700.
  • the chunk pattern analysis module 221 determines a chunk pattern 601 included in the chunk pattern information table 600 after execution of the processing of S1206 as a chunk to be integrated, and newly registers information related to each chunk pattern 601 in the integrated chunk information table 700.
  • the chunk pattern analysis module 221 assigns a new chunk ID 301 to each chunk pattern 601 and registers it in the integrated chunk ID 701.
  • the chunk ID 301 constituting the chunk pattern identified by each integrated chunk ID 701 is set as the sub chunk ID 702, the number of appearances of the chunk pattern is set as the number of appearances 703, and the date when the new registration of the integrated chunk ID 701 is performed is set as the update date 704. Register each.
  • a chunk generated by dividing the data stored in the storage device 120 can be reconfigured as a longer integrated chunk. Therefore, the storage efficiency of the storage apparatus 120 can be improved, and the data reading speed from the storage apparatus 120 can be improved.
  • FIG. 13 shows an example of a data processing flow executed by the chunk management table update module 222.
  • the chunk management table update module 222 can start processing immediately after the processing of the chunk pattern analysis module 221 is finished or after a while has passed.
  • the chunk management table update module 222 rearranges data on the storage device 123. This processing is realized by performing the following processing for each entry corresponding to the integrated chunk ID 701 included in the integrated chunk information table 700.
  • the chunk management table update module 222 refers to the chunk management table 300 for the sub chunks included in the integrated chunk, and acquires the data storage destination 305 of each sub chunk.
  • the chunk management table update module 222 acquires the data of each sub chunk from the storage device 123, concatenates it, and temporarily stores it in the memory 132.
  • the chunk management table update module 222 writes the data of the connected sub chunk as a new chunk in the storage device 123. At this time, the chunk management table update module 222 holds the written position internally.
  • the chunk management table update module 222 erases the original sub-chunk data on the storage device 123.
  • the chunk management table update module 222 performs the above data rearrangement process, and then proceeds to the process of S1302.
  • the chunk management table update module 222 adds the integrated chunk attribute information to the chunk management table 300.
  • FIG. 4B shows a state after the integrated chunk “9” is newly added to the chunk management table 300.
  • the hash value 302 a value calculated by using a predetermined hash function for the data of the integrated chunk to be registered is registered.
  • the chunk size 303 the value of the number of appearances 703 of the integrated chunk information table 700 is registered.
  • the storage destination 305 the position where the data of the integrated chunk is written in the storage device 123 in S1301 is registered.
  • the chunk management table update module 222 changes the storage destination 305 of the sub chunk included in the integrated chunk.
  • the sub-chunk storage destination 305 can be determined based on the integrated chunk storage destination 305, the order of the sub-chunks in the integrated chunk, and the size of the sub-chunk constituting the integrated chunk.
  • the chunk “3” can be specified at a position advanced from the storage destination 305 of the chunk “9” by the data length of the chunks “1” and “2”.
  • the chunk management table update module 222 updates the chunk management table 300, and then proceeds to the processing of S1303.
  • FIG. 5B shows the state of the file management table 500 after “1-2-3”, which is the configuration chunk ID 505 of the file specified by the file name “sample1.txt”, is replaced with the integrated chunk “9”. .
  • data storage in the storage apparatus 120 is performed using the reconstructed integrated chunk, so that the storage efficiency of the storage apparatus 120 can be improved.
  • the data reading speed can be improved.
  • the chunking module 211 of the standard deduplication function unit 210 basically performs the same chunking method as that used when generating a sub-chunk in S802 of the data processing flow illustrated in FIG. Chunking with. If the host computer 110 knows in advance from the characteristics of data to be stored in the storage device 120 that sub-chunks rarely appear alone in the data and appears only as an integrated chunk. The chunking method can be changed temporarily and output as an integrated chunk from the beginning without being divided into sub-chunks. The chunking method will be described below in the second embodiment.
  • the deduplication apparatus 130 basically has the same configuration as that of the first embodiment and executes the same data processing. Here, only a part different from the first embodiment in the configuration of the second embodiment will be described.
  • a chunk management table 300 (216) different from the configuration in the first embodiment is used.
  • a configuration example of the chunk management table 300 according to the second embodiment will be described with reference to FIGS. 14A and 14B.
  • the chunk management table 300 according to the second embodiment includes a skip size 1403 as a new item that was not found in the first embodiment.
  • the skip size 1403 represents a data size set in advance so that the division position search process can be skipped when the chunking module 211 divides new data received from the host computer 110 into chunks.
  • the chunking module 211 sequentially scans new data received from the host computer 110 from the top in step S802 in FIG. 8 and searches for a division position for dividing the new data into chunks.
  • the chunking module 211 generates a certain chunk.
  • the chunking module 211 sets a position to scan ahead by 2.3 KB of the skip size 1403. Moving. If chunk “1-2-3” appears consecutively (this possibility is assumed to be high from the above data characteristics), chunking module 211 will end chunk “3” with a scan after skipping 2.3 KB. Find the break position. As a result, the chunking module outputs the integrated chunk “1-2-3” as a divided chunk.
  • the chunk collation module 212 collates the chunk management table 300 with the divided chunk in S902, and the chunk output by the chunking module 211 is the same as the integrated chunk “9”. Judge that.
  • the second embodiment it is possible to improve the speed of chunking processing by skipping division position determination and reduce the number of verification target chunks.
  • the configuration of this embodiment is particularly effective as the length of the integrated chunk is longer, and the time required for deduplication processing can be reduced by further reducing the time required for chunking processing.
  • the time required for data restoration processing can be shortened without lowering the deduplication rate of stored data.
  • 1 storage system 101 network, 110 host computer, 111, 131 CPU, 112, 132 memory, 113, 122, 135 network interface, 121 storage control device, 123 storage device, 124 hard disk, 133 auxiliary storage device, 134 I / O Interface, 210 Standard deduplication function section, 211 chunking module, 212 chunk verification module, 213 chunk registration module, 214 file restoration module, 215,500 file management table, 216,300 chunk management table, 220 chunk integration function section, 220 Chunk pattern analysis module, 222 Chunk management table update module, 223,600 Pattern information table, 224,700 integrated chunk information table

Landscapes

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

Abstract

【課題】格納データの重複排除率を低下させることなくデータ復元処理に要する時間を短縮する。 【解決手段】ストレージ装置に格納しようとする前記データを前記データ断片に分割するステップと、前記データを分割後の前記データ断片の構成によって記録するステップと、前記データ断片について、同一の前記データ断片が存在するか判定するステップと、同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するステップと、前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するステップと、記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するステップと、検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するステップとを有する。

Description

格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム
 本発明は、格納データの重複を排除する方法、情報処理装置、及び重複排除プログラムに関し、ハードディスクなどの記録媒体内に格納されるデータについて格納データの重複を排除してデータ容量を削減することができる、格納データの重複を排除する方法、情報処理装置、及び重複排除プログラムに関する。
 企業などで生成されるデジタルデータの量は年々増加している。それに伴い、このデジタルデータを格納するために必要なストレージ容量も増加し、データ管理コストの増大を引き起こしている。そのような背景のもと、「重複排除」と呼ばれるデータ削減機能を備えたストレージ製品及び技術が注目されている。
 一般的な重複排除の処理は、次の3プロセスで行われる。
(1)チャンキング処理:ストレージに格納されているデータを、チャンクと呼ばれるデータ断片に分割する。
(2)重複判定処理:新たに作成したチャンクと同一のチャンクがすでにストレージ内に存在するか(重複して格納されているか)を判定する。
(3)メタデータ作成処理:新たに作成したチャンクのうち、重複しないチャンクのみをストレージに保存し、重複判定処理及び格納されたチャンクデータから元データを復元する際に使う情報(以下、「メタデータ」と呼ぶ)を作成する。
 上記の処理では、重複する複数のチャンクに対して実データを一つだけストレージに保存するので、バックアップデータなどほぼ同一なデータが何度も現れる場合に大幅なデータ削減が期待できる。
 この重複排除処理では、チャンキングの仕方が、性能を決める重要な要素となる。一般に、作成するチャンクのチャンクサイズが小さいほど、削減できる実データの割合(重複排除率)は大きくなる。しかし、チャンクサイズを過度に小さく設定した場合、各チャンクを管理するのに必要なメタデータの量と、チャンクからもとのデータを復元するのにかかる時間が増大するという問題が生じる。逆に、チャンクサイズを大きく設定するほど、各チャンクに対応するメタデータの量とデータ復元にかかる時間とを小さくすることができるが、重複排除率は低下するという問題がある。
 上記のチャンクサイズに関するジレンマへの対応策として、重複排除処理対象であるデータに応じて複数のチャンクサイズを適用する技術が知られている(例えば特許文献1、2を参照。)。特許文献1では、はじめに小さなチャンクサイズを設定してチャンキングを行った後、作成された各チャンクに含まれている最長繰り返しチャンク(Largest sequence of Repeated Chunks)を検出し、初期値よりも大きなチャンクサイズを有するチャンクとして新たに出力する手法が開示されている。また、特許文献2では、格納すべきチャンキング処理対象データのうち、大きく広がる重複データと大きく広がる非重複データについては、大きなサイズでチャンキングし、重複データと非重複データとの境界付近では、小さなサイズでチャンキングする手法が開示されている。
米国特許出願公開第2009/0313248号明細書 特表2010-515114号公報
 上述した特許文献1には、データ内で連続するチャンクを1つの大きなチャンクにまとめることで、重複排除率を大きく低下させることなく、データ復元時のディスクアクセスの回数を減らすことができ、結果として、データ復元にかかる時間を短縮できると述べられている。また、特許文献2には、データの重複、非重複に合わせてチャンクサイズを変えることで、高い重複排除率と少ないメタデータとを両立できると述べられている。
 しかし、特許文献1、2の手法は、全データのチャンクのパターンを分析する処理、過去のチャンキングの履歴を参照しつつチャンキングを行う処理を、それぞれ含む。一般に、これらの処理は、非常に時間がかかる。重複排除処理は、データの定期的バックアップ処理と並行して行われることが多く、バックアップウィンドウ内に処理が終わることを求められる。毎回のバックアップ処理実行時に特許文献1、2の手法でチャンキング処理を行うことは、実際の運用においては困難な可能性がある。
 本発明は、上記の問題点を考慮し、ストレージシステムの実際の運用において実施可能な重複排除処理を提供し、重複排除処理後のデータから元のデータ復元に要する時間を短縮することができる、格納データの重複を排除する方法、情報処理装置、及び重複排除プログラムを提供することを目的とする。
 前記の、及び他の目的を達成するための本発明の一態様は、ストレージ装置に格納されるデータを構成する1のデータ断片と重複するデータ断片である重複データ断片を前記ストレージ装置の記憶領域から排除するための格納データの重複排除方法であって、
 前記ストレージ装置に格納しようとする前記データを前記データ断片に分割するステップと、
 前記データを分割後の前記データ断片の構成によって記録するステップと、
 前記データ断片について、同一の前記データ断片が存在するか判定するステップと、
 同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するステップと、
 前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するステップと、
 記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するステップと、
 検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するステップとを有する。
 また、本発明の他の態様は、上記の重複排除方法を実現するための重複排除装置である。また、本発明のさらに他の態様は、コンピュータに前記の重複排除方法を実行させるための重複排除プログラムである。
 本発明により、ストレージシステムの実際の運用において実施可能な重複排除処理を提供し、重複排除処理後のデータから元のデータ復元に要する時間を短縮することができる、格納データの重複を排除する方法、情報処理装置、及び重複排除プログラムを提供することができる。
本発明の一実施形態によるストレージシステム1のシステム構成の例を示した図である。 重複排除装置130のソフトウェア構成の例を示した図である。 チャンク管理テーブル300(216)の例を示した図である。 チャンク管理テーブル300(216)の例を示した図である。 ストレージ装置上でのデータ再配置の例を示した図である。 ファイル管理テーブル500(215)の例を示した図である。 ファイル管理テーブル500(215)の例を示した図である。 第1の実施形態におけるチャンクパターン情報テーブル600(223)の例を示した図である。 第1の実施形態におけるチャンクパターン情報テーブル600(223)の例を示した図である。 統合チャンク情報テーブル700(224)の例を示した図である。 チャンキングモジュール211の処理の流れの例を示した図である。 チャンク照合モジュール212の処理の流れの例を示した図である。 チャンク登録モジュール213の処理の流れの例を示した図である。 ファイル復元モジュール214の処理の流れの例を示した図である。 チャンクパターン解析モジュール221の処理の流れの例を示した図である。 チャンク管理テーブル更新モジュール222の処理の流れの例を示した図である。 第2の実施形態に関わるチャンク管理テーブル300(216)の例を示した図である。 第2の実施形態に関わるチャンク管理テーブル300(216)の例を示した図である。
 前記目的を達成するため、毎回のバックアップ時などに行う通常の重複排除の処理と、データ復元にかかる時間削減のために行うデータの再分析処理を分ける。その結果、短時間で終わることが求められる通常の重複排除の処理を高速に行い、サーバメンテナンス時などある程度作業時間を確保できるときに再分析処理を行うことができる。
 上記のデータ再分析処理を特許文献1、2で開示されている方法で行うことには、以下のような問題がある。特許文献1、2は、ともに、背景技術で述べた重複排除の3つのプロセスのうち、チャンキングに関する処理しか開示していない。そのため、データ再分析時に特許文献1、2の手法でチャンキングを行っても、メタデータを介して、通常の重複排除処理に反映することができない。また、特許文献1、2では、既に重複排除を行った後のデータに対して、メタデータを利用して、チャンキングを行う方法は開示されていない。そのため、実データを再度分析する必要がある。
 これらの問題に対し、データの再分析を行った後、通常の重複排除処理で利用できるメタデータを作成する。具体的には、まず、通常の重複排除の処理で生成されたチャンクの集合を分析し、重複排除率を変えずに統合できるチャンクを決定する。次に、決定したチャンクから通常の重複排除の処理で利用するメタデータを作成し、統合する前のチャンクのメタデータとともに管理する。これにより、通常の重複排除の処理において、メタデータを使った重複判定及びデータ復元が可能になる。また、通常の重複排除処理で生成されたチャンクのメタデータを用いて分析をすることで、実データを再度分析するよりも効率的に統合チャンクを決定することができる。
 以下、本発明を実施するための形態(以下、「実施形態」という。)について、適宜図面を参照しつつ、説明する。
≪第1の実施形態≫
 以下、本発明の第1の実施形態について、説明する。
 図1は、本発明の第1実施形態を適用したストレージシステム1のシステム構成の例を示した図である。図1に示すように、本システム1は、ホストコンピュータ110、ストレージ装置120、及び重複排除装置130を含み、これらの装置はネットワーク101を介して相互に通信可能に接続されて構成される。
 ホストコンピュータ110は、少なくともCPU(Central Processing Unit)111、メモリ112、及びネットワークインターフェース113を備える一般的なコンピュータである。ホストコンピュータ110は、ストレージ装置120に格納されたデータを、ネットワークインターフェース113を介しメモリ112上に読み出す機能、及びメモリ112上のデータを、ネットワークインターフェース113を介しストレージ装置120に書き込む機能を備える。ホストコンピュータ110は、メモリ112の他に、ハードディスクドライブ(HDD)、半導体ドライブ(Solid State Drive, SSD)等の補助記憶デバイスを備えていてもよい。また、ネットワークインターフェース113は、ホストコンピュータ110が接続されるネットワーク101の種類により選定され、例えばネットワーク101がLAN(Local Area Network)であれば、ネットワークインターフェース113としてはNIC(Network Interface Card)が設けられる。
 なお、以下の説明では、データは1つ以上のファイルから構成されると仮定するが、本発明で扱うデータはそのような構成に限らず、バイナリ列として表現されるデジタルデータ一般を含むものとする。
 ストレージ装置120は、少なくともストレージ制御装置121、及び記憶装置123を備える。ストレージ装置120は、例えばデータをファイル単位で格納することができるファイルストレージの形式をとることができるが、ブロックストレージを含む他の形式であってもよい。ストレージ制御装置121は、ネットワークインターフェース122を備え、ホストコンピュータ110及び重複排除装置130からデータ読み出し/書き込み命令を受け付け、記憶装置123に対しデータ読み出し/書き込みを行うことができる。記憶装置123は、HDD(Hard Disk Drive)124などの記憶媒体で構成され、ホストコンピュータ110及びあるいは重複排除装置130から書き込み命令を受けたデータを格納する。ストレージ制御装置121は、図示を省略するCPU等のプロセッサ、メモリ、及び記憶装置123との間のI/O(Input/Output)インターフェースとしてのディスクアダプタを備える。ストレージ制御装置121は、そのような構成に基づいて、記憶装置123の物理的記憶領域から適宜のRAIDレベルにより論理記憶領域を編成する機能、及び論理記憶領域から複数の論理ボリュームを作成してホストコンピュータ110に提供する機能等を備える。
 重複排除装置130は、少なくともネットワークインターフェース135、CPU131、メモリ132、補助記憶装置133、I/Oインターフェース134、及び入出力装置136を備える。重複排除装置130は、ストレージ装置120に格納されたデータを、ネットワークインターフェース135を介しメモリ132上に読み出す機能及び、及びメモリ132上のデータを、ネットワークインターフェース135を介しストレージ装置120に書き込む機能を備える。I/Oインターフェース134は、キーボード、マウス等のデータ入力デバイス、ディスプレイ、プリンタ等のデータ出力デバイスであり、コンピュータのデータ入出力機能を有する種々のデバイスを含む。なお、図1の例では重複排除装置130は、ストレージ装置120とは別個のコンピュータとして構成されているが、後述する重複排除装置130の機能をストレージ装置120内に実装するように構成してもよい。
 次に、図2を参照して、第1実施形態による重複排除装置130の機能の例について説明する。重複排除装置130の機能は、補助記憶装置133に格納されている、各機能を実現するためのプログラム及びデータを、CPU131がメモリ132へ読み出して実行することによって提供される。
 重複排除装置130は、標準重複排除機能部210とチャンク統合機能部220とを備える。標準重複排除機能210は、ストレージ装置120に格納するデータを、複数のチャンク(データ断片)のシーケンスに分割し、互いに重複するチャンク(重複データ断片)については1つのチャンクのみについて実データをストレージ装置120に格納する機能を提供する。この標準重複排除機能部210の機能により、記憶装置123の利用可能な容量を増やすことが可能となる。
 チャンク統合機能部220は、標準重複排除機能部210により生成されたチャンクのシーケンス中で、繰り返し現れるチャンクのデータパターンを解析し、複数のチャンクを一つの統合チャンクとして管理することで、データ再構築に要するコストを削減する機能を提供する。以下、各機能を実現するための手段について具体的に説明する。
 標準重複排除機能部210は、少なくともチャンキングモジュール211(データ分割部)、チャンク照合モジュール212(データ照合部)、チャンク登録モジュール213(データ登録部)、ファイル復元モジュール214(データ復元部)、チャンク管理テーブル216、及びファイル管理テーブル215を備えて構成される。
 まず、上記した標準重複排除機能部210に設けられている各部の概要を説明する。チャンキングモジュール211は、ストレージ装置120に格納されたデータを読み込み、複数のチャンクに分割する機能を有する。チャンキングモジュール211による処理の詳細は、図8を参照して後述する。
 チャンク照合モジュール212は、チャンキングモジュール211が生成した各チャンクについて、データが重複するチャンクが存在するかを判定する。チャンキングモジュール211による処理の詳細は、図9を参照して後述する。
 チャンク登録モジュール213は、チャンキングモジュール211が生成した各チャンクから、チャンクID301、ハッシュ値302、及びチャンクサイズ303を含む、各チャンクを管理するために用いられる属性情報を生成し、ファイル管理テーブル215及びチャンク管理テーブル216に、それらの属性情報を登録する機能を有する。さらに、チャンク登録モジュール213は、チャンク照合モジュール212が重複するチャンクが存在しないと判定したチャンクのみの実データを、ストレージ装置120に格納する機能をも有する。チャンク登録モジュール213による処理の詳細は、図10を参照して後述する。
 ファイル復元モジュール214は、ファイル管理テーブル215及びチャンク管理テーブル216が格納する属性情報と、ストレージ装置120に格納された、チャンクに対応するデータとを用いて、チャンキングモジュール213によってチャンクに分割される前のデータを復元する機能を有する。ファイル復元モジュール214による処理の詳細は、図11を参照して後述する。
 チャンク管理テーブル216は、チャンキングモジュール213が生成したチャンクの属性情報を保持し、チャンク照合モジュール212による重複チャンクの判定処理、及びファイル復元モジュール214がチャンクからデータを復元する際に参照される。チャンク管理テーブル216の詳細は、図3を参照して後述する。
 ファイル管理テーブル215は、各ファイルを構成しているチャンクのシーケンスに関する情報を保持しており、ホストコンピュータ110からのデータ読み出し命令に従って、読み出し対象データ(ファイル)を復元する際に参照される。ファイル管理テーブル215の詳細は、図4を参照して後述する。
 以上説明した標準重複排除機能部210の機能により、ホストコンピュータ110から書き込まれるもとのデータは、互いに重複しない複数のチャンクの集合と、ファイル管理テーブル215及びチャンク管理テーブル216が保持する書くチャンクの属性情報とに変換される。本願では、この一連の変換処理を「重複排除処理」と呼び、互いに重複しない複数のチャンクの集合を重複排除されたデータと、ファイル管理テーブル215及びチャンク管理テーブル216が保持する各チャンクの属性情報をメタデータと呼ぶこととする。重複排除されたデータ及びメタデータからもとのデータを復元することが可能であるから、重複排除処理を行って重複するチャンクに関する1つの実データを格納した後は、ホストコンピュータ110から受信したもとのデータを保持しておく必要はない。そのため、重複する複数のチャンクが存在する場合には、もとのデータをそのまま格納する場合と比較して、重複排除処理されたデータのサイズは小さくなる。
 次に、チャンク統合機能部220について説明する。チャンク統合機能部220は、少なくともチャンクパターン解析モジュール221(データ解析部)、チャンク管理テーブル更新モジュール222(データ更新部)、チャンクパターン情報テーブル223、及び統合チャンク情報テーブル224を備えて構成される。
 チャンクパターン解析モジュール221は、ファイル管理テーブル215が管理する各ファイルについてのチャンクのシーケンスを分析し、再構築コスト削減のために統合すべきチャンクを決定する機能を有する。チャンクパターン解析モジュール221による処理の詳細は、図12を参照して後述する。
 チャンク管理テーブル更新モジュール222は、チャンクパターン解析モジュール221が決定した統合すべきチャンクに応じて、ストレージ装置120に格納されたデータを再配置し、そのデータ再配置結果に従ってファイル管理テーブル215及びチャンク管理テーブル216に保持されている情報を更新する機能を有する。チャンク管理テーブル更新モジュール222による処理の詳細は、図13を参照して後述する。
 チャンクパターン情報テーブル223は、チャンクパターン解析モジュール221が、統合すべきチャンクを決定するために利用する情報を保持する。チャンクパターン情報テーブル223の構成の詳細は、図6を参照して後述する。
 統合チャンク情報テーブル224は、チャンクパターン解析モジュール221が統合すべきと判定したチャンクに関する情報を保持している。統合チャンク情報テーブル224の構成の詳細は、図7を参照して後述する。
 重複排除装置130にはまた、オペレーティングシステム(Operating System, OS)230及びデータI/O部240が実装されている。OS230は、重複排除装置130のコンピュータとしての基本的なデータ処理機能を有する基本ソフトウェアであり、一般的なコンピュータのOSとして利用可能なものを適宜採用することができる。データI/O部240は、OS230の制御下で、標準重複排除機能部210あるいはチャンク統合機能部220に備えられる各モジュールと、ネットワークインターフェース135を介した外部とのデータI/O処理を管理する。
 次に、図3A、図3Bを参照して、第1の実施形態に係るチャンク管理テーブル216の例について説明する。なお、以下の各テーブルの説明については、各テーブルの構成要素に付す符号を分かりやすくするために、図2において使用した符号とは別個の符号を付して説明する。例えば、チャンク管理テーブル216の単体について説明する場合には、チャンク管理テーブル300の符号を用いることとし、必要に応じて「チャンク管理テーブル300(216)」と表示する。図3Aは、重複排除装置130の標準重複排除機能部210が、データの重複排除処理を行った後のファイル管理テーブル215の状態の例を表す。図3Bは、重複排除装置130のチャンク統合機能部220が、チャンクID301が1、2、3で特定されるチャンクを統合し、チャンクID301が9の新たなチャンクを生成しチャンク管理テーブル216に登録した後の状態を表す。チャンク統合処理については後述する。
 図3A、図3Bに例示するチャンク管理テーブル300は、チャンクID301、ハッシュ値302、チャンクサイズ303、重複数304、及び保存先306の各項目を含む。チャンクID301は、各チャンクを一意に識別するためのIDであり、チャンク登録モジュール213がチャンク管理テーブル216に新たなチャンクの属性情報を追加する際、他のチャンクID301と同じにならないように、チャンク登録モジュール213が各チャンクに割り当てる。ハッシュ値302は、各チャンクに含まれているデータをハッシュ関数に入力して得られる出力値を格納している。ハッシュ関数としては、例えばSHA-1などを利用することができる。なお、ここで、各チャンクについて算出したハッシュ値302を、チャンクID301として利用してもよい。ただし、その場合、異なるチャンクに対しハッシュ値302が同一の値となった場合は、同一ハッシュ値302を有する複数のチャンクを互いに区別する識別子を追加するものとする。チャンクサイズ303は、各チャンクのデータとしてのサイズを表し、図3A、図3Bの例ではキロバイト単位で表示している。重複数304は、重複排除処理を実行する前のデータ中に、対応するチャンクID301又はハッシュ値302によって特定されるチャンクが何回出現したかを表す。保存先305は、対応するチャンクID301又はハッシュ値302によって特定されるチャンクが保存されている記憶装置123上の位置を表し、例えば記憶装置123が提供する論理記憶領域上のブロックアドレス等として記録される。保存先305は、重複排除装置130が記憶装置123上にあるチャンクのデータを取得する際に利用される。ファイル復元モジュール214は、チャンク管理テーブル300に保持されている保存先305とチャンクサイズ303とを参照することで、読み出し対象であるファイルを構成するチャンクを記憶装置123上から読み込むことができる。
 次に、図4を参照して、チャンクの統合処理が実行された場合の、記憶装置123上のデータの再配置について説明する。図4(a)は、チャンク統合機能部220がチャンクの再配置を行う前における、記憶装置123上に格納されているチャンクの例を表す。図4(a)の例では、チャンクID301が1、2、3のチャンクが、保存先305がL_1、L_2、L_3で示される不連続な位置にそれぞれ保存されている。これに対し、図4(b)は、チャンク統合機能部220が、チャンクID301が1、2、3で特定されるチャンクを統合してチャンクID301が9のチャンクを生成し、ディスク上のチャンクを再配置した後の状態の例を表す。図4(b)では、チャンクID301が9で特定される新たなチャンクとして、もとの3つのチャンクが連続する位置に保存されている。記憶装置123の論理記憶領域においてこのようなデータ配置にすることで、チャンクID301が9で特定されるチャンクを取得する際、重複排除装置130から記憶装置123上へのアクセス回数は、データ再配置前の3回から1回で済むことになる。
 次に、図5A、図5Bを参照して、ファイル管理テーブル500(215)について説明する。図5A、図5Bは、それぞれファイル管理テーブル500の構成例を示しており、図5Aはチャンク統合処理前の状態を、図5Bはチャンク統合処理後の状態を例示している。ファイル管理テーブル500は、ファイル名501、ファイルサイズ502、チャンク数503、及び構成チャンクID505の各項目を含む。ファイル名501は、各ファイルを一意に識別する識別子を表す。ファイルサイズ502は、各ファイルのサイズを、例えばキロバイト単位で表す。チャンク数503は、各ファイルを構成するチャンクの数を表す。構成チャンクID505は、各ファイルを構成するチャンクのシーケンスを、チャンクID301の並びとして表す。ホストコンピュータ110からファイルの読み出し命令を受領した場合、重複排除装置130は、このファイル管理テーブル500において記録されている読み出し対象ファイルのファイル名501と、それに対応して記録されている構成チャンクID505とを取得することにより、記憶装置123に格納されているチャンクから読み出し対象ファイルを復元することができる。図5Aの例では、ファイル名501が「sample1.txt」で特定されるファイルは、構成チャンクID505に記録されている10個のチャンクから構成される。構成チャンクID505に記録されているように、各チャンクのIDは「1-2-3-4-1-2-3-5-6-1」であり、この順番でチャンクが並んでいる。一方、チャンク統合処理後の状態を表している図5Bでは、ファイル名501が「sample1.txt」のファイルは6個のチャンクから構成されている。これは、図3Bに示したように、チャンクID301が「1-2-3」で構成される新たなチャンクをチャンクID301が9のチャンクと定義したためである。したがって、図5Bにおいては、ファイル名「sample1.txt」を構成している各チャンクのIDの配列は、「9-4-9-5-6-1」となる。
 次に、図6A、図6Bを参照して、チャンクパターン情報テーブル600(223)について説明する。図6Aは後述する繰り返しチャンクパターン検出処理後のチャンクパターン情報テーブル600の構成例を、図6Bは同一チャンクを有するパターンを分割した後のチャンクパターン情報テーブル600の構成例を示している。チャンクパターン情報テーブル223は、チャンクパターン601、長さ602、出現数603、及び出現位置604の各項目を含む。チャンクパターン601は、記憶装置123が提供する論理記憶領域に格納される一連のチャンクシーケンス内に繰り返し現れるパターンを、チャンクID301の並びとして表している。長さ602は、チャンクパターン601を構成するチャンクの個数を表す。出現数603は、チャンクパターン601がチャンクシーケンス内で何回出現するかを表す。出現位置604は、記憶装置123が提供する論理記憶領域に格納される一連のデジタルデータシーケンス内のどの位置に、チャンクパターン601が出現するかを、論理記憶領域内のブロックアドレス等を用いて表す。例えば、図6Aでは、チャンクID301が1-2-3で表されるチャンクパターン601が、デジタルデータシーケンスの先頭から数えて、1番目、100番目、212番目に出現することを表している。チャンクパターン解析モジュール221は、統合するチャンクを決定するために、チャンクパターン情報テーブル223を動的に更新する。チャンクパターン解析モジュール221によるチャンクパターン解析処理の詳細は、図12を参照して後述する。
 次に、図7を参照して、統合チャンク情報テーブル700(224)について説明する。図7は、統合チャンク情報テーブル700の構成例を示している。統合チャンク情報テーブル700は、統合チャンクID701、サブチャンクID702、出現数703、及び更新日時704の各項目を含む。統合チャンクID701は、チャンクパターン解析モジュール221が統合すべきと決定したチャンクパターン601に対して、チャンクパターン解析モジュール221が新たに割り当てたチャンクID301である。サブチャンクID702は、統合されたチャンクを構成する、より小さなチャンク(以下「サブチャンク」と呼ぶ。)を表すチャンクID301である。出現数703は、統合したチャンクが記憶装置123の論理記憶領域上にあるチャンクのシーケンス内で何回出現するかを表す。図7の例では、サブチャンク1-2-3を統合して統合チャンクを生成し、新たなチャンクID301として9を割り当てている。更新日時704は、チャンクパターン解析モジュール221が統合したチャンクを登録した日時を表す。
 次に、図8を参照して、チャンキングモジュール211による処理の流れを説明する。図8は、チャンキングモジュール211によって実行されるデータ処理フローの一例を示している。
 チャンキングモジュール211が処理を開始することで、重複排除装置130の標準重複排除機能部210による一連の重複排除処理が開始される。重複排除処理の開始のタイミングを決定するには、大別して2つの方式がある。1つ目は、ホストコンピュータ110がストレージ装置120へデータを送信したタイミングで重複排除処理を行う方式である。この場合は、ストレージ制御装置121が記憶装置123にデータを書き込む前に、重複排除装置130がネットワークインターフェース135を介してデータを受信し、重複排除処理を行った後記憶装置123に、チャンクに分割したデータを書き込む。この1つ目の方式は、インライン方式と呼ばれる。2つ目は、ホストコンピュータ110がストレージ装置120へ送信したデータを、ストレージ制御装置121が記憶装置123にデータを書き込んだ後に重複排除処理を行う方式である。この場合は、重複排除装置130が、記憶装置123上のデータを読み込み、重複排除処理を行った後、再び記憶装置123に重複排除処理されたデータを書き込む。この2つ目の方式はポストプロセス方式と呼ばれる。ポストプロセス方式の場合、重複排除装置130による重複排除処理は、例えば記憶装置123に格納されたデータのバックアップ処理等のタイミングに合わせて、毎週決められた時刻などに開始される。以下では、説明の便宜上、ポストプロセス方式を想定して説明するが、重複排除処理の開始タイミングと重複排除装置130のデータ読み込み先を変更するだけで、インライン方式にも本発明は適用可能である。
 図8に戻ると、S801(符号Sは「ステップ」を表す。以下本明細書中で同じ。)において、チャンキングモジュール211は新規データを読み込む。ここで、新規データとは、ストレージ装置120が格納するデータのうち、標準重複排除機能部210がまだ重複排除を行っていないデータを指す。ストレージ装置120における新規データの識別は、例えば記憶装置123の論理記憶領域のアドレスに対してビットマップで、あるいは受信したファイル単位で重複排除処理を実施済みか否か記録しておくことで行うことができる。チャンキングモジュール211は、新規データを読み込んだ後S802の処理に進む。
 S802において、チャンキングモジュール211は、S801で読み込んだデータをチャンクに分割する。チャンクへの分割方式には、大別して、1KB単位など固定のデータサイズで分割する固定長方式と、デジタルデータシーケンス中に特定のバイトパターンが現れた場合にその箇所を分割位置とする可変長方式とがある。
 固定長方式のチャンキングについては、例えば以下の文献で説明されている。
 S. Quinlan and S. Dorward, "Venti: a new approach to archival 
 storage,” The First USENIX conference on File and Storage 
 Technologies (Fast'02), January 2002.
 可変長方式のチャンキングについては、例えば以下の文献で説明されている。
 A. Muthitacharoen, B. Chen, and D. Mazieres, "A low-bandwidth
 network file system,” The 18th ACM Symposium on Operating Systems
 Principles (SOSP), Banff, Alberta, Canada, October 2001.
 B. Zhu, K.Li, and H. Patterson, "Avoiding the disk bottleneck in
  the Data Domain deduplication file system,” The 6th USENIX
  Conference on File and Storage Technologies (FAST '08),
  February 2008.
 本実施形態では、図4で例示したように、各々のチャンクサイズ303が異なる、すなわち可変長方式のチャンキングを行うものとして説明しているが、本発明は、分割方式によらず適用可能である。チャンキングモジュール211は、適宜の分割方式によってチャンクの分割位置を決定した後、S803の処理に進む。
 S803において、チャンキングモジュール211は、S802で決定したチャンクの情報をチャンク照合モジュール212に送信する。チャンキングモジュール211は、このチャンクの情報に、新規データとチャンクへの分割位置を表すアドレス等の情報を含める。
 次に、図9を参照して、チャンク照合モジュール212の処理の流れについて説明する。図9は、本実施形態のチャンク照合モジュール212が実行するデータ処理フローの一例である。
 まず、S901において、チャンク照合モジュール212は、チャンキングモジュール211が送信したチャンク情報を受信する。チャンク照合モジュール212は、チャンク情報を受信した後S902の処理に進む。
 S902において、チャンク照合モジュール212は、S802で決定した各チャンクがチャンク管理テーブル300にすでに存在するかを確認する。この確認は、例えば次のように行う。まず、チャンク照合モジュール212は、チャンク管理テーブル300において各チャンクについて記録されているハッシュ値302を求めるのに用いたハッシュ関数と同一のハッシュ関数を用いて、受信した各チャンクのハッシュ値を計算する。次に、算出された各ハッシュ値に基づいて、チャンク管理テーブル300に記録されている各チャンクのハッシュ値302との照合を行い、同一のハッシュ値を持つチャンクが存在するかを確認する。このチャンク照合処理は、例えば以下の文献で説明しているように、ブルームフィルタ(Bloom Filter)を用いて行ってもよい。
B. Zhu, K.Li, and H. Patterson, "Avoiding the disk bottleneck in the
Data Domain deduplication file system,” The 6th USENIX Conference
on File and Storage Technologies (FAST '08), February 2008.
 理想的なハッシュ関数を用いる場合、異なるチャンクについてハッシュ値が同一になる(ハッシュ値の衝突が起こる)可能性は限りなく小さい。そのため、チャンクの同一性をそれらについて算出したハッシュ値の同一性で判断することができる。よりチャンク照合処理の精度を高めるために、ハッシュ値の衝突が起こる可能性を考慮する場合には、同一のハッシュ値を持つと判定されたチャンクに対しては、記憶装置123が格納するチャンクのバイナリデータを直接比較することで、正しくチャンクの同一性を判定することができる。以上のように、受信した各チャンクがチャンク管理テーブル216に存在するかを確認した後、チャンク照合モジュール212はS903の処理に進む。
 S903において、チャンク照合モジュール212は、S902で照合した結果をチャンク登録モジュール213へ送信して処理を終了する。
 次に、図10を参照して、チャンク登録モジュール213の処理の流れを説明する。図10は、チャンク登録モジュール213により実行されるデータ処理フローの一例を示している。
 S1001において、チャンク登録モジュール213は、S903でチャンク照合モジュールが送信した照合結果を受信する。照合結果は、受信したチャンクと同一のチャンクが既にチャンク管理テーブル300に格納されているかの情報を含む。チャンク登録モジュール213は、各チャンクについての照合結果を受信した後、各チャンクを対象にS1002以下の処理を行う。
 S1002において、チャンク登録モジュール213は、対象チャンクがチャンク管理テーブル300に存在するかを判定する。判定は、S902においてチャンク照合モジュール212が確認した結果をもとに行われる。対象チャンクがチャンク管理テーブル216に存在する場合は、記憶装置123内にすでに同一チャンクが存在するので、対象チャンクは重複するチャンクと呼ばれる。チャンク登録モジュール213は、対象チャンクが重複すると判定した場合(S1002、Yes)、S1005の処理に進む。対象チャンクが重複しないと判定した場合は(S1002、No)、チャンク登録モジュール213は、S1003の処理に進む。
 S1003において、チャンク登録モジュール213は、対象チャンクのデータを記憶装置123に保存する。このとき、対象チャンクごとに記憶装置123に保存せず、一時的にメモリ132に保存しておき、他の重複しないチャンクと合わせて一度に記憶装置123へ保存する方式をとってもよい。記憶装置123あるいはメモリ132に保存した後、チャンク登録モジュール213は、S1004の処理に進む。
 S1004において、チャンク登録モジュール213は、チャンク管理テーブル300に、対象チャンクの属性情報を登録する。チャンク登録モジュール213は、チャンクID301には、既存のチャンクID301と同一にならない値あるいは符号を割り当てる。ハッシュ値302には、S902において計算した値を登録する。チャンクサイズ303には、対象チャンクのサイズを計算して登録する。重複数304には、他に重複するチャンクは存在しないため数値1を登録する。保存先305には、S1003でチャンクを保存した場所を表す情報を登録する。チャンク登録モジュール213は、以上のようにチャンク管理テーブル300に各チャンクの属性情報を登録した後、S1006の処理に進む。
 一方、S1005において、チャンク登録モジュール213は、チャンク管理テーブル300内にすでに登録されている対象チャンクと重複するチャンクの属性情報を更新する。この場合、チャンク登録モジュール213は、該当するチャンクについて記録されている重複数304の値を1つ増加させる。チャンク管理テーブル300の属性情報を更新した後、チャンク登録モジュール213はS1006の処理に進む。
 S1006において、チャンク登録モジュール213は、ファイル管理テーブル500に、処理した新規データ(新規ファイル)の情報を追加する。すなわち、チャンク登録モジュール213は、その新規データに含まれる各ファイルについて、ファイル名501、ファイルサイズ502、チャンク数503、及び構成チャンクID505を、ファイル管理テーブル500に登録する。
 次に、図11を参照して、ファイル復元モジュール214の処理の流れについて説明する。図11は、本実施形態のファイル復元モジュール214が実行するデータ処理フローの一例を示している。
 ファイル復元モジュール214は、ホストコンピュータ110がストレージ装置120へデータ読み込み命令を送信し、このデータ読み込み命令を重複排除装置130の標準重複排除機能部210がネットワークインターフェース135を介して受信したタイミングで処理を開始する。重複排除されて記憶装置123に格納されているデータは、もとのデータと同一ではないので、データ読み込み命令を受け付けた場合、重複排除装置130は、重複排除されたデータをもとのデータ(ファイル)に戻す必要がある。本明細書では、この処理をデータの復元と呼ぶ。データの復元は、記憶装置123が格納する全部あるいは一部のデータに対して行われる。以下では、1つのファイルを復元する処理を説明するが、一般のデータの場合にも、そのデータを複数のファイルに分割してファイルごとにチャンキングを行い、データ復元にあたっては分割したファイルごとに同様の処理を行うことでデータを復元できる。
 まず、S1101において、ファイル復元モジュール214は、データ読み込み命令に含まれている復元対象のファイル名501をもとにファイル管理テーブル500を検索する。復元対象のファイル名を有するファイルがファイル管理テーブル500に記録されていると判定した場合(S1101、Yes)、ファイル復元モジュール214は、S1103において該当ファイルの構成チャンクID505を取得した後S1104の処理に進む。該当するファイル名501によるファイルのエントリがファイル管理テーブル500にないと判定した場合(S1101、No)、ファイル復元モジュール214は、S1102においてエラーメッセージを出すなどして処理を終了する。
 一方、S1104において、ファイル復元モジュール214は、ファイルを構成するチャンクのデータを記憶装置123から取得する。具体的には、S1103で取得した構成チャンクID505に含まれるチャンクID301ごとに以下の処理を行う。まず、チャンクID301をもとに、チャンク管理テーブル300を検索し、該当チャンクの保存先305を取得する。次に取得した保存先305をもとに、記憶装置123からチャンクのデータを取得する。取得したチャンクのデータは、一時的にメモリ132に保存する。構成チャンクID505に含まれるすべてのチャンクID301に対して、上記の処理を行った後、取得した各チャンクのデータを構成チャンクID505の順番に連結する。その後、S1105に進む。
 S1105において、ファイル復元モジュール214は、S1104で連結したデータを、ネットワークインターフェース135を介して、ホストコンピュータ110へ送信し、処理を終了する。
 次に、図12を参照して、チャンクパターン解析モジュール221の処理の流れについて説明する。図12は、本実施形態のチャンクパターン解析モジュール221が実行するデータ処理フローの一例を示している。チャンクパターン解析モジュール221は、重複排除装置130のOS230からのタイマー起動により週一回など定期的に、あるいは管理者の手動により開始されるように構成することができる。
 まず、S1201において、チャンクパターン解析モジュール221は、ファイル管理テーブル500に含まれる構成チャンクID505を読み込む。このとき、チャンクパターン解析モジュール221は、ファイル管理テーブル500に含まれるすべてのファイルを読み込み対象にしてもよいし、一部のファイルを対象にしてもよい。構成チャンクID505を読み込んだ後、チャンクパターン解析モジュール221は、S1202の処理に進む。
 S1202において、チャンクパターン解析モジュール221は、S1201で読み込んだ構成チャンクID505に含まれるチャンクID301のうち、統合チャンクであるチャンクID301をサブチャンクIDに置き換える。この処理は、チャンクパターン解析モジュール221が、統合チャンク情報テーブル700を参照し、読み込んだチャンクID301が統合チャンクID701に登録されているかを確認することで行う。例えば、S1201で読み込んだチャンクID301に「9」が含まれている場合、チャンクパターン解析モジュール221は、統合チャンク情報テーブル700を参照し、サブチャンクID「1-2-3」で置換え、S1203の処理に進む。
 次に、S1203において、チャンクパターン解析モジュール221は、図6Aに示すチャンクパターン情報テーブル600を作成する。これは、以下の処理で実現する。まず、チャンクパターン解析モジュール221は、S1202でサブチャンクIDへの書き換えを行った後の構成チャンクID505の集合を連結して一つの文字列とする。構成チャンクID505を連結する際、チャンクパターン解析モジュール221は、構成チャンクID505の間のファイルの区切りとなる位置に、そのファイルの区切りを示す識別子を挿入する。この識別子には、チャンクID301及び他のファイル間の区切りを示す識別子と異なる値が割り当てられる。例えば、3つのファイルを構成する構成チャンクID505「1-2-3-4-1-2-3-5-6-1」、「7-8-4-2-5」、及び「3-2」を連結する場合、チャンクパターン解析モジュール221は、ファイルの区切り位置に識別子$、¥を挿入して「1-2-3-4-1-2-3-5-6-1-$-7-8-4-2-5―¥-3-2」とする。このようにして、チャンクID301及びファイル区切り識別子からなる1つの文字列が生成される。
 次に、この生成した文字列の中で、互いに一致し、直前及び直後の文字が異なる部分文字列を検索する。このような文字列を、本明細書では「繰り返しパターン」と定義する。例えば、前記の文字列「1-2-3-4-1-2-3-5-6-1-$-7-8-4-2-5―¥-3-2」では、「1-2-3」が繰り返しパターンとして抽出される。なお、部分文字列「1-2」も上記の文字列中に2回現れるが、直後の文字が同じ3なので、繰り返しパターンには該当しない。このような文字列に対する操作は、「Suffix Tree」、「Suffix Array」と呼ばれるデータ構造を利用することで効率的に行えることが知られている。繰り返しパターン検索の詳細は、例えば、以下の文献で説明されている。
Gusfield, Dan (1999) [1997]. Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology. USA: Cambridge University Press. p. 143.
 このようにして、チャンクパターン解析モジュール221は、部分文字列検索対象となる、構成チャンクID505を連結してなる文字列について、すべての繰り返しパターンを検索する。さらに、チャンクパターン解析モジュール221は、各繰り返しパターンの長さ602、出現数603、及び出現位置604を取得し、チャンクパターン情報テーブル600に登録する。以上がチャンクパターン情報テーブル600作成の処理である。なお、上記の処理では、読み込んだすべての構成チャンクID505を対象に繰り返しパターン検索を実行したが、あらかじめ重複しているチャンクのみを対象に同様の処理を行うことで、検索に必要なメモリの削減及び検索速度の向上を実現することができる。各チャンクが重複しているかどうかの判定は、チャンク管理テーブル500を参照し、各チャンクID301に対応する重複数503が2以上であるかを確認することで行うことができる。チャンクパターン解析モジュール221は、チャンクパターン情報テーブル223を作成した後、S1204の処理へ進む。
 S1204において、チャンクパターン解析モジュール221は、チャンクパターン情報テーブル223に含まれるチャンクパターンのうち、内部に同一チャンクを含むチャンクパターンを複数のチャンクパターンに分割する。例えば、図6Aの3行目のチャンクパターン「1-2-3-1-5-6」は、その内部に同一チャンク「1」を持つ。そこで、図6B上表のように、内部に同一チャンクを持たないチャンクパターンである「1-2-3」と「1-5-6」とに分割する。一般に、この分割は、一意ではないが、なるべく分割後のチャンクが大きくなるよう分割を採用する。この分割の結果、チャンクパターン情報テーブル223内に同一のチャンクパターン601が生じることがある。その場合は、同一のチャンクパターン601を一つのエントリにまとめる。その際、出現数603はそれぞれの出現数603の和に、出現位置604はそれぞれの出現位置604の連結に書き換える。例えば図6B上表では、チャンクパターン「1-2-3」が2つ存在しているので、図6B下表のように、1つのエントリにまとめることができる。内部に同一チャンクを持つチャンクパターンを分割した後、チャンクパターン解析モジュール221は、S1205の処理に進む。
 次に、S1205において、チャンクパターン解析モジュール221は、チャンクパターン601についてのポリシを満たさないチャンクパターンをチャンクパターン情報テーブル600から除外する。ここで、チャンクパターンについてのポリシは、チャンクパターン601の最小長さ、最小出現数などを含み、これらの値は、管理者などがチャンク統合機能部220にパラメータ記憶領域を用意して予め設定しておくものとする。一般に、チャンクパターン601の長さ602は長いほど、出現数603が多いほど、チャンクを統合した場合の効果が高い。よって、チャンクパターンの長さ602の最小値、最小出現数603をポリシに設定することで、チャンク統合の効果が高い場合のみ統合チャンクを生成するように構成することができる。また、ポリシとして、チャンクパターン601の長さ602の最大値、最大出現数603などを設定してもよい。チャンクパターン解析モジュール221は、上記設定されたポリシに応じてチャンクパターン601のエントリをチャンクパターン情報テーブル600から除外した後、S1206の処理に進む。
 S1206において、チャンクパターン解析モジュール221は、他のチャンクパターン601と同一のチャンクを含むチャンクパターン601を除外する。これは、異なる統合チャンク内に含まれる重複するチャンクの格納を行わないようにして、重複排除効率をより一層高めるための処理である。例えば、図6B下表において、チャンクパターン「1-2-3」と「1-5-6」とは同一のチャンク「1」を含む。よって、どちらかをチャンクパターン情報テーブル600から除外する。どちらのチャンクパターンを除外するかは、予め設定したルールに従い決定することができる。このルールは、例えば、「出現数603が低いほうを除外」、「長さ602が小さいほうを除外」というように設定することができる。チャンクパターン解析モジュール221は、同一チャンクを含むチャンクパターン601のエントリをチャンクパターン情報テーブル600から除外した後、S1207の処理に進む。
 S1207において、チャンクパターン解析モジュール221は、統合チャンク情報テーブル700を更新する。チャンクパターン解析モジュール221は、S1206の処理を実行後のチャンクパターン情報テーブル600に含まれるチャンクパターン601を統合するチャンクとして決定し、各チャンクパターン601に関する情報を統合チャンク情報テーブル700に新規登録する。その際、チャンクパターン解析モジュール221は、各チャンクパターン601に新たなチャンクID301を割り当て、統合チャンクID701に登録する。また、各統合チャンクID701で特定されるチャンクパターンを構成するチャンクID301をサブチャンクID702に、当該チャンクパターンの出現数を出現数703に、統合チャンクID701の新規登録を行った日時を更新日時704にそれぞれ登録する。
 以上説明したチャンクパターン解析処理によれば、ストレージ装置120への格納データをいったん分割して生成したチャンクを、より長い統合チャンクとして再構成することができる。ので、ストレージ装置120の格納効率を向上させることができ、またストレージ装置120からのデータの読み出し速度を向上させることができる。
 次に、図13を参照して、チャンク管理テーブル更新モジュール222の処理の流れを説明する。図13は、チャンク管理テーブル更新モジュール222が実行するデータ処理フローの一例を示している。チャンク管理テーブル更新モジュール222は、チャンクパターン解析モジュール221の処理が終わった直後、または、しばらく時間が経過した後に処理を開始させることができる。
 S1301において、チャンク管理テーブル更新モジュール222は、記憶装置123上のデータの再配置を行う。この処理は、統合チャンク情報テーブル700に含まれる統合チャンクID701に対応するエントリごとに以下の処理を行うことで実現する。まず、チャンク管理テーブル更新モジュール222は、統合チャンクに含まれるサブチャンクに対し、チャンク管理テーブル300を参照し、各サブチャンクのデータ保存先305を取得する。次に、チャンク管理テーブル更新モジュール222は、記憶装置123から各サブチャンクのデータを取得し、連結してメモリ132に一時的に保存する。次に、チャンク管理テーブル更新モジュール222は、連結したサブチャンクのデータを新たなチャンクとして、記憶装置123に書き込む。このとき、チャンク管理テーブル更新モジュール222は、書き込んだ位置を内部で保持しておく。最後に、チャンク管理テーブル更新モジュール222は、記憶装置123上のもとのサブチャンクのデータを消去する。チャンク管理テーブル更新モジュール222は、以上のデータ再配置処理を行った後、S1302の処理に進む。
 S1302において、チャンク管理テーブル更新モジュール222は、統合チャンクの属性情報をチャンク管理テーブル300に追加する。例として、図4Bに、統合チャンク「9」を新たにチャンク管理テーブル300に追加した後の状態を示している。ハッシュ値302には、登録する統合チャンクのデータに対して所定のハッシュ関数を用いて計算した値を登録する。チャンクサイズ303には、統合チャンク情報テーブル700の出現数703の値を登録する。保存先305には、S1301において、統合チャンクのデータを記憶装置123に書き込んだ位置を登録する。統合チャンクを追加した後、チャンク管理テーブル更新モジュール222は、統合チャンクに含まれるサブチャンクの保存先305を変更する。サブチャンクの保存先305は、統合チャンクの保存先305、統合チャンクの中のサブチャンクの順序、及び統合チャンクを構成するサブチャンクのサイズをもとに決定することができる。例えば、チャンク「3」は、チャンク「9」の保存先305から、チャンク「1」と「2」のデータ長分進めた位置で指定できる。チャンク管理テーブル更新モジュール222は、チャンク管理テーブル300を更新した後、S1303の処理に進む。
 次に、S1303において、チャンク管理テーブル更新モジュール222は、ファイル管理テーブル500の構成チャンクID505を統合チャンクで置換えて処理を終了する。図5Bに、ファイル名「sample1.txt」で特定されるファイルの構成チャンクID505である「1-2-3」を統合チャンク「9」で置換えた後のファイル管理テーブル500の状態を示している。
 以上説明したチャンク管理テーブル更新処理によれば、再構成された統合チャンクを用いてストレージ装置120へのデータ格納を行うので、ストレージ装置120の格納効率を向上させることができ、またストレージ装置120からのデータの読み出し速度を向上させることができる。
≪第2の実施形態≫
 次に、本発明の第2実施形態について説明する。上述した第1の実施形態では、標準重複排除機能部210のチャンキングモジュール211は、図8に例示するデータ処理フローのS802において、基本的に、サブチャンクを生成した時と同様のチャンキング方式でチャンキングを行う。仮に、ホストコンピュータ110がストレージ装置120に格納しようとするデータの特性等から、そのデータ内にはサブチャンクが単体で現れることはほとんどなく、統合チャンクとしてのみ現れることがあらかじめわかっている場合には、チャンキング方式を一時的に変更し、サブチャンクに分割することなくはじめから統合チャンクとして出力することができる。以下第2の実施形態でそのチャンキング方式について説明する。
 第2の実施形態に係る重複排除装置130は、基本的に第1の実施形態と同一の構成を有して、同様のデータ処理を実行する。ここでは、第2の実施形態の構成のうち、第1の実施形態と異なる部分のみを説明する。
 第2の実施形態では、第1の実施形態での構成とは異なるチャンク管理テーブル300(216)を使用する。図14A、図14Bを参照して、第2の実施形態に係るチャンク管理テーブル300の構成例について説明する。第2の実施形態に係るチャンク管理テーブル300は、第1実施形態にはなかったあらたな項目として、スキップサイズ1403を含む。スキップサイズ1403は、チャンキングモジュール211が、ホストコンピュータ110から受信した新規データをチャンクに分割する際に、分割位置検索処理をスキップすることができるようにあらかじめ設定したデータサイズを表す。具体的には、チャンキングモジュール211は、図8のS802において、ホストコンピュータ110から受信した新規データを先頭から順に走査していき、新規データをチャンクに分割するための分割位置を探す。その際、チャンキングモジュール211が、ある1つのチャンクを生成したとする。生成したチャンクが、チャンク管理テーブル216に登録されているチャンク(例えば「1」)と同一であると判定した場合、チャンキングモジュール211は、スキップサイズ1403の2.3KB分先に走査する位置を移動する。チャンク「1-2-3」が連続で現れる場合(この可能性は上記データ特性から高いと仮定される)、チャンキングモジュール211は、2.3KB分スキップ後の走査でチャンク「3」の終わりの区切り位置を発見する。その結果、チャンキングモジュールは、統合チャンクである「1-2-3」を分割したチャンクとして出力する。チャンク照合モジュール212は、図9のデータ処理フロー例において、S902でチャンク管理テーブル300と前記分割されたチャンクの照合を行い、チャンキングモジュール211が出力したチャンクが統合チャンク「9」と同一であることを判定する。
 第2の実施形態によれば、分割位置判定のスキップによるチャンキング処理の速度向上と、照合対象のチャンク数削減を実現することができる。本実施形態の構成は統合チャンクの長さが長いほど特に有効であり、チャンキング処理に要する時間をより短縮することにより、重複排除処理の所要時間を短縮することができる。
 以上説明した本実施形態の重複排除方法によれば、格納データの重複排除率を低下させることなくデータ復元処理に要する時間を短縮することができる。
 以上、本発明についてその実施形態に基づき詳細に説明したが、本発明はこれらの実施形態に制約されることはない。また、本発明の範囲には、請求の範囲に記載された発明の均等物も含まれる。
1 ストレージシステム、101 ネットワーク、110 ホストコンピュータ、111,131 CPU、112,132 メモリ、113,122,135 ネットワークインターフェース、121 ストレージ制御装置、123 記憶装置、124 ハードディスク、133 補助記憶装置、134 I/Oインターフェース、210 標準重複排除機能部、211 チャンキングモジュール、212 チャンク照合モジュール、213 チャンク登録モジュール、214 ファイル復元モジュール、215,500 ファイル管理テーブル、216,300 チャンク管理テーブル、220 チャンク統合機能部、220 チャンクパターン解析モジュール、222 チャンク管理テーブル更新モジュール、223,600 チャンクパターン情報テーブル、224,700 統合チャンク情報テーブル

Claims (17)

  1.  ストレージ装置に格納されるデータを構成する1のデータ断片と重複するデータ断片である重複データ断片を前記ストレージ装置の記憶領域から排除するための格納データの重複排除方法であって、
     前記ストレージ装置に格納しようとする前記データを前記データ断片に分割するステップと、
     前記データを分割後の前記データ断片の構成によって記録するステップと、
     前記データ断片について、同一の前記データ断片が存在するか判定するステップと、
     同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するステップと、
     前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するステップと、
     記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するステップと、
     検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するステップとを有する、格納データの重複排除方法。
  2.  請求項1に記載の格納データの重複排除方法であって、前記データ断片属性情報は当該データ断片について所定のハッシュ関数を使用して算出されたハッシュ値と当該データ断片の前記記憶領域における保存先情報とを含み、前記データ断片に重複データ断片が存在するかは、各データ断片について前記ハッシュ値を比較することで実行される、格納データの重複排除方法。
  3.  請求項2に記載の格納データの重複排除方法であって、前記統合データ断片に含まれている複数の前記データ断片について前記保存先情報を取得し、前記統合データ断片に含まれている前記データ断片が前記保存先情報に従って、前記ストレージ装置との前記記憶領域上で連続して格納されるように再配置する、格納データの重複排除方法。
  4.  請求項1に記載の格納データの重複排除方法であって、検出した前記繰り返しデータパターンの中に、同一の前記データ断片が複数含まれる場合、前記繰り返しデータパターンを分割して前記同一のデータ断片が含まれないようにする、格納データの重複排除方法。
  5.  請求項1に記載の格納データの重複排除方法であって、前記繰り返しデータパターンが所定の長さに満たない場合、又は前記繰り返しデータパターンの検出数が所定値に満たない場合、該当する繰り返しデータパターンを記録しない、格納データの重複排除方法。
  6.  請求項1に記載の格納データの重複排除方法であって、検出された複数の前記繰り返しデータパターンが、同一の前記データ断片を含んでいる場合、所定の規則により選択したいずれか1の前記繰り返しデータパターン以外の繰り返しデータパターンを記録しない、格納データの重複排除方法。
  7.  請求項1に記載の格納データの重複排除方法であって、前記データ断片を取得して連結する際に、前記ストレージ装置に対して書き込みあるいは読み出しされる前記データの区切り位置をまたいで前記繰り返しデータパターンを認識しない、格納データの重複排除方法。
  8.  請求項1に記載の格納データの重複排除方法であって、前記繰り返しデータパターンを検出する際に、すでに記録されている前記統合データ断片の長さより短い箇所に存在する前記データ断片の区切り位置は、前記繰り返しデータパターンの検出に関しては認識しないように構成されている、格納データの重複排除方法。
  9.  ストレージ装置に格納されるデータを構成する1のデータ断片と重複するデータ断片である重複データ断片を前記ストレージ装置の記憶領域から排除するための格納データの重複排除装置であって、プロセッサとメモリとを有し、それぞれが前記メモリ上で該当するプログラムを前記プロセッサが実行することにより実現される、
     前記ストレージ装置に格納しようとする前記データを前記データ断片に分割するデータ分割部と、
     前記データを分割後の前記データ断片の構成によって記録するデータ登録部と、
     前記データ断片について、同一の前記データ断片が存在するか判定し、同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するデータ照合部と、
     前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するデータ復元部と、
     記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するデータ解析部と、
     検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するデータ更新部とを有する、格納データの重複排除装置。
  10.  請求項9に記載の格納データの重複排除装置であって、前記データ断片属性情報は当該データ断片について所定のハッシュ関数を使用して算出されたハッシュ値と当該データ断片の前記記憶領域における保存先情報とを含み、前記データ断片に重複データ断片が存在するかは、各データ断片について前記ハッシュ値を比較することで実行される、格納データの重複排除装置。
  11.  請求項10に記載の格納データの重複排除装置であって、前記統合データ断片に含まれている複数の前記データ断片について前記保存先情報を取得し、前記統合データ断片に含まれている前記データ断片が前記保存先情報に従って、前記ストレージ装置との前記記憶領域上で連続して格納されるように再配置する、格納データの重複排除装置。
  12.  請求項9に記載の格納データの重複排除装置であって、検出した前記繰り返しデータパターンの中に、同一の前記データ断片が複数含まれる場合、前記繰り返しデータパターンを分割して前記同一のデータ断片が含まれないようにする、格納データの重複排除装置。
  13.  請求項9に記載の格納データの重複排除装置であって、前記繰り返しデータパターンが所定の長さに満たない場合、又は前記繰り返しデータパターンの検出数が所定値に満たない場合、該当する繰り返しデータパターンを記録しない、格納データの重複排除装置。
  14.  請求項9に記載の格納データの重複排除装置であって、検出された複数の前記繰り返しデータパターンが、同一の前記データ断片を含んでいる場合、所定の規則により選択したいずれか1の前記繰り返しデータパターン以外の繰り返しデータパターンを記録しない、格納データの重複排除装置。
  15.  請求項10に記載の格納データの重複排除装置であって、前記データ断片を取得して連結する際に、前記ストレージ装置に対して書き込みあるいは読み出しされる前記データの区切り位置をまたいで前記繰り返しデータパターンを認識しない、格納データの重複排除装置。
  16.  請求項9に記載の格納データの重複排除装置であって、前記繰り返しデータパターンを検出する際に、すでに記録されている前記統合データ断片の長さより短い箇所に存在する前記データ断片の区切り位置は、前記繰り返しデータパターンの検出に関しては認識しないように構成されている、格納データの重複排除装置。
  17.  ストレージ装置に格納されるデータを構成する1のデータ断片と重複するデータ断片である重複データ断片を前記ストレージ装置の記憶領域から排除するために使用される重複排除プログラムであって、
     前記ストレージ装置に格納しようとする前記データを前記データ断片に分割するステップと、
     前記データを分割後の前記データ断片の構成によって記録するステップと、
     前記データ断片について、同一の前記データ断片が存在するか判定するステップと、
     同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するステップと、
     前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するステップと、
     記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するステップと、
     検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するステップとをコンピュータに実行させる重複排除プログラム。
PCT/JP2011/073085 2011-10-06 2011-10-06 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム WO2013051129A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US14/349,561 US9542413B2 (en) 2011-10-06 2011-10-06 Stored data deduplication method, stored data deduplication apparatus, and deduplication program
JP2013537331A JP5735654B2 (ja) 2011-10-06 2011-10-06 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム
PCT/JP2011/073085 WO2013051129A1 (ja) 2011-10-06 2011-10-06 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/073085 WO2013051129A1 (ja) 2011-10-06 2011-10-06 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム

Publications (1)

Publication Number Publication Date
WO2013051129A1 true WO2013051129A1 (ja) 2013-04-11

Family

ID=48043321

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/073085 WO2013051129A1 (ja) 2011-10-06 2011-10-06 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム

Country Status (3)

Country Link
US (1) US9542413B2 (ja)
JP (1) JP5735654B2 (ja)
WO (1) WO2013051129A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014136183A1 (ja) * 2013-03-04 2014-09-12 株式会社日立製作所 ストレージ装置及びデータ管理方法
WO2015068233A1 (ja) * 2013-11-07 2015-05-14 株式会社日立製作所 ストレージシステム
KR20160011212A (ko) * 2013-05-17 2016-01-29 아브 이니티오 테크놀로지 엘엘시 데이터 운영을 위한 메모리 및 스토리지 공간 관리
WO2017141315A1 (ja) * 2016-02-15 2017-08-24 株式会社日立製作所 ストレージ装置

Families Citing this family (152)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11275509B1 (en) 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US8732426B2 (en) 2010-09-15 2014-05-20 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8468318B2 (en) 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US8589655B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8719540B1 (en) 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
US10623386B1 (en) 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US11032259B1 (en) 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US9063967B2 (en) 2013-01-10 2015-06-23 Pure Storage, Inc. Performing copies in a storage system
US11733908B2 (en) 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US10908835B1 (en) 2013-01-10 2021-02-02 Pure Storage, Inc. Reversing deletion of a virtual machine
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
US9697226B1 (en) * 2013-06-28 2017-07-04 Sanmina Corporation Network system to distribute chunks across multiple physical nodes
US20150006846A1 (en) * 2013-06-28 2015-01-01 Saratoga Speed, Inc. Network system to distribute chunks across multiple physical nodes with disk support for object storage
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
JP6260359B2 (ja) * 2014-03-07 2018-01-17 富士通株式会社 データ分割処理プログラム,データ分割処理装置及びデータ分割処理方法
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
CN105446964B (zh) * 2014-05-30 2019-04-26 国际商业机器公司 用于文件的重复数据删除的方法及装置
US9779268B1 (en) 2014-06-03 2017-10-03 Pure Storage, Inc. Utilizing a non-repeating identifier to encrypt data
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
US10496556B1 (en) 2014-06-25 2019-12-03 Pure Storage, Inc. Dynamic data protection within a flash storage system
US10296469B1 (en) 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9864761B1 (en) 2014-08-08 2018-01-09 Pure Storage, Inc. Read optimization operations in a storage system
US10430079B2 (en) 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system
US9753955B2 (en) 2014-09-16 2017-09-05 Commvault Systems, Inc. Fast deduplication data verification
US10164841B2 (en) 2014-10-02 2018-12-25 Pure Storage, Inc. Cloud assist for storage systems
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US9727485B1 (en) 2014-11-24 2017-08-08 Pure Storage, Inc. Metadata rewrite and flatten optimization
US9773007B1 (en) 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US9588842B1 (en) 2014-12-11 2017-03-07 Pure Storage, Inc. Drive rebuild
US9864769B2 (en) * 2014-12-12 2018-01-09 Pure Storage, Inc. Storing data utilizing repeating pattern detection
US10545987B2 (en) 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
US10296354B1 (en) 2015-01-21 2019-05-21 Pure Storage, Inc. Optimized boot operations within a flash storage array
US11947968B2 (en) 2015-01-21 2024-04-02 Pure Storage, Inc. Efficient use of zone in a storage device
US10437784B2 (en) * 2015-01-30 2019-10-08 SK Hynix Inc. Method and system for endurance enhancing, deferred deduplication with hardware-hash-enabled storage device
US9710165B1 (en) 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
US9921910B2 (en) 2015-02-19 2018-03-20 Netapp, Inc. Virtual chunk service based data recovery in a distributed data storage system
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9639274B2 (en) 2015-04-14 2017-05-02 Commvault Systems, Inc. Efficient deduplication database validation
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US11294588B1 (en) * 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10083185B2 (en) 2015-11-09 2018-09-25 International Business Machines Corporation Enhanced data replication
US10013201B2 (en) 2016-03-29 2018-07-03 International Business Machines Corporation Region-integrated data deduplication
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US10452290B2 (en) 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11403019B2 (en) 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
US12045487B2 (en) 2017-04-21 2024-07-23 Pure Storage, Inc. Preserving data deduplication in a multi-tenant storage system
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10599355B2 (en) 2017-05-12 2020-03-24 Seagate Technology Llc Data compression with redundancy removal across boundaries of compression search engines
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10776202B1 (en) 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10740306B1 (en) * 2017-12-04 2020-08-11 Amazon Technologies, Inc. Large object partitioning system
US11144638B1 (en) 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
US10970395B1 (en) 2018-01-18 2021-04-06 Pure Storage, Inc Security threat monitoring for a storage system
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11934322B1 (en) 2018-04-05 2024-03-19 Pure Storage, Inc. Multiple encryption keys on storage drives
CN110389714B (zh) * 2018-04-20 2022-12-23 伊姆西Ip控股有限责任公司 用于数据输入输出的方法、装置和计算机存储介质
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US11153094B2 (en) * 2018-04-27 2021-10-19 EMC IP Holding Company LLC Secure data deduplication with smaller hash values
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10678433B1 (en) 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US20190361697A1 (en) * 2018-05-22 2019-11-28 Pure Storage, Inc. Automatically creating a data analytics pipeline
US10678436B1 (en) 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US10776046B1 (en) 2018-06-08 2020-09-15 Pure Storage, Inc. Optimized non-uniform memory access
US11281577B1 (en) 2018-06-19 2022-03-22 Pure Storage, Inc. Garbage collection tuning for low drive wear
US11869586B2 (en) 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
US11194759B2 (en) 2018-09-06 2021-12-07 Pure Storage, Inc. Optimizing local data relocation operations of a storage device of a storage system
US11133076B2 (en) 2018-09-06 2021-09-28 Pure Storage, Inc. Efficient relocation of data between storage devices of a storage system
US10846216B2 (en) 2018-10-25 2020-11-24 Pure Storage, Inc. Scalable garbage collection
US11113409B2 (en) 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11588633B1 (en) 2019-03-15 2023-02-21 Pure Storage, Inc. Decommissioning keys in a decryption storage system
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11397674B1 (en) 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US10990480B1 (en) 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US12001355B1 (en) 2019-05-24 2024-06-04 Pure Storage, Inc. Chunked memory efficient storage data transfers
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US10929046B2 (en) 2019-07-09 2021-02-23 Pure Storage, Inc. Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11294871B2 (en) 2019-07-19 2022-04-05 Commvault Systems, Inc. Deduplication system without reference counting
US11086713B1 (en) 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system
US11963321B2 (en) 2019-09-11 2024-04-16 Pure Storage, Inc. Low profile latching mechanism
US11403043B2 (en) 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US12050689B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Host anomaly-based generation of snapshots
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US12079356B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Measurement interval anomaly detection-based generation of snapshots
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US12067118B2 (en) 2019-11-22 2024-08-20 Pure Storage, Inc. Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system
US12079333B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Independent security threat detection and remediation by storage systems in a synchronous replication arrangement
US12079502B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Storage element attribute-based determination of a data protection policy for use within a storage system
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US12050683B2 (en) * 2019-11-22 2024-07-30 Pure Storage, Inc. Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
JP7476715B2 (ja) * 2020-08-07 2024-05-01 富士通株式会社 情報処理装置及び重複率見積もりプログラム
CN113885785B (zh) * 2021-06-15 2022-07-26 荣耀终端有限公司 一种数据去重方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008070484A2 (en) * 2006-12-01 2008-06-12 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
WO2009087028A1 (en) * 2008-01-04 2009-07-16 International Business Machines Corporation Backing up a de-duplicated computer file-system of a computer system
US20090193219A1 (en) * 2008-01-29 2009-07-30 Hitachi, Ltd. Storage subsystem
US20090313248A1 (en) * 2008-06-11 2009-12-17 International Business Machines Corporation Method and apparatus for block size optimization in de-duplication

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080270436A1 (en) * 2007-04-27 2008-10-30 Fineberg Samuel A Storing chunks within a file system
US7567188B1 (en) * 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US8140491B2 (en) * 2009-03-26 2012-03-20 International Business Machines Corporation Storage management through adaptive deduplication
US10394757B2 (en) * 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008070484A2 (en) * 2006-12-01 2008-06-12 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
WO2009087028A1 (en) * 2008-01-04 2009-07-16 International Business Machines Corporation Backing up a de-duplicated computer file-system of a computer system
US20090193219A1 (en) * 2008-01-29 2009-07-30 Hitachi, Ltd. Storage subsystem
US20090313248A1 (en) * 2008-06-11 2009-12-17 International Business Machines Corporation Method and apparatus for block size optimization in de-duplication

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014136183A1 (ja) * 2013-03-04 2014-09-12 株式会社日立製作所 ストレージ装置及びデータ管理方法
KR20160011212A (ko) * 2013-05-17 2016-01-29 아브 이니티오 테크놀로지 엘엘시 데이터 운영을 위한 메모리 및 스토리지 공간 관리
CN105556474A (zh) * 2013-05-17 2016-05-04 起元科技有限公司 管理数据操作的存储器和存储空间
JP2016530584A (ja) * 2013-05-17 2016-09-29 アビニシオ テクノロジー エルエルシー データ操作のための、メモリ及びストレージ空間の管理
CN105556474B (zh) * 2013-05-17 2019-04-30 起元科技有限公司 管理数据操作的存储器和存储空间
KR102201510B1 (ko) 2013-05-17 2021-01-11 아브 이니티오 테크놀로지 엘엘시 데이터 운영을 위한 메모리 및 스토리지 공간 관리
WO2015068233A1 (ja) * 2013-11-07 2015-05-14 株式会社日立製作所 ストレージシステム
US9720608B2 (en) 2013-11-07 2017-08-01 Hitachi, Ltd. Storage system
WO2017141315A1 (ja) * 2016-02-15 2017-08-24 株式会社日立製作所 ストレージ装置
JPWO2017141315A1 (ja) * 2016-02-15 2018-05-31 株式会社日立製作所 ストレージ装置
US10592150B2 (en) 2016-02-15 2020-03-17 Hitachi, Ltd. Storage apparatus

Also Published As

Publication number Publication date
US20140229452A1 (en) 2014-08-14
JP5735654B2 (ja) 2015-06-17
JPWO2013051129A1 (ja) 2015-03-30
US9542413B2 (en) 2017-01-10

Similar Documents

Publication Publication Date Title
JP5735654B2 (ja) 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム
US9633065B2 (en) Efficient data rehydration
US8639669B1 (en) Method and apparatus for determining optimal chunk sizes of a deduplicated storage system
US8712963B1 (en) Method and apparatus for content-aware resizing of data chunks for replication
US9880759B2 (en) Metadata for data storage array
CN104978151B (zh) 基于应用感知的重复数据删除存储系统中的数据重构方法
JP5878548B2 (ja) 重複排除ストレージ・システム、その内部の合成バックアップを容易にする方法、及び、プログラム
US9514138B1 (en) Using read signature command in file system to backup data
JP6495568B2 (ja) 増分sqlサーバデータベースバックアップを実行する方法、コンピュータ可読記憶媒体およびシステム
JP5434705B2 (ja) ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
US8315985B1 (en) Optimizing the de-duplication rate for a backup stream
CN107229420B (zh) 数据存储方法、读取方法、删除方法和数据操作系统
US9665306B1 (en) Method and system for enhancing data transfer at a storage system
JP6598996B2 (ja) データ準備のためのシグニチャベースのキャッシュ最適化
JP5719037B2 (ja) ストレージ装置及び重複データ検出方法
KR20170054299A (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
WO2017042978A1 (ja) 計算機システム、ストレージ装置、及びデータの管理方法
US8914325B2 (en) Change tracking for multiphase deduplication
US9170747B2 (en) Storage device, control device, and control method
JP2018530838A (ja) データ準備のためのキャッシュ最適化
US11593312B2 (en) File layer to block layer communication for selective data reduction
KR101652436B1 (ko) 분산파일 시스템에서의 중복 제거 장치 및 방법
CN106991020B (zh) 对图像级备份的文件系统对象的有效处理
JPWO2007099636A1 (ja) ファイルシステム移行方法、ファイルシステム移行プログラム及びファイルシステム移行装置
US20170351608A1 (en) Host device

Legal Events

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

Ref document number: 11873778

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013537331

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14349561

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 11873778

Country of ref document: EP

Kind code of ref document: A1