[go: up one dir, main page]

WO2015040711A1 - Storage device, method for controlling data in storage device, and storage system - Google Patents

Storage device, method for controlling data in storage device, and storage system Download PDF

Info

Publication number
WO2015040711A1
WO2015040711A1 PCT/JP2013/075233 JP2013075233W WO2015040711A1 WO 2015040711 A1 WO2015040711 A1 WO 2015040711A1 JP 2013075233 W JP2013075233 W JP 2013075233W WO 2015040711 A1 WO2015040711 A1 WO 2015040711A1
Authority
WO
WIPO (PCT)
Prior art keywords
sub
block
blocks
storage device
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2013/075233
Other languages
French (fr)
Japanese (ja)
Inventor
孝章 佐々木
英寿 有川
直光 田代
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Ltd
Hitachi Information and Telecommunication Engineering Ltd
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 Hitachi Ltd, Hitachi Information and Telecommunication Engineering Ltd filed Critical Hitachi Ltd
Priority to PCT/JP2013/075233 priority Critical patent/WO2015040711A1/en
Publication of WO2015040711A1 publication Critical patent/WO2015040711A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 control of data for storing data in a storage device.
  • the computer system includes, for example, a storage device and a computer such as a host computer connected to the storage device via a communication network.
  • the storage device includes, for example, a plurality of HDDs (Hard Disk Drives) as storage devices for storing data.
  • HDDs Hard Disk Drives
  • Data amount reduction processing includes, for example, file compression processing (Compression) and deduplication processing (De-duplication).
  • file compression processing reduces the data capacity by aggregating data segments with the same content in one file.
  • deduplication processing reduces the data capacity by aggregating data segments of the same content detected not only within one file but also between files.
  • unit data as a unit of deduplication processing is referred to as “chunk”.
  • Patent Documents 1 and 2 when content is stored in a storage device from a host computer via a communication network, the host computer determines whether each chunk is stored in the storage device in advance, and is not stored. It is described that only chunks are transmitted to the storage apparatus.
  • Duplicate determination may be performed by the host computer or the storage device.
  • Patent Document 1 describes a method in which a storage apparatus performs duplication determination, the host computer acquires the duplication determination result from the storage apparatus, and stores only new chunks in the storage apparatus.
  • the host computer makes an inquiry for duplication determination to the storage apparatus for all chunks. For this reason, the host computer needs to transmit information necessary for duplication determination to the storage apparatus and receive the duplication determination result from the storage apparatus. Compared with a method in which duplication determination is performed only by the host computer, the performance is reduced by the round trip of the communication between the host computer and the storage apparatus.
  • Patent Document 2 describes a method of performing duplication determination by a host computer and transmitting only chunks not stored in the storage apparatus to the storage apparatus according to the result.
  • the storage apparatus includes a storage device and a controller connected to the storage device and the computer.
  • the controller receives a plurality of sub-blocks obtained based on the division of the block of data from the computer and stores them in the storage device, and stores storage information that associates the blocks with the plurality of stored sub-blocks.
  • the controller receives the target information indicating the sub-block in the block from the computer, identifies the block to which the sub-block indicated in the target information belongs based on the stored information, and stored based on the stored information Duplicate information indicating a plurality of sub-blocks is generated and transmitted to the computer.
  • the controller receives, from the computer, an update subblock that is a subblock that is not indicated in the duplication information among a plurality of subblocks obtained by dividing the update data of the block.
  • FIG. 1 illustrates a storage system according to an embodiment.
  • FIG. 2 shows a configuration example of software according to the embodiment.
  • FIG. 3 shows an example of the chunk index table 1300.
  • FIG. 4 shows an example of the duplicate information list 1400.
  • FIG. 5 shows an example of the content management table 1500.
  • FIG. 6 shows an example of the chunk data set index table 1600.
  • FIG. 7 is a schematic diagram for explaining deduplication processing according to the embodiment.
  • FIG. 8 shows an example of a data structure in the storage system.
  • FIG. 9 illustrates an example of backup processing according to the embodiment.
  • FIG. 10 shows details of the information creation process.
  • xxx table various types of information may be described using the expression “xxx table”, but the various types of information may be expressed using a data structure other than a table. In order to show that it does not depend on the data structure, the “xxx table” can be called “xxx information”.
  • program and “software” may be used as the subject. However, since the program and software are executed by the processor to perform processing determined using the memory and the communication port, the processor is used. It may be a subject explanation.
  • management computer may be composed of one or more computers.
  • the logically collected data recognized from the host device with respect to the backup data is referred to as “content”.
  • the contents include files that are a collection of normal files such as archive files, backup files, and virtual volume files.
  • a data segment that is a unit of deduplication processing in content is called “chunk”.
  • a format for storing several chunks in the storage device is called “chunk data set”.
  • One chunk data set is created so that chunks that are highly related to each other are aggregated. For example, by setting a predetermined number of chunks or data capacity in advance for each chunk data set and collecting chunks generated from content until the chunk data set is full, the chunk data set considering the locality of the data Can be generated.
  • data is stored in the chunk data set regardless of the content delimiter, but if the chunk data set storing the first chunk of a certain content is specified, the same chunk data is also applied to subsequent chunks. It is likely that it can be obtained from the set.
  • the content stored by one process is highly likely to be stored in the same chunk data set, the difference data resulting from the subsequent update is highly likely to be stored in a different chunk data set. That is, as the number of updates increases, there is a higher possibility that chunks constituting one content are distributed to a plurality of chunk data sets.
  • Message digest is a technique for outputting a fixed-length digest in response to an arbitrary length of data input.
  • the output result of the message digest is referred to as a fingerprint (hereinafter referred to as FP) or a hash value.
  • FP is a hash value calculated using an arbitrary hash function.
  • SHA256 has extremely high randomness and is highly likely to have a unique hash value for each chunk. Moreover, it is sufficient to replace the FP with information that can identify the chunk, such as the chunk itself or another identifier.
  • FIG. 1 shows a storage physical configuration example according to the embodiment.
  • the storage is composed of a host computer 10 and a storage device 30.
  • the host computer 10 and the storage device 30 are connected to be communicable via a predetermined communication network (for example, SAN (Storage Area Network) 2).
  • SAN Storage Area Network
  • the host computer 10 has a communication interface, a storage device, and a processor connected to them.
  • An example of the processor is a CPU (Central Processing Unit) 11.
  • An example of the storage device is a memory 12.
  • An example of the communication interface is an HBA (Host Bus Adapter) 13.
  • the memory 12 stores information and programs for managing the storage device 30.
  • the CPU 11 implements various functions by executing a program stored in the memory 12.
  • the HBA 13 is an interface device for connecting the host computer 10 and each node 31.
  • the node 31 in this embodiment is a storage controller.
  • the storage device 30 includes a storage controller 31 and a storage unit 32.
  • the storage unit 32 includes a plurality of storage devices 321.
  • the storage controller 31 has a communication interface, a storage device, and a processor connected to them.
  • Examples of communication interfaces include FE-I / F (Front End Inter / Face) 314 and BE-I / F (Back End Inter / Face) 315.
  • Examples of the storage device include a control memory 312 and a cache memory 313.
  • An example of the processor is a CPU 311.
  • the control memory 312 stores information and a program for controlling the storage unit 32.
  • the CPU 311 realizes various functions by executing a program stored in the control memory 312.
  • the cache memory 313 temporarily stores data written to the storage unit 32 and data read from the storage unit 32.
  • the FE-I / F 314 is an interface device for communicating with an external device existing at the front end of the host computer 10 or the like.
  • the BE-I / F 315 is an interface device for the storage controller 31 to communicate with a storage device in the storage unit 32.
  • the storage unit 32 includes a plurality of HDDs (Hard Disk Drives) 321.
  • HDDs Hard Disk Drives
  • another type of storage device nonvolatile storage device
  • an FM (Flash Memory) device such as an SSD (Solid State Device)
  • the storage unit 32 may have different types of storage devices.
  • an RG RAID group
  • the RG stores data according to a predetermined RAID level.
  • the RG is composed of a plurality of HDDs 321.
  • FIG. 2 shows a configuration example of software according to the embodiment.
  • the host computer 10 stores the primary deduplication processing software 121, the duplication information list 1400A, and the content management table 1500A in the memory 12.
  • the primary deduplication processing software 121 executes data backup processing in accordance with an instruction from a user or a predetermined schedule.
  • the duplicate information list 1400A is created by the storage apparatus 30 (specifically, the secondary deduplication processing software 3121) and transmitted from the storage apparatus 30.
  • the content management table 1500A is created by the host computer 10 (specifically, the primary deduplication processing software 121) based on the duplication information list 1400A. Details of the duplicate information list 1400A and the content management table 1500A will be described later.
  • the storage device 30 stores the secondary deduplication processing software 3121, the file system management unit 3122, the chunk index table 1300, the duplicate information list 1400B, the content management table 1500B, and the chunk data set index table 1600 in the control memory 312. Yes.
  • the secondary deduplication processing software 3121 performs deduplication processing on the data transmitted from the primary deduplication processing software 121 on the host computer 10 side.
  • the file system management unit 3122 manages data stored in the storage unit 32.
  • the chunk index table 1300, the duplicate information list 1400, and the chunk data set index table 1600 are created by the storage device 30 (specifically, the secondary deduplication processing software 3121).
  • the duplicate information list 1400B is created by the storage apparatus 30 based on the chunk index table 1300 and the content management table 1500B.
  • the content management table 1500B is created by the host computer 10 (specifically, the primary deduplication processing software 121) and transmitted from the host computer 10.
  • the storage apparatus 30 stores a content management table corresponding to all contents stored in the storage apparatus 30 in the control memory 31.
  • the host computer 10 temporarily stores only the content management table corresponding to the content to be backed up. Therefore, the content management table stored in the memory 12 of the host computer 10 is the content management table 1500A, and the content management table stored in the control memory 31 of the storage device 30 is the content management table 1500B. did.
  • chunk index table 1300 Details of the chunk index table 1300, the duplicate information list 1400, the content management table 1500 (A, B), and the chunk data set index table 1600 will be described later.
  • FIG. 3 shows an example of the chunk index table 1300.
  • the chunk index table 1300 is created by the storage apparatus 30 based on an instruction from the host computer 10 (details will be described later).
  • the chunk index table 1300 is stored in the control memory 312 of the controller 31 included in the storage device 30.
  • the chunk index table 1300 is used for the storage apparatus 30 to specify the content including the chunk with respect to the chunk transmitted from the host computer 10.
  • the chunk index table 1300 has an entry for each chunk. Each entry stores a hash value 1301, a content ID 1302, and an offset 1303 in association with each other.
  • the hash value 1301 indicates the hash value of the chunk.
  • the content ID 1302 is information for identifying the content including the chunk.
  • An offset 1303 indicates the position of the chunk in the content.
  • FIG. 4 shows an example of the duplicate information list 1400.
  • the duplicate information list 1400 is created by the storage apparatus 30 (details will be described later).
  • the duplicate information list 1400 is stored in the control memory 312 of the controller 31 and the memory 12 of the host computer 10 that the storage apparatus 30 has.
  • the duplication information list 1400 is created by the storage device 30 in order to cause the host computer 10 to perform part of the duplication determination process, and is transmitted from the storage device 30 to the host computer 10.
  • the duplicate information list 1400 is created for each content.
  • content refers to an archive file including a plurality of files.
  • the duplicate information list 1400 has an entry for each chunk. Each entry has a hash value 1401, a chunk length 1402, and a chunk data set ID 1403.
  • a hash value 1401 indicates the hash value of the chunk.
  • the chunk length 1402 indicates the data length of the chunk.
  • the chunk data set ID 1403 is information for identifying the chunk data set in which the chunk is stored.
  • FIG. 5 shows an example of the content management table 1500.
  • the content management table 1500 associates the chunk stored for each chunk data set with the content. For example, when reading content in response to a read request from the host computer 10, the storage apparatus 30 specifies and reads a chunk data set that stores chunks included in the content based on the content management table 1500.
  • the content management table 1500 is stored in the control memory 312 of the controller 31 and the memory 12 of the host computer 10 that the storage apparatus 30 has.
  • the storage device 30 creates a content management table 1500B for each content.
  • the content management table 1500B of a certain content has a file name including the content ID of the content, and has an entry for each chunk in the content.
  • Each entry stores a content ID 1501, a hash value 1502, a chunk data set ID 1503, a content offset 1504, and a chunk length 1505 in association with each other.
  • the content ID 1501 is information for identifying the content.
  • a hash value 1502 indicates a hash value of the chunk.
  • the chunk data set ID 1503 is information for identifying the chunk data set in which the chunk is stored.
  • the content offset 1504 indicates the position of the chunk in specific content.
  • the chunk length 1505 indicates the data length of the chunk.
  • FIG. 6 shows an example of the chunk data set index table 1600.
  • Storage device 30 manages chunks for each chunk data set. That is, the chunk data set index table 1600 is used by the storage apparatus 30 to manage chunks for each chunk data set.
  • the chunk data set index table 1600 is stored in the control memory 312 of the controller 31 included in the storage device 30.
  • the storage apparatus 30 creates a chunk data set index table 1600 for each chunk data set.
  • the chunk data set index table 1600 of a certain chunk data set has a file name including the chunk data set ID of the chunk data set, and has an entry for each chunk in the chunk data set. Each entry has a hash value 1601, a chunk data set offset 1602, and a chunk length 1603.
  • a hash value 1601 indicates the hash value of the chunk.
  • the chunk data set offset 1602 indicates the position of the chunk in the chunk data set.
  • the chunk length 1603 indicates the data length of the chunk.
  • FIG. 7 is a schematic diagram for explaining an overview of the deduplication processing according to the embodiment.
  • the outline of the deduplication process will be described in the order of the processes S1 to S14. It is assumed that the storage system is in the following state before the processes S1 to S14 are performed.
  • the storage device 30 stores a chunk group “a, b, c, d, e” generated from the pre-update content F1.
  • the representative chunk of the chunk group “a, b, c, d, e” is “a”.
  • the chunk index table 1300 including the representative chunk “a” is stored in the control memory 31 of the storage device 30.
  • a content management table 1500 related to the content F 1 is created by the host computer 10 and stored in the control memory 31 of the storage device 30.
  • the updated content of the content F1 is input, and the chunk group generated from the updated content is “a, b, c, d1, e”.
  • the host computer 10 divides the update content F1 into a plurality of data segments. Further, the host computer 10 divides the update content F1 into a plurality of unit data.
  • the host computer 10 recognizes unit data by dividing the content from the top into predetermined data sizes (for example, 64 MB).
  • the unit data may be a file.
  • both the delimiter for each predetermined data size and the delimiter for the file may be used as a unit data delimiter.
  • the size of the data segment is not a fixed size, and may be variable according to the data characteristics.
  • the host computer 10 generates a chunk by compressing the data segment, and determines a chunk (hereinafter, representative chunk) corresponding to the data segment representing each unit data.
  • the representative chunk can be, for example, a chunk corresponding to the first data segment after the division when the content is divided into unit data. In this example, the representative chunk is “a”. Further, the host computer 10 calculates the hash values of all the generated chunks as the first calculated hash value.
  • the duplicate information list 1400A is empty.
  • the host computer 10 refers to the duplicate information list 1400A and recognizes that the duplicate information list 1400A is empty.
  • the contents of the duplicate information list 1400 stored in the host computer 10 and the storage device 30 may be different. Therefore, in the following description, the duplicate information list stored only in the host computer 10 is referred to as the duplicate information list 1400A, and the duplicate information list 1400A updated by the storage apparatus 30 is represented as the duplicate information list 1400B. is there.
  • the storage apparatus 30 calculates the hash value of the chunk received from the host computer 10 as the second calculated hash value, and determines whether the second calculated hash value exists in the chunk index table 1300. If the chunk index table 1300 exists, the storage apparatus 30 refers to the chunk index table 1300 to identify the content ID 1302 corresponding to the hash value 1301 that matches the second calculated hash value.
  • the specified content ID indicates the content F1. That is, the received chunk a is a representative chunk of the content F1 stored in the storage device 30.
  • the storage device 30 identifies the content management table 1500B corresponding to the identified content ID, and refers to the identified content management table 1500B to identify all chunks included in the identified content.
  • the storage apparatus 30 creates a duplicate information list 1400B including the hash value 1502 of the identified chunk, and transmits the created duplicate information list 1400B to the host computer 10.
  • the duplicate information list 1400B is created for each content.
  • the duplicate information list 1400B includes hash values of “a, b, c, d, e”.
  • the deduplication list 1400B to be transmitted includes the hash values of “b, c, d, e” and does not have to include the hash value of “a” that has already been received by the storage apparatus.
  • the host computer 10 uses the received duplicate information list 1400B to determine whether a chunk other than the representative chunk that constitutes the update content exists in the duplicate information list. Specifically, the host computer 10 determines whether or not the first calculation hash value of a chunk other than the representative chunk exists in the duplicate information list 1400B.
  • the hash value of the chunk calculated by the host computer 10 is referred to as a first calculated hash value
  • the hash value of the chunk calculated by the storage device 30 is referred to as a second calculated hash value.
  • the functions used for calculating the first calculated hash value and the second calculated hash value are the same.
  • the host computer 10 determines that the hash values “b” and “c” exist in the duplicate information list 1400B. Chunks “b” and “c” having hash values in the duplicate information list 1400 are not transmitted to the storage apparatus 30 because the chunks exist in the storage apparatus 30.
  • the host computer 10 determines whether or not the hash values of the remaining chunks that constitute the update content exist in the duplicate information list 1400B. Here, the host computer 10 determines that the hash value of the chunk “d1” does not exist in the duplicate information list 1400A.
  • the host computer 10 transmits the chunk “d1” that has a high possibility that no chunk exists in the storage apparatus 30 to the storage apparatus 30.
  • the storage apparatus 30 calculates the hash value of “d1” to obtain the second calculated hash value, and determines whether or not it exists in the chunk index table 1300. Since the second calculated hash value of “d1” is not the hash value of the representative chunk, it does not exist in the chunk index table 1300. Therefore, the storage apparatus 30 refers to the chunk data set index table 1600 and determines whether or not the second calculated hash value “d1” exists. If not, the storage apparatus 30 stores the second calculated hash value of “d1” in the chunk data set index table 1600.
  • the storage device 30 generates a new chunk data set in the storage unit 32 and stores the chunk “d1” in the chunk data set.
  • the storage apparatus 30 transmits the chunk data set ID of the chunk data set storing “d1” to the host computer 10.
  • the host computer 10 can create a content management table 1500A related to the content including the received chunk data set ID.
  • the host computer 10 determines whether or not the hash values of the remaining chunks that constitute the update content exist in the duplicate information list 1400B. Here, the host computer 10 determines that “e” exists in the duplicate information list 1400B. The “e” existing in the duplicate information list 1400B is not transmitted to the storage device 30.
  • the host computer 10 performs duplication determination processing on all the chunks constituting the update content, and then generates the content management table 1500A for the update content based on the information received from the storage device 30, and the generated content
  • the management table 1500A is transmitted to the storage device 30.
  • the generated content management table 1500A indicates that the updated content includes the chunk group “a, b, c, d1, e”.
  • the storage device 30 receives the content management table 1500A of the updated content, and replaces the content management table 1500B of the content before update stored in the control memory 31 with the received content management table 1500A.
  • the deduplication list 1400 based on the latest content data can be created in the next deduplication process.
  • the match rate between the chunks constituting the new update content of the host computer 10 and the chunks included in the latest deduplication list 1400 transmitted from the storage apparatus 30 increases, and the host apparatus 10 transfers to the storage apparatus 30. And the number of chunks to be sent can be reduced.
  • the storage apparatus 30 newly associates the updated representative chunk “a1” with the new content ID 1302, registers it in the chunk index table 1300, and generates a new content management table 1500B corresponding to the content ID. (Refer to the dotted frame in FIG. 7).
  • FIG. 9 shows an example of backup processing according to the embodiment.
  • the primary deduplication processing software 121 (hereinafter, software 121) of the host computer 10 divides the content to be backed up into data segments (S901).
  • the software 121 sequentially selects the divided data segments, and executes S902 to S909 for the selected data segments.
  • the software 121 generates a chunk by compressing the selected data segment and sets it as a target chunk (S902).
  • the software 121 acquires the length of the target chunk, further calculates the hash value of the target chunk, and sets it as the first calculated hash value (S903).
  • the software 121 determines whether or not the first calculated hash value exists in the duplicate information list 1400A based on the length of the target chunk acquired in S903, the first calculated hash value of the target chunk, and the like (S904). ).
  • the software 121 acquires the chunk data set ID 1403 associated with the first calculated hash value from the duplicate information list 1400A (S905). ).
  • the software 121 sets the hash value of the target chunk, the chunk data set ID associated with the hash value, and the length of the target chunk to the hash value 1502, the chunk data set ID 1503, and the chunk length 1505 in the content management table 1500. Each is stored (S909).
  • the software 121 transmits the content management table 1500A to the storage device 30 (S910).
  • the storage apparatus 30 receives the content management table 1500A from the host computer 10, and replaces the content management table 1500B of the backup target content in the control memory 312 with the received content management table A (S911).
  • the software 121 transmits the target chunk to the storage device 30 (S906).
  • the storage apparatus 30 performs information creation processing for creating the duplicate information list 1400B and the chunk index table 1300 based on the target chunk transmitted from the software 121 in S906. Details of this processing will be described with reference to FIG. 10 (S907).
  • the software 121 receives the chunk data set ID of the target chunk from the storage device 30 (S908). Thereafter, the software 121 performs the processing after S909.
  • the host computer 10 in the communication when updating the content stored in the storage device 30, the host computer 10 is determined not to overlap with the representative chunk of the content to be backed up in the content.
  • the chunk and the content management table 1500A of the content are transmitted to the storage device 30.
  • the storage device 30 transmits to the host computer 10 the deduplication list 1400A indicating the chunks in the content and the chunk data set ID of the chunks determined not to be duplicated in the content.
  • FIG. 10 shows details of the information creation process.
  • the information creation processing is performed by secondary deduplication processing software 3121 (hereinafter, software 3121) stored in the control memory 31 of the storage device 30.
  • the software 3121 calculates the hash value of the target chunk transmitted from the software 121 in S906 as a second calculated hash value, and determines whether the second calculated hash value exists in the hash value 1301 of the chunk index table 1300. Determination is made (S1001).
  • the software 3121 acquires the content ID 1302 and the offset 1303 corresponding to the second calculated hash value from the chunk index table 1300 ( S1002).
  • the software 3121 refers to the content management table 1500 corresponding to the content ID 1302 acquired in S1002 (S1003).
  • the software 3121 acquires the hash value 1502, the chunk data set ID 1503, and the chunk length 1505 of each chunk constituting the target content of the acquired content ID 1302 from the content management table 1500B specified in S1003.
  • the software 3121 creates a duplicate information list 1400B including the information acquired in S1003 (S1005).
  • the software 3121 transmits the duplicate information list 1400B created in S1005 to the host computer 10 (S1006).
  • the software 3121 determines whether the target chunk is a representative chunk (S1010). When transmitting a chunk to the storage apparatus 30, the host computer 10 gives information indicating whether or not the chunk is a representative chunk. The software 3121 determines that the transmitted target chunk is the representative chunk when information representing the representative chunk is given.
  • the software 3121 stores the second calculated hash value, the content ID, and the offset of the target chunk in the chunk index table 1300.
  • the software 3121 ends the process of S907.
  • the software 3121 determines whether the target chunk is duplicated (S1007). Details of the processing of S1007 will be described later.
  • the software 3121 If the target chunks are not duplicated (S1007: No), the software 3121 generates a chunk data set index table 1600 of a new chunk data set, and registers the target chunk in the generated chunk data set index table 1600. Here, the software 3121 stores the hash value 1601 of the target chunk, the chunk data set offset 1602, and the chunk length 1603 in the generated chunk data set index table 1600 (S1008).
  • the software 3121 refers to the content ID 1501 of the content management table 1500B and transmits the chunk data set ID in which the target chunk is stored to the host computer 10 ( S1009). Thereafter, the software 3121 performs the processing after S1010.
  • the storage apparatus 30 can transmit information indicating the content and chunk data set corresponding to the target chunk received from the host computer 30 to the host computer 30.
  • the chunks that make up the content are updated, the updated chunks are stored in a new chunk data set, and a new chunk data set index table 1600 is created.
  • the chunk data set index table 1600 is not updated. Therefore, by repeatedly updating the content, chunks constituting the latest content are distributed and stored in a plurality of chunk data sets, and even if the chunk data set index table 1600 is transmitted to the host computer 10, In the host computer 10, the probability that it can be determined that the chunks are duplicated decreases.
  • the storage apparatus 30 can create a deduplication list 1400 having information on the chunks that make up the same latest content as the chunk transmitted from the host computer 10 and transmit it to the host computer 10. it can. Thereby, it is possible to increase the probability that the host computer 10 can determine that the chunks are duplicated.
  • FIG. 8 shows an example of the data structure in the storage system.
  • the chunk index (Chunk Index) 1200 stores the hash values of all the chunks stored in the storage device 30 in association with the chunk data set ID of the chunk data set in which the chunk is stored.
  • Content 1700 has an arbitrary file name and has several chunks of data.
  • a chunk data set 1800 has a file name including a chunk data set ID, and has a length and data of several chunks.
  • the software 3121 uses the chunk index 1200 to identify the chunk data set ID associated with the hash value of the target chunk. Thereafter, the software 3121 refers to the chunk data set index table 1600 corresponding to the specified chunk data set ID, and determines whether or not the target chunk is stored in the storage device 30 from the hash value and the length. If the second calculated hash value and the length of the target chunk match, the software 3121 determines that the chunk is duplicated.
  • the host computer 10 may acquire the user ID of the user of the content to be backed up from the content and send it to the storage device 30 together with the representative chunk.
  • the storage device 30 associates the user ID with the content ID, and recognizes that the content is different from each other if the data of the two contents is the same, but is associated with different user IDs. Thereby, the storage apparatus 30 can distinguish and manage the contents of different users.
  • the chunk is a data segment compressed, but may be the data segment itself.
  • the storage system in which the two cases of the host computer 10 and the storage device 30 cooperate is described. However, the storage system has the processor of the host computer 10 and the storage controller 31 in one case. Also good.
  • the computer corresponds to the host computer 10 or a backup server device.
  • the storage device corresponds to the storage device 321 and the like.
  • a block corresponds to content or the like.
  • a sub-block corresponds to a chunk or a data segment.
  • the storage information corresponds to the chunk index table 1300, the content management table 1500, and the like.
  • the sub-block information corresponds to the chunk index table 1300 and the like.
  • the block information corresponds to the content management table 1500B and the like.
  • the duplicate information corresponds to the duplicate information list 1400 and the like.
  • the storage location corresponds to a chunk data set or the like.
  • the position information corresponds to the chunk data set index table 1600 and the like.
  • the update information corresponds to the content management table 1500A and the like.
  • Some of the sub-blocks correspond to representative chunks.
  • the representative sub block corresponds to a representative chunk or the like.
  • the first controller corresponds to the storage controller 31 and the like.
  • the second controller corresponds to

Landscapes

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

Abstract

This storage device is provided with a recording device and a controller connected to the recording device and a computer. The controller receives a plurality of sub-blocks obtained on the basis of the splitting of a block of data from the computer and stores same in the recording device, and records storage information associating the block and the stored plurality of sub-blocks. The controller receives subject information indicating a sub-block within the block from the computer, and on the basis of the storage information, identifies the block to which the sub-block indicated by the subject information belongs, and on the basis of the storage information, generates redundant information indicating the stored plurality of sub-blocks and transmits same to the computer. The controller receives from the computer an updated sub-block that is a sub-block not indicated by the redundant information among the plurality of sub-blocks obtained by means of splitting the updated data of the block.

Description

ストレージ装置、ストレージ装置におけるデータの制御方法、及びストレージシステムStorage device, data control method in storage device, and storage system

 本発明は、データを記憶デバイスに格納するためのデータの制御に関する。 The present invention relates to control of data for storing data in a storage device.

 計算機システムは例えば、ストレージ装置と、通信ネットワーク経由でストレージ装置に接続されるホスト計算機等の計算機とを有する。ストレージ装置は、データを記憶する記憶デバイスとして、例えば複数のHDD(Hard Disk Drive)を備える。 The computer system includes, for example, a storage device and a computer such as a host computer connected to the storage device via a communication network. The storage device includes, for example, a plurality of HDDs (Hard Disk Drives) as storage devices for storing data.

 コスト低減のため、計算機システムは、記憶デバイスにデータを格納する際に、データ量の削減処理を実行する。データ量の削減処理には、例えば、ファイル圧縮処理(Compression)、重複排除処理(De-duplication)がある。 In order to reduce costs, the computer system executes a data amount reduction process when storing data in the storage device. Data amount reduction processing includes, for example, file compression processing (Compression) and deduplication processing (De-duplication).

 ファイル圧縮処理は、1ファイル内で同一内容のデータセグメントを集約することにより、データ容量を削減する。一方、重複排除処理は、1ファイル内だけでなく、ファイル間で検出される同一内容のデータセグメントを集約することにより、データ容量を削減する。以下、重複排除処理の単位となる単位データを「チャンク(Chunk)」という。 フ ァ イ ル File compression processing reduces the data capacity by aggregating data segments with the same content in one file. On the other hand, deduplication processing reduces the data capacity by aggregating data segments of the same content detected not only within one file but also between files. Hereinafter, unit data as a unit of deduplication processing is referred to as “chunk”.

 特許文献1、2には、ホスト計算機から通信ネットワーク経由でストレージ装置にコンテンツを格納する場合、ホスト計算機が事前に各チャンクがストレージ装置に格納されているかどうかの重複判定をし、格納されていないチャンクのみをストレージ装置に送信することが記載されている。 In Patent Documents 1 and 2, when content is stored in a storage device from a host computer via a communication network, the host computer determines whether each chunk is stored in the storage device in advance, and is not stored. It is described that only chunks are transmitted to the storage apparatus.

米国特許第5990810号明細書US Pat. No. 5,990,810 国際公開第WO2012/101674号International Publication No. WO2012 / 101674

 重複判定は、ホスト計算機で行われる場合と、ストレージ装置で行われる場合がある。 Duplicate determination may be performed by the host computer or the storage device.

 例えば、特許文献1には、ストレージ装置が重複判定を行い、ホスト計算機はストレージ装置から重複判定の結果を取得し、新規チャンクのみをストレージ装置に格納する方法が記載されている。 For example, Patent Document 1 describes a method in which a storage apparatus performs duplication determination, the host computer acquires the duplication determination result from the storage apparatus, and stores only new chunks in the storage apparatus.

 しかし、特許文献1の重複排除処理では、全てのチャンクについて、ホスト計算機がストレージ装置に重複判定の問い合わせを行う。そのため、ホスト計算機は、重複判定に必要な情報をストレージ装置に送信し、ストレージ装置から重複判定の結果を受信することが必要となる。これは、ホスト計算機のみで重複判定を行う方式と比較して、ホスト計算機とストレージ装置との間の通信のラウンドトリップ(Roundtrip)分だけ性能が低下する。 However, in the deduplication process of Patent Document 1, the host computer makes an inquiry for duplication determination to the storage apparatus for all chunks. For this reason, the host computer needs to transmit information necessary for duplication determination to the storage apparatus and receive the duplication determination result from the storage apparatus. Compared with a method in which duplication determination is performed only by the host computer, the performance is reduced by the round trip of the communication between the host computer and the storage apparatus.

 また、特許文献2には、ホスト計算機で重複判定を行い、その結果に従って、ストレージ装置に格納されていないチャンクのみをストレージ装置に送信する方法が記載されている。 Patent Document 2 describes a method of performing duplication determination by a host computer and transmitting only chunks not stored in the storage apparatus to the storage apparatus according to the result.

 しかし、特許文献2の重複排除処理では、ストレージ装置に格納されている全データに関して重複判定に用いる情報をホスト計算機に保存する必要がある。このような重複排除処理では、例えば格納するデータが大きくなるにつれて、重複判定に用いる情報のサイズも多くなるため、ホスト計算機のディスク容量を圧迫してしまう。また、重複判定に用いる情報の数が多くなり、その中から必要な情報を選択しなければならなくなるため、重複排除処理が非効率になる場合がある。 However, in the deduplication processing of Patent Document 2, it is necessary to save information used for duplication determination on all data stored in the storage device in the host computer. In such deduplication processing, for example, as the data to be stored increases, the size of information used for duplication determination also increases, and therefore the disk capacity of the host computer is compressed. In addition, since the number of pieces of information used for duplication determination increases and necessary information must be selected from among them, deduplication processing may become inefficient.

 ストレージ装置は、記憶デバイスと、記憶デバイスおよび計算機に接続されたコントローラとを備える。コントローラは、データのブロックの分割に基づいて得られる複数のサブブロックを、計算機から受信して記憶デバイスへ格納し、ブロックと、格納された複数のサブブロックとを関連づける格納情報を記憶する。コントローラは、計算機から前記ブロック内のサブブロックを示す対象情報を受信し、格納情報に基づいて、対象情報に示されているサブブロックが属するブロックを特定し、格納情報に基づいて、格納された複数のサブブロックを示す重複情報を生成して計算機に送信する。コントローラは、ブロックの更新データを分割することにより得られる複数のサブブロックの中で重複情報に示されていないサブブロックである更新サブブロックを計算機から受信する。 The storage apparatus includes a storage device and a controller connected to the storage device and the computer. The controller receives a plurality of sub-blocks obtained based on the division of the block of data from the computer and stores them in the storage device, and stores storage information that associates the blocks with the plurality of stored sub-blocks. The controller receives the target information indicating the sub-block in the block from the computer, identifies the block to which the sub-block indicated in the target information belongs based on the stored information, and stored based on the stored information Duplicate information indicating a plurality of sub-blocks is generated and transmitted to the computer. The controller receives, from the computer, an update subblock that is a subblock that is not indicated in the duplication information among a plurality of subblocks obtained by dividing the update data of the block.

図1は、実施例に係るストレージシステムを示す。FIG. 1 illustrates a storage system according to an embodiment. 図2は、実施例に係るソフトウェアの構成例を示す。FIG. 2 shows a configuration example of software according to the embodiment. 図3は、チャンク索引テーブル1300の一例を示す。FIG. 3 shows an example of the chunk index table 1300. 図4は、重複情報リスト1400の一例を示す。FIG. 4 shows an example of the duplicate information list 1400. 図5は、コンテンツ管理テーブル1500の一例を示す。FIG. 5 shows an example of the content management table 1500. 図6は、チャンクデータセット索引テーブル1600の一例を示す。FIG. 6 shows an example of the chunk data set index table 1600. 図7は、実施例に係る重複排除処理を説明するための模式図である。FIG. 7 is a schematic diagram for explaining deduplication processing according to the embodiment. 図8は、ストレージシステムにおけるデータ構造の一例を示す。FIG. 8 shows an example of a data structure in the storage system. 図9は、実施例に係るバックアップ処理の一例を示す。FIG. 9 illustrates an example of backup processing according to the embodiment. 図10は、情報作成処理の詳細を示す。FIG. 10 shows details of the information creation process.

 以下、一実施例を説明する。 An example will be described below.

 なお、以下の説明では、「xxxテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。 In the following description, various types of information may be described using the expression “xxx table”, but the various types of information may be expressed using a data structure other than a table. In order to show that it does not depend on the data structure, the “xxx table” can be called “xxx information”.

 以後の説明では「プログラム」や「ソフトウェア」を主語として説明を行う場合があるが、プログラムやソフトウェアはプロセッサによって実行されることで定められた処理をメモリ及び通信ポートを用いながら行うため、プロセッサを主語とした説明としてもよい。 In the following description, “program” and “software” may be used as the subject. However, since the program and software are executed by the processor to perform processing determined using the memory and the communication port, the processor is used. It may be a subject explanation.

 また、管理計算機は、1以上の計算機で構成されてよい。 Further, the management computer may be composed of one or more computers.

 本実施形態の説明では、バックアップデータについて、上位装置から認識される論理的にまとまったデータを「コンテンツ」という。コンテンツには、通常のファイルの他、例えばアーカイブファイル、バックアップファイル、仮想ボリュームファイルなどの通常のファイルを集約したファイルが含まれる。また、コンテンツ内で重複排除処理の単位となるデータセグメントを「チャンク」という。また、記憶デバイスにおいて幾つかのチャンクを格納する形式を「チャンクデータセット」という。 In the description of the present embodiment, the logically collected data recognized from the host device with respect to the backup data is referred to as “content”. In addition to normal files, the contents include files that are a collection of normal files such as archive files, backup files, and virtual volume files. In addition, a data segment that is a unit of deduplication processing in content is called “chunk”. A format for storing several chunks in the storage device is called “chunk data set”.

 一つのチャンクデータセットは、互いに関連性の高いチャンクが集約されるように作成される。例えば、各チャンクデータセットに対して、予め所定のチャンク数またはデータ容量を設定し、コンテンツから生成されたチャンクをチャンクデータセットが一杯になるまでまとめることで、データのローカリティを考慮したチャンクデータセットの生成が可能である。言い換えれば、チャンクデータセットにはコンテンツの区切りとは関連なくデータが格納されるが、あるコンテンツの最初のチャンクが格納されているチャンクデータセットが特定されれば、後続のチャンクについても同じチャンクデータセットから取得可能である可能性が高い。しかし、1度の処理で格納されたコンテンツは同じチャンクデータセットに格納される可能性が高いが、その後の更新による差分データは、異なるチャンクデータセットに格納される可能性が高い。すなわち、更新の回数が増えるほど、1つのコンテンツを構成するチャンクが複数のチャンクデータセットに分散する可能性が高い。 One chunk data set is created so that chunks that are highly related to each other are aggregated. For example, by setting a predetermined number of chunks or data capacity in advance for each chunk data set and collecting chunks generated from content until the chunk data set is full, the chunk data set considering the locality of the data Can be generated. In other words, data is stored in the chunk data set regardless of the content delimiter, but if the chunk data set storing the first chunk of a certain content is specified, the same chunk data is also applied to subsequent chunks. It is likely that it can be obtained from the set. However, although the content stored by one process is highly likely to be stored in the same chunk data set, the difference data resulting from the subsequent update is highly likely to be stored in a different chunk data set. That is, as the number of updates increases, there is a higher possibility that chunks constituting one content are distributed to a plurality of chunk data sets.

 一般に、一つのチャンクのサイズは数キロバイト以上である。このため、重複判定処理の実行時に、チャンク同士をチャンクの先頭から順番に比較すると、多くの処理時間とコストを必要とする。そこで、本実施形態に係るストレージ装置では、チャンクのメッセージダイジェストを利用し、短時間かつ低コストで重複判定処理の実行を可能としている。メッセージダイジェストとは、任意の長さのデータ入力に対し、固定長のダイジェストを出力する技術である。本明細書では、メッセージダイジェストの出力結果を、フィンガプリント(以下、FP)またはハッシュ値という。FPは、任意のハッシュ関数を用いて算出されるハッシュ値である。このハッシュ関数としては、例えばSHA256などの、乱数性が極めて高く、各チャンクに対してハッシュ値が一意に定まる可能性の高いハッシュ関数を利用することが好ましい。また、FPに替え、チャンクそのものや、他の識別子等、当該チャンクが識別できる情報であればよい。 Generally, the size of one chunk is several kilobytes or more. For this reason, when the duplication determination process is executed, if the chunks are compared in order from the top of the chunk, a lot of processing time and cost are required. Therefore, in the storage apparatus according to the present embodiment, it is possible to execute the duplicate determination process in a short time and at a low cost by using a chunk message digest. Message digest is a technique for outputting a fixed-length digest in response to an arbitrary length of data input. In this specification, the output result of the message digest is referred to as a fingerprint (hereinafter referred to as FP) or a hash value. The FP is a hash value calculated using an arbitrary hash function. As this hash function, it is preferable to use a hash function such as SHA256, which has extremely high randomness and is highly likely to have a unique hash value for each chunk. Moreover, it is sufficient to replace the FP with information that can identify the chunk, such as the chunk itself or another identifier.

 図1は、実施例に係るストレージ物理構成例を示す。 FIG. 1 shows a storage physical configuration example according to the embodiment.

 ストレージ、ホスト計算機10、及びストレージ装置30より構成されている。ホスト計算機10とストレージ装置30は、所定の通信ネットワーク(例えば、SAN(Storage Area Network)2)を介して通信可能に接続されている。 The storage is composed of a host computer 10 and a storage device 30. The host computer 10 and the storage device 30 are connected to be communicable via a predetermined communication network (for example, SAN (Storage Area Network) 2).

 ホスト計算機10は、通信インタフェースと、記憶デバイスと、それらに接続されたプロセッサとを有する。プロセッサとしては、例えば、CPU(Central Processing Unit)11がある。記憶デバイスとしては、例えば、メモリ12がある。通信インタフェースとしては、例えば、HBA(Host Bus Adapter)13がある。 The host computer 10 has a communication interface, a storage device, and a processor connected to them. An example of the processor is a CPU (Central Processing Unit) 11. An example of the storage device is a memory 12. An example of the communication interface is an HBA (Host Bus Adapter) 13.

 メモリ12には、ストレージ装置30を管理するための情報及びプログラムが記憶される。CPU11は、メモリ12に格納されているプログラムを実行することで、各種機能を実現する。 The memory 12 stores information and programs for managing the storage device 30. The CPU 11 implements various functions by executing a program stored in the memory 12.

 HBA13は、ホスト計算機10と各ノード31を接続するためのインタフェースデバイスである。本実施例におけるノード31は、ストレージコントローラとする。 The HBA 13 is an interface device for connecting the host computer 10 and each node 31. The node 31 in this embodiment is a storage controller.

 ストレージ装置30は、ストレージコントローラ31及び記憶部32を有する。記憶部32は、複数の記憶デバイス321で構成されている。 The storage device 30 includes a storage controller 31 and a storage unit 32. The storage unit 32 includes a plurality of storage devices 321.

 ストレージコントローラ31は、通信インタフェースと、記憶デバイスと、それらに接続されたプロセッサとを有する。通信インタフェースとしては、例えば、FE-I/F(Front End Inter/Face)314、及びBE-I/F(Back End Inter/Face)315がある。記憶デバイスとしては、例えば、制御メモリ312、及びキャッシュメモリ313がある。プロセッサとしては、例えば、CPU311がある。 The storage controller 31 has a communication interface, a storage device, and a processor connected to them. Examples of communication interfaces include FE-I / F (Front End Inter / Face) 314 and BE-I / F (Back End Inter / Face) 315. Examples of the storage device include a control memory 312 and a cache memory 313. An example of the processor is a CPU 311.

 制御メモリ312には、記憶部32を制御するための情報及びプログラムが記憶される。CPU311は、制御メモリ312に格納されているプログラムを実行することで、各種機能を実現する。キャッシュメモリ313には、記憶部32にライトされるデータ及び記憶部32からリードされたデータが一時的に格納される。 The control memory 312 stores information and a program for controlling the storage unit 32. The CPU 311 realizes various functions by executing a program stored in the control memory 312. The cache memory 313 temporarily stores data written to the storage unit 32 and data read from the storage unit 32.

 FE-I/F314は、ホスト計算機10等のフロントエンドに存在する外部デバイスと通信するためのインタフェースデバイスである。BE-I/F315は、ストレージコントローラ31が記憶部32内の記憶デバイスと通信するためのインタフェースデバイスである。 The FE-I / F 314 is an interface device for communicating with an external device existing at the front end of the host computer 10 or the like. The BE-I / F 315 is an interface device for the storage controller 31 to communicate with a storage device in the storage unit 32.

 記憶部32は、複数のHDD(Hard Disk Drive)321を有する。HDD321に代えて、他種の記憶デバイス(不揮発性の記憶デバイス))、例えば、SSD(Solid State Device)のようなFM(Flash Memory)デバイスが採用されもよい。記憶部32は、異なる種類の記憶デバイスを有してよい。また、複数の同種の記憶デバイスでRG(RAIDグループ)が構成されてよい。RGには、所定のRAIDレベルに従いデータが格納される。本実施例では、RGは、複数のHDD321で構成される。 The storage unit 32 includes a plurality of HDDs (Hard Disk Drives) 321. Instead of the HDD 321, another type of storage device (nonvolatile storage device)), for example, an FM (Flash Memory) device such as an SSD (Solid State Device) may be employed. The storage unit 32 may have different types of storage devices. Further, an RG (RAID group) may be configured by a plurality of storage devices of the same type. The RG stores data according to a predetermined RAID level. In this embodiment, the RG is composed of a plurality of HDDs 321.

 図2は、実施例に係るソフトウェアの構成例を示す。 FIG. 2 shows a configuration example of software according to the embodiment.

 ホスト計算機10は、メモリ12に、一次重複排除処理ソフトウェア121、重複情報リスト1400A、及びコンテンツ管理テーブル1500Aを格納している。 The host computer 10 stores the primary deduplication processing software 121, the duplication information list 1400A, and the content management table 1500A in the memory 12.

 一次重複排除処理ソフトウェア121は、ユーザからの指示または予め定められたスケジュールに従って、データのバックアップ処理を実行する。重複情報リスト1400Aは、ストレージ装置30(具体的には、二次重複排除処理ソフトウェア3121)により作成され、ストレージ装置30から送信される。コンテンツ管理テーブル1500Aは、ホスト計算機10(具体的には、一次重複排除処理ソフトウェア121)が、重複情報リスト1400Aに基づいて作成する。重複情報リスト1400A、及びコンテンツ管理テーブル1500Aの詳細は後述する。 The primary deduplication processing software 121 executes data backup processing in accordance with an instruction from a user or a predetermined schedule. The duplicate information list 1400A is created by the storage apparatus 30 (specifically, the secondary deduplication processing software 3121) and transmitted from the storage apparatus 30. The content management table 1500A is created by the host computer 10 (specifically, the primary deduplication processing software 121) based on the duplication information list 1400A. Details of the duplicate information list 1400A and the content management table 1500A will be described later.

 ストレージ装置30は、制御メモリ312に、二次重複排除処理ソフトウェア3121、ファイルシステム管理部3122、チャンク索引テーブル1300、重複情報リスト1400B、コンテンツ管理テーブル1500B、及びチャンクデータセット索引テーブル1600を格納している。 The storage device 30 stores the secondary deduplication processing software 3121, the file system management unit 3122, the chunk index table 1300, the duplicate information list 1400B, the content management table 1500B, and the chunk data set index table 1600 in the control memory 312. Yes.

 二次重複排除処理ソフトウェア3121は、ホスト計算機10側の一次重複排除処理ソフトウェア121から送信されたデータの重複排除処理を行なう。ファイルシステム管理部3122は、記憶部32に記憶されるデータの管理を行う。 The secondary deduplication processing software 3121 performs deduplication processing on the data transmitted from the primary deduplication processing software 121 on the host computer 10 side. The file system management unit 3122 manages data stored in the storage unit 32.

 チャンク索引テーブル1300、重複情報リスト1400、及びチャンクデータセット索引テーブル1600は、ストレージ装置30(具体的には、二次重複排除処理ソフトウェア3121)が作成する。重複情報リスト1400Bは、ストレージ装置30により、チャンク索引テーブル1300、及びコンテンツ管理テーブル1500Bに基づいて作成される。 The chunk index table 1300, the duplicate information list 1400, and the chunk data set index table 1600 are created by the storage device 30 (specifically, the secondary deduplication processing software 3121). The duplicate information list 1400B is created by the storage apparatus 30 based on the chunk index table 1300 and the content management table 1500B.

 コンテンツ管理テーブル1500Bは、ホスト計算機10(具体的には、一次重複排除処理ソフトウェア121)により作成され、ホスト計算機10から送信される。 The content management table 1500B is created by the host computer 10 (specifically, the primary deduplication processing software 121) and transmitted from the host computer 10.

 なお、ストレージ装置30は、ストレージ装置30に格納された全コンテンツに対応するコンテンツ管理テーブルを制御メモリ31に格納している。一方、ホスト計算機10は、バックアップ対象のコンテンツに対応するコンテンツ管理テーブルだけを一時的に格納している。そのため、ホスト計算機10のメモリ12に格納されているコンテンツ管理テーブルをコンテンツ管理テーブル1500Aとし、ストレージ装置30の制御メモリ31に格納されているコンテンツ管理テーブルをコンテンツ管理テーブル1500Bとして、両者のテーブルを区別した。 Note that the storage apparatus 30 stores a content management table corresponding to all contents stored in the storage apparatus 30 in the control memory 31. On the other hand, the host computer 10 temporarily stores only the content management table corresponding to the content to be backed up. Therefore, the content management table stored in the memory 12 of the host computer 10 is the content management table 1500A, and the content management table stored in the control memory 31 of the storage device 30 is the content management table 1500B. did.

 チャンク索引テーブル1300、重複情報リスト1400、コンテンツ管理テーブル1500(A、B)、及びチャンクデータセット索引テーブル1600の詳細は後述する。 Details of the chunk index table 1300, the duplicate information list 1400, the content management table 1500 (A, B), and the chunk data set index table 1600 will be described later.

 図3は、チャンク索引テーブル1300の一例を示す。 FIG. 3 shows an example of the chunk index table 1300.

 チャンク索引テーブル1300は、ホスト計算機10からの指示に基づいてストレージ装置30により作成される(詳細は後述する)。チャンク索引テーブル1300は、ストレージ装置30が有するコントローラ31の制御メモリ312に格納される。 The chunk index table 1300 is created by the storage apparatus 30 based on an instruction from the host computer 10 (details will be described later). The chunk index table 1300 is stored in the control memory 312 of the controller 31 included in the storage device 30.

 チャンク索引テーブル1300は、ストレージ装置30が、ホスト計算機10から送信されたチャンクに関して、そのチャンクを含んでいるコンテンツを特定するために用いられる。 The chunk index table 1300 is used for the storage apparatus 30 to specify the content including the chunk with respect to the chunk transmitted from the host computer 10.

 チャンク索引テーブル1300は、チャンク毎のエントリを有する。各エントリは、ハッシュ値1301、コンテンツID1302、及びオフセット1303を関連付けて記憶する。 The chunk index table 1300 has an entry for each chunk. Each entry stores a hash value 1301, a content ID 1302, and an offset 1303 in association with each other.

 或るチャンクのエントリにおいて、ハッシュ値1301は、当該チャンクのハッシュ値を示す。コンテンツID1302は、当該チャンクが含まれているコンテンツを識別するための情報である。オフセット1303は、当該コンテンツにおける当該チャンクの位置を示す。 In an entry of a certain chunk, the hash value 1301 indicates the hash value of the chunk. The content ID 1302 is information for identifying the content including the chunk. An offset 1303 indicates the position of the chunk in the content.

 図4は、重複情報リスト1400の一例を示す。 FIG. 4 shows an example of the duplicate information list 1400.

 重複情報リスト1400A、Bのデータ構造は同じであるため、ここでは、両者のテーブルを区別せずに説明する。以下、両者の重複情報リストを区別せずに説明する場合、重複情報リスト1400と表して説明することがある。重複情報リスト1400は、ストレージ装置30により作成される(詳細は後述する)。重複情報リスト1400は、ストレージ装置30が有するコントローラ31の制御メモリ312、及びホスト計算機10のメモリ12に格納される。 Since the data structures of the duplicate information lists 1400A and 1400B are the same, here, description will be made without distinguishing between the two tables. Hereinafter, when the description is made without distinguishing between the duplicate information lists, the duplicate information list 1400 may be described. The duplicate information list 1400 is created by the storage apparatus 30 (details will be described later). The duplicate information list 1400 is stored in the control memory 312 of the controller 31 and the memory 12 of the host computer 10 that the storage apparatus 30 has.

 重複情報リスト1400は、ホスト計算機10に、重複判定処理の一部を行わせるためにストレージ装置30により作成され、ストレージ装置30からホスト計算機10に送信される。重複情報リスト1400は、コンテンツ毎に作成される。以下の説明において、コンテンツとは、複数のファイルを含むアーカイブファイルを示す。 The duplication information list 1400 is created by the storage device 30 in order to cause the host computer 10 to perform part of the duplication determination process, and is transmitted from the storage device 30 to the host computer 10. The duplicate information list 1400 is created for each content. In the following description, content refers to an archive file including a plurality of files.

 重複情報リスト1400は、チャンク毎のエントリを有する。各エントリは、ハッシュ値1401、チャンク長1402、及びチャンクデータセットID1403を有する。 The duplicate information list 1400 has an entry for each chunk. Each entry has a hash value 1401, a chunk length 1402, and a chunk data set ID 1403.

 或るチャンクのエントリにおいて、ハッシュ値1401は、当該チャンクのハッシュ値を示す。チャンク長1402は、当該チャンクのデータ長を示す。チャンクデータセットID1403は、当該チャンクが格納されているチャンクデータセットを識別するための情報である。 In an entry of a certain chunk, a hash value 1401 indicates the hash value of the chunk. The chunk length 1402 indicates the data length of the chunk. The chunk data set ID 1403 is information for identifying the chunk data set in which the chunk is stored.

 図5は、コンテンツ管理テーブル1500の一例を示す。 FIG. 5 shows an example of the content management table 1500.

 コンテンツ管理テーブル1500A、Bのデータ構造は同じであるため、ここでは、両者のテーブルを区別せずに説明する。以下、両者のコンテンツ管理テーブルを区別せずに説明する場合、コンテンツ管理テーブル1500と表して説明することがある。 Since the data structures of the content management tables 1500A and 1500B are the same, here, description will be made without distinguishing between the two tables. Hereinafter, when the two content management tables are described without distinction, the content management table 1500 may be described.

 コンテンツ管理テーブル1500は、チャンクデータセット毎に格納されているチャンクを、コンテンツと関連付ける。例えば、ストレージ装置30は、ホスト計算機10からのリード要求に応じてコンテンツを読み出す場合、コンテンツ管理テーブル1500に基づいて、そのコンテンツに含まれるチャンクを格納するチャンクデータセットを特定して読み出す。 The content management table 1500 associates the chunk stored for each chunk data set with the content. For example, when reading content in response to a read request from the host computer 10, the storage apparatus 30 specifies and reads a chunk data set that stores chunks included in the content based on the content management table 1500.

 コンテンツ管理テーブル1500は、ストレージ装置30が有するコントローラ31の制御メモリ312、及びホスト計算機10のメモリ12に格納される。 The content management table 1500 is stored in the control memory 312 of the controller 31 and the memory 12 of the host computer 10 that the storage apparatus 30 has.

 ストレージ装置30は、コンテンツ毎のコンテンツ管理テーブル1500Bを作成する。或るコンテンツのコンテンツ管理テーブル1500Bは、当該コンテンツのコンテンツIDを含むファイル名を有し、当該コンテンツ内のチャンク毎のエントリを有する。各エントリは、コンテンツID1501、ハッシュ値1502、チャンクデータセットID1503、コンテンツオフセット1504、及びチャンク長1505を関連付けて記憶する。 The storage device 30 creates a content management table 1500B for each content. The content management table 1500B of a certain content has a file name including the content ID of the content, and has an entry for each chunk in the content. Each entry stores a content ID 1501, a hash value 1502, a chunk data set ID 1503, a content offset 1504, and a chunk length 1505 in association with each other.

 特定のコンテンツ内の一つのチャンクのエントリにおいて、コンテンツID1501は、当該コンテンツを識別するための情報である。ハッシュ値1502は、当該チャンクのハッシュ値を示す。チャンクデータセットID1503は、当該チャンクが格納されているチャンクデータセットを識別するための情報である。コンテンツオフセット1504は、特定のコンテンツにおける当該チャンクの位置を示す。チャンク長1505は、当該チャンクのデータ長を示す。 In the entry of one chunk in specific content, the content ID 1501 is information for identifying the content. A hash value 1502 indicates a hash value of the chunk. The chunk data set ID 1503 is information for identifying the chunk data set in which the chunk is stored. The content offset 1504 indicates the position of the chunk in specific content. The chunk length 1505 indicates the data length of the chunk.

 図6は、チャンクデータセット索引テーブル1600の一例を示す。 FIG. 6 shows an example of the chunk data set index table 1600.

 ストレージ装置30は、チャンクをチャンクデータセット毎に管理する。つまり、チャンクデータセット索引テーブル1600は、ストレージ装置30が、チャンクをチャンクデータセット毎に管理するために使用される。チャンクデータセット索引テーブル1600は、ストレージ装置30が有するコントローラ31の制御メモリ312に格納される。 Storage device 30 manages chunks for each chunk data set. That is, the chunk data set index table 1600 is used by the storage apparatus 30 to manage chunks for each chunk data set. The chunk data set index table 1600 is stored in the control memory 312 of the controller 31 included in the storage device 30.

 ストレージ装置30は、チャンクデータセット毎のチャンクデータセット索引テーブル1600を作成する。或るチャンクデータセットのチャンクデータセット索引テーブル1600は、当該チャンクデータセットのチャンクデータセットIDを含むファイル名を有し、当該チャンクデータセット内のチャンク毎のエントリを有する。各エントリは、ハッシュ値1601、チャンクデータセットオフセット1602、及びチャンク長1603を有する。 The storage apparatus 30 creates a chunk data set index table 1600 for each chunk data set. The chunk data set index table 1600 of a certain chunk data set has a file name including the chunk data set ID of the chunk data set, and has an entry for each chunk in the chunk data set. Each entry has a hash value 1601, a chunk data set offset 1602, and a chunk length 1603.

 或るチャンクデータセット内の或るチャンクのエントリにおいて、ハッシュ値1601は、当該チャンクのハッシュ値を示す。チャンクデータセットオフセット1602は、当該チャンクデータセットにおける当該チャンクの位置を示す。チャンク長1603は、当該チャンクのデータ長を示す。 In an entry of a certain chunk in a certain chunk data set, a hash value 1601 indicates the hash value of the chunk. The chunk data set offset 1602 indicates the position of the chunk in the chunk data set. The chunk length 1603 indicates the data length of the chunk.

 図7は、実施例に係る重複排除処理の概要を説明するための模式図である。 FIG. 7 is a schematic diagram for explaining an overview of the deduplication processing according to the embodiment.

 重複排除処理の概要を処理S1~S14の順番に従って説明するが、処理S1~S14が行われる前に、ストレージシステムが、以下の状態であったとする。
(1)ストレージ装置30には、更新前コンテンツF1から生成されたチャンク群「a、b、c、d、e」が格納されている。
(2)チャンク群「a、b、c、d、e」の代表チャンクが「a」である。
(3)ストレージ装置30の制御メモリ31に、代表チャンク「a」を含むチャンク索引テーブル1300が格納されている。
(4)コンテンツF1に関するコンテンツ管理テーブル1500がホスト計算機10により作成されて、ストレージ装置30の制御メモリ31に格納されている。
(5)ホスト計算機10側で、コンテンツF1の更新コンテンツが入力され、更新コンテンツから生成されるチャンク群は「a、b、c、d1、e」である。
The outline of the deduplication process will be described in the order of the processes S1 to S14. It is assumed that the storage system is in the following state before the processes S1 to S14 are performed.
(1) The storage device 30 stores a chunk group “a, b, c, d, e” generated from the pre-update content F1.
(2) The representative chunk of the chunk group “a, b, c, d, e” is “a”.
(3) The chunk index table 1300 including the representative chunk “a” is stored in the control memory 31 of the storage device 30.
(4) A content management table 1500 related to the content F 1 is created by the host computer 10 and stored in the control memory 31 of the storage device 30.
(5) On the host computer 10 side, the updated content of the content F1 is input, and the chunk group generated from the updated content is “a, b, c, d1, e”.

 <処理S1>
 ホスト計算機10は、例えば、ユーザからバックアップ対象のコンテンツが指定される。ここでは、ユーザからコンテンツF1が指定される。
<Process S1>
In the host computer 10, for example, content to be backed up is designated by the user. Here, the content F1 is designated by the user.

 ホスト計算機10は、更新コンテンツF1を複数のデータセグメントに分割する。更に、ホスト計算機10は、更新コンテンツF1を複数の単位データに区切る。ここでホスト計算機10は、例えば、コンテンツを先頭から所定のデータサイズ(例えば、64MB)毎に区切って単位データを認識する。なお、コンテンツが複数のファイルを含む場合、単位データはファイルであっても良い。また、所定のデータサイズ毎の区切りとファイルの区切りの両方を、単位データの区切りとしても良い。また、データセグメントのサイズは固定サイズではなく、データの特性等に応じて可変としてもよい。 The host computer 10 divides the update content F1 into a plurality of data segments. Further, the host computer 10 divides the update content F1 into a plurality of unit data. Here, for example, the host computer 10 recognizes unit data by dividing the content from the top into predetermined data sizes (for example, 64 MB). When the content includes a plurality of files, the unit data may be a file. Further, both the delimiter for each predetermined data size and the delimiter for the file may be used as a unit data delimiter. Further, the size of the data segment is not a fixed size, and may be variable according to the data characteristics.

 ホスト計算機10は、データセグメントを圧縮してチャンクを生成し、各単位データを代表するデータセグメントに対応するチャンク(以下、代表チャンク)を決定する。代表チャンクは、例えば、コンテンツを単位データに区切った際の、その区切りの後の先頭のデータセグメントに対応するチャンク、とすることができる。この例において、代表チャンクは「a」である。更にホスト計算機10は、生成されたすべてのチャンクのハッシュ値を算出して第1計算ハッシュ値とする。 The host computer 10 generates a chunk by compressing the data segment, and determines a chunk (hereinafter, representative chunk) corresponding to the data segment representing each unit data. The representative chunk can be, for example, a chunk corresponding to the first data segment after the division when the content is divided into unit data. In this example, the representative chunk is “a”. Further, the host computer 10 calculates the hash values of all the generated chunks as the first calculated hash value.

 <処理S2>
 この段階では、重複情報リスト1400Aは空である。ホスト計算機10は、重複情報リスト1400Aを参照し、重複情報リスト1400Aが空であることを認識する。
<Process S2>
At this stage, the duplicate information list 1400A is empty. The host computer 10 refers to the duplicate information list 1400A and recognizes that the duplicate information list 1400A is empty.

 なお、処理の流れの中で、ホスト計算機10とストレージ装置30に格納されている重複情報リスト1400は内容が異なる場合がある。そのため、以下の説明では、ホスト計算機10のみに格納されている重複情報リストを重複情報リスト1400Aとし、ストレージ装置30により更新された重複情報リスト1400Aを、重複情報リスト1400Bと表して説明する場合がある。 In the processing flow, the contents of the duplicate information list 1400 stored in the host computer 10 and the storage device 30 may be different. Therefore, in the following description, the duplicate information list stored only in the host computer 10 is referred to as the duplicate information list 1400A, and the duplicate information list 1400A updated by the storage apparatus 30 is represented as the duplicate information list 1400B. is there.

 <処理S3>
 重複情報リスト1400Aの内容が空である場合、ホスト計算機10は、代表チャンクをストレージ装置30に送信する。
<Process S3>
When the content of the duplicate information list 1400 </ b> A is empty, the host computer 10 transmits the representative chunk to the storage device 30.

 <処理S4>
 ストレージ装置30は、ホスト計算機10から受信されたチャンクのハッシュ値を計算して第2計算ハッシュ値とし、第2計算ハッシュ値が、チャンク索引テーブル1300に存在するか否かを判定する。チャンク索引テーブル1300に存在する場合、ストレージ装置30は、チャンク索引テーブル1300を参照して、第2計算ハッシュ値に一致するハッシュ値1301に対応するコンテンツID1302を特定する。この例において、特定したコンテンツIDは、コンテンツF1を示す。つまり、受信されたチャンクaは、ストレージ装置30に格納されているコンテンツF1の代表チャンクである。
<Process S4>
The storage apparatus 30 calculates the hash value of the chunk received from the host computer 10 as the second calculated hash value, and determines whether the second calculated hash value exists in the chunk index table 1300. If the chunk index table 1300 exists, the storage apparatus 30 refers to the chunk index table 1300 to identify the content ID 1302 corresponding to the hash value 1301 that matches the second calculated hash value. In this example, the specified content ID indicates the content F1. That is, the received chunk a is a representative chunk of the content F1 stored in the storage device 30.

 <処理S5>
 ストレージ装置30は、特定したコンテンツIDに対応するコンテンツ管理テーブル1500Bを特定し、特定したコンテンツ管理テーブル1500Bを参照して、特定したコンテンツに含まれているすべてのチャンクを特定する。
<Process S5>
The storage device 30 identifies the content management table 1500B corresponding to the identified content ID, and refers to the identified content management table 1500B to identify all chunks included in the identified content.

 ストレージ装置30は、特定されたチャンクのハッシュ値1502を含む重複情報リスト1400Bを作成し、作成した重複情報リスト1400Bをホスト計算機10に送信する。重複情報リスト1400Bは、コンテンツ毎に作成される。この例において、重複情報リスト1400Bは、「a、b、c、d、e」のハッシュ値を含む。なお、送信する重複排除リスト1400Bは、「b、c、d、e」のハッシュ値を含み、既にストレージ装置が受信している「a」のハッシュ値を含まなくてもよい。 The storage apparatus 30 creates a duplicate information list 1400B including the hash value 1502 of the identified chunk, and transmits the created duplicate information list 1400B to the host computer 10. The duplicate information list 1400B is created for each content. In this example, the duplicate information list 1400B includes hash values of “a, b, c, d, e”. The deduplication list 1400B to be transmitted includes the hash values of “b, c, d, e” and does not have to include the hash value of “a” that has already been received by the storage apparatus.

 <処理S6、S7>
 ホスト計算機10は、受信した重複情報リスト1400Bを使用して、更新コンテンツを構成する代表チャンク以外のチャンクが重複情報リストに存在するか否かを判定する。具体的に、ホスト計算機10は、代表チャンク以外のチャンクの第1計算ハッシュ値が重複情報リスト1400Bに存在するか否かを判定する。なお、以下の説明において、ホスト計算機10が計算するチャンクのハッシュ値を第1計算ハッシュ値とし、ストレージ装置30が計算するチャンクのハッシュ値を第2計算ハッシュ値とする。第1計算ハッシュ値、及び第2計算ハッシュ値の計算に使用される関数は、同じである。
<Processing S6 and S7>
The host computer 10 uses the received duplicate information list 1400B to determine whether a chunk other than the representative chunk that constitutes the update content exists in the duplicate information list. Specifically, the host computer 10 determines whether or not the first calculation hash value of a chunk other than the representative chunk exists in the duplicate information list 1400B. In the following description, the hash value of the chunk calculated by the host computer 10 is referred to as a first calculated hash value, and the hash value of the chunk calculated by the storage device 30 is referred to as a second calculated hash value. The functions used for calculating the first calculated hash value and the second calculated hash value are the same.

 ここで、ホスト計算機10は、「b」及び「c」のハッシュ値は、重複情報リスト1400Bに存在していると判定する。重複情報リスト1400にハッシュ値が存在しているチャンク「b」及び「c」は、ストレージ装置30にチャンクが存在するためストレージ装置30に送信されない。 Here, the host computer 10 determines that the hash values “b” and “c” exist in the duplicate information list 1400B. Chunks “b” and “c” having hash values in the duplicate information list 1400 are not transmitted to the storage apparatus 30 because the chunks exist in the storage apparatus 30.

 <処理S8>
 ホスト計算機10は、更新コンテンツを構成する残りのチャンクのハッシュ値が重複情報リスト1400Bに存在しているか否かを判定する。ここでホスト計算機10は、チャンク「d1」のハッシュ値が重複情報リスト1400Aに存在していないと判定する。
<Process S8>
The host computer 10 determines whether or not the hash values of the remaining chunks that constitute the update content exist in the duplicate information list 1400B. Here, the host computer 10 determines that the hash value of the chunk “d1” does not exist in the duplicate information list 1400A.

 <処理S9、S10>
 ホスト計算機10は、重複情報リスト1400Bにハッシュ値が存在しないことから、ストレージ装置30にチャンクが存在しない可能性が高いチャンク「d1」をストレージ装置30に送信する。ストレージ装置30は、「d1」のハッシュ値を計算して第2計算ハッシュ値とし、チャンク索引テーブル1300に存在するか否かを判定する。「d1」の第2計算ハッシュ値は、代表チャンクのハッシュ値ではないので、チャンク索引テーブル1300に存在しない。そこで、ストレージ装置30は、チャンクデータセット索引テーブル1600を参照し、「d1」の第2計算ハッシュ値が存在するか否かを判定する。存在しない場合、ストレージ装置30は、「d1」の第2計算ハッシュ値を、チャンクデータセット索引テーブル1600に格納する。
<Processing S9 and S10>
Since the hash value does not exist in the duplicate information list 1400B, the host computer 10 transmits the chunk “d1” that has a high possibility that no chunk exists in the storage apparatus 30 to the storage apparatus 30. The storage apparatus 30 calculates the hash value of “d1” to obtain the second calculated hash value, and determines whether or not it exists in the chunk index table 1300. Since the second calculated hash value of “d1” is not the hash value of the representative chunk, it does not exist in the chunk index table 1300. Therefore, the storage apparatus 30 refers to the chunk data set index table 1600 and determines whether or not the second calculated hash value “d1” exists. If not, the storage apparatus 30 stores the second calculated hash value of “d1” in the chunk data set index table 1600.

 <処理S11>
 ストレージ装置30は、記憶部32に新たなチャンクデータセットを生成し、そのチャンクデータセットにチャンク「d1」を格納する。
<Process S11>
The storage device 30 generates a new chunk data set in the storage unit 32 and stores the chunk “d1” in the chunk data set.

 <処理S12>
 ストレージ装置30は、「d1」を格納したチャンクデータセットのチャンクデータセットIDをホスト計算機10へ送信する。ホスト計算機10は、ストレージ装置30から送信されたチャンクデータセットIDを受信することにより、受信したチャンクデータセットIDを含むコンテンツに関するコンテンツ管理テーブル1500Aを作成することができる。
<Process S12>
The storage apparatus 30 transmits the chunk data set ID of the chunk data set storing “d1” to the host computer 10. By receiving the chunk data set ID transmitted from the storage device 30, the host computer 10 can create a content management table 1500A related to the content including the received chunk data set ID.

 <処理S13>
 ホスト計算機10は、更新コンテンツを構成する残りのチャンクのハッシュ値が重複情報リスト1400Bに存在しているか否かを判定する。ここで、ホスト計算機10は、「e」が重複情報リスト1400Bに存在していると判定する。重複情報リスト1400Bに存在している「e」は、ストレージ装置30に送信されない。
<Process S13>
The host computer 10 determines whether or not the hash values of the remaining chunks that constitute the update content exist in the duplicate information list 1400B. Here, the host computer 10 determines that “e” exists in the duplicate information list 1400B. The “e” existing in the duplicate information list 1400B is not transmitted to the storage device 30.

 <処理S14>
 ホスト計算機10は、更新コンテンツを構成する全てのチャンクに対して重複判定処理を行なった後、ストレージ装置30から受信した情報に基づいて、更新コンテンツのコンテンツ管理テーブル1500Aを生成し、生成されたコンテンツ管理テーブル1500Aをストレージ装置30に送信する。この例において、生成されたコンテンツ管理テーブル1500Aは、更新コンテンツがチャンク群「a、b、c、d1、e」を含むことを示す。
<Process S14>
The host computer 10 performs duplication determination processing on all the chunks constituting the update content, and then generates the content management table 1500A for the update content based on the information received from the storage device 30, and the generated content The management table 1500A is transmitted to the storage device 30. In this example, the generated content management table 1500A indicates that the updated content includes the chunk group “a, b, c, d1, e”.

 ストレージ装置30は、更新コンテンツのコンテンツ管理テーブル1500Aを受信し、制御メモリ31に格納されている更新前コンテンツのコンテンツ管理テーブル1500Bを、受信されたコンテンツ管理テーブル1500Aに置き換える。コンテンツ管理テーブル1500を更新前から更新後のものに置き換わることにより、次回の重複排除処理の際に最新のコンテンツのデータに基づいた重複排除リスト1400を作成することができる。すなわち、ホスト計算機10が有する新たな更新コンテンツを構成するチャンクと、ストレージ装置30から送信される最新の重複排除リスト1400に含まれるチャンクとの一致率が高くなり、ホスト装置10からストレージ装置30へと送信するチャンクの数を減らすことができる。 The storage device 30 receives the content management table 1500A of the updated content, and replaces the content management table 1500B of the content before update stored in the control memory 31 with the received content management table 1500A. By replacing the content management table 1500 with the one before and after the update, the deduplication list 1400 based on the latest content data can be created in the next deduplication process. In other words, the match rate between the chunks constituting the new update content of the host computer 10 and the chunks included in the latest deduplication list 1400 transmitted from the storage apparatus 30 increases, and the host apparatus 10 transfers to the storage apparatus 30. And the number of chunks to be sent can be reduced.

 なお、以上の説明では代表チャンク「a」が更新されていない場合を想定したが、代表チャンク「a」が更新される(例えば「a1」に更新される)可能性もある。その場合、ストレージ装置30は、更新後の代表チャンク「a1」と、新たなコンテンツID1302を新たに対応付け、チャンク索引テーブル1300に登録し、そのコンテンツIDに対応する新たなコンテンツ管理テーブル1500Bを生成する(図7の点線枠参照)。 In the above description, it is assumed that the representative chunk “a” has not been updated. However, the representative chunk “a” may be updated (for example, updated to “a1”). In that case, the storage apparatus 30 newly associates the updated representative chunk “a1” with the new content ID 1302, registers it in the chunk index table 1300, and generates a new content management table 1500B corresponding to the content ID. (Refer to the dotted frame in FIG. 7).

 次に、前述の重複排除処理を用いるバックアップ処理について説明する。 Next, backup processing using the above-described deduplication processing will be described.

 図9は、実施例に係るバックアップ処理の一例を示す。 FIG. 9 shows an example of backup processing according to the embodiment.

 ホスト計算機10の一次重複排除処理ソフトウェア121(以下、ソフトウェア121)は、バックアップ対象のコンテンツをデータセグメントに分割する(S901)。 The primary deduplication processing software 121 (hereinafter, software 121) of the host computer 10 divides the content to be backed up into data segments (S901).

 ソフトウェア121は、分割されたデータセグメントを順次選択し、選択されたデータセグメントに対してS902~S909を実行する。 The software 121 sequentially selects the divided data segments, and executes S902 to S909 for the selected data segments.

 ソフトウェア121は、選択されたデータセグメントを圧縮することによりチャンクを生成して対象チャンクとする(S902)。ソフトウェア121は、対象チャンクの長さを取得し、更に対象チャンクのハッシュ値を計算して第1計算ハッシュ値とする(S903)。 The software 121 generates a chunk by compressing the selected data segment and sets it as a target chunk (S902). The software 121 acquires the length of the target chunk, further calculates the hash value of the target chunk, and sets it as the first calculated hash value (S903).

 ソフトウェア121は、S903で取得した対象チャンクの長さ、及び対象チャンクの第1計算ハッシュ値等に基づいて、第1計算ハッシュ値が、重複情報リスト1400Aに存在するか否かを判定する(S904)。 The software 121 determines whether or not the first calculated hash value exists in the duplicate information list 1400A based on the length of the target chunk acquired in S903, the first calculated hash value of the target chunk, and the like (S904). ).

 第1計算ハッシュ値が、重複情報リスト1400Aに存在する場合(S904:Yes)、ソフトウェア121は、重複情報リスト1400Aから、第1計算ハッシュ値と関連付けられているチャンクデータセットID1403を取得する(S905)。 When the first calculated hash value exists in the duplicate information list 1400A (S904: Yes), the software 121 acquires the chunk data set ID 1403 associated with the first calculated hash value from the duplicate information list 1400A (S905). ).

 ソフトウェア121は、対象チャンクのハッシュ値、そのハッシュ値と関連付けられているチャンクデータセットID、及び対象チャンクの長さを、コンテンツ管理テーブル1500における、ハッシュ値1502、チャンクデータセットID1503、チャンク長1505にそれぞれ格納する(S909)。 The software 121 sets the hash value of the target chunk, the chunk data set ID associated with the hash value, and the length of the target chunk to the hash value 1502, the chunk data set ID 1503, and the chunk length 1505 in the content management table 1500. Each is stored (S909).

 すべてのデータセグメントについてS902~S909の処理が終了すると、ソフトウェア121は、コンテンツ管理テーブル1500Aをストレージ装置30に送信する(S910)。ストレージ装置30は、ホスト計算機10からコンテンツ管理テーブル1500Aを受信し、制御メモリ312におけるバックアップ対象のコンテンツのコンテンツ管理テーブル1500Bを受信されたコンテンツ管理テーブルAに置き換える(S911)。 When the processing of S902 to S909 is completed for all the data segments, the software 121 transmits the content management table 1500A to the storage device 30 (S910). The storage apparatus 30 receives the content management table 1500A from the host computer 10, and replaces the content management table 1500B of the backup target content in the control memory 312 with the received content management table A (S911).

 一方、第1計算ハッシュ値が、重複情報リスト1400Aに存在しない場合(S904:No)、ソフトウェア121は、対象チャンクをストレージ装置30に送信する(S906)。 On the other hand, when the first calculated hash value does not exist in the duplicate information list 1400A (S904: No), the software 121 transmits the target chunk to the storage device 30 (S906).

 ストレージ装置30は、S906でソフトウェア121から送信された対象チャンクに基づき、重複情報リスト1400B、及びチャンク索引テーブル1300を作成する情報作成処理を行う。この処理の詳細は、図10で説明する(S907)。 The storage apparatus 30 performs information creation processing for creating the duplicate information list 1400B and the chunk index table 1300 based on the target chunk transmitted from the software 121 in S906. Details of this processing will be described with reference to FIG. 10 (S907).

 ソフトウェア121は、ストレージ装置30から対象チャンクのチャンクデータセットIDを受信する(S908)。その後、ソフトウェア121は、S909以降の処理をする。 The software 121 receives the chunk data set ID of the target chunk from the storage device 30 (S908). Thereafter, the software 121 performs the processing after S909.

 以上のバックアップ処理によれば、ストレージ装置30に格納されているコンテンツを更新する場合の通信において、ホスト計算機10は、バックアップ対象のコンテンツの代表チャンクと、そのコンテンツ内で重複していないと判定されたチャンクと、そのコンテンツのコンテンツ管理テーブル1500Aとを、ストレージ装置30へ送信する。一方、ストレージ装置30は、そのコンテンツ内のチャンクを示す重複排除リスト1400Aと、そのコンテンツ内で重複していないと判定されたチャンクのチャンクデータセットIDとを、ホスト計算機10へ送信する。これにより、ホスト計算機10における重複判定に必要な記憶容量を抑え、ホスト計算機10とストレージ装置30の間のネットワークの負荷を抑えることができる。 According to the above backup processing, in the communication when updating the content stored in the storage device 30, the host computer 10 is determined not to overlap with the representative chunk of the content to be backed up in the content. The chunk and the content management table 1500A of the content are transmitted to the storage device 30. On the other hand, the storage device 30 transmits to the host computer 10 the deduplication list 1400A indicating the chunks in the content and the chunk data set ID of the chunks determined not to be duplicated in the content. Thereby, the storage capacity required for the duplication determination in the host computer 10 can be suppressed, and the load on the network between the host computer 10 and the storage device 30 can be suppressed.

 図10は、情報作成処理の詳細を示す。 FIG. 10 shows details of the information creation process.

 情報作成処理は、ストレージ装置30の制御メモリ31に格納されている二次重複排除処理ソフトウェア3121(以下、ソフトウェア3121)が行う。 The information creation processing is performed by secondary deduplication processing software 3121 (hereinafter, software 3121) stored in the control memory 31 of the storage device 30.

 ソフトウェア3121は、S906でソフトウェア121から送信された対象チャンクのハッシュ値を計算して第2計算ハッシュ値とし、第2計算ハッシュ値が、チャンク索引テーブル1300のハッシュ値1301に存在するか否かを判定する(S1001)。 The software 3121 calculates the hash value of the target chunk transmitted from the software 121 in S906 as a second calculated hash value, and determines whether the second calculated hash value exists in the hash value 1301 of the chunk index table 1300. Determination is made (S1001).

 第2計算ハッシュ値が、チャンク索引テーブル1300に存在する場合(S1001:Yes)、ソフトウェア3121は、チャンク索引テーブル1300から、第2計算ハッシュ値に対応する、コンテンツID1302、及びオフセット1303を取得する(S1002)。 When the second calculated hash value exists in the chunk index table 1300 (S1001: Yes), the software 3121 acquires the content ID 1302 and the offset 1303 corresponding to the second calculated hash value from the chunk index table 1300 ( S1002).

 ソフトウェア3121は、S1002で取得したコンテンツID1302に対応するコンテンツ管理テーブル1500を参照する(S1003)。ソフトウェア3121は、S1003で特定したコンテンツ管理テーブル1500Bから、取得したコンテンツID1302の対象コンテンツを構成する各チャンクの、ハッシュ値1502、チャンクデータセットID1503、及びチャンク長1505を取得する。 The software 3121 refers to the content management table 1500 corresponding to the content ID 1302 acquired in S1002 (S1003). The software 3121 acquires the hash value 1502, the chunk data set ID 1503, and the chunk length 1505 of each chunk constituting the target content of the acquired content ID 1302 from the content management table 1500B specified in S1003.

 ソフトウェア3121は、S1003で取得した情報を含む重複情報リスト1400Bを作成する(S1005)。ソフトウェア3121は、S1005で作成した重複情報リスト1400Bをホスト計算機10に送信する(S1006)。 The software 3121 creates a duplicate information list 1400B including the information acquired in S1003 (S1005). The software 3121 transmits the duplicate information list 1400B created in S1005 to the host computer 10 (S1006).

 ソフトウェア3121は、対象チャンクが代表チャンクか否かを判定する(S1010)。ホスト計算機10は、チャンクをストレージ装置30へ送信する場合、そのチャンクが代表チャンクであるか否かを示す情報を付与する。ソフトウェア3121は、代表チャンクとする情報が付与されている場合、送信された対象チャンクを代表チャンクと判定する。 The software 3121 determines whether the target chunk is a representative chunk (S1010). When transmitting a chunk to the storage apparatus 30, the host computer 10 gives information indicating whether or not the chunk is a representative chunk. The software 3121 determines that the transmitted target chunk is the representative chunk when information representing the representative chunk is given.

 対象チャンクが代表チャンクである場合(S1010:Yes)、ソフトウェア3121は、対象チャンクの第2計算ハッシュ値、コンテンツID、及びオフセットを、チャンク索引テーブル1300に格納する。一方、対象チャンクが代表チャンクでない場合(S1010:No)、ソフトウェア3121は、S907の処理を終了する。 When the target chunk is the representative chunk (S1010: Yes), the software 3121 stores the second calculated hash value, the content ID, and the offset of the target chunk in the chunk index table 1300. On the other hand, when the target chunk is not the representative chunk (S1010: No), the software 3121 ends the process of S907.

 第2計算ハッシュ値が、チャンク索引テーブル1300に存在しない場合(S1001:No)、ソフトウェア3121は、対象チャンクが重複しているか否かを判定する(S1007)。S1007の処理の詳細は、後述する。 When the second calculated hash value does not exist in the chunk index table 1300 (S1001: No), the software 3121 determines whether the target chunk is duplicated (S1007). Details of the processing of S1007 will be described later.

 対象チャンクが重複していない場合(S1007:No)、ソフトウェア3121は、新たなチャンクデータセットのチャンクデータセット索引テーブル1600を生成し、生成されたチャンクデータセット索引テーブル1600に対象チャンクを登録する。ここでソフトウェア3121は、生成されたチャンクデータセット索引テーブル1600に対象チャンクのハッシュ値1601、チャンクデータセットオフセット1602、チャンク長1603を格納する(S1008)。 If the target chunks are not duplicated (S1007: No), the software 3121 generates a chunk data set index table 1600 of a new chunk data set, and registers the target chunk in the generated chunk data set index table 1600. Here, the software 3121 stores the hash value 1601 of the target chunk, the chunk data set offset 1602, and the chunk length 1603 in the generated chunk data set index table 1600 (S1008).

 一方、チャンクが重複している場合(S1007:Yes)、ソフトウェア3121は、コンテンツ管理テーブル1500BのコンテンツID1501を参照して、対象チャンクが格納されているチャンクデータセットIDをホスト計算機10に送信する(S1009)。その後、ソフトウェア3121は、S1010以降の処理をする。 On the other hand, when the chunks overlap (S1007: Yes), the software 3121 refers to the content ID 1501 of the content management table 1500B and transmits the chunk data set ID in which the target chunk is stored to the host computer 10 ( S1009). Thereafter, the software 3121 performs the processing after S1010.

 以上の情報作成処理によれば、ストレージ装置30は、ホスト計算機30から受信した対象チャンクに対応するコンテンツやチャンクデータセットを示す情報を、ホスト計算機30へ送信することができる。 According to the information creation process described above, the storage apparatus 30 can transmit information indicating the content and chunk data set corresponding to the target chunk received from the host computer 30 to the host computer 30.

 一方、ストレージ装置30からホスト計算機10に重複排除リスト1400を送信するのではなく、チャンクデータセット索引テーブル1600をそのまま送信することも考えられる。 On the other hand, instead of transmitting the deduplication list 1400 from the storage apparatus 30 to the host computer 10, it is possible to transmit the chunk data set index table 1600 as it is.

 しかし、ストレージ装置30では、コンテンツを構成するチャンクが更新されると更新後のチャンクを新たなチャンクデータセットに格納し、新たなチャンクデータセット索引テーブル1600を作成するため、更新前のチャンクが入ったチャンクデータセット索引テーブル1600は更新されない。そのため、コンテンツの更新を重ねることで、最新のコンテンツを構成するチャンクが複数のチャンクデータセットに分散して格納されるようになり、チャンクデータセット索引テーブル1600をホスト計算機10に送信しても、ホスト計算機10における、チャンクが重複していると判定できる確率が下がってしまう。 However, in the storage device 30, when the chunks that make up the content are updated, the updated chunks are stored in a new chunk data set, and a new chunk data set index table 1600 is created. The chunk data set index table 1600 is not updated. Therefore, by repeatedly updating the content, chunks constituting the latest content are distributed and stored in a plurality of chunk data sets, and even if the chunk data set index table 1600 is transmitted to the host computer 10, In the host computer 10, the probability that it can be determined that the chunks are duplicated decreases.

 しかし、以上の情報処理により、ストレージ装置30は、ホスト計算機10から送信されたチャンクと同じ最新のコンテンツを構成するチャンクの情報を有する重複排除リスト1400を作成し、ホスト計算機10に送信することができる。これにより、ホスト計算機10における、チャンクが重複していると判定できる確率を上げることができる。 However, with the above information processing, the storage apparatus 30 can create a deduplication list 1400 having information on the chunks that make up the same latest content as the chunk transmitted from the host computer 10 and transmit it to the host computer 10. it can. Thereby, it is possible to increase the probability that the host computer 10 can determine that the chunks are duplicated.

 次に、S1007の詳細を示す。 Next, the details of S1007 will be shown.

 図8は、ストレージシステムにおけるデータ構造の一例を示す。 FIG. 8 shows an example of the data structure in the storage system.

 この図において、図2の要素と同一の符号が付されている要素は、図2の要素と同一であるため、説明を省略する。チャンクインデックス(Chunk Index)1200は、ストレージ装置30に格納されているすべてのチャンクのハッシュ値と、そのチャンクが格納されているチャンクデータセットのチャンクデータセットIDを関連付けて格納する。 In this figure, elements having the same reference numerals as those in FIG. 2 are the same as those in FIG. The chunk index (Chunk Index) 1200 stores the hash values of all the chunks stored in the storage device 30 in association with the chunk data set ID of the chunk data set in which the chunk is stored.

 コンテンツ1700は、任意のファイル名を有し、幾つかのチャンクのデータを有する。チャンクデータセット(Chunk Data set)1800は、チャンクデータセットIDを含むファイル名を有し、幾つかのチャンクの長さとデータを有する。 Content 1700 has an arbitrary file name and has several chunks of data. A chunk data set 1800 has a file name including a chunk data set ID, and has a length and data of several chunks.

 ソフトウェア3121は、チャンクインデックス1200を用いて、対象チャンクのハッシュ値と関連付けられているチャンクデータセットIDを特定する。その後、ソフトウェア3121は、特定したチャンクデータセットIDに対応するチャンクデータセット索引テーブル1600を参照し、対象チャンクがストレージ装置30に格納されているか否かを、ハッシュ値及び長さから判定する。対象チャンクの第2計算ハッシュ値及び長さが一致している場合、ソフトウェア3121は、チャンクが重複していると判定する。 The software 3121 uses the chunk index 1200 to identify the chunk data set ID associated with the hash value of the target chunk. Thereafter, the software 3121 refers to the chunk data set index table 1600 corresponding to the specified chunk data set ID, and determines whether or not the target chunk is stored in the storage device 30 from the hash value and the length. If the second calculated hash value and the length of the target chunk match, the software 3121 determines that the chunk is duplicated.

 ホスト計算機10は、バックアップ対象のコンテンツのユーザのユーザIDを、そのコンテンツから取得し、代表チャンクと共に、ストレージ装置30へ送信しても良い。この場合、ストレージ装置30は、ユーザIDとコンテンツIDを関連付け、二つのコンテンツのデータが同一であっても、互い異なるユーザIDに関連付けられていれば、互いに異なるコンテンツと認識する。これにより、ストレージ装置30は、異なるユーザのコンテンツを区別して管理することができる。 The host computer 10 may acquire the user ID of the user of the content to be backed up from the content and send it to the storage device 30 together with the representative chunk. In this case, the storage device 30 associates the user ID with the content ID, and recognizes that the content is different from each other if the data of the two contents is the same, but is associated with different user IDs. Thereby, the storage apparatus 30 can distinguish and manage the contents of different users.

 チャンクは、データセグメントが圧縮されたものとしたが、データセグメントそのものであってもよい。以上の実施例では、ホスト計算機10とストレージ装置30の二つの筺体が協働するストレージシステムについて説明したが、ストレージシステムが一つの筺体内にホスト計算機10のプロセッサとストレージコントローラ31を有していてもよい。 The chunk is a data segment compressed, but may be the data segment itself. In the above embodiment, the storage system in which the two cases of the host computer 10 and the storage device 30 cooperate is described. However, the storage system has the processor of the host computer 10 and the storage controller 31 in one case. Also good.

 本発明のストレージ装置において、計算機は、ホスト計算機10やバックアップサーバ装置などに対応する。記憶デバイスは、記憶デバイス321などに対応する。ブロックは、コンテンツなどに対応する。サブブロックは、チャンクやデータセグメントなどに対応する。格納情報は、チャンク索引テーブル1300およびコンテンツ管理テーブル1500などに対応する。サブブロック情報は、チャンク索引テーブル1300などに対応する。ブロック情報は、コンテンツ管理テーブル1500Bなどに対応する。重複情報は、重複情報リスト1400などに対応する。格納位置は、チャンクデータセットなどに対応する。位置情報は、チャンクデータセット索引テーブル1600などに対応する。更新情報は、コンテンツ管理テーブル1500Aなどに対応する。複数のサブブロックの中の一部のサブブロックは、代表チャンクなどに対応する。代表サブブロックは、代表チャンクなどに対応する。第一コントローラは、ストレージコントローラ31などに対応する。第二コントローラは、CPU11などに対応する。 In the storage device of the present invention, the computer corresponds to the host computer 10 or a backup server device. The storage device corresponds to the storage device 321 and the like. A block corresponds to content or the like. A sub-block corresponds to a chunk or a data segment. The storage information corresponds to the chunk index table 1300, the content management table 1500, and the like. The sub-block information corresponds to the chunk index table 1300 and the like. The block information corresponds to the content management table 1500B and the like. The duplicate information corresponds to the duplicate information list 1400 and the like. The storage location corresponds to a chunk data set or the like. The position information corresponds to the chunk data set index table 1600 and the like. The update information corresponds to the content management table 1500A and the like. Some of the sub-blocks correspond to representative chunks. The representative sub block corresponds to a representative chunk or the like. The first controller corresponds to the storage controller 31 and the like. The second controller corresponds to the CPU 11 and the like.

 以上、幾つかの実施例を説明したが、それらの実施例は、一例にすぎず、本発明は他の様々な態様に適用可能である。 Although several embodiments have been described above, these embodiments are merely examples, and the present invention can be applied to various other modes.

 10…ホスト計算機、30…ストレージ装置、1300…チャンク索引テーブル、1400…重複情報リスト、1500…コンテンツ管理テーブル、1600…チャンクデータセット索引テーブル

 
DESCRIPTION OF SYMBOLS 10 ... Host computer, 30 ... Storage apparatus, 1300 ... Chunk index table, 1400 ... Duplicate information list, 1500 ... Content management table, 1600 ... Chunk data set index table

Claims (10)

 記憶デバイスと、
 前記記憶デバイスおよび計算機に接続されたコントローラと
を備え、
 前記コントローラは、
  データのブロックの分割に基づいて得られる複数のサブブロックを、前記計算機から受信して前記記憶デバイスへ格納し、
  前記ブロックと、前記格納された複数のサブブロックとを関連づける格納情報を記憶し、
  前記計算機から前記ブロック内のサブブロックを示す対象情報を受信し、
  前記格納情報に基づいて、前記対象情報に示されているサブブロックが属するブロックを特定し、
  前記格納情報に基づいて、前記格納された複数のサブブロックを示す重複情報を生成して前記計算機に送信し、
  前記ブロックの更新データを分割することにより得られる複数のサブブロックの中で前記重複情報に示されていないサブブロックである更新サブブロックを前記計算機から受信する、
ストレージ装置。
A storage device;
A controller connected to the storage device and a computer,
The controller is
A plurality of sub-blocks obtained based on the division of the block of data are received from the computer and stored in the storage device;
Storing storage information associating the block with the plurality of stored sub-blocks;
Receiving target information indicating sub-blocks in the block from the computer;
Based on the storage information, identify a block to which the sub-block indicated in the target information belongs,
Based on the stored information, generate duplicate information indicating the plurality of stored sub-blocks and send to the computer,
Receiving an update sub-block from the computer, which is a sub-block not shown in the duplication information among a plurality of sub-blocks obtained by dividing the update data of the block;
Storage device.
 請求項1記載のストレージ装置であって、
 前記格納情報は、前記格納された複数のサブブロックの中の一部のサブブロックと、前記ブロックとの関連付けを示すサブブロック情報と、前記ブロックと、前記格納された複数のサブブロックと、前記格納された複数のサブブロックの格納位置との関連付けを示すブロック情報とを含み、
 前記コントローラは、
  前記サブブロック情報に基づいて、前記対象情報に示されているサブブロックが属するブロックを特定し、
  前記ブロック情報に基づいて、前記格納された複数のサブブロックを示す前記重複情報を生成する、
ストレージ装置。
The storage device according to claim 1,
The storage information includes a part of the plurality of stored sub-blocks, sub-block information indicating an association with the block, the block, the plurality of stored sub-blocks, Block information indicating an association with storage positions of a plurality of stored sub-blocks,
The controller is
Based on the sub-block information, identify a block to which the sub-block indicated in the target information belongs,
Based on the block information, the duplicate information indicating the stored sub-blocks is generated.
Storage device.
 請求項2記載のストレージ装置であって、
 前記コントローラは、
  前記格納された複数のサブブロックのそれぞれの格納位置を示す位置情報を記憶し、
  前記位置情報に基づいて、前記格納された複数のサブブロックのそれぞれの格納位置を含む前記重複情報を生成し、
  前記更新サブブロックの受信に応じ、前記位置情報に基づいて、前記更新サブブロックが前記記憶デバイスに格納されているか否かを判定し、
  前記更新サブブロックが前記記憶デバイスに格納されていないと判定された場合、前記更新サブブロックを前記記憶デバイスへ格納する、
ストレージ装置。
The storage device according to claim 2,
The controller is
Storing position information indicating each storage position of the plurality of stored sub-blocks;
Based on the position information, generating the duplication information including the storage position of each of the stored sub-blocks,
In response to receiving the update subblock, based on the location information, determine whether the update subblock is stored in the storage device;
If it is determined that the updated sub-block is not stored in the storage device, the updated sub-block is stored in the storage device;
Storage device.
 請求項3記載のストレージ装置であって、
 前記コントローラは、
  前記記憶デバイスにおける前記更新サブブロックの格納位置を前記計算機へ送信し、
  前記重複情報と前記更新サブブロックの格納位置とに基づく更新情報であって、前記更新データに含まれるすべてのサブブロックの格納位置を示す前記更新情報を、前記計算機から受信し、
  前記更新情報により前記ブロック情報を更新する、
ストレージ装置。
The storage device according to claim 3,
The controller is
Transmitting the storage location of the update sub-block in the storage device to the computer;
The update information based on the duplication information and the storage location of the update sub-block, the update information indicating the storage location of all the sub-blocks included in the update data is received from the computer,
Updating the block information with the update information;
Storage device.
 請求項4記載のストレージ装置であって、
 前記対象情報は、前記更新データに含まれる複数のサブブロックの中から所定の規則で選択された代表サブブロックであり、
 前記サブブロック情報は、前記代表サブブロックと前記ブロックとの関連付けを示す、
ストレージ装置。
The storage apparatus according to claim 4, wherein
The target information is a representative sub-block selected by a predetermined rule from a plurality of sub-blocks included in the update data,
The sub-block information indicates an association between the representative sub-block and the block.
Storage device.
 請求項5記載のストレージ装置であって、
 前記コントローラは、前記格納された複数のサブブロックのそれぞれのメッセージダイジェストを算出して前記ブロック情報に含め、
 前記重複情報は、前記格納された複数のサブブロックのそれぞれのメッセージダイジェストを含む、
ストレージ装置。
The storage device according to claim 5,
The controller calculates a message digest of each of the stored sub-blocks and includes it in the block information,
The duplicate information includes a message digest of each of the stored sub-blocks.
Storage device.
 請求項6記載のストレージ装置であって、
 前記複数のサブブロックは、前記ブロックを分割して得られる複数のデータセグメントがそれぞれ圧縮されることにより得られる、
ストレージ装置。
The storage apparatus according to claim 6, wherein
The plurality of sub-blocks are obtained by compressing a plurality of data segments obtained by dividing the block,
Storage device.
 請求項7記載のストレージ装置であって、
 前記ブロック情報は、前記ブロックと、前記ブロックのユーザとの関連付けを示し、
 前記コントローラは、互いに異なるユーザに関連付けられた複数のブロックを互いに異なるブロックと認識する、
ストレージ装置。
The storage apparatus according to claim 7, wherein
The block information indicates an association between the block and a user of the block;
The controller recognizes a plurality of blocks associated with different users as different blocks.
Storage device.
 記憶デバイスと、
 前記記憶デバイスに接続された第一コントローラと、
 前記第一コントローラに接続された第二コントローラと、
を備え、
 前記第二コントローラは、データのブロックの分割に基づいて複数のサブブロックを生成し、生成した複数のサブブロックを前記第一コントローラに送信し、
 前記第一コントローラは、
  前記第二コントローラから送信された前記複数のサブブロックを受信し、受信したサブブロックを前記記憶デバイスへ格納し、
  前記ブロックと、前記格納された複数のサブブロックとを関連づける格納情報を記憶し、
 前記第二コントローラは、前記ブロック内のサブブロックを示す対象情報を前記第一コントローラに送信し、
 前記第一コントローラは、
  前記第二コントローラから送信された前記対象情報を受信し、
  前記格納情報に基づいて、前記対象情報に示されているサブブロックが属するブロックを特定し、
  前記格納情報に基づいて、前記格納された複数のサブブロックを示す重複情報を生成して前記第二コントローラに送信し、
 前記第二コントローラは、前記ブロックの更新データの分割に基づいて複数のサブブロックを生成し、前記更新データから生成された複数のサブブロックの中で前記重複情報に示されていないサブブロックである更新サブブロックを前記第一コントローラに送信し、
 前記第一コントローラは、前記第二コントローラから送信された前記更新サブブロックを受信する、
ストレージシステム。
A storage device;
A first controller connected to the storage device;
A second controller connected to the first controller;
With
The second controller generates a plurality of sub-blocks based on the division of the block of data, and transmits the generated plurality of sub-blocks to the first controller;
The first controller is
Receiving the plurality of sub-blocks transmitted from the second controller, storing the received sub-blocks in the storage device;
Storing storage information associating the block with the plurality of stored sub-blocks;
The second controller transmits target information indicating a sub-block in the block to the first controller,
The first controller is
Receiving the target information transmitted from the second controller;
Based on the storage information, identify a block to which the sub-block indicated in the target information belongs,
Based on the storage information, generate duplicate information indicating the plurality of stored sub-blocks and send it to the second controller,
The second controller is a sub-block that generates a plurality of sub-blocks based on the division of the update data of the block and is not indicated in the duplication information among the plurality of sub-blocks generated from the update data Sending an update sub-block to the first controller;
The first controller receives the update sub-block transmitted from the second controller;
Storage system.
 計算機に接続され記憶デバイスを管理するストレージ装置におけるデータの制御方法であって、
 ストレージ装置は、
  データのブロックの分割に基づいて得られる複数のサブブロックを、前記計算機から受信して前記記憶デバイスへ格納し、
  前記ブロックと、前記格納された複数のサブブロックとを関連づける格納情報を記憶し、
  前記計算機から前記ブロック内のサブブロックを示す対象情報を受信し、
  前記格納情報に基づいて、前記対象情報に示されているサブブロックが属するブロックを特定し、
  前記格納情報に基づいて、前記格納された複数のサブブロックを示す重複情報を生成して前記計算機に送信し、
  前記ブロックの更新データを分割することにより得られる複数のサブブロックの中で前記重複情報に示されていないサブブロックである更新サブブロックを前記計算機から受信する、
ストレージ装置におけるデータの制御方法。

 
A method for controlling data in a storage apparatus connected to a computer and managing storage devices,
The storage device
A plurality of sub-blocks obtained based on the division of the block of data are received from the computer and stored in the storage device;
Storing storage information associating the block with the plurality of stored sub-blocks;
Receiving target information indicating sub-blocks in the block from the computer;
Based on the storage information, identify a block to which the sub-block indicated in the target information belongs,
Based on the stored information, generate duplicate information indicating the plurality of stored sub-blocks and send to the computer,
Receiving an update sub-block from the computer, which is a sub-block not shown in the duplication information among a plurality of sub-blocks obtained by dividing the update data of the block;
A method for controlling data in a storage apparatus.

PCT/JP2013/075233 2013-09-19 2013-09-19 Storage device, method for controlling data in storage device, and storage system Ceased WO2015040711A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/075233 WO2015040711A1 (en) 2013-09-19 2013-09-19 Storage device, method for controlling data in storage device, and storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/075233 WO2015040711A1 (en) 2013-09-19 2013-09-19 Storage device, method for controlling data in storage device, and storage system

Publications (1)

Publication Number Publication Date
WO2015040711A1 true WO2015040711A1 (en) 2015-03-26

Family

ID=52688396

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/075233 Ceased WO2015040711A1 (en) 2013-09-19 2013-09-19 Storage device, method for controlling data in storage device, and storage system

Country Status (1)

Country Link
WO (1) WO2015040711A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111164574A (en) * 2017-10-02 2020-05-15 西部数据技术公司 Redundant coded stripes based on internal addresses of storage devices

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013514558A (en) * 2010-08-31 2013-04-25 日本電気株式会社 Storage system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013514558A (en) * 2010-08-31 2013-04-25 日本電気株式会社 Storage system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111164574A (en) * 2017-10-02 2020-05-15 西部数据技术公司 Redundant coded stripes based on internal addresses of storage devices
CN111164574B (en) * 2017-10-02 2023-10-24 西部数据技术公司 Redundancy coding stripe based on internal address of storage device

Similar Documents

Publication Publication Date Title
US11797510B2 (en) Key-value store and file system integration
US11461015B2 (en) Available storage space in a system with varying data redundancy schemes
US9703803B2 (en) Replica identification and collision avoidance in file system replication
KR102007070B1 (en) Reference block aggregating into a reference set for deduplication in memory management
CN103890738B (en) System and method for preserving deduplication in storage objects after clone split operations
US9928210B1 (en) Constrained backup image defragmentation optimization within deduplication system
US9792306B1 (en) Data transfer between dissimilar deduplication systems
EP2751693B1 (en) Optimization of a partially deduplicated file
US8321384B2 (en) Storage device, and program and method for controlling storage device
US9087011B2 (en) Data selection for movement from a source to a target
CN106407224B (en) A method and device for file compaction in a key-value storage system
US10437682B1 (en) Efficient resource utilization for cross-site deduplication
KR102187127B1 (en) Deduplication method using data association and system thereof
US20130311429A1 (en) Method for controlling backup and restoration, and storage system using the same
US10108644B1 (en) Method for minimizing storage requirements on fast/expensive arrays for data mobility and migration
US8135918B1 (en) Data de-duplication for iSCSI
US9959049B1 (en) Aggregated background processing in a data storage system to improve system resource utilization
WO2013080077A1 (en) Fingerprint-based data deduplication
US20160291877A1 (en) Storage system and deduplication control method
WO2015145661A1 (en) Storage system and method for eliminating duplicate data
US20210334241A1 (en) Non-disrputive transitioning between replication schemes
US20180107404A1 (en) Garbage collection system and process
CN112068992B (en) Remote data replication method, storage device and storage system
CN112416879B (en) NTFS file system-based block-level data deduplication method
US20170124107A1 (en) Data deduplication storage system and process

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: 13893767

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13893767

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP