WO2014087508A1 - ストレージシステム及びストレージシステムの制御方法 - Google Patents

ストレージシステム及びストレージシステムの制御方法 Download PDF

Info

Publication number
WO2014087508A1
WO2014087508A1 PCT/JP2012/081566 JP2012081566W WO2014087508A1 WO 2014087508 A1 WO2014087508 A1 WO 2014087508A1 JP 2012081566 W JP2012081566 W JP 2012081566W WO 2014087508 A1 WO2014087508 A1 WO 2014087508A1
Authority
WO
WIPO (PCT)
Prior art keywords
backup
content
chunk
data
storage
Prior art date
Application number
PCT/JP2012/081566
Other languages
English (en)
French (fr)
Inventor
光雄 早坂
航史 山崎
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2012/081566 priority Critical patent/WO2014087508A1/ja
Priority to US14/425,675 priority patent/US9952936B2/en
Priority to JP2014550853A priority patent/JP5774794B2/ja
Publication of WO2014087508A1 publication Critical patent/WO2014087508A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Definitions

  • the present invention relates to a storage system for storing data from an external device and a storage system control method.
  • a storage device is connected to an external device such as a host computer via a communication network.
  • This type of storage device includes, for example, a plurality of hard disk devices (HDD: Hard Disk Disk Drive) as storage devices for storing data.
  • HDD Hard Disk Disk Drive
  • a data amount reduction process is executed when data is stored in the storage device.
  • file compression compression
  • de-duplication reduces the data capacity by contracting data segments having the same contents in one file.
  • the deduplication process reduces the total data capacity of the file system and the storage system by reducing the data segments of the same content detected not only within one file but also between files.
  • the unit data that is the unit of deduplication processing is referred to as “chunk”.
  • data obtained by collecting a plurality of chunks is called a “container”.
  • highly related chunks are collected in a container.
  • a table in which a hash value calculated for each stored chunk is recorded for each container is referred to as a “container index table (Container Index)”.
  • Container Index a table in which a hash value calculated for each stored chunk is recorded for each container.
  • content logically grouped data that is a unit stored in the storage device.
  • the contents include not only normal files but also files obtained by collecting normal files such as archive files, backup files, and virtual volume files.
  • 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 inquires the storage apparatus for duplication determination 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 a round trip of data with the storage apparatus.
  • Patent Document 2 describes a method of performing duplication determination by a host computer and storing only new chunks in a storage device according to the result.
  • an object of the present invention is to provide a storage system and a storage system control method capable of performing efficient deduplication processing in cooperation with an external device and a storage device.
  • an embodiment of the present invention is a storage system for storing data from an external device in units of content, and backups the data from the external devices in units of content.
  • a backup device that executes backup processing for creating data, and a storage device that is communicably connected to the backup device and stores the backup data received from the backup device.
  • the backup device uses first duplication determination information that is information for determining whether or not the content that is the backup data is already stored in the storage device, and the first duplication determination information.
  • a first backup processing unit that determines whether the content is already stored in the storage device, and the storage device determines whether the content that is the backup data is already stored in the storage device.
  • the first backup processing unit determines that the content is not stored in the storage device, and the second backup processing unit stores the content in the storage device.
  • the second backup processing unit transmits the second duplication determination information to the backup device, and the first backup processing unit of the backup device receives the received second duplication determination A process of incorporating information into the first duplication determination information is executed.
  • FIG. 1 is a diagram showing an overall configuration of a storage system 1 according to a first embodiment of the present invention. It is a block diagram which shows the structure of the backup server and storage apparatus which concern on 1st Embodiment.
  • 3 is a diagram illustrating a configuration example of a container index table and a chunk index table used in backup processing in the storage system 1.
  • FIG. 3 is a diagram illustrating a configuration example of a container index table and a chunk index table that are used in a restore process in the storage system 1.
  • FIG. 3 is a diagram illustrating a configuration example of a content index table used in a restore process in the storage system 1.
  • FIG. It is a figure which illustrates notionally backup processing concerning a 1st embodiment.
  • FIG. 14 is a flowchart illustrating an example of a processing procedure of backup processing according to the third embodiment. It is a figure which shows the whole structure of the storage system 1 which concerns on the 4th Embodiment of this invention. It is a flowchart which shows an example of the process sequence of the backup process which concerns on 4th Embodiment. It is a flowchart which shows an example of the process sequence of the backup process which concerns on 5th Embodiment. It is a flowchart which shows an example of the process sequence of the backup process which concerns on 6th Embodiment. It is a flowchart which shows an example of the process sequence of the backup process which concerns on 7th Embodiment.
  • FIG. 1 shows an overall configuration of a storage system 1 according to a first embodiment of the present invention.
  • the storage system 1 includes a backup server 14 (14a, 14b,..., 14n) installed in each of a plurality of bases 2 (2a, 2b,..., 2n) and a storage apparatus 10 installed in the data center 3. It is prepared for.
  • symbol of a, b, ..., n may be abbreviate
  • the plurality of bases 2 and the data center 3 are connected via a communication network 4.
  • the communication network 4 can be configured as an appropriate communication line including, for example, a WAN (Wide Area Network), a LAN (Local Area Network), the Internet, a public line, or a dedicated line.
  • Each base 2 includes business servers 5 (5a, 5b,..., 5n), clients 6 (6a, 6b,..., 6n), and backup servers 14 (14a, 14b,..., 14n).
  • the business server 5, the client 6, and the backup server 14 are connected to be communicable with each other via a communication network 13 (13a, 13b,..., 13n) such as a LAN.
  • the business server 5 is a computer that receives a request from the client 6 and provides a service corresponding to the request.
  • a processor such as a CPU (Central Processing Unit), a RAM (Random Access Memory), a ROM (Read Only Memory) And an auxiliary storage device (not shown) such as HDD (Hard Disk Drive) and SSD (Solid State Drive).
  • the client 6 is also a computer having a configuration substantially similar to that of the business server 5 and functions as a terminal for a user who uses a service provided by the business server 5.
  • the backup server 14 periodically backs up the data of the business server 5 and the client 6 connected in each base 2 and transmits the backup data to the data center 3. Further, the backup server 14 restores data from the data center 3 to the business server 5 or the client 6 in response to requests from the business server 5 and the client 6.
  • the storage device 10 stores the data received from the plurality of backup servers 14 in the storage medium of the storage device 10. Further, the storage apparatus 10 reads out data stored in the storage medium in response to a request from the backup server 14 and transmits the data to the backup server 14.
  • the backup server 14 installed in each base 2 and the storage device 10 installed in the data center 3 cooperate to efficiently perform deduplication of data.
  • FIG. 2 is a block diagram showing a configuration example of the backup server 14a installed in the base 2a of the storage system 1 shown in FIG. 1 and the storage apparatus 10 installed in the data center 3.
  • the backup server 14a is shown, but the backup servers 14b,..., 14n installed in the other bases 2b to 2n have substantially the same configuration.
  • the backup server 14a mainly includes a processor 102 such as a CPU (Central Processing Unit), a memory 103 such as a RAM (Random Access Memory), a ROM (Read Only Memory), and an HDD (Hard Disk Drive). ), An auxiliary storage device 104 (hereinafter referred to as “HDD”) such as SSD (Solid State Drive), and a network interface 105 which is a communication interface with the communication network 4 such as NIC (Network Interface Card).
  • the processor 102, the memory 103, the HDD 104, and the network interface 105 are communicably connected to each other via the system bus 108.
  • the processor 102 functions as an arithmetic processing unit including a CPU and the like, and controls the operation of the backup server 14a according to programs, arithmetic parameters, and the like stored in the memory 103.
  • the memory 103 stores a backup program 106 and a restore program 107 on the backup server 14 side.
  • the memory 103 is used not only for storing various types of information read from the HDD 104 but also as a work memory for the processor 102.
  • the HDD 104 stores various software, management information, backup data, and the like. Note that the backup program 106 and the restore program 107 may be stored in the HDD 104 and read from the HDD 104 to the memory 103 when the programs are executed by the processor.
  • the memory 103 also stores a container index table 320 (first duplication determination information) that is a table that is referred to when the backup program 106 and the restore program 107 are executed.
  • the container index table 320 can be stored in the HDD 104, and can be rolled into the memory 103 as necessary when the backup program 106 and the restore program 107 refer to it.
  • the backup program 106 provides functions for performing data processing such as backup data determination and duplication determination processing, and transmits backup data to the storage apparatus 10 via the network interface 105. Further, the backup program 106 receives information necessary for duplication determination processing from the storage apparatus 10 via the network interface 105.
  • the restore program 107 receives backup data necessary for restore processing from the storage apparatus 10 via the network interface 105 and restores the original data.
  • the storage apparatus 10 mainly includes a processor 112, a memory 113, an HDD 114, and a network interface 115.
  • the processor 112, the memory 113, the HDD 114, and the network interface 115 are connected to each other via a system bus 118 so that they can communicate with each other.
  • the processor 112 functions as an arithmetic processing device including a CPU and the like, and controls the operation of the storage device 10 according to programs, arithmetic parameters, and the like stored in the memory 113.
  • the memory 113 stores a backup program 116 and a restore program 117 on the storage device 10 side.
  • the memory 113 is used not only for storing various types of information read from the HDD 114 but also as a work memory for the processor 112.
  • the HDD 114 stores various software, management information, data after deduplication processing, and the like.
  • the memory 113 also stores a chunk index table 310, a container index table 320, and a content index table 370, which are tables that are referred to when the backup program 116 and the restore program 117 are executed.
  • the chunk index table 310, the container index table 320, and the content index table 370 are stored in the HDD 114, and are rolled into the memory 113 as necessary when the backup program 116 and the restore program 117 refer to them. can do.
  • the chunk index table 310, the container index table 320, and the content index table 370 constitute second duplication determination information.
  • the backup program 116 performs deduplication processing on the data received from the backup server 14 a and stores the data after deduplication processing in the HDD 114.
  • the backup program 116 also transmits information necessary for performing the duplication determination process in the backup server 14a to the backup server 14a via the network interface 115.
  • the restore program 117 reads data corresponding to the restore request received from the backup server 14 a from the HDD 114 and transmits the data to the backup server 14 a via the network interface 115.
  • the backup program 106 of the backup server 14 and the backup program 116 of the storage apparatus 10 are equipped with a processing function for reducing the amount of data to be backed up.
  • data processing such as file compression processing and deduplication processing is used.
  • the file compression process is a process for reducing the data capacity by contracting data segments (unit data) having the same contents included in one file.
  • deduplication processing reduces the total data capacity of data stored in a file system, storage system, etc. by contracting data segments of the same content detected not only within one file but also between multiple files. This is a process for reducing.
  • a data segment that is a unit of deduplication processing for backup data is referred to as “chunk”, and data in which a plurality of chunks are collected is referred to as “container”.
  • contents logically collected data that is a unit stored in the storage device 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.
  • One container 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 for each container in advance and collecting chunks generated from one or more contents until the container is full, the container of the container considering the locality of data It can be generated. In other words, when restoring original data from backup data of a certain content, if the container in which the first chunk of that content is stored is identified, it is highly possible that subsequent chunks can be obtained from the same container. . Therefore, it is expected that processing for calling a different container from the HDD 114 to the memory 113 to restore specific content can be reduced.
  • 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 10 according to the present embodiment, it is possible to execute duplication determination processing in a short time and at low cost by using a message digest of chunks.
  • 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 “finger print (FP)”.
  • FP finger print
  • the fingerprint can be obtained using any 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.
  • the chunk to be transmitted is a chunk in which the same content is already stored in the storage apparatus 10 (hereinafter referred to as “duplicate chunk”). ) Or chunks not yet stored (hereinafter referred to as “new chunks”). Since the backup server 14 does not have information on all the chunks stored in the storage device 10, it may determine that the duplicate chunk is a new chunk.
  • the backup program 106 transmits the chunk and the fingerprint (hash value) of the chunk to the storage apparatus 10.
  • the fingerprint the fingerprint of the chunk
  • the backup program 106 transmits link information indicating the storage location to the storage apparatus 10 without transmitting the chunk to the storage apparatus 10.
  • the backup program 116 of the storage apparatus 10 determines whether the received chunk is a duplicate chunk having the same content as the chunk already stored in the HDD 114. It is determined whether the chunk is a new chunk that is not yet stored in the HDD 114.
  • the backup program 116 stores the chunk in the HDD 114 as it is.
  • the backup program 116 stores link information indicating the storage location in the HDD 114 without storing the chunk in the HDD 114.
  • link information of duplicate chunks is received from the backup server 14, it is stored in the HDD 114 as it is.
  • the backup program 106 of the backup server 14 and the backup program 116 of the storage apparatus 10 repeatedly execute the chunk deduplication processing in cooperation with each other to prevent multiple registration of duplicate chunks.
  • This duplicate chunk elimination process can reduce the used capacity of the HDD 114 and speed up the backup process.
  • a “container” is a processing unit for storing data in the HDD 114, which is composed of a plurality of chunks obtained by dividing one or more contents. Further, for each “container”, the backup program 116 of the storage apparatus 10 creates a container index table for managing the arrangement of each chunk constituting each container.
  • the container index table stores a chunk offset (a chunk position in the container) and a chunk size.
  • the container index table is used for determining chunk duplication.
  • the backup program 116 of the storage apparatus 10 also creates a chunk index table.
  • the chunk index table is a table indicating in which container index table a chunk generated by dividing backup data is stored.
  • the chunk index table is created by the storage apparatus 10 when a container for storing a chunk is determined.
  • the chunk index table is used to determine a container index table to be used for chunk deduplication determination when executing backup processing. Details of the container index table and the chunk index table will be described later.
  • the fingerprints of each chunk are stored in the container index table described above, and the fingerprints of the chunks are compared with each other during the duplication determination process. Thereby, compared with the case where the chunks are compared bit by bit, it is possible to realize speeding up and cost reduction of the duplication determination process.
  • a write-once storage device may be used in order to guarantee data integrity and realize highly reliable backup processing.
  • data can be written only once, but the written data can be read any number of times. Since data written in a write-once storage device cannot be erased or altered, it is suitable for archiving data for evidence preservation.
  • An example of such a write-once storage device is an optical disk device that uses a ROM optical disk.
  • a magnetic disk device is not a write-once type storage device because it can update written data.
  • the magnetic disk device can be used as a write-once type storage device by devising the configuration of the file system, driver device, etc. and allowing only appending (ie, prohibiting overwriting of data).
  • a predetermined number of chunks or data capacity is set in advance in the container described above. For this reason, chunks are aggregated on the memory 113 side until the container is full, and when the container is full, the chunk is written in the backup storage device (HDD 114) in units of containers. For example, when a write-once hard disk device is used as a storage device, the storage device 10 appends a chunk to the container on the memory 113 until the container is full. At the same time, the storage apparatus 10 creates a container index table that manages the arrangement of the chunks in the container and a chunk index table that manages the correspondence between the chunks and the container index table. In the backup data, there is a universal chunk that always appears for each backup generation, and the universal chunk is stored in a container prepared at the time of initial backup.
  • the container index table 320 is a table created for each container.
  • the chunk index table 310 is a table for managing the chunks stored in the container.
  • FIG. 3 illustrates a container index table Tg (320) created for a specific container in the container index table 320.
  • the container index table Tg (320) includes items of a fingerprint 321, a container offset 322, and a chunk length 323.
  • the fingerprint 321 stores the fingerprint of each chunk (in this embodiment, a hash value calculated by an appropriate hash function).
  • the container offset 322 stores an offset value that gives the start position of the chunk in the container.
  • the chunk length 323 stores information indicating the length of the chunk. That is, management information for each chunk is stored in each row of the container index table Tg (320).
  • the container index table Tg (320) illustrated in FIG. 3 stores chunk b management information 320b, chunk c management information 320c, and chunk f management information 320f.
  • the management information related to each chunk is attached with a code representing each chunk as a subscript. For example, the fingerprint 321 calculated for the chunk b is represented as FPb.
  • the plurality of container index tables 320 are managed by the chunk index table 310.
  • a container ID 312 which is a code for identifying each container and a fingerprint 311 of each chunk are recorded in association with each other.
  • the container ID 312 here is also used as pointer information that allows the container index table 320 to be referred to.
  • the container index table 320 corresponding to the container ID 312 is shared by an identifier called UUID (Universally Unique Identifier).
  • whether or not to refer to the chunk index table 310 may be determined according to the processing result of the filter processing for identifying whether or not the chunk is a new chunk. That is, for a chunk that is surely not recorded in the chunk index table 310, the reference processing itself of the chunk index table 310 may be skipped, and the chunk may be directly stored in the new container. If this processing technique is adopted, the number of times the backup program 116 of the storage apparatus 10 refers to the chunk index table 310 can be reduced, and the backup processing can be further speeded up.
  • the fingerprint 311 and the container ID 312 of all chunks are registered in the chunk index table 310, but the number of registered chunks can be reduced.
  • each container 380 is created in consideration of data locality.
  • the backup data includes a lot of data that is the same or partially modified between backup generations, if a chunk stored in a certain container 380 is included in an arbitrary content, the same It is very likely that other chunks stored in the container are also included in the content. Therefore, after searching the container index table 320 from the chunk index table 310, it is possible to determine whether or not content is duplicated by using the container index table 320.
  • FIG. 4 shows an example of the container index table 320 and the chunk index table 310 when chunks registered in the chunk index table 310 are reduced.
  • the backup program 116 of the storage apparatus 10 searches the chunk index table 310 using the fingerprint FP b of the chunk b.
  • the fingerprint FP b is associated with the container ID Tg (320). Therefore, the backup program 116 reads the container index table Tg (320) from the HDD 114 and expands it on the memory 113.
  • the duplication determination of the chunk c and the chunk f can be performed using the expanded container index table Tg (320).
  • the chunk index table 310 by reducing the number of chunks registered in the chunk index table 310, it is possible to reduce the storage capacity and the memory usage necessary for the deduplication processing. Further, since the number of chunk registrations in the chunk index table 310 is reduced, it is possible to speed up the search for the fingerprint 311 corresponding to an arbitrary chunk.
  • the content index table 370 is a table created for each content, and is a table for managing chunks included in the content.
  • the content index table 370 includes a content ID 371, a fingerprint 372, a container ID 373, a content offset 374, and a chunk length 375.
  • the content ID 371 stores information for identifying each content from each other.
  • the fingerprint 372 stores the fingerprint of each chunk (a hash value calculated using an appropriate hash function for each chunk).
  • the container ID 373 stores identification information for identifying each container in which chunks are stored.
  • the content offset 374 stores information indicating the position of the chunk within each content.
  • the chunk length 375 stores information indicating the length of each chunk.
  • FIG. 5 shows S f1 (370), S f2 (370), S f3 (370), and S fn (370) as examples of the content index table.
  • the information of S f3 (370) corresponding to the content f3, content f 3 may be be reconstructed by chunk b, chunk c, chunk d, chunk e, and chunk f, based on the content offset 374 and chunk length 375
  • the content offset 374 and the chunk length 375 of the content constituting the content index table 370 indicate the logical arrangement of the chunks in the content. Note that the offset 322 and the chunk length 323 in the container index table 320 (FIG. 3) described above indicate the logical arrangement of the chunks in each container.
  • the restore program 117 of the storage apparatus 10 When executing the restore process, the restore program 117 of the storage apparatus 10 refers to the content index table 370, acquires the container ID 373 of each chunk, and searches the container index table 320 using the container ID 373. Next, the restore program 117 acquires the corresponding chunk from the container 380 read from the HDD 114 based on the storage position information of each chunk stored in the container index table 320. Thereafter, the restore program 117 reconstructs the content to be restored according to the logical arrangement of the content index table 370.
  • FIG. 6 schematically shows an outline of the deduplication processing realized in the storage system 1 of the present embodiment.
  • the backup server 14a is illustrated as the backup server 14 provided in the storage system 1, but a plurality of backup servers 14 (14a, 14b,..., 14n), as in FIG. 4 is connected to the storage device 10 via
  • the content to be backed up is composed of chunk a, chunk b, chunk c, chunk d, chunk e, and chunk f.
  • the storage device 10 stores a chunk index table U (310) and container index tables Tg (320) and Tc (320).
  • the backup server 14a executes the first backup process and the container index table 320 is not yet stored in the memory 103 and the HDD 104 of the backup server 14a.
  • the backup program 106 of the backup server 14a determines the duplication of the first chunk a. However, since the container index table 320 is not stored in the memory 103 and the HDD 104, the backup program 106 determines that the chunk a is a new chunk, and transmits the fingerprint FPa of the chunk a and the chunk a to the storage apparatus 10.
  • the backup program 116 of the storage apparatus 10 performs duplication determination on the received chunk a using the chunk index table U (310).
  • the container index table 320 can be referred to first to find out whether the chunk a is stored in duplicate. Good.
  • the backup program 116 processes the chunk a as a duplicate chunk, and the container index table Tg. (320) is transmitted to the backup server 14a.
  • the backup program 106 of the backup server 14a expands the received container index table Tg (320) in the memory 103 and uses it for the duplication determination process for the chunk to be backed up thereafter. Since the fingerprints FPb, FPc, and FPd of chunk b, chunk c, and chunk d are registered in the container index table Tg (320), the backup program 106 stores chunk b, chunk c, and chunk d. Judged as a duplicate chunk.
  • the backup program 106 determines that the chunk e is a new chunk and transmits the chunk e and its fingerprint FPe to the storage apparatus 10. To do.
  • the backup program 116 of the storage device 10 performs duplication determination on the chunk e as in the case of the chunk a, and transmits the corresponding container index table Tc (320) to the backup server 14a.
  • the backup program 106 of the backup server 14a uses the received container index table Tc (320) and the container index table Tg (320) already expanded in the memory 103 to perform the duplicate determination process on the subsequent chunk f. Do.
  • the chunks are aggregated in each container in consideration of the locality of data. Therefore, the following chunk b, chunk c, and chunk d are added to the container Tg (380) that stores the chunk a.
  • the possibility of being stored is high, and efficient deduplication processing can be performed.
  • the backup program 106 of the backup server 14 performs duplication determination processing, at least one fingerprint 321 of the container index table 320 is printed unless the container index table 320 is stored in the memory 103 and the HDD 104. Refer to For this reason, the backup program 106 needs to expand the container index table 320 on the memory 103. However, the capacity of the memory 103 is finite, and it is difficult to always expand all the container index tables 320 used by the backup program 106 on the memory 103. Therefore, the backup server 14 rolls in the container index table 320 from the HDD 104 to the memory 103 and rolls out the container index table 320 from the memory 103 to the HDD 104 so as to effectively use the storage resources of the memory 103. I have to. Note that the rolled-out container index table 320 may be deleted from the HDD 104. The same processing is also performed on the memory 113 and the HDD 114 of the storage apparatus 10 when determining the duplication of the backup program 116 in the storage apparatus 10.
  • the backup program 106 of the backup server 14 and the backup program 116 of the storage apparatus 10 perform duplication determination by comparing the fingerprints 321 of each chunk, but the reliability of duplication determination is improved. In order to make this happen, the chunks themselves may be compared bit by bit to determine duplication. In that case, the backup program 116 of the storage apparatus 10 transmits the main body of the container 380 including the corresponding chunk to the backup server 14.
  • FIG. 7 shows a processing flow example of the backup processing operation executed by the backup program 106 of the backup server 14 and the backup program 116 of the storage apparatus 10 provided in the storage system 1.
  • the symbol S attached to each processing step is an abbreviation for the step.
  • the backup program 106 of the backup server 14 starts backup processing based on an instruction from the client 6 (S100), and acquires a content ID 371 for specifying content to be backed up from the storage device 10 ( S101). This step is provided because the content ID 371 is managed in the content index table 370 by the backup program 116 of the storage apparatus 10.
  • the chunk management information ms i includes a chunk fingerprint 321, a chunk position (offset) 322 in the content, and a chunk length 323.
  • the backup program 106 searches the container index table 320 expanded on the memory 103, and performs duplication determination for each chunk (S105). Specifically, the backup program 106 determines whether or not the container index table 320 includes a fingerprint 321 that matches the fingerprint of the chunk disassembled in S102. The backup program 106 determines “duplicate” when the fingerprint of the determination target chunk matches the fingerprint 321 of the container index table 320, and determines “no overlap” when they do not match.
  • the backup program 106 transmits the management information ms i chunk s i and chunk si to the storage device 10.
  • the backup program 116 of the storage apparatus 10 performs a duplication determination chunk s i received from the backup server 14. If the chunk s i is determined to be novel chunks in S107, the backup program 116 executes the processing of S108.
  • the backup program 116 of the storage device 10 transmits the duplication determination result in S107 to the backup server 14.
  • the backup program 116 of the storage device 10 writes the chunk s i to the container 380, writes the management information ms i chunk s i to the container index table 320, the message digest (hash chunks s i chunk index table 310 Value) is written (S109), and the process of S111 is executed.
  • the backup program 116 of the storage apparatus 10 includes the container index including the fingerprint 321 that matches the fingerprint of the chunk s i received from the backup server 14.
  • the table 320 is transmitted to the backup server 14 (S110), and S111 is executed. Note that when the backup program 106 of the backup server 14 receives the container index table 320 from the storage apparatus 10, it is assumed that the determination result “duplicate” has been received.
  • the backup program 116 of the storage apparatus 10 creates the content index table 370 for the content to be backed up illustrated in FIG. 5 and registers the management information msi on the chunk, as illustrated in FIG. 5, for use in the restore process. To do.
  • the backup program 106 of the backup server 14 determines whether or not duplication determination processing and registration processing in the content index table 370 have been completed for all chunks (S112). Specifically, the backup program 106 of the backup server 14 compares the number of chunks n included in the content to be backed up with the counter number of the counter i.
  • the backup program 106 of the backup server 14 performs the restore process.
  • a stub file is created (S114), and the backup processing for the content is terminated (S115).
  • the stub file stores a content ID 371 for searching the corresponding content index table 370 when executing the restore process.
  • the backup program 106 of the backup server 14 acquires the result after, it has started to process the next chunk s i + 1, at S106, after transmitting the management information ms i chunk s i and chunk s i to the storage device 10, the next chunk s i + 1
  • the process may be executed.
  • the storage apparatus 10 since a plurality of chunks registered in the same container index table 320 may be transmitted to the storage apparatus 10, the storage apparatus 10 stores the container index table 320 expanded in the memory 113. It is stored which backup server 14 (14a, 14b,..., 14n) has been transmitted, and the same container index table 320 as the container index table 320 that has already been transmitted is not transmitted to each backup server 14. To.
  • the backup program 106 of the backup server 14a determines that "no overlap" for chunk s i, transmits a chunk s i and its management information ms i to the storage device 10.
  • the chunk s i + 1 Since the overlap determination for chunk s i + 1 before receiving the duplication determination result for the chunk s i from the storage device 10, the chunk s i + 1 is determined as "no overlap", it is transmitted to the storage device 10
  • the backup program 116 of the storage apparatus 10 overlap determining the chunk s i, transmits the corresponding container index table 320 to the backup server 14a.
  • the corresponding container index table 320 stores in the memory 113 that it has been transmitted to the backup server 14a.
  • the backup program 116 tries to transmit the corresponding container index table 320 to the backup server 14a in the duplication determination of the chunk s i + 1 , the corresponding container index table 320 has already been transmitted. It is determined that there is, and no transmission is performed.
  • the processing performance of the deduplication processing in the storage system 1 can be improved.
  • FIG. 6 shows a processing flow example of restore processing executed by the restore program 107 of the backup server 14 and the restore program 117 of the storage apparatus 10.
  • the restore program 107 of the backup server 14 reads the content of the content to be restored from the stub file stored in the HDD 104. The ID is acquired and transmitted to the storage apparatus 10 (S201).
  • the restore program 117 of the storage apparatus 10 sets 0 to the counter i for counting the chunks necessary for the restore process (S203). Thereafter, the restore program 117 reads the management information ms i in the container index table 320 (S204). Specifically, the restore program 117 reads the container index table 370 to which the chunk s i belongs from the HDD 114 from the information of the chunk s i of the content index table 370 acquired in S202, and reads the management information msi of the corresponding chunk si. . As described above, the management information msi of the chunk si includes information on the fingerprint 321 of the chunk, the position (offset) 322 in the container, and the length 323 of the chunk.
  • the restore program 117 of the storage apparatus 10 reads the chunk s i stored in the container 380 corresponding to the container index table 370 based on the management information ms i of the chunk si read in S204 (S205). .
  • the restore program 117 of the storage apparatus 10 determines whether or not reading has been completed for all chunks included in the content to be restored (S206). Specifically, the restore program 117 compares the number of chunks n included in the content to be restored with the count number of the counter i.
  • the content is reproduced (S208), transmitted to the backup server 14, and the restore process is terminated (S209, S210).
  • the restore program 117 an offset 374 in the content that has been previously described in the content index table 370, based on the chunk length 375, recombines the read chunk s i as content.
  • the restore program 117 of the storage apparatus 10 adds 1 to the counter i and returns the process to S204 (S207). ).
  • the storage system 1 implements efficient deduplication processing by appropriately acquiring the container index table 320 used for deduplication processing of the backup server 14 from the storage apparatus 10. .
  • the amount of data transmitted to the storage apparatus 10 can be reduced. Since the amount of data transmitted to the storage device 10 is reduced, the load on the communication network 4 can be reduced.
  • the container index table 320 necessary for the deduplication process performed by the backup server 14 is appropriately acquired from the storage apparatus 10, the storage capacity used by the backup server 14 for the deduplication process can be reduced.
  • the container index table 320 acquired from the storage apparatus 10 takes into account the locality of data, and since there is a high possibility that it includes information on chunks to be deduplicated thereafter, the memory 104 of the backup server 14 is stored in the container index table 320. It can be used efficiently.
  • duplication determination can be performed at high speed.
  • FIG. 9 shows an example of the overall configuration of the storage system 1 according to this embodiment.
  • the configuration of the second embodiment illustrated in FIG. 9 is different from that shown in FIG. 9 except that it includes a plurality of data centers 3 (3a, 3b,..., 3m) each having storage devices 10 (10a, 10b,..., 10m). This is the same as the first embodiment illustrated in FIG. Therefore, a detailed description regarding the configuration of the storage system 1 is omitted.
  • FIG. 10 shows a processing flow example of the backup processing according to the present embodiment.
  • the backup program 106 of the backup server 14 transmits the chunk s i and the management information ms i of the chunk si to all the storage devices 10 (10a, 10b,..., 10m) connected to the storage system 1.
  • the backup program 116 of the storage apparatus 10 performs a duplication determination chunk s i received from the backup server 14. If the chunk s i is determined to be novel chunks in S307, the backup program 116 of the storage apparatus 10 executes the processing of S308.
  • the backup program 116 of the storage apparatus 10 transmits the duplication determination result “no duplication” to the backup server 14.
  • the backup program 116 of the storage apparatus 10 executes the processing of S309.
  • the backup program 116 of the storage apparatus 10 sends the container index table 320 containing the fingerprint 321 matches the fingerprint of the chunk s i received the backup server 14 executes S313.
  • the backup program 106 of the backup server 14 executes the process of S311 when the determination result from all the storage apparatuses 10 is “no duplication” (S310, Yes). Note that when the backup program 106 of the backup server 14 receives the container index table 320 from any of the storage apparatuses 10, it is assumed that the determination result “Duplicate” has been received.
  • the backup program 106 of the backup server 14 selects a storage device 10 for storing a chunk s i, transmits a storage request of the chunk s i. At this time, already because the chunk s i is already transmitted in S305, the chunk s i does not transmit.
  • Storage device 10 that stores the chunk s i can be selected in any manner.
  • the storage apparatus 10 selected in S311 writes the chunk s i to the container 380, registers the management information ms i of the chunk s i in the container index table 320, and registers the message digest of the chunk s i in the chunk index table 310 (S312), and the process of S313 is executed.
  • the backup program 116 of the storage apparatus 10 creates the content index table 370 for the content to be backed up as illustrated in FIG. 5 and registers the management information msi on the chunk, as illustrated in FIG. To do.
  • the backup program 106 of the backup server 14 determines whether or not duplication determination processing and registration processing have been completed for all chunks (S314). Specifically, the backup program 106 of the backup server 14 compares the number of chunks n included in the content to be processed with the number of counters i.
  • the backup program 106 of the backup server 14 creates a stub file for restore processing (S316). Then, the backup processing of the content is terminated (S317).
  • the stub file stores a content ID 371 for searching the corresponding content index table 370 at the time of restore processing.
  • the restore process according to the present embodiment is substantially the same as that of the first embodiment except that the backup server 14 that has received the restore process execution instruction transmits the content ID 371 related to the restore target content to the plurality of storage apparatuses 10. Therefore, detailed description is omitted.
  • efficient deduplication processing can be applied to a plurality of storage apparatuses 10 as in the case of the first embodiment.
  • one chunk is transmitted to the storage apparatus 10 in S306, but a plurality of chunks may be transmitted together. For example, ten chunks from chunks determined as new chunks may be collected and transmitted to the storage apparatus 10. These processes may improve the speed of the deduplication process.
  • FIG. 11 shows an example of the overall configuration of the storage system 1 according to this embodiment.
  • the overall configuration of the storage system 1 according to this embodiment is the same as that of the second embodiment, except that the data center 11 and the chunk management server 12 provided in the data center 11 are provided. Therefore, detailed description of the same configuration as that of the second embodiment is omitted.
  • the chunk management server 12 manages the chunk index table 310, the container index table 320, and the content index table 370 stored in all the data centers 3 (3a, 3b,..., 3m) provided in the storage system 1. ing.
  • the backup server 14 provided at the base 2 of the storage system 1 illustrated in FIG. 11, the storage device 10 provided at the data center 3, and the chunk management server 12 provided at the data center 11.
  • the block diagram which shows the example of a structure of is shown.
  • the configuration of the backup server 14 of this embodiment is the same as the configuration of the backup server 14 of the first embodiment, and thus detailed description thereof is omitted.
  • the configuration of the storage apparatus 10 of this embodiment is the same as that of the storage apparatus 10 of the first embodiment except that the backup program 116 and the restore program 117 are deleted, and thus detailed description thereof is omitted. To do.
  • the functions of the backup program 116 and the restore program 117 in the first embodiment are performed by the backup program 126 and the restore program 127 provided in the chunk management server 12.
  • the configuration of the chunk management server 12 according to the present embodiment is substantially the same as the configuration of the storage apparatus 10 according to the first embodiment, and thus detailed description thereof is omitted.
  • FIG. 13 shows a processing flow example of the backup processing operation according to the present embodiment.
  • the backup process illustrated in FIG. 13 is executed by the backup program 106 of the backup server 14 and the backup program 126 of the chunk management server 12.
  • the backup program 106 of the backup server 14 receives the backup process execution instruction from the client 6 or the like, and starts the backup process of the present embodiment (S400).
  • the subsequent processing in S401 to S404 is the same as the processing in S101 to S104 in the first embodiment, and thus detailed description thereof is omitted.
  • the backup server 14 when it is determined that there is a chunk s i in which the processing target chunk and the fingerprint 321 match in the container index table 320 of the backup server 14 (that is, when it is determined that there is “duplication”), the backup server 14 The backup program 106 executes the process of S412. On the other hand, (if it is determined that "no overlap") fingerprint 321 if it is determined that there is no chunk s i that coincide at S405, the backup program 106 of the backup server 14 executes the process of S406. In S ⁇ b> 406, the backup program 106 of the backup server 14 transmits the management information ms i of the chunk s i and the chunk si to the chunk management server 12.
  • the backup program 126 chunk management server 12 performs the duplication determination chunk s i received from the backup server 14. If the chunk s i is determined to be novel chunks in S407, the backup program 126 chunk management server 12 executes the process of S408.
  • the backup program 126 of the chunk management server 12 transmits the duplication determination result to the backup server 14, and executes S409.
  • the backup program 126 of the chunk management server 12 selects the storage device 10 (10a, 10b,..., 10m) that stores the new chunk received from the backup server 14, and stores the chunk s in the container of the selected storage device 10. Register i .
  • the storage device 10 that stores the new chunk can be selected by an arbitrary method.
  • the backup program 126 of the chunk management server 12 registers the management information ms i of the chunk s i in the container index table 320, records the message digest of the chunk s i in the chunk index table 310, and executes S412. .
  • the backup program 126 of the chunk management server 12 uses the container index table 320 including the fingerprint 321 that matches the fingerprint of the received chunk s i.
  • the data is transmitted to the backup server 14 (S411), and S412 is executed.
  • the backup program 126 of the chunk management server 12 creates the content index table 370 for the content to be backed up as illustrated in FIG. sign up.
  • the backup program 106 of the backup server 14 determines whether or not duplication determination processing and writing processing have been completed for all chunks (S413). Specifically, the backup program 106 of the backup server 14 compares the number of chunks n included in the content to be backed up with the counter number of the counter i.
  • the backup program 106 of the backup server 14 uses the stub file for the restore process. Is created (S415), and the backup processing of the content is terminated (S416).
  • the stub file stores a content ID 371 for searching the corresponding content index table 370 when restoring the backup data.
  • the number of chunk management servers 12 in FIG. 11 is one, there may be a plurality of units. Thereby, inquiries to one chunk management server 12 may be distributed, and the speed of the deduplication processing may be improved.
  • the chunk index table managed by each chunk management server 12 is sorted using a part of the fingerprint of the chunk index table managed by the chunk management server 12.
  • X is an arbitrary natural number, it is possible to sort by the upper X bits or lower X bits of the fingerprint, or by a bit pattern extracted by a predetermined pattern or the like.
  • chunk index table so that the storage device identification information and the container ID can be acquired from the fingerprint of the chunk index table, distributed processing by a plurality of chunk management servers 12 can be realized.
  • a restore process execution instruction specifying a content ID is transmitted from the client 6 or the like to the chunk management server 12, and the restore program 117 of the storage apparatus 10 in the first embodiment is executed.
  • the functions are substantially the same as those in the first embodiment except that the restore program 127 of the chunk management server 12 realizes the functions, and detailed description thereof will be omitted.
  • more efficient deduplication processing can be performed on a plurality of storage apparatuses 10.
  • information necessary for deduplication processing is collected in the chunk management server 12, so that the chunk and the chunk management information need only be exchanged between the backup server 14 and the chunk management server 12, and the network The load can be reduced.
  • FIG. 14 is a block diagram illustrating a configuration example of the backup server 14 provided in the base 2 of the storage system 1 according to the present embodiment and the data center 3 including the storage device 10.
  • the configuration of the backup server 14 is the same as that of the backup server 14 of the first embodiment illustrated in FIG. 2 except for the network monitoring unit 109, and thus detailed description thereof is omitted.
  • the network monitoring unit 109 is a functional block that monitors the amount of data that the backup server 14 transmits / receives to / from the communication network 4 via the network interface 105, and appropriate hardware and software that can realize the function. Can be used.
  • the configuration of the storage apparatus 10 is the same as that of the storage apparatus 10 of the first embodiment illustrated in FIG. 2 except for the network monitoring unit 119, and thus detailed description thereof is omitted.
  • the network monitoring unit 119 of the storage apparatus 10 has the same function as the network monitoring unit 109 of the backup server 14 and monitors the amount of data transmitted to and received from the communication network 4 via the network interface 115.
  • FIG. 15 shows a processing flow example of the backup processing operation according to the present embodiment.
  • the backup processing illustrated in FIG. 15 is executed by the backup program 106 of the backup server 14 and the backup program 116 of the storage apparatus 10.
  • the backup program 106 of the backup server 14 receives the backup process execution instruction from the client 6 or the like, and starts the backup process of this embodiment (S500).
  • the subsequent processing in S501 to S504 is the same as the processing in S101 to S104 in the first embodiment, and thus detailed description thereof is omitted.
  • the backup program 106 of the backup server 14 measures the load of the communication network 4 via the network monitoring unit 109, and if the load measurement value of the communication network 4 is equal to or greater than a preset threshold value (S506, Yes), the process of S507 is executed.
  • the threshold value of the load measurement value of the communication network 4 can be determined in consideration of conditions such as the performance of the communication network 4.
  • the backup program 106 of the backup server 14 and the backup program 116 of the storage device 10 are the same as those of S105 in FIG. 5 of the first embodiment. Processes similar to those in S109 are performed. After performing the processes of S105 to S109, the backup program 116 of the storage apparatus 10 executes the process of S514.
  • the backup program 106 of the backup server 14 transmits the management information ms i chunk s i to the storage device 10.
  • step S ⁇ b> 508 the backup program 116 of the storage apparatus 10 determines the duplication of the chunk s i using the management information ms i of the chunk si received from the backup server 14.
  • the backup program 116 of the storage device 10 transmits a corresponding container index table 320 to the backup server 14 (S510). Note that when the backup program 106 of the backup server 14 receives the container index table 320 from the storage apparatus 10, it is assumed that the determination result “duplicate” has been received.
  • the backup program 106 of the backup server 14 acquires the duplication determination result from the storage apparatus 10, and performs duplication determination processing. Note that when the result of the duplication determination received from the storage apparatus 10 is “duplication”, the backup program 106 of the backup server 14 performs duplication determination in consideration of the container index table 320 acquired in S510.
  • the backup program 106 of the backup server 14 transmits a chunk s i to be processed to the storage device 10 (S512).
  • the management information ms i chunk s i is therefore not transmitted in S512 has already been transmitted to the storage device 10.
  • the backup program 116 of the storage apparatus 10 registers the chunk s i acquired from the backup server 14 in the container 380, and registers the management information ms i of the chunk s i in the container index table 320, and the chunk index. record the message digest chunks s i Table 310 executes S514.
  • the backup program 116 of the storage apparatus 10 executes the process of S514.
  • the backup program 116 of the storage apparatus 10 creates the content index table 370 for the content to be backed up illustrated in FIG. 5 and uses the management information msi related to the chunk si for use in the restore process. sign up.
  • the backup program 106 of the backup server 14 determines whether or not duplication determination processing and registration processing into the chunk index table and content index table have been completed for all chunks constituting the content that is the target of backup processing. (S515). Specifically, the backup program 106 of the backup server 14 compares the number of chunks n included in the content with the number of counters i.
  • the backup program 106 of the backup server 14 performs the restore process.
  • a stub file is created (S517), and the backup processing for the content is terminated (S518).
  • the stub file stores a content ID 371 for searching the corresponding content index table 370 when restoring the backup data.
  • the restore process according to this embodiment is substantially the same as the restore process in the first embodiment illustrated in FIG.
  • deduplication processing can be performed in consideration of the network load.
  • the communication amount of the communication network 4 used for the deduplication processing can be reduced, and more efficient deduplication processing can be performed.
  • the overall configuration of the storage system 1 according to this embodiment is the same as that of the first embodiment illustrated in FIG.
  • the block configurations of the backup server 14 and the storage apparatus 10 are also the same as those in the first embodiment illustrated in FIG.
  • FIG. 16 shows a processing flow example of the backup processing operation according to the present embodiment.
  • the backup process illustrated in FIG. 16 is executed by the backup program 106 of the backup server 14 and the backup program 116 of the storage apparatus 10.
  • the backup program 106 of the backup server 14 receives the backup process execution instruction from the client 6 or the like, and starts the backup process of the present embodiment (S600).
  • the subsequent processing in S601 to S604 is the same as the processing in S101 to S104 in the first embodiment, and thus detailed description thereof is omitted.
  • the backup program 106 of the backup server 14 adds the chunk s i and its management information ms i to the queue set in the memory 103 of the backup server 14, for example, and executes S606.
  • the queue is provided to store the chunk si determined to have no overlap as a result of the overlap determination process in S604 and its management information msi up to a predetermined threshold. With this configuration, information about the chunk si determined to have no duplication in S604 is not transmitted to the storage apparatus 10 each time it is determined.
  • the backup program 106 of the backup server 14 executes S613.
  • the backup program 106 of the backup server 14 transmits to the storage apparatus 10 a queue in which the chunk si determined as “no duplication” in S605 and the management information msi of the chunk si are stored.
  • the backup program 116 of the storage apparatus 10 extracts the chunk si and one management information msi of the chunk si from the head of the queue acquired from the backup server 14.
  • the backup program 116 of the storage apparatus 10 For the retrieved chunk si and management information msi of the chunk si, the backup program 116 of the storage apparatus 10 performs the same duplication determination process as in S106 to S110 of FIG. 5 in the first embodiment, and the container and container index table. Then, registration processing to the chunk index table is executed (S610). After performing the process corresponding to S110, the backup program 116 of the storage apparatus 10 executes the process of S612.
  • the backup program 116 of the storage apparatus 10 determines that the queue acquired from the backup server 14 is empty (S612, Yes), executes S613, and determines that the chunk remains in the queue. In the case (S612, No), the process returns to S609.
  • the backup program 106 of the backup server 14 determines whether or not duplication determination processing and registration processing into the container, container index table, and chunk index table have been completed for all chunks (S613). Specifically, the backup program 106 of the backup server 14 compares the number of chunks n included in the content to be backed up with the number of counters i.
  • the backup program 106 of the backup server 14 performs the restore process.
  • a stub file is created (S614), and the content backup process is terminated (S615).
  • the stub file stores a content ID 371 for searching the corresponding content index table 370 when restoring the backup data.
  • the backup program 106 of the backup server 14 Adds 1 to the counter i and returns the process to S605 (S616).
  • the restore processing according to the present embodiment is substantially the same as the restore processing in the first embodiment illustrated in FIG.
  • a plurality of chunks determined as “no duplication” by the backup server 14 are collectively transmitted to the storage apparatus 10, so that overhead such as command analysis in the communication network 4 is reduced and storage is performed.
  • the processing performance of the deduplication process in the system 1 can be further improved.
  • the overall configuration of the storage system 1 according to this embodiment is the same as that of the first embodiment illustrated in FIG.
  • the block configurations of the backup server 14 and the storage apparatus 10 are also the same as those in the first embodiment illustrated in FIG.
  • FIG. 17 shows a processing flow example of the backup processing operation according to the present embodiment.
  • the backup program 106 of the backup server 14 receives the backup process execution instruction from the client 6 or the like, and starts the backup process of this embodiment (S700).
  • the subsequent processing in S701 to S704 is the same as the processing in S101 to S104 in the first embodiment, and thus detailed description thereof is omitted.
  • the backup program 106 of the backup server 14 determines the number of chunks m (i + m ⁇ n), which is the number of chunks si to be transmitted to the storage apparatus 10.
  • the backup program 106 of the backup server 14 the transmission chunk s i, s i + 1, ..., s i + m and management information ms i, ms i + 1, ..., a s i + m to the storage device 10 To do.
  • the variable j is used to determine whether the backup program 116 of the storage apparatus 10 has completed the processing of m chunks.
  • the backup program 116 of the storage apparatus 10 performs chunk si + j duplication determination processing.
  • the backup program 116 of the storage apparatus 10 records the chunk s i + j in the container 380, and management information ms i of the chunk s i + j in the container index table 320 + j is recorded, the message digest of chunk s i + j is recorded in the chunk index table 310 (S710), and the process proceeds to S713.
  • the backup program 116 of the storage apparatus 10 determines whether or not the corresponding container index table 320 has been transmitted to the backup server 14 (S711).
  • the backup program 116 of the storage apparatus 10 records chunk management information in the content index table 370 for restore processing.
  • the backup program 116 of the storage apparatus 10 determines whether or not duplication determination processing and registration processing into the container, container index table, and chunk index table have been completed for all chunks received from the backup server 14 (S714). ). Specifically, the backup program 116 of the storage apparatus 10 compares the received chunk count m with the count count of the counter j.
  • the backup program 116 of the storage apparatus 10 performs the process of S716. Execute the process. If it is determined that the duplication determination process and the registration process to the container, container index table, and chunk index table have not been completed for all the chunks (S714, Yes), the backup program 116 of the storage apparatus 10 sets the counter j to the counter j. 1 is added, and the process returns to S709 (S715).
  • the backup program 106 of the backup server 14 adds the number of chunks m transmitted to the storage apparatus 10 to the counter i.
  • the backup program 106 of the backup server 14 determines whether or not duplication determination processing and registration processing into the container, container index table, and chunk index table have been completed for all chunks (S718).
  • the backup program 106 of the backup server 14 executes the stub for restore processing.
  • a file is created (S720), and the content backup processing is terminated (S721).
  • the backup program 106 of the backup server 14 Adds 1 to the counter i and returns the process to S705 (S719).
  • the processing performance of the deduplication processing can be further improved in this embodiment. For example, when the total size of the chunks to be transmitted and the management information is smaller than the size of the container index table 320, the network traffic can be reduced, so that the processing performance of the storage system 1 can be further improved.
  • the restore processing according to the present embodiment is substantially the same as the restore processing in the first embodiment illustrated in FIG.
  • the chunks determined as “no duplication” by the backup server 14 and the subsequent chunks are collectively transmitted to the storage apparatus 10.
  • the overhead can be reduced and the processing performance of the deduplication processing can be further improved.
  • the processing performance of the deduplication processing can be further improved by setting the number of chunks to be transmitted together according to the amount of data to be transmitted.
  • the overall configuration of the storage system 1 according to this embodiment is the same as that of the first embodiment illustrated in FIG.
  • the block configurations of the backup server 14 and the storage apparatus 10 are also the same as those in the first embodiment illustrated in FIG.
  • FIG. 16 shows a processing flow example of the backup processing operation according to the present embodiment.
  • the backup program 106 of the backup server 14 receives the backup process execution instruction from the client 6 or the like, and starts the backup process of this embodiment (S800). In step S801 that is subsequently executed, the backup program 106 of the backup server 14 identifies the type of content that is the target of the backup process.
  • the backup program 106 of the backup server 14 executes the processing of S803.
  • the storage location of the files aggregated in the content can be identified as the location of the header. Even if the file is in a format other than the archive file, the present embodiment can be applied as long as the content includes information for identifying the storage location of the aggregated file.
  • the backup server 14 when it is determined that the content to be backed up is a file other than the above (a file that does not contain information identifying the storage location of the aggregated file) (S801, other format), the backup server 14 The backup program 106 performs the same processing as the backup processing in the first embodiment illustrated in FIG.
  • the backup program 106 of the backup server 14 acquires a content ID 371 for specifying the content to be backed up from the storage device 10 (S802). Next, the backup program 106 of the backup server 14 divides the content into a plurality of chunks and creates management information for each chunk (S803, S804).
  • the backup program 106 of the backup server 14 searches for the first chunk of each file aggregated in the content, and performs deduplication processing on each first chunk.
  • the deduplication process in S805 is the same process as S104 to S110 in the backup process of the first embodiment.
  • the backup program 106 of the backup server 14 performs deduplication processing on the remaining chunks.
  • the de-duplication process in S806 is the same process as S104 to S110 in the backup process of the first embodiment.
  • the backup program 106 of the backup server 14 creates a stub file for restore processing, and ends the backup processing of the content (S808).
  • the container 380 is created in consideration of locality, there is a high possibility that the necessary container index table 320 is divided for each file aggregated in the content. Therefore, by obtaining in advance the container index table 320 required for the entire content, deduplication processing can be performed more efficiently.
  • the first chunk of each file aggregated in the content is deduplicated first, but other than the first chunk may be sampled and deduplicated first.
  • the size of the file included in the content may be divided into two or more container index tables 320. Therefore, a plurality of chunks are selected from one file, and deduplication processing is performed first. May be performed.
  • deduplication processing may be performed for several files. If the content size is large, the entire container index table cannot be stored in the memory 103 of the backup server 14, and the duplication determination processing performance in the backup program 106 may deteriorate. Therefore, for example, deduplication processing may be executed in order on the aggregated files, and only the first chunk of the file to be processed next may be deduplicated first.
  • the restore processing according to the present embodiment is substantially the same as the restore processing in the first embodiment illustrated in FIG.
  • the container index table used for identifying each aggregated file and used for determining the duplication of each file is stored in advance in the storage device. By acquiring from 10, more efficient deduplication processing can be performed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】外部装置のデータをバックアップするためのストレージシステムにおいて、外部装置とストレージ装置とで協調して、効率的な重複排除処理を実現する。 【解決手段】外部装置からのデータをコンテンツ単位で格納するストレージシステムであって、前記外部装置からのデータについて、前記コンテンツ単位でバックアップデータを作成するバックアップ処理を実行するバックアップ装置と、前記バックアップ装置と通信可能に接続されており、前記バックアップ装置から受信する前記バックアップデータを格納するストレージ装置とを備える。前記バックアップ装置は、前記バックアップデータである前記コンテンツが前記ストレージ装置に格納済みであるか否かを判定するための情報である第1の重複判定情報を用いて、前記コンテンツが前記ストレージ装置に格納済みであるか判定する。前記第1のバックアップ処理部が前記コンテンツが前記ストレージ装置に格納されていないと判定し、前記ストレージ装置の第2のバックアップ処理部が、第2の重複判定情報を用いて前記コンテンツが前記ストレージ装置に格納されていると判定した場合、前記第2のバックアップ処理部は前記第2の重複判定情報を前記バックアップ装置に送信し、前記第1のバックアップ処理部は、受信した前記第2の重複判定情報を前記第1の重複判定情報に組み入れる処理を実行する。

Description

ストレージシステム及びストレージシステムの制御方法
 本発明は、外部装置からのデータを格納するためのストレージシステム及びストレージシステムの制御方法に関する。
 ホスト計算機等の外部装置には、通信ネットワーク経由でストレージ装置が接続される。この種のストレージ装置は、データを記憶する記憶デバイスとして、例えば複数のハードディスク装置(HDD:Hard Disk Drive)を備える。保存媒体に要するコスト低減のため、記憶デバイスにデータを格納する際には、データ量の削減処理が実行される。データ量の削減には、ファイル圧縮処理(Compression)や重複排除処理(De-duplication)が用いられる。ファイル圧縮処理は、1ファイル内で同一内容のデータセグメントを縮約することにより、データ容量を削減する。一方、重複排除処理は、1ファイル内だけでなく、ファイル間で検出される同一内容のデータセグメントを縮約することにより、ファイルシステムやストレージシステムの総データ容量を削減する。
 以下では、重複排除処理の単位となる単位データを「チャンク(Chunk)」という。また、複数のチャンクをまとめたデータを「コンテナ(Container)」という。通常、重複排除処理を効率的に行うため、コンテナには関連性の高いチャンクが集約されている。また、コンテナごとに、格納されている各チャンクについて計算したハッシュ値を記録しているテーブルを「コンテナ索引表(Container Index)」という。また、記憶デバイスに格納する単位である論理的にまとまったデータを「コンテンツ(Content)」という。コンテンツには、通常ファイルの他、例えばアーカイブファイル、バックアップファイル、仮想ボリュームファイルなどの通常のファイルを集約したファイルも含まれる。
 ホスト計算機から通信ネットワーク経由でストレージ装置にコンテンツを格納する場合、事前に各チャンクがストレージ装置に格納されているかどうかの重複判定をし、格納されていないチャンクのみを送信することで、データの転送量を削減し、効率的なデータ格納処理を行うことが提案されている。例えば、特許文献1、特許文献2を参照されたい。
米国特許第5990810号明細書 国際公開第WO2012/101674号
 チャンクの重複判定を行う場合、ホスト計算機で判定する方法とストレージ装置で判定する方法がある。
 例えば、前記特許文献1には、ストレージ装置で重複判定を行い、ホスト計算機はストレージ装置から重複判定の結果を取得し、新規チャンクのみをストレージ装置に格納する方法が記載されている。
 しかし、特許文献1の重複排除処理方法では、全てのチャンクについて、ホスト計算機がストレージ装置に重複判定の問い合わせを行う。そのため、ホスト計算機は、ストレージ装置に重複判定に必要な情報を送信し、ストレージ装置から重複判定の結果を受信することが必要となる。これは、ホスト計算機のみで重複判定を行う方式と比較して、ストレージ装置との間でのデータのラウンドトリップ(Roundtrip)分だけ性能が低下する。
 また、特許文献2には、ホスト計算機で重複判定を行い、その結果に従って新規チャンクのみをストレージ装置に格納する方法が記載されている。
 しかし、特許文献2の重複排除処理方法では、ホスト計算機からストレージ装置に格納された全データについて、重複判定に用いる情報を保存する必要がある。このような重複排除方法では、例えば格納するデータが大きくなるにつれて、重複判定に用いる情報のサイズも大きくなるため、ホスト計算機のディスク容量を圧迫し、重複排除処理が非効率になる場合がある。
 そこで、本発明の一つの目的は、外部装置とストレージ装置とで協調して、効率的な重複排除処理を行うことができるストレージシステム及びストレージシステムの制御方法を提供することである。
 上記課題及び他の課題を解決するために、本発明の一実施態様は、外部装置からのデータをコンテンツ単位で格納するストレージシステムであって、前記外部装置からのデータについて、前記コンテンツ単位でバックアップデータを作成するバックアップ処理を実行するバックアップ装置と、前記バックアップ装置と通信可能に接続されており、前記バックアップ装置から受信する前記バックアップデータを格納するストレージ装置とを備える。前記バックアップ装置は、前記バックアップデータである前記コンテンツが前記ストレージ装置に格納済みであるか否かを判定するための情報である第1の重複判定情報と、前記第1の重複判定情報を用いて、前記コンテンツが前記ストレージ装置に格納済みであるか判定する第1のバックアップ処理部とを備え、前記ストレージ装置は、前記バックアップデータである前記コンテンツが前記ストレージ装置に格納済みであるか否かを判定するための情報である第2の重複判定情報と、前記第2の重複判定情報を用いて、前記コンテンツが前記ストレージ装置に格納済みであるか判定する第2のバックアップ処理部とを備える。前記バックアップデータとしての前記コンテンツについて、前記第1のバックアップ処理部が前記コンテンツが前記ストレージ装置に格納されていないと判定し、前記第2のバックアップ処理部が前記コンテンツが前記ストレージ装置に格納されていると判定した場合、前記第2のバックアップ処理部は前記第2の重複判定情報を前記バックアップ装置に送信し、前記バックアップ装置の前記第1のバックアップ処理部は、受信した前記第2の重複判定情報を前記第1の重複判定情報に組み入れる処理を実行する。
 本発明によれば、外部装置とストレージ装置とで協調して、効率的な重複排除処理を行うことができるストレージシステム及びストレージシステムの制御方法を提供することができる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
本願発明の第1の実施形態に係るストレージシステム1の全体構成を示す図である。 第1の実施形態に係るバックアップサーバ及びストレージ装置の構成を示すブロック図である。 ストレージシステム1におけるバックアップ処理で利用するコンテナ索引表およびチャンク索引表の構成例を示す図である。 ストレージシステム1におけるリストア処理で利用するコンテナ索引表およびチャンク索引表の構成例を示す図である。 ストレージシステム1におけるリストア処理で使用するコンテンツ索引表の構成例を示す図である。 第1の実施形態に係るバックアップ処理を概念的に説明する図である。 第1の実施形態に係るバックアップ処理の処理手順の一例を示すフローチャートである。 第1の実施形態に係るリストア処理の処理手順の一例を示すフローチャートである。 本願発明の第2の実施形態に係るストレージシステム1の全体構成を示す図である。 第2の実施形態に係るバックアップ処理の処理手順の一例を示すフローチャートである。 本願発明の第3の実施形態に係るストレージシステム1の全体構成を示す図である。 第3の実施形態に係るバックアップサーバ、ストレージ装置、及びチャンク管理サーバの構成を示すブロック図である。 第3の実施形態に係るバックアップ処理の処理手順の一例を示すフローチャートである。 本願発明の第4の実施形態に係るストレージシステム1の全体構成を示す図である。 第4の実施形態に係るバックアップ処理の処理手順の一例を示すフローチャートである。 第5の実施形態に係るバックアップ処理の処理手順の一例を示すフローチャートである。 第6の実施形態に係るバックアップ処理の処理手順の一例を示すフローチャートである。 第7の実施形態に係るバックアップ処理の処理手順の一例を示すフローチャートである。
 以下、図面に基づいて、本発明の実施の形態を説明する。なお、本発明は、これらの実施形態に限定されるものではなく、その技術思想の範囲において、種々の変形が可能である。
第1の実施形態
第1の実施形態によるストレージシステムの構成
 図1に、本願発明の第1の実施形態によるストレージシステム1の全体構成を示す。このストレージシステム1は、複数の拠点2(2a,2b,…,2n)にそれぞれ設置されたバックアップサーバ14(14a,14b,…,14n)と、データセンタ3に設置されたストレージ装置10とを備えて構成される。なお、各拠点を互いに区別することなく、個々の拠点について総括して説明する場合、a,b,…,nの符号は省略して記す場合がある。
 複数の拠点2、及びデータセンタ3は、通信ネットワーク4を介して接続されている。通信ネットワーク4は、例えばWAN(Wide Area Network)、LAN(Local Area Network)、インターネット、公衆回線または専用回線を含む適宜の通信回線として構成することができる。拠点2は、それぞれ業務サーバ5(5a,5b,…,5n)、クライアント6(6a,6b,…,6n)、及びバックアップサーバ14(14a,14b,…,14n)を備えている。業務サーバ5、クライアント6、及びバックアップサーバ14は、例えばLAN等の通信ネットワーク13(13a,13b,…,13n)を介して互いに通信可能に接続されている。
 業務サーバ5は、クライアント6からの要求を受け付けて、当該要求に対応するサービスを提供するコンピュータであり、CPU(Central Processing Unit)等のプロセッサ、RAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等の補助記憶装置(図示せず)等を備えて構成される。クライアント6もまた、業務サーバ5と実質的に同様の構成を有するコンピュータであり、業務サーバ5が提供するサービスを利用するユーザのための端末として機能する。
 バックアップサーバ14は、それぞれの拠点2内で接続されている業務サーバ5及びクライアント6のデータを定期的にバックアップし、バックアップデータをデータセンタ3に送信する。また、バックアップサーバ14は、業務サーバ5及びクライアント6の要求に応じて、データセンタ3から業務サーバ5又はクライアント6に対してデータのリストアを行う。
 データセンタ3では、ストレージ装置10が複数のバックアップサーバ14から受信したデータをストレージ装置10の記憶媒体に格納する。また、ストレージ装置10は、バックアップサーバ14の要求に応じて、記憶媒体に格納しているデータを読み出し、バックアップサーバ14へ送信する。
 本実施形態によるストレージシステム1では、各拠点2に設置されたバックアップサーバ14と、データセンタ3に設置されたストレージ装置10とが連携して、効率的にデータの重複排除を行うものである。
 図2は、図1に示したストレージシステム1の拠点2aに設置されているバックアップサーバ14aと、データセンタ3に設置されているストレージ装置10との構成例を示すブロック図である。ここでは、バックアップサーバ14aのみを図示しているが、他の拠点2b~2nに設置されているバックアップサーバ14b,…,14nも実質的に同様の構成を有する。
 まず、バックアップサーバ14aの構成例について説明する。図2に示すように、バックアップサーバ14aは、主に、CPU(Central Processing Unit)等のプロセッサ102、RAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ103、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等の補助記憶装置104(以下「HDD」で示す)、及びNIC(Network Interface Card)等の通信ネットワーク4との通信インタフェースであるネットワークインタフェース105で構成される。プロセッサ102、メモリ103、HDD104、及びネットワークインタフェース105は、システムバス108を介して互いに通信可能に接続される。
 プロセッサ102は、CPU等を含む演算処理装置として機能し、メモリ103に記憶されているプログラム、演算パラメータ等に従って、バックアップサーバ14aの動作を制御する。
 メモリ103には、バックアップサーバ14側のバックアッププログラム106、及びリストアプログラム107が格納されている。また、メモリ103は、HDD104から読みだされた各種情報を記憶するために用いられるほか、プロセッサ102のワークメモリとして用いられる。HDD104には、各種ソフトウェアや管理情報、バックアップデータなどが格納されている。なお、バックアッププログラム106、及びリストアプログラム107をHDD104に格納しておき、これらのプログラムをプロセッサによって実行する際にHDD104からメモリ103に読み出すようにしてもよい。
 メモリ103にはまた、バックアッププログラム106、及びリストアプログラム107が実行される際に参照されるテーブルである、コンテナ索引表320(第1の重複判定情報)が格納されている。及びコンテナ索引表320は、HDD104に格納しておき、バックアッププログラム106、及びリストアプログラム107が参照する際に必要に応じてメモリ103にロールインされるようにすることができる。
 次に、バックアップサーバ14aで実行されるプログラムについて説明する。バックアッププログラム106は、バックアップデータの決定、重複判定処理等のデータ処理を行う機能を提供し、ネットワークインタフェース105を介してストレージ装置10へバックアップデータを送信する。また、バックアッププログラム106は、ネットワークインタフェース105を介してストレージ装置10から重複判定処理に必要な情報を受信する。
 リストアプログラム107は、ネットワークインタフェース105を介してストレージ装置10からリストア処理に必要なバックアップデータを受信し、元データの復元を行う。
 次に、ストレージ装置10の構成例について説明する。ストレージ装置10は、バックアップサーバ14aと同様に、主に、プロセッサ112、メモリ113、HDD114、及びネットワークインタフェース115で構成される。プロセッサ112、メモリ113、HDD114、及びネットワークインタフェース115は、システムバス118を介して相互に通信可能に接続される。
 プロセッサ112は、CPU等を含む演算処理装置として機能し、メモリ113に記憶されているプログラム、演算パラメータ等に従って、ストレージ装置10の動作を制御する。
 メモリ113には、ストレージ装置10側のバックアッププログラム116、及びリストアプログラム117が格納されている。メモリ113は、HDD114から読みだされた各種情報を記憶するために用いられるほか、プロセッサ112のワークメモリとして用いられる。HDD114には、各種ソフトウェア、管理情報、及び重複排除処理後のデータなどが記憶されている。
 メモリ113にはまた、バックアッププログラム116、及びリストアプログラム117が実行される際に参照されるテーブルである、チャンク索引表310、コンテナ索引表320、及びコンテンツ索引表370が格納されている。チャンク索引表310、コンテナ索引表320、及びコンテンツ索引表370は、HDD114に格納しておき、バックアッププログラム116、及びリストアプログラム117が参照する際に必要に応じてメモリ113にロールインされるようにすることができる。チャンク索引表310、コンテナ索引表320、及びコンテンツ索引表370は、第2の重複判定情報を構成する。
 次に、ストレージ装置10で実行されるプログラムについて説明する。バックアッププログラム116は、バックアップサーバ14aから受信したデータに対する重複排除処理を行い、重複排除処理後のデータをHDD114に格納する。バックアッププログラム116はまた、ネットワークインタフェース115を介して、バックアップサーバ14aで重複判定処理を行う際に必要となる情報をバックアップサーバ14aへ送信する。
 リストアプログラム117は、バックアップサーバ14aから受信するリストア要求に対応するデータをHDD114から読み出し、ネットワークインタフェース115を介して、バックアップサーバ14aに送信する。
バックアップ処理及びリストア処理の概要
 次に、本実施形態に係るバックアップ処理及びリストア処理の概要について説明する。
ストレージ装置10に搭載する重複排除機能の概要
 まず、本実施形態に係る重複排除機能の概要を説明する。本実施形態に係るバックアップサーバ14のバックアッププログラム106及びストレージ装置10のバックアッププログラム116には、バックアップ対象データのデータ量を削減する処理機能が搭載されている。データ量の削減には、例えばファイル圧縮処理、重複排除処理等のデータ処理が用いられる。ファイル圧縮処理は、1ファイル内に含まれる同一内容のデータセグメント(単位データ)を縮約することにより、データ容量を削減する処理である。一方、重複排除処理は、1ファイル内だけでなく、複数のファイル間で検出される同一内容のデータセグメントを縮約することにより、ファイルシステム、ストレージシステム等に格納されるデータの総データ容量を削減するための処理である。
 本実施形態の説明では、バックアップデータについての重複排除処理の単位となるデータセグメントを「チャンク」といい、複数のチャンクをまとめたデータを「コンテナ」という。また、記憶デバイスに格納する単位である論理的にまとまったデータを「コンテンツ」という。コンテンツには、通常のファイルの他、例えばアーカイブファイル、バックアップファイル、仮想ボリュームファイルなどの通常のファイルを集約したファイルが含まれる。
 一つのコンテナは、互いに関連性の高いチャンクが集約されるように作成される。例えば、各コンテナに対して、予め所定のチャンク数またはデータ容量を設定し、1または2以上のコンテンツから生成されたチャンクをコンテナが一杯になるまでまとめることで、データのローカリティを考慮したコンテナの生成が可能である。言い換えれば、あるコンテンツのバックアップデータから元データをリストアする場合、そのコンテンツの最初のチャンクが格納されているコンテナが特定されれば、後続のチャンクについても同じコンテナから取得可能である可能性が高い。したがって、特定のコンテンツをリストアするために、異なるコンテナをHDD114からメモリ113に呼び出す処理が削減できることが期待される。
 一般に、一つのチャンクのサイズは数キロバイト以上である。このため、重複判定処理の実行時に、チャンクの先頭から順番にチャンク同士を比較すると、多くの処理時間とコストを必要とする。そこで、本実施形態に係るストレージ装置10では、チャンクのメッセージダイジェストを利用し、短時間かつ低コストで重複判定処理の実行を可能としている。メッセージダイジェストとは、任意の長さのデータ入力に対し、固定長のダイジェストを出力する技術である。本明細書では、メッセージダイジェストの出力結果を、「フィンガプリント(FP:Finger Print)」という。フィンガプリントは、任意のハッシュ関数を用いて取得することができる。このハッシュ関数としては、例えばSHA256などの、乱数性が極めて高く、各チャンクに対してハッシュ値が一意に定まる可能性の高いハッシュ関数を利用することが好ましい。
 まず、バックアップサーバ14のバックアッププログラム106におけるチャンク単位の重複排除方法を説明する。
 バックアップサーバ14のバックアッププログラム106では、任意のチャンクをストレージ装置10に送信する前に、当該送信しようとするチャンクが、ストレージ装置10に既に同じ内容が格納されているチャンク(以下「重複チャンク」という)か、まだ格納されていないチャンク(以下「新規チャンク」という)かを判定する。なお、バックアップサーバ14は、ストレージ装置10に格納されている全チャンクの情報を保有しているわけではないため、重複チャンクを新規チャンクと判定してしまう場合もある。
 そこで、送信しようとする前記チャンクが新規チャンクと判定した場合、バックアッププログラム106は、当該チャンクと当該チャンクのフィンガプリント(ハッシュ値)とをストレージ装置10に送信する。後述するように、新規チャンクと判定した場合は、ストレージ装置10でも重複排除処理が行われるため、重複チャンクが多重登録されることはない。一方、重複チャンクと判定された場合、バックアッププログラム106は、当該チャンクをストレージ装置10へ送信せずに、その格納場所を示すリンク情報をストレージ装置10に送信する。
 次に、ストレージ装置10のバックアッププログラム116におけるチャンク単位の重複排除方法を説明する。
 ストレージ装置10のバックアッププログラム116は、バックアップサーバ14から受信した任意のチャンクをHDD114に格納する前に、受信した当該チャンクが、既にHDD114に格納されているチャンクと同じ内容のチャンクである重複チャンクか、まだHDD114には格納されていない新規チャンクかを判定する。
 受信した当該チャンクが新規チャンクと判定された場合、バックアッププログラム116は、当該チャンクをそのままHDD114に格納する。一方、受信した当該チャンクが重複チャンクと判定された場合、バックアッププログラム116は、当該チャンクをHDD114に格納せずに、その格納場所を示すリンク情報をHDD114に格納する。また、バックアップサーバ14から重複チャンクのリンク情報を受信した場合は、そのままHDD114へ格納する。
 このように、本実施形態に係るバックアップサーバ14のバックアッププログラム106及びストレージ装置10のバックアッププログラム116は、互いに連携してチャンクの重複排除処理を繰り返し実行し、重複チャンクの多重登録を防止する。この重複チャンクの排除処理によりHDD114の使用容量を抑制することができるとともに、バックアップ処理を高速化することができる。
 前述したように、「コンテナ」は、1または2以上のコンテンツを分割して得られる複数のチャンクで構成される、HDD114にデータを格納する際の処理単位である。また、各「コンテナ」に対し、ストレージ装置10のバックアッププログラム116は、各コンテナを構成する各チャンクの配置を管理するコンテナ索引表を作成する。コンテナ索引表には、チャンクのオフセット(コンテナ内におけるチャンクの位置)及びチャンクのサイズが格納される。コンテナ索引表は、チャンクの重複判定に利用される。
 また、ストレージ装置10のバックアッププログラム116は、チャンク索引表も作成する。チャンク索引表は、バックアップデータの分割により生成されたチャンクがどのコンテナ索引表に格納されているかを示すテーブルである。チャンク索引表は、チャンクを格納するコンテナが決定された時に、ストレージ装置10により作成される。チャンク索引表は、バックアップ処理の実行時に、チャンクの重複排除判定に使用するコンテナ索引表を決定するために利用される。コンテナ索引表及びチャンク索引表の詳細は後述する。
 本実施形態では、前述したコンテナ索引表に各チャンクのフィンガプリントを格納し、重複判定処理時には、チャンクのフィンガプリント同士を比較する。これにより、チャンク同士をビット単位で比較する場合に比べて、重複判定処理の高速化及び低コスト化を実現することができる。
 なお、データの完全性を保証し、信頼性の高いバックアップ処理を実現するために、本実施形態では、ライトワンス型の記憶装置を使用してもよい。ライトワンス型の記憶装置では、データの書き込みは1回に限り可能であるが、書き込まれたデータの読み取りは何度でも可能である。ライトワンス型の記憶装置に書き込まれたデータは、消去も改変もできないため、証拠保全のためのデータのアーカイブなどに適している。このようなライトワンス型記憶装置には、例えばROM光ディスクを使用する光ディスク装置がある。一般的に、磁気ディスク装置は書き込まれたデータを更新できるため、ライトワンス型の記憶装置ではない。しかし、ファイルシステム、ドライバ装置等の構成を工夫して追記のみを許可することにより(すなわちデータの上書きを禁止することにより)、磁気ディスク装置をライトワンス型の記憶装置として利用することができる。本実施形態では、主に、データのバックアップに適した追記型のハードディスク装置をバックアップ用の記憶デバイスに適用することが好ましい。
 前述したコンテナには、予め所定のチャンク数またはデータ容量が設定されている。このため、チャンクは、コンテナが一杯になるまでメモリ113側で集約され、コンテナが一杯になると、コンテナ単位でバックアップ用の記憶デバイス(HDD114)に書き込まれる。例えば記憶デバイスに追記型のハードディスク装置を使用する場合、ストレージ装置10は、コンテナが一杯になるまでメモリ113上のコンテナにチャンクを追記する。同時に、ストレージ装置10は、コンテナ内のチャンクの配置を管理するコンテナ索引表と、チャンクとコンテナ索引表との対応関係を管理するチャンク索引表とを作成する。なお、バックアップデータには、バックアップ世代毎に必ず出現する普遍チャンクが存在し、その普遍チャンクは初期バックアップ時に用意されたコンテナに格納される。
本実施形態で使用する各種索引表の構成
 次に、本実施形態におけるチャンク索引表310及びコンテナ索引表320の構成例について説明する。図3、図4に、本実施形態のバックアップ処理及びリストア処理において使用されるコンテナ索引表320の構成例とチャンク索引表310の構成例を示している。コンテナ索引表320は、コンテナ単位で作成されるテーブルである。また、チャンク索引表310は、コンテナに格納されるチャンクを管理するためのテーブルである。
 図3には、コンテナ索引表320のうち、特定のコンテナについて作成されたコンテナ索引表Tg(320)を例示している。コンテナ索引表Tg(320)は、フィンガプリント321、コンテナオフセット322、及びチャンク長323の各項目を有している。
 フィンガプリント321には、各チャンクのフィンガプリント(本実施形態では適宜のハッシュ関数により算出されるハッシュ値)が格納される。コンテナオフセット322には、コンテナ内におけるチャンクの先頭位置を与えるオフセット値が格納される。チャンク長323には、チャンクの長さを示す情報が格納される。すなわち、コンテナ索引表Tg(320)の各行には、チャンク毎の管理情報が格納される。図3に例示するコンテナ索引表Tg(320)には、チャンクbの管理情報320b、チャンクcの管理情報320c、及びチャンクfの管理情報320fが格納されている。各チャンクに関する管理情報には、各チャンクを表す符号を添え字として付している。例えば、チャンクbについて算出されたフィンガプリント321は、FPbと表している。
 複数のコンテナ索引表320は、チャンク索引表310により管理される。チャンク索引表310には、各コンテナを互いに識別するための符号であるコンテナID312と、各チャンクのフィンガプリント311とが対応づけられて記録されている。ここでのコンテナID312は、コンテナ索引表320を参照可能とするポインタ情報としても利用される。本実施形態では、コンテナID312と対応するコンテナ索引表320は、UUID(Universally Unique Identifier)と呼ばれる識別子で共通化されている。
 なお、チャンク索引表310を参照するか否かは、新規チャンクか否かを識別するフィルタ処理の処理結果に応じて判断してもよい。すなわち、チャンク索引表310に記録されていないことが確実なチャンクについては、チャンク索引表310の参照処理自体をスキップし、当該チャンクを新規コンテナに直接格納してもよい。この処理手法を採用すれば、ストレージ装置10のバックアッププログラム116がチャンク索引表310を参照する回数を低減することができ、バックアップ処理をより高速化することができる。
 いま、例えば、ストレージ装置10のHDD114に、コンテナ380、コンテナ索引表320、チャンク索引表310、及びコンテンツ索引表370の4つのファイルが格納され、それぞれ4つのディレクトリの下に配置されているものとする。
 Container/uuid-Cf      …コンテナ本体
 ContainerIndex/uuid-Cf   …コンテナ索引表データベース
 ChunkIndex/fpの上位Nbit  …チャンク索引表データベース
 Contents/uuid-Cf      …コンテンツ索引表データベース
 図3の例では、全チャンクのフィンガプリント311とコンテナID312とをチャンク索引表310に登録しているが、登録するチャンク数を削減することもできる。前記のように、各コンテナ380はデータのローカリティを考慮して作成される。また、バックアップデータには、バックアップ世代間で同一、または一部のみ修正されたデータが多く含まれるため、あるコンテナ380に格納されているチャンクが、任意のコンテンツに含まれていた場合、同一のコンテナに格納されている他のチャンクも、該コンテンツに含まれている可能性は非常に高い。そのため、チャンク索引表310から、コンテナ索引表320を検索した後は、該コンテナ索引表320を用いることで、コンテンツの重複判定が可能となる。図4に、チャンク索引表310に登録するチャンクを削減した場合のコンテナ索引表320とチャンク索引表310との一例を示している。
 ここで、例えばコンテナ索引表Tg(320)が、ストレージ装置10のメモリ113上に展開されていない場合において、チャンクb、チャンクc、及びチャンクfを含むコンテンツについて実行されるバックアップ処理について考える。まず、ストレージ装置10のバックアッププログラム116は、チャンクbのフィンガプリントFPbを使用してチャンク索引表310を検索する。図3の場合、フィンガプリントFPbには、コンテナIDのTg(320)が対応付けられている。そこで、バックアッププログラム116は、コンテナ索引表Tg(320)をHDD114から読みだして、メモリ113上に展開する。チャンクcとチャンクfの重複判定は、展開されたコンテナ索引表Tg(320)を用いて行うことができる。
 このように、チャンク索引表310に登録するチャンク数を削減することで、重複排除処理に必要なストレージ容量及びメモリ使用量を削減することができる。また、チャンク索引表310のチャンク登録数が減るため、任意のチャンクに対応するフィンガプリント311の検索を高速化することができる。
 次に、図5を参照して、リストア処理実行時に使用するコンテンツ索引表370の構成例を説明する。コンテンツ索引表370は、コンテンツ単位で作成されるテーブルであって、コンテンツに含まれるチャンクを管理するテーブルである。コンテンツ索引表370は、コンテンツID371、フィンガプリント372、コンテナID373、コンテンツオフセット374、及びチャンク長375から構成される。
 コンテンツID371には、各コンテンツを互いに識別するための情報が格納される。フィンガプリント372には、各チャンクのフィンガプリント(各チャンクについて適宜のハッシュ関数を用いて算出されたハッシュ値)が格納される。コンテナID373には、チャンクが格納されている各コンテナを互いに識別するための識別情報が格納される。コンテンツオフセット374には、各コンテンツ内のチャンクの位置を示す情報が格納される。チャンク長375には、各チャンクの長さを示す情報が格納される。
 例えば図5では、コンテンツ索引表の例として、Sf1(370)、Sf2(370)、Sf3(370)、及びSfn(370)を示している。例えば、コンテンツf3に対応するSf3(370)の情報により、コンテンツf3は、チャンクb、チャンクc、チャンクd、チャンクe、及びチャンクfにより再構成できること、コンテンツオフセット374とチャンク長375に基づいて、各チャンクb~fがどのコンテナのどの領域に格納されているかを知ることができる。
 コンテンツ索引表370を構成するコンテンツのコンテンツオフセット374とチャンク長375とは、コンテンツ内のチャンクの論理的な配置を示している。なお、前述したコンテナ索引表320(図3)におけるオフセット322とチャンク長323とは、各コンテナ内のチャンクの論理的な配置を示している。
 リストア処理実行時、ストレージ装置10のリストアプログラム117は、コンテンツ索引表370を参照し、各チャンクのコンテナID373を取得して、当該コンテナID373を用いてコンテナ索引表320を検索する。次に、リストアプログラム117は、コンテナ索引表320に格納されている各チャンクの格納位置情報に基づいて、HDD114から読みだしたコンテナ380から、該当するチャンクを取得する。この後、リストアプログラム117は、コンテンツ索引表370の論理的な配置に従ってリストア対象であるコンテンツを再構成する。
ストレージシステム1に搭載する重複排除機能の概要
 次に、本実施形態のストレージシステム1において実現される重複排除処理の概要について説明する。図6に、本実施形態のストレージシステム1において実現される重複排除処理の概要を模式的に示している。なお、図6では、ストレージシステム1に設けられるバックアップサーバ14としてバックアップサーバ14aのみを図示しているが、図1と同様に複数のバックアップサーバ14(14a,14b,…,14n)が、通信ネットワーク4を介してストレージ装置10と接続されているものとする。
 図6に示すように、バックアップ対象のコンテンツは、チャンクa、チャンクb、チャンクc、チャンクd、チャンクe、及びチャンクfで構成されている。また、ストレージ装置10には、チャンク索引表U(310)、及びコンテナ索引表Tg(320)、Tc(320)が格納されている。
 ここで、バックアップサーバ14aが最初のバックアップ処理を実行する場合であって、バックアップサーバ14aのメモリ103及びHDD104には、まだコンテナ索引表320が格納されていない場合を考える。
 まず、バックアップサーバ14aのバックアッププログラム106は、先頭チャンクaの重複判定を行う。しかし、メモリ103及びHDD104にはコンテナ索引表320が格納されていないため、バックアッププログラム106は、チャンクaを新規チャンクと判定し、チャンクa及びチャンクaのフィンガプリントFPaをストレージ装置10に送信する。
 ストレージ装置10のバックアッププログラム116は、受信したチャンクaについて、チャンク索引表U(310)を用いて重複判定を行う。このとき、ストレージ装置10のメモリ113に展開されているコンテナ索引表320がある場合には、該コンテナ索引表320を参照してチャンクaが重複して格納されているかを先に検索してもよい。チャンク索引表U(310)を参照することにより、チャンクaはコンテナTg(380)に格納済みであると判定されるため、バックアッププログラム116は、チャンクaを重複チャンクとして処理し、コンテナ索引表Tg(320)をバックアップサーバ14aに送信する。
 バックアップサーバ14aのバックアッププログラム106は、受信したコンテナ索引表Tg(320)をメモリ103に展開し、その後にバックアップ処理されるチャンクに対する重複判定処理に用いる。コンテナ索引表Tg(320)には、チャンクb、チャンクc、チャンクdのフィンガプリントFPb、FPc、及びFPdがそれぞれ登録されているため、バックアッププログラム106は、チャンクb、チャンクc、及びチャンクdを重複チャンクと判定する。
 しかし、チャンクeのフィンガプリントFPeはコンテナ索引表Tg(320)に登録されていないため、バックアッププログラム106は、チャンクeを新規チャンクと判定し、チャンクeとそのフィンガプリントFPeをストレージ装置10へ送信する。
 ストレージ装置10のバックアッププログラム116は、チャンクaの場合と同様に、チャンクeについて重複判定を行い、該当するコンテナ索引表Tc(320)をバックアップサーバ14aに送信する。
 バックアップサーバ14aのバックアッププログラム106は、受信したコンテナ索引表Tc(320)と、既にメモリ103に展開しているコンテナ索引表Tg(320)を用いてその後のチャンクfに対して、重複判定処理を行う。
 前述したように、データのローカリティを考慮して、各コンテナにはチャンクが集約されているため、チャンクaを格納していたコンテナTg(380)に、続くチャンクb、チャンクc、及びチャンクdが格納されている可能性は高く、効率的な重複排除処理を行うことができる。
 なお、バックアップサーバ14のバックアッププログラム106が重複判定処理を行う際には、メモリ103及びHDD104にコンテナ索引表320が格納されていない場合を除き、少なくとも1つ以上のコンテナ索引表320のフィンガプリント321を参照する。このため、バックアッププログラム106は、コンテナ索引表320をメモリ103上に展開させる必要がある。しかし、メモリ103の容量は有限であって、バックアッププログラム106が使用する全てのコンテナ索引表320を常時メモリ103上に展開させておくことは困難である。そこで、バックアップサーバ14においては、HDD104からメモリ103にコンテナ索引表320をロールインしたり、メモリ103からHDD104にコンテナ索引表320をロールアウトしたりして、メモリ103の記憶資源を有効活用するようにしている。なお、ロールアウトしたコンテナ索引表320は、HDD104から削除しても良い。また、ストレージ装置10におけるバックアッププログラム116の重複判定の際も、ストレージ装置10のメモリ113、HDD114に対して同様の処理を行う。
 なお、本実施形態では、バックアップサーバ14のバックアッププログラム106及びストレージ装置10のバックアッププログラム116は、各チャンクのフィンガプリント321を比較することで重複判定を行っているが、重複判定の信頼性を向上させるために、チャンク自体をビット単位で比較し、重複判定を行っても良い。その場合、ストレージ装置10のバックアッププログラム116は、該当するチャンクを含むコンテナ380本体をバックアップサーバ14に送信する。
本実施形態によるバックアップ処理動作の詳細
 次に、本実施形態のストレージシステム1において実行されるバックアップ処理について説明する。図7に、ストレージシステム1に設けられているバックアップサーバ14のバックアッププログラム106、及びストレージ装置10のバックアッププログラム116により実行されるバックアップ処理動作の処理フロー例を示している。なお、図7の処理フロー例において、各処理ステップに付した符号Sは、ステップの略号である。
 まず、バックアップサーバ14のバックアッププログラム106は、クライアント6からの指示等に基づいてバックアップ処理を開始し(S100)、バックアップ対象であるコンテンツを特定するためのコンテンツID371を、ストレージ装置10から取得する(S101)。コンテンツID371はストレージ装置10のバックアッププログラム116が、コンテンツ索引表370において管理しているため、このステップが設けられる。次いで、バックアップサーバ14のバックアッププログラム106は、バックアップ対象のコンテンツをチャンクsi(i=1、2、…、n)に分解する(S102)。
 次に、バックアッププログラム150は、チャンクsiの管理情報msi(i=1、2、…、n)を作成する(S103)。チャンクの管理情報msiには、チャンクのフィンガプリント321、コンテンツ内でのチャンクの位置(オフセット)322、及びチャンクの長さ323が含まれる。
 続いて、バックアッププログラム106は、ループ処理に用いられるカウンタiを初期化(i=0)し、以下で説明するチャンクsiの重複判定を開始する(S104)。
 バックアッププログラム106は、メモリ103上に展開されたコンテナ索引表320を検索し、各チャンクについて重複判定を行う(S105)。具体的には、バックアッププログラム106は、S102において分解したチャンクのフィンガプリントと一致するフィンガプリント321がコンテナ索引表320に含まれるか否かを判定する。バックアッププログラム106は、判定対象であるチャンクのフィンガプリントがコンテナ索引表320のフィンガプリント321と一致する場合に「重複あり」と判定し、一致しない場合に「重複なし」と判定する。
 S105において、コンテナ索引表320にフィンガプリントが一致するチャンクsiがあると判定した場合(すなわち、「重複あり」と判定された場合)、バックアッププログラム106は、S111の処理を実行する。一方、S105において、コンテナ索引表320にフィンガプリント321が一致するチャンクsiがないと判定した場合(「重複なし」と判定された場合)、バックアッププログラム106は、S106の処理を実行する。
 S106において、バックアッププログラム106は、チャンクsiとチャンクsiの管理情報msiをストレージ装置10に送信する。
 次いで、S107において、ストレージ装置10のバックアッププログラム116は、バックアップサーバ14から受信したチャンクsiの重複判定を行う。S107においてチャンクsiが新規チャンクであると判定された場合、バックアッププログラム116は、S108の処理を実行する。
 S108では、ストレージ装置10のバックアッププログラム116は、バックアップサーバ14に対して、S107における重複判定の結果を送信する。
 続いて、ストレージ装置10のバックアッププログラム116は、コンテナ380にチャンクsiを書き出し、コンテナ索引表320にチャンクsiの管理情報msiを書き出し、チャンク索引表310にチャンクsiのメッセージダイジェスト(ハッシュ値)を書き出し(S109)、S111の処理を実行する。
 一方、S107においてチャンクsiにつき「重複あり」と判定された場合、ストレージ装置10のバックアッププログラム116は、バックアップサーバ14から受信したチャンクsiのフィンガプリントと一致するフィンガプリント321を含んだコンテナ索引表320をバックアップサーバ14に送信し(S110)、S111を実行する。なお、バックアップサーバ14のバックアッププログラム106は、ストレージ装置10からコンテナ索引表320を受信した場合は、「重複あり」の判定結果を受信したこととする。
 S111では、ストレージ装置10のバックアッププログラム116は、リストア処理の際に使用するために、図5に例示した、バックアップ対象であるコンテンツについてのコンテンツ索引表370を作成してチャンクに関する管理情報msiを登録する。
 この後、バックアップサーバ14のバックアッププログラム106は、全てのチャンクについて、重複判定処理及びコンテンツ索引表370への登録処理が終わったか否かを判定する(S112)。具体的には、バックアップサーバ14のバックアッププログラム106は、バックアップ対象であるコンテンツに含まれるチャンク数nと、カウンタiのカウンタ数とを比較する。
 S112において、バックアップ対象のコンテンツに含まれる全てのチャンクに対して重複判定処理及びコンテンツ索引表登録処理が終わったと判定された場合(S112、No)、バックアップサーバ14のバックアッププログラム106は、リストア用のスタブファイルを作成して(S114)、当該コンテンツのバックアップ処理を終了する(S115)。スタブファイルには、リストア処理実行時に該当するコンテンツ索引表370を検索するためのコンテンツID371が格納される。
 一方、S112において、バックアップ対象のコンテンツに含まれる全てのチャンクに対して重複判定処理及びコンテンツ索引表登録処理が終わっていないと判定された場合(S112、Yes)、バックアップサーバ14のバックアッププログラム106は、カウンタiに1を加算し、S105に処理を戻す(S113)。
 なお、図7の処理フロー例では、S102及びS103において、コンテンツの全チャンクを分割し、全チャンクの管理情報を作成した後に、S104以降で各チャンクの重複排除処理を行っているが、チャンクが分割されるごとに、順次分割されたチャンクの管理情報を作成し、重複排除処理を行っても良い。これにより、チャンク分割後の処理(管理情報の作成、重複排除処理)に必要な情報が常にメモリ103に展開されている状態になるため、メモリ103を効率的に使用し、重複排除処理の処理性能を向上させることができる。
 また、図7の処理フロー例では、S105でチャンクsiについて「重複なし」と判定された場合、バックアップサーバ14のバックアッププログラム106は、ストレージ装置10での重複排除処理が終わり、その結果を取得した後に、次のチャンクsi+1の処理を開始しているが、S106で、チャンクsiとチャンクsiの管理情報msiをストレージ装置10に送信した後に、次のチャンクsi+1の処理を実行しても良い。この場合、ストレージ装置10に対して、同じコンテナ索引表320に登録されているチャンクが複数個送信される可能性があるため、ストレージ装置10は、メモリ113に展開されているコンテナ索引表320がどのバックアップサーバ14(14a,14b,…,14n)に対して送信済みかを記憶しておき、各バックアップサーバ14に対してすでに送信済みのコンテナ索引表320と同じコンテナ索引表320を送信しないようにする。
 例えば、チャンクsiとチャンクsi+1が同一のコンテナ索引表320に登録されており、バックアップサーバ14aが、該コンテナ索引表320を取得していない場合を想定する。この場合、バックアップサーバ14aのバックアッププログラム106は、チャンクsiについて「重複なし」と判定し、チャンクsiとその管理情報msiをストレージ装置10に送信する。そして、ストレージ装置10からチャンクsiについての重複判定結果を受信する前にチャンクsi+1について重複判定するため、チャンクsi+1は「重複なし」と判定され、ストレージ装置10へ送信される。一方、ストレージ装置10のバックアッププログラム116は、チャンクsiについて重複判定し、該当するコンテナ索引表320をバックアップサーバ14aへ送信する。その際、該当するコンテナ索引表320は、バックアップサーバ14aに送信済みであることをメモリ113に記憶しておく。このように構成すれば、バックアッププログラム116は、チャンクsi+1の重複判定において、該当するコンテナ索引表320をバックアップサーバ14aに送信しようとする際、該当するコンテナ索引表320は既に送信済みであると判定して送信は行わない。
 以上のように、バックアップサーバ14のバックアッププログラム106とストレージ装置10のバックアッププログラム116を連携させて動作させることにより、ストレージシステム1における重複排除処理の処理性能を向上させることできる。
本実施形態によるリストア処理動作の詳細
 次に、本実施形態のストレージシステム1において実行されるリストア処理について説明する。図6に、バックアップサーバ14のリストアプログラム107、及びストレージ装置10のリストアプログラム117により実行されるリストア処理の処理フロー例を示している。
 クライアント6からのコンテンツリストア指示等に基づいてリストア処理が開始されると(S200)、まず、バックアップサーバ14のリストアプログラム107は、HDD104に記憶しているスタブファイルから該当するリストア対象のコンテンツのコンテンツIDを取得し、ストレージ装置10へ送信する(S201)。
 ストレージ装置10のリストアプログラム117は、コンテンツ索引表370を参照し、読み込み対象であるコンテンツに含まれるチャンクsi(si=1、2、…、n)の情報を取得する(S202)。具体的には、リストアプログラム117は、コンテンツ索引表370から、読み込む必要のあるチャンクsiのリストを作成する。
 次に、ストレージ装置10のリストアプログラム117は、リストア処理に必要なチャンクをカウントするためのカウンタiに0を設定する(S203)。その後、リストアプログラム117は、コンテナ索引表320の管理情報msiを読み込む(S204)。具体的には、リストアプログラム117は、S202において取得したコンテンツ索引表370のチャンクsiの情報から、当該チャンクsiが属するコンテナ索引表370をHDD114から読み込み、該当チャンクsiの管理情報msiを読み込む。チャンクsiの管理情報msiとは、前述したように、チャンクのフィンガプリント321、コンテナ内における位置(オフセット)322、及びチャンクの長さ323の情報を含む。
 次に、ストレージ装置10のリストアプログラム117は、S204で読み込んだチャンクsiの管理情報msiに基づいて、コンテナ索引表370に対応するコンテナ380等に格納されているチャンクsiを読み込む(S205)。
 続いて、ストレージ装置10のリストアプログラム117は、リストア対象のコンテンツに含まれる全てのチャンクについて読み込みが終了したか否かを判定する(S206)。具体的には、リストアプログラム117は、リストア対象のコンテンツに含まれるチャンク数nと、カウンタiのカウント数とを比較する。
 S206において、全てのチャンクについて読み込みが終了したと判定された場合(S206、No)、ストレージ装置10のリストアプログラム117は、読み込んだチャンクsi(i=1、2、…、n)に基づいてコンテンツを再生し(S208)、バックアップサーバ14に送信してリストア処理を終了する(S209、S210)。具体的には、リストアプログラム117は、コンテンツ索引表370に既述されたコンテンツ内のオフセット374、チャンク長375に基づいて、読み込んだチャンクsiをコンテンツとして再合成する。一方、S206において、全てのチャンクについて読み込みが終了していないと判定された場合(S206、Yes)、ストレージ装置10のリストアプログラム117は、カウンタiに1を加算し、S204に処理を戻す(S207)。
 以上説明したように、本実施形態に係るストレージシステム1は、バックアップサーバ14の重複排除処理に使用するコンテナ索引表320を適宜ストレージ装置10から取得することにより、効率的な重複排除処理を実現する。
 バックアップサーバ14で重複排除を行い、新規チャンクのみをストレージ装置10に送信することで、ストレージ装置10に送信するデータ量を削減することができる。ストレージ装置10に送信するデータ量が削減されるため、通信ネットワーク4の負荷を削減することができる。
 また、バックアップサーバ14で行う重複排除処理に必要なコンテナ索引表320を適宜ストレージ装置10から取得するため、バックアップサーバ14が重複排除処理に用いる記憶容量を削減することができる。
 また、ストレージ装置10から取得したコンテナ索引表320はデータのローカリティが考慮されており、その後に重複排除処理が行われるチャンクの情報を含んでいる可能性が高いため、バックアップサーバ14のメモリ104を効率的に利用することができる。
 また、コンテナ索引表320のサイズは、ストレージ装置10に格納されている全チャンクのサイズよりも小さいため、重複判定を高速に行うことができる。
第2の実施形態
 次に、本発明の第2の実施形態に係るストレージシステム1について説明する。
第2の実施形態によるストレージシステム1の構成
 図9に、本実施形態によるストレージシステム1の全体構成例を示す。図9に例示する第2実施形態の構成は、ストレージ装置10(10a,10b,…,10m)をそれぞれ備えるデータセンタ3(3a,3b,…,3m)を複数備えていることを除き、図1に例示した第1の実施形態と同様である。従って、ストレージシステム1の構成に関する詳細な説明は省略する。
バックアップ処理及びリストア処理
 次に、第2の実施形態によるストレージシステム1において実行されるバックアップ処理及びリストア処理について説明する。
バックアップ処理動作の詳細
 まず、本実施形態のストレージシステム1において実行されるバックアップ処理について説明する。図10に、本実施形態に係るバックアップ処理の処理フロー例を示している。
 S300~S304は、図7に例示した第1の実施形態での処理フロー例におけるS100~S104と同様であるから詳細な説明は省略する。
 S305において、コンテナ索引表320に処理対象のチャンクとフィンガプリント321が一致するチャンクsiがあると判定した場合(すなわち、「重複あり」と判定された場合)、バックアップサーバ14のバックアッププログラム106は、S313の処理を実行する。一方、S305においてフィンガプリント321が一致するチャンクsiがないと判定した場合(「重複なし」と判定された場合)、バックアップサーバ14のバックアッププログラム106は、S306の処理を実行する。
 S306において、バックアップサーバ14のバックアッププログラム106は、チャンクsiとチャンクsiの管理情報msiを、ストレージシステム1に接続されている全ストレージ装置10(10a,10b,…,10m)に送信する。
 S307において、ストレージ装置10のバックアッププログラム116は、バックアップサーバ14から受信したチャンクsiの重複判定を行う。S307においてチャンクsiが新規チャンクであると判定された場合、ストレージ装置10のバックアッププログラム116は、S308の処理を実行する。
 S308では、ストレージ装置10のバックアッププログラム116は、「重複なし」という重複判定の結果をバックアップサーバ14へ送信する。
 一方、S307においてチャンクsiが「重複あり」と判定された場合、ストレージ装置10のバックアッププログラム116は、S309の処理を実行する。
 S309において、ストレージ装置10のバックアッププログラム116は、受信したチャンクsiのフィンガプリントと一致するフィンガプリント321を含んだコンテナ索引表320をバックアップサーバ14に送信し、S313を実行する。
 S310において、バックアップサーバ14のバックアッププログラム106は、全ストレージ装置10からの判定結果が「重複なし」であった場合(S310、Yes)、S311の処理を実行する。なお、バックアップサーバ14のバックアッププログラム106は、いずれかのストレージ装置10からコンテナ索引表320を受信した場合は、「重複あり」の判定結果を受信したこととする。
 S311において、バックアップサーバ14のバックアッププログラム106は、チャンクsiを格納するストレージ装置10を選定し、チャンクsiの格納要求を送信する。この時、既にチャンクsiはS305で送信済みであるため、チャンクsiは送信しない。チャンクsiを格納するストレージ装置10は、任意の方法で選定することができる。
 S311において選定されたストレージ装置10は、コンテナ380にチャンクsiを書き出し、コンテナ索引表320にチャンクsiの管理情報msiを登録するとともに、チャンク索引表310にチャンクsiのメッセージダイジェストを登録し(S312)、S313の処理を実行する。
 S312では、ストレージ装置10のバックアッププログラム116は、リストア処理の際に使用するために、図5に例示した、バックアップ対象であるコンテンツについてのコンテンツ索引表370を作成してチャンクに関する管理情報msiを登録する。
 この後、バックアップサーバ14のバックアッププログラム106は、全てのチャンクについて、重複判定処理及び登録処理が終わったか否かを判定する(S314)。具体的には、バックアップサーバ14のバックアッププログラム106は、処理対象のコンテンツに含まれるチャンク数nと、カウンタiのカウンタ数とを比較する。
 S314において、全てのチャンクに対して重複判定処理及び書き出し処理が終わったと判定された場合(S314、No)、バックアップサーバ14のバックアッププログラム106は、リストア処理用のスタブファイルを作成して(S316)、当該コンテンツのバックアップ処理を終了する(S317)。スタブファイルには、リストア処理時に該当するコンテンツ索引表370を検索するためのコンテンツID371が格納される。
 一方、S313において、全てのチャンクに対して重複判定処理及び登録処理が終わっていないと判定された場合(S313、Yes)、バックアップサーバ14のバックアッププログラム106は、カウンタiに1を加算し、S304に処理を戻す(S314)。
 なお、本実施形態に係るリストア処理は、リストア処理実行指示を受けたバックアップサーバ14から、複数のストレージ装置10にリストア対象のコンテンツに関するコンテンツID371を送信することを除き、第1の実施形態と実質的に同様であるから、詳細な説明は省略する。
 以上のように、本実施形態では、複数のストレージ装置10に対しても、第1実施形態の場合と同様に、効率的な重複排除処理が適用可能である。
 また、図10の処理フロー例では、S306で1チャンクずつストレージ装置10へ送信しているが、複数チャンクをまとめて、送信しても良い。例えば、新規チャンクと判定されたチャンクから10チャンク分をまとめて、ストレージ装置10へ送信しても良い。これらの処理は、重複排除処理の速度を向上させる場合がある。
第3の実施形態
 次に、本発明の第3の実施形態に係るストレージシステム1について説明する。
第3の実施形態によるストレージシステム1の構成
 図11に、本実施形態によるストレージシステム1の全体構成例を示している。本実施形態によるストレージシステム1の全体構成は、データセンタ11及びデータセンタ11に設けられたチャンク管理サーバ12を備えていることを除き、第2の実施形態と同様である。従って、第2の実施形態と同様の構成については詳細な説明を省略する。
 チャンク管理サーバ12は、ストレージシステム1に設けられている全データセンタ3(3a,3b,…,3m)に格納されているチャンク索引表310、コンテナ索引表320、及びコンテンツ索引表370を管理している。
 図12に、図11に例示したストレージシステム1の拠点2に設けられているバックアップサーバ14と、データセンタ3に設けられているストレージ装置10、及びデータセンタ11に設けられているチャンク管理サーバ12の構成例を示すブロック図を示している。
 本実施形態のバックアップサーバ14の構成は、第1実施形態のバックアップサーバ14の構成と同様なので、詳細な説明を省略する。また、本実施形態のストレージ装置10の構成は、バックアッププログラム116及びリストアプログラム117が削除されていることを除き、第1の実施形態のストレージ装置10の構成と同様なので、同じく詳細な説明を省略する。第1実施形態におけるバックアッププログラム116及びリストアプログラム117の機能は、チャンク管理サーバ12に設けられているバックアッププログラム126及びリストアプログラム127が行う。
 本実施形態のチャンク管理サーバ12の構成は、第1の実施形態におけるストレージ装置10の構成と実質的に同様のため、詳細な説明を省略する。
第3実施形態のストレージシステム1におけるバックアップ処理及びリストア処理
 次に、本実施形態のストレージシステム1において実行されるバックアップ処理及びリストア処理について説明する。
バックアップ処理動作の詳細
 まず、本実施形態のストレージシステム1において実行されるバックアップ処理について説明する。図13に、本実施形態に係るバックアップ処理動作の処理フロー例を示している。図13に例示するバックアップ処理は、バックアップサーバ14のバックアッププログラム106、及びチャンク管理サーバ12のバックアッププログラム126によって実行される。
 バックアップサーバ14のバックアッププログラム106は、クライアント6等からのバックアップ処理実行指示を受信して、本実施形態のバックアップ処理を開始する(S400)。引き続き実行されるS401~S404での処理は、第1の実施形態におけるS101~S104での処理と同様であるから、詳細な説明を省略する。
 S405において、バックアップサーバ14のコンテナ索引表320に処理対象のチャンクとフィンガプリント321が一致するチャンクsiがあると判定された場合(すなわち、「重複あり」と判定された場合)、バックアップサーバ14のバックアッププログラム106は、S412の処理を実行する。一方、S405においてフィンガプリント321が一致するチャンクsiがないと判定された場合(「重複なし」と判定された場合)、バックアップサーバ14のバックアッププログラム106は、S406の処理を実行する。S406において、バックアップサーバ14のバックアッププログラム106は、チャンクsi及びチャンクsiの管理情報msiをチャンク管理サーバ12に送信する。
 S407において、チャンク管理サーバ12のバックアッププログラム126は、バックアップサーバ14から受信したチャンクsiの重複判定を行う。S407においてチャンクsiが新規チャンクであると判定された場合、チャンク管理サーバ12のバックアッププログラム126は、S408の処理を実行する。
 S408において、チャンク管理サーバ12のバックアッププログラム126は、重複判定の結果をバックアップサーバ14に送信し、S409を実行する。
 S409において、チャンク管理サーバ12のバックアッププログラム126は、バックアップサーバ14から受信した新規チャンクを格納するストレージ装置10(10a,10b,…,10m)を選定し、選定したストレージ装置10のコンテナにチャンクsiを登録する。新規チャンクを格納するストレージ装置10は、任意の方法で選定することができる。
 S411において、チャンク管理サーバ12のバックアッププログラム126は、コンテナ索引表320にチャンクsiの管理情報msiを登録するとともに、チャンク索引表310にチャンクsiのメッセージダイジェストを記録し、S412を実行する。
 一方、S407においてチャンクsiが「重複あり」と判定された場合、チャンク管理サーバ12のバックアッププログラム126は、受信したチャンクsiのフィンガプリントと一致するフィンガプリント321を含んだコンテナ索引表320をバックアップサーバ14に送信し(S411)、S412を実行する。
 S412において、チャンク管理サーバ12のバックアッププログラム126は、リストア処理の際に使用するために、図5に例示した、バックアップ対象であるコンテンツについてのコンテンツ索引表370を作成してチャンクに関する管理情報msiを登録する。
 この後、バックアップサーバ14のバックアッププログラム106は、全てのチャンクについて、重複判定処理及び書き出し処理が終わったか否かを判定する(S413)。具体的には、バックアップサーバ14のバックアッププログラム106は、バックアップ対象のコンテンツに含まれるチャンク数nと、カウンタiのカウンタ数とを比較する。
 全てのチャンクに対して重複判定処理、及びチャンク索引表、コンテンツ索引表への登録処理が終わったと判定された場合(S413、No)、バックアップサーバ14のバックアッププログラム106は、リストア処理用のスタブファイルを作成して(S415)、当該コンテンツのバックアップ処理を終了する(S416)。前記スタブファイルには、バックアップデータをリストア処理する際に該当するコンテンツ索引表370を検索するためのコンテンツID371が格納される。
 一方、S413において、全てのチャンクに対して重複判定処理、及びチャンク索引表、コンテンツ索引表への登録処理が終わっていないと判定された場合(S413、Yes)、バックアップサーバ14のバックアッププログラム106は、カウンタiに1を加算し、S404に処理を戻す(S414)。
 また、図11のチャンク管理サーバ12は1台であるが、複数台あってもよい。これにより、1台のチャンク管理サーバ12への問い合わせを分散させ、重複排除処理の速度を向上させることができる場合がある。例えば、チャンク管理サーバ12で管理されるチャンク索引表のフィンガプリントの一部の情報を使って各チャンク管理サーバ12が管理するチャンク索引表を振り分ける。Xを任意の自然数とした場合に、フィンガプリントの上位Xビットまたは下位Xビット、あるいは既定のパターンなどで抽出したビットパターンで振り分けることが可能である。
 チャンク索引表のフィンガプリントから、ストレージ装置識別情報とコンテナIDとを取得できるようにチャンク索引表を構成することにより,複数台のチャンク管理サーバ12による分散処理を実現することができる。
リストア処理動作の詳細
 本実施形態に係るリストア処理は、クライアント6等からチャンク管理サーバ12にコンテンツIDを指定したリストア処理実行指示を送信し、第1の実施形態におけるストレージ装置10のリストアプログラム117の機能をチャンク管理サーバ12のリストアプログラム127が実現することを除き、第1の実施形態と実質的に同様であるから、詳細な説明を省略する。
 以上のように、第3の実施形態では、複数のストレージ装置10に対するより効率的な重複排除処理が可能となる。本実施形態では、重複排除処理に必要な情報をチャンク管理サーバ12に集約しているため、チャンク及びチャンクの管理情報はバックアップサーバ14とチャンク管理サーバ12との間だけで授受すればよく、ネットワーク負荷を削減することができる。
第4の実施形態
 次に、本発明の第4の実施形態に係るストレージシステム1について説明する。
第4の実施形態によるストレージシステム1の構成
 本実施形態によるストレージシステム1の全体構成は、図2に例示した第1の実施形態のストレージシステム1と同様である。従って、詳細な説明を省略する。
 図14に、本実施形態に係るストレージシステム1の拠点2に設けられているバックアップサーバ14と、ストレージ装置10を備えるデータセンタ3との構成例を示すブロック図を示している。
 バックアップサーバ14の構成は、ネットワーク監視部109を除き、図2に例示した第1の実施形態のバックアップサーバ14と同様なので、詳細な説明を省略する。ネットワーク監視部109は、バックアップサーバ14が、ネットワークインタフェース105を介して通信ネットワーク4との間で送受信しているデータ量を監視する機能ブロックであり、当該機能を実現しうる適宜のハードウェア及びソフトウェアを用いて構成することができる。
 ストレージ装置10の構成も、ネットワーク監視部119を除き、図2に例示した第1の実施形態のストレージ装置10と同様なので、詳細な説明を省略する。ストレージ装置10のネットワーク監視部119は、バックアップサーバ14のネットワーク監視部109と同様の機能を有し、ネットワークインタフェース115を介して通信ネットワーク4との間で送受信されるデータ量を監視する。
 バックアップサーバ14のネットワーク監視部109、及びストレージ装置10のネットワーク監視部119を用いることで、バックアップサーバ14とストレージ装置10を接続している通信ネットワーク4の負荷を測定することができる。
第4実施形態のストレージシステム1におけるバックアップ処理及びリストア処理
 次に、本実施形態のストレージシステム1において実行されるバックアップ処理及びリストア処理について説明する。
バックアップ処理動作の詳細
 まず、本実施形態のストレージシステム1において実行されるバックアップ処理について説明する。図15に、本実施形態に係るバックアップ処理動作の処理フロー例を示している。図15に例示するバックアップ処理は、バックアップサーバ14のバックアッププログラム106、及びストレージ装置10のバックアッププログラム116によって実行される。
 バックアップサーバ14のバックアッププログラム106は、クライアント6等からのバックアップ処理実行指示を受信して、本実施形態のバックアップ処理を開始する(S500)。引き続き実行されるS501~S504での処理は、第1の実施形態におけるS101~S104での処理と同様であるから、詳細な説明を省略する。
 S505において、バックアップサーバ14のコンテナ索引表320に処理対象のチャンクとフィンガプリント321が一致するチャンクsiがあると判定した場合(すなわち、「重複あり」と判定された場合)、バックアップサーバ14のバックアッププログラム106は、S514の処理を実行する。一方、S505において処理対象のチャンクとフィンガプリント321が一致するチャンクsiがないと判定した場合(「重複なし」と判定された場合)、バックアップサーバ14のバックアッププログラム106は、S506の処理を実行する。
 S506において、バックアップサーバ14のバックアッププログラム106は、ネットワーク監視部109を介して通信ネットワーク4の負荷を測定し、通信ネットワーク4の負荷測定値があらかじめ設定しておいた閾値以上であれば(S506、Yes)、S507の処理を実行する。なお、通信ネットワーク4の負荷測定値の閾値は、通信ネットワーク4の性能等の条件を考慮して定めることができる。
 S506において、通信ネットワーク4の負荷が閾値に満たないと判定した場合(S506、No)、バックアップサーバ14のバックアッププログラム106及びストレージ装置10のバックアッププログラム116は、第1の実施形態の図5におけるS105~S109での処理と同様の処理を行う。S105~S109の処理を行った後は、ストレージ装置10のバックアッププログラム116が、S514の処理を実行する。
 S507において、バックアップサーバ14のバックアッププログラム106は、チャンクsiの管理情報msiをストレージ装置10に送信する。
 S508において、ストレージ装置10のバックアッププログラム116は、バックアップサーバ14から受信したチャンクsiの管理情報msiを用いて、チャンクsiの重複判定を行う。
 S508において、チャンクsiが新規チャンクと判定された場合、ストレージ装置10のバックアッププログラム116は、バックアップサーバ14に対して、重複判定の結果を送信する(S509)。
 一方、S508において、チャンクsiが新規チャンクと判定された場合、ストレージ装置10のバックアッププログラム116は、該当するコンテナ索引表320をバックアップサーバ14へ送信する(S510)。なお、バックアップサーバ14のバックアッププログラム106は、ストレージ装置10からコンテナ索引表320を受信した場合は、「重複あり」の判定結果を受信したこととする。
 S511において、バックアップサーバ14のバックアッププログラム106は、ストレージ装置10からの重複判定結果を取得し、重複判定処理を行う。なお、ストレージ装置10から受信した重複判定の結果が「重複あり」の場合、バックアップサーバ14のバックアッププログラム106は、S510で取得したコンテナ索引表320を考慮して、重複判定を行う。
 S511において、「重複なし」と判定された場合、バックアップサーバ14のバックアッププログラム106は、処理対象のチャンクsiをストレージ装置10に送信する(S512)。なお、チャンクsiの管理情報msiは、既にストレージ装置10へ送信済みであるため、S512では送信されない。
 次いで、S513において、ストレージ装置10のバックアッププログラム116は、コンテナ380にバックアップサーバ14から取得したチャンクsiを登録するとともに、コンテナ索引表320にチャンクsiの管理情報msiを登録し、チャンク索引表310にチャンクsiのメッセージダイジェストを記録して、S514を実行する。
 一方、S511において、「重複あり」と判定された場合、ストレージ装置10のバックアッププログラム116は、S514の処理を実行する。
 S514において、ストレージ装置10のバックアッププログラム116は、リストア処理の際に使用するために、図5に例示した、バックアップ対象であるコンテンツについてのコンテンツ索引表370を作成してチャンクsiに関する管理情報msiを登録する。
 この後、バックアップサーバ14のバックアッププログラム106は、バックアップ処理の対象であるコンテンツを構成する全てのチャンクについて、重複判定処理及びチャンク索引表、コンテンツ索引表への登録処理が終わったか否かを判定する(S515)。具体的には、バックアップサーバ14のバックアッププログラム106は、コンテンツに含まれるチャンク数nと、カウンタiのカウンタ数とを比較する。
 S515において、全てのチャンクに対して重複判定処理及びチャンク索引表、コンテンツ索引表への登録処理が終わったと判定された場合(S515、No)、バックアップサーバ14のバックアッププログラム106は、リストア処理用のスタブファイルを作成して(S517)、当該コンテンツのバックアップ処理を終了する(S518)。前記スタブファイルには、バックアップデータをリストア処理する際に該当するコンテンツ索引表370を検索するためのコンテンツID371が格納される。
 一方、S515において、バックアップ処理の対象であるコンテンツを構成する全てのチャンクに対して重複判定処理及びチャンク索引表、コンテンツ索引表への登録処理が終わっていないと判定された場合(S515、Yes)、バックアップサーバ14のバックアッププログラム106は、カウンタiに1を加算し、S505に処理を戻す(S516)。
リストア処理動作の詳細
 本実施形態に係るリストア処理は、図8に例示した第1の実施形態におけるリストア処理と実質的に同様であるから、詳細な説明を省略する。
 以上のように、本実施形態では、ネットワーク負荷を考慮した重複排除処理が可能である。特に、ストレージシステム1の通信ネットワーク4に関するネットワーク負荷が大きい場合における重複排除処理において、重複排除処理に用いる通信ネットワーク4の通信量を削減し、より効率的な重複排除処理を行うことができる。
第5の実施形態
 次に、本発明の第5の実施形態に係るストレージシステム1について説明する。
第5の実施形態によるストレージシステム1の構成
 本実施の形態に係るストレージシステム1の全体構成は、図1に例示した第1の実施形態と同様であるから、詳細な説明を省略する。また、バックアップサーバ14及びストレージ装置10のブロック構成も、図3に例示した第1の実施形態と同様であるため、詳細な説明を省略する。
第5実施形態のストレージシステム1におけるバックアップ処理及びリストア処理
 次に、本実施形態のストレージシステム1において実行されるバックアップ処理及びリストア処理について説明する。
バックアップ処理動作の詳細
 まず、本実施形態のストレージシステム1において実行されるバックアップ処理について説明する。図16に、本実施形態に係るバックアップ処理動作の処理フロー例を示している。図16に例示するバックアップ処理は、バックアップサーバ14のバックアッププログラム106、及びストレージ装置10のバックアッププログラム116によって実行される。
 バックアップサーバ14のバックアッププログラム106は、クライアント6等からのバックアップ処理実行指示を受信して、本実施形態のバックアップ処理を開始する(S600)。引き続き実行されるS601~S604での処理は、第1の実施形態におけるS101~S104での処理と同様であるから、詳細な説明を省略する。
 S605において、バックアップサーバ14のコンテナ索引表320に処理対象のチャンクとフィンガプリント321が一致するチャンクsiがあると判定した場合(「重複あり」と判定された場合)、バックアップサーバ14のバックアッププログラム106は、リストア処理用にチャンクsiの管理情報msiをコンテンツ索引表370に記録する(S611)。一方、S605において処理対象のチャンクとフィンガプリント321が一致するチャンクsiがないと判定した場合(「重複なし」と判定された場合)、バックアップサーバ14のバックアッププログラム106は、S606の処理を実行する。
 S606において、バックアップサーバ14のバックアッププログラム106は、例えばバックアップサーバ14のメモリ103に設定されているキューにチャンクsiとその管理情報msiを追加し、S606を実行する。キューは、S604での重複判定処理の結果、重複なしと判定されたチャンクsiとその管理情報msiをあらかじめ定めた閾値まで格納しておくために設けられる。この構成により、S604で重複なしと判定されたチャンクsiについての情報が、判定の都度ストレージ装置10に送信されることがなくなる。
 S607において、キューに格納されているチャンクsiの数が閾値以上であると判定した場合(S607、Yes)、バックアップサーバ14のバックアッププログラム106は、S608を実行する。
 一方、S607において、キューに格納されているチャンクsiの数が閾値未満であると判定した場合(S607、No)、バックアップサーバ14のバックアッププログラム106は、S613を実行する。
 S608では、バックアップサーバ14のバックアッププログラム106は、S605で「重複なし」と判定されたチャンクsi及び該チャンクsiの管理情報msiが格納されたキューをストレージ装置10に送信する。
 S609において、ストレージ装置10のバックアッププログラム116は、バックアップサーバ14から取得したキューの先頭から、チャンクsiと該チャンクsiの管理情報msiを1つ取り出す。
 取り出したチャンクsi及び該チャンクsiの管理情報msiに対して、ストレージ装置10のバックアッププログラム116は、第1の実施形態における図5のS106~S110と同様の重複判定処理、及びコンテナ、コンテナ索引表、チャンク索引表への登録処理を実行する(S610)。S110に相当する処理を行った後は、ストレージ装置10のバックアッププログラム116は、S612の処理を実行する。
 S612において、ストレージ装置10のバックアッププログラム116は、バックアップサーバ14から取得したキューが空になっていると判定した場合(S612、Yes)、S613を実行し、キューにチャンクが残っていると判定した場合(S612、No)、S609に処理を戻す。
 この後、バックアップサーバ14のバックアッププログラム106は、全てのチャンクについて、重複判定処理、及びコンテナ、コンテナ索引表、チャンク索引表への登録処理が終わったか否かを判定する(S613)。具体的には、バックアップサーバ14のバックアッププログラム106は、バックアップ処理対象のコンテンツに含まれるチャンク数nと、カウンタiのカウンタ数とを比較する。
 S613において、全てのチャンクに対して重複判定処理及びコンテナ、コンテナ索引表、チャンク索引表への登録処理が終わったと判定された場合(S613、No)、バックアップサーバ14のバックアッププログラム106は、リストア処理用のスタブファイルを作成して(S614)、当該コンテンツのバックアップ処理を終了する(S615)。前記スタブファイルには、バックアップデータをリストア処理する際に該当するコンテンツ索引表370を検索するためのコンテンツID371が格納される。
 一方、S613において、全てのチャンクに対して重複判定処理及びコンテナ、コンテナ索引表、チャンク索引表への登録処理が終わっていないと判定された場合(S613、Yes)、バックアップサーバ14のバックアッププログラム106は、カウンタiに1を加算し、S605に処理を戻す(S616)。
リストア処理動作の詳細
 本実施形態に係るリストア処理は、図6に例示した第1の実施形態におけるリストア処理と実質的に同様であるから、詳細な説明を省略する。
 以上のように、本実施形態では、バックアップサーバ14で「重複なし」と判定されたチャンクを複数個まとめてストレージ装置10へ送信するので、通信ネットワーク4におけるコマンド解析等のオーバヘッドを削減し、ストレージシステム1における重複排除処理の処理性能をより向上させることができる。
第6の実施形態
 次に、本発明の第6の実施形態に係るストレージシステム1について説明する。
第6の実施形態によるストレージシステム1の構成
 本実施の形態に係るストレージシステム1の全体構成は、図1に例示した第1の実施形態と同様であるから、詳細な説明を省略する。また、バックアップサーバ14及びストレージ装置10のブロック構成も、図3に例示した第1の実施形態と同様であるため、詳細な説明を省略する。
第6実施形態のストレージシステム1におけるバックアップ処理及びリストア処理
 次に、本実施形態のストレージシステム1において実行されるバックアップ処理及びリストア処理について説明する。
バックアップ処理動作の詳細
 まず、本実施形態のストレージシステム1において実行されるバックアップ処理について説明する。図17に、本実施形態に係るバックアップ処理動作の処理フロー例を示している。
 バックアップサーバ14のバックアッププログラム106は、クライアント6等からのバックアップ処理実行指示を受信して、本実施形態のバックアップ処理を開始する(S700)。引き続き実行されるS701~S704での処理は、第1の実施形態におけるS101~S104での処理と同様であるから、詳細な説明を省略する。
 S705において、バックアップサーバ14のコンテナ索引表320に処理対象のチャンクとフィンガプリント321が一致するチャンクsiがあると判定した場合(「重複あり」と判定された場合)、バックアップサーバ14のバックアッププログラム106は、リストア処理用に当該チャンクをコンテンツ索引表370に登録する(S717)。一方、S705において処理対象のチャンクとフィンガプリント321が一致するチャンクsiがないと判定した場合(「重複なし」と判定された場合)、バックアップサーバ14のバックアッププログラム106は、S706の処理を実行する。
 S706において、バックアップサーバ14のバックアッププログラム106は、ストレージ装置10へ送信するチャンクsiの数であるチャンク数m(i+m ≦ n)を決定する。
 S707において、バックアップサーバ14のバックアッププログラム106は、チャンクsi,si+1,…,si+m及び管理情報msi,msi+1,…,si+mをストレージ装置10へ送信する。
 S708において、ストレージ装置10のバックアッププログラム116は、変数jを初期化(j=0)し、S709を実行する。変数jは、ストレージ装置10のバックアッププログラム116が、m個のチャンクの処理を完了したか判定するために使用される。
 S709において、ストレージ装置10のバックアッププログラム116は、チャンクsi+jの重複判定処理を行う。チャンクsi+jが新規チャンクと判定された場合、ストレージ装置10のバックアッププログラム116は、コンテナ380にチャンクsi+jを記録し、コンテナ索引表320にチャンクsi+jの管理情報msi+jを記録し、チャンク索引表310にチャンクsi+jのメッセージダイジェストを記録し(S710)、S713に処理を移行させる。
 S709において、重複チャンクと判定された場合、ストレージ装置10のバックアッププログラム116は、該当するコンテナ索引表320がバックアップサーバ14へ送信済みかどうか判定する(S711)。
 S711において、該当するコンテナ索引表がバックアップサーバ14へ送信済みであると判定した場合(S711、Yes)、ストレージ装置10のバックアッププログラム116は、S713を実行する。一方、該当するコンテナ索引表320がバックアップサーバ14へまだ送信されていないと判定した場合(S711、No)、ストレージ装置10のバックアッププログラム116は、該当コンテナ索引表320をバックアップサーバ14へ送信し(S712)、S713を実行する。
 S713において、ストレージ装置10のバックアッププログラム116は、リストア処理用のコンテンツ索引表370にチャンクの管理情報を記録する。
 この後、ストレージ装置10のバックアッププログラム116は、バックアップサーバ14から受信した全てのチャンクについて、重複判定処理及びコンテナ、コンテナ索引表、チャンク索引表への登録処理が終わったか否かを判定する(S714)。具体的には、ストレージ装置10のバックアッププログラム116は、受信したチャンク数mと、カウンタjのカウント数とを比較する。
 S714において、全てのチャンクに対して重複判定処理及びコンテナ、コンテナ索引表、チャンク索引表への登録処理が終わったと判定された場合(S714、No)、ストレージ装置10のバックアッププログラム116は、S716の処理を実行する。全てのチャンクに対して重複判定処理及びコンテナ、コンテナ索引表、チャンク索引表への登録処理が終わっていないと判定された場合(S714、Yes)、ストレージ装置10のバックアッププログラム116は、カウンタjに1を加算し、S709へ処理を戻す(S715)。
 S716において、バックアップサーバ14のバックアッププログラム106は、カウンタiにストレージ装置10へ送信したチャンク数mを加算する。
 この後、バックアップサーバ14のバックアッププログラム106は、全てのチャンクについて、重複判定処理及びコンテナ、コンテナ索引表、チャンク索引表への登録処理が終わったか否かを判定する(S718)。
 全てのチャンクに対して重複判定処理及びコンテナ、コンテナ索引表、チャンク索引表への登録処理が終わったと判定された場合(S718、No)、バックアップサーバ14のバックアッププログラム106は、リストア処理用のスタブファイルを作成して(S720)、当該コンテンツのバックアップ処理を終了する(S721)。
 一方、S718において、全てのチャンクに対して重複判定処理及びコンテナ、コンテナ索引表、チャンク索引表への登録処理が終わっていないと判定された場合(S718、Yes)、バックアップサーバ14のバックアッププログラム106は、カウンタiに1を加算し、S705に処理を戻す(S719)。
 なお、S706における、チャンク数mの決め方の一例としては、チャンクsi,si+1,・・・,si+m及び管理情報msi,msi+1,・・・,si+mの総サイズに応じて閾値を設ける方法がある。例えば、バックアップサーバ14のバックアッププログラム106は、バックアップ対象のコンテンツのサイズが閾値よりも小さいと判定した場合、全チャンクをストレージ装置10へ送信することができる。同様に、バックアップサーバ14のバックアッププログラム106は、重複処理をしていないチャンクの総サイズが閾値よりも小さいと判定した場合、処理をしていない全チャンクをストレージ装置10へ送信するようにしてもよい。
 以上の構成により、本実施形態において、重複排除処理の処理性能をより向上させることができる。例えば、送信するチャンク及び管理情報の総サイズが、コンテナ索引表320のサイズよりも小さい場合、ネットワーク通信量を減らすことができるため、ストレージシステム1の処理性能をより向上させることができる。
リストア処理動作の詳細
 本実施形態に係るリストア処理は、図6に例示した第1の実施形態におけるリストア処理と実質的に同様であるから、詳細な説明を省略する。
 以上のように、本実施形態では、バックアップサーバ14で「重複なし」と判定されたチャンクとその後の複数チャンクをまとめてストレージ装置10へ送信するようにしたので、通信ネットワーク4におけるコマンド解析等のオーバヘッドを削減し、重複排除処理の処理性能をより向上させることができる。また、本実施形態では、まとめて送信するチャンク数を送信するデータ量に応じて設定することにより、重複排除処理の処理性能をより向上させることができる。
第7の実施形態
 次に、本発明の第7の実施形態に係るストレージシステム1について説明する。
第7の実施形態によるストレージシステム1の構成
 本実施の形態に係るストレージシステム1の全体構成は、図1に例示した第1の実施形態と同様であるから、詳細な説明を省略する。また、バックアップサーバ14及びストレージ装置10のブロック構成も、図3に例示した第1の実施形態と同様であるため、詳細な説明を省略する。
第7実施形態のストレージシステム1におけるバックアップ処理及びリストア処理
 次に、本実施形態のストレージシステム1において実行されるバックアップ処理及びリストア処理について説明する。
バックアップ処理動作の詳細
 まず、本実施形態のストレージシステム1において実行されるバックアップ処理について説明する。図16に、本実施形態に係るバックアップ処理動作の処理フロー例を示している。
 バックアップサーバ14のバックアッププログラム106は、クライアント6等からのバックアップ処理実行指示を受信して、本実施形態のバックアップ処理を開始する(S800)。引き続き実行されるS801において、バックアップサーバ14のバックアッププログラム106は、バックアップ処理対象であるコンテンツのタイプを識別する。
 S801において、コンテンツのタイプがアーカイブファイル、バックアップファイル、仮想ボリュームファイルなどの通常のファイルを集約した形態を有するコンテンツであり、且つ集約しているファイルを識別可能なコンテンツであると判定した場合(S801、アーカイブタイプ)、バックアップサーバ14のバックアッププログラム106は、S803の処理を実行する。例えば、アーカイブファイルには、集約している各ファイルに関するファイル情報をヘッダとして格納しているものがある。このようなアーカイブファイルについては、コンテンツ内に集約されているファイルの格納位置を前記ヘッダの位置として識別することができる。アーカイブファイル以外の形式のファイルであっても、集約されているファイルの格納位置を識別する情報が含まれているコンテンツであれば、本実施形態を適用することができる。
 一方、バックアップ対象のコンテンツが、上記以外のファイル(集約されているファイルの格納位置を識別する情報が含まれていないファイル)であると判定された場合(S801、他形式)、バックアップサーバ14のバックアッププログラム106は、図5に例示した第1の実施形態でのバックアップ処理と同様の処理を行う。
 S801でバックアップ対象コンテンツがアーカイブタイプであると判定した場合、バックアップサーバ14のバックアッププログラム106は、バックアップ対象であるコンテンツを特定するためのコンテンツID371を、ストレージ装置10から取得する(S802)。次いで、バックアップサーバ14のバックアッププログラム106は、コンテンツを複数のチャンクに分割し、各チャンクの管理情報を作成する(S803、S804)。
 次いで、S805において、バックアップサーバ14のバックアッププログラム106は、コンテンツに集約されている各ファイルの先頭チャンクを検索し、各先頭チャンクに対して重複排除処理を行う。S805における重複排除処理は、第1実施形態のバックアップ処理におけるS104~S110と同様の処理である。
 次いで、S806において、バックアップサーバ14のバックアッププログラム106は、残っているチャンクに対して、重複排除処理を行う。S806における重複排除処理も、第1実施形態のバックアップ処理におけるS104~S110と同様の処理である。
 S807において、バックアップサーバ14のバックアッププログラム106は、リストア処理用のスタブファイルを作成して、当該コンテンツのバックアップ処理を終了する(S808)。
 前述の通り、コンテナ380はローカリティを考慮して作成されているため、コンテンツに集約されているファイル毎に必要なコンテナ索引表320が分かれている可能性が高い。そのため、コンテンツ全体で必要となるコンテナ索引表320を予め取得することで、重複排除処理をより効率的に行うことができる。
 また、図18の処理フロー例では、コンテンツに集約されている各ファイルの先頭チャンクのみを先に重複排除処理したが、先頭チャンク以外をサンプリングして先に重複排除処理しても良い。例えば、コンテンツに含まれているファイルのサイズが大きい場合は、2つ以上のコンテナ索引表320に分割されている場合もあるため、1つのファイルから複数のチャンクを選定し、先に重複排除処理を行ってもよい。
 また、図18の処理フロー例では、コンテンツに集約されている全ファイルの先頭チャンクのみを先に重複排除処理したが、数ファイルずつ重複排除処理を行ってもよい。コンテンツのサイズが大きい場合は、全コンテナ索引表がバックアップサーバ14のメモリ103に格納できず、バックアッププログラム106における重複判定の処理性能が低下する可能性がある。そのため、例えば、集約されているファイルに対して、順番に重複排除処理を実行し、次に処理する予定のファイルの先頭チャンクのみを先に重複排除処理するようにしてもよい。
リストア処理動作の詳細
 本実施形態に係るリストア処理は、図6に例示した第1の実施形態におけるリストア処理と実質的に同様であるから、詳細な説明を省略する。
 以上のように、本実施形態では、アーカイブファイルなど、通常のファイルが集約された形態を有するコンテンツにおいて、集約された各ファイルを識別し、各ファイルの重複判定に用いるコンテナ索引表を予めストレージ装置10から取得することで、より効率的な重複排除処理を行うことができる。
 以上、本発明について種々の実施形態に即して説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。

Claims (11)

  1.  外部装置からのデータをコンテンツ単位で格納するストレージシステムであって、
     前記外部装置からのデータについて、前記コンテンツ単位でバックアップデータを作成するバックアップ処理を実行するバックアップ装置と、前記バックアップ装置と通信可能に接続されており、前記バックアップ装置から受信する前記バックアップデータを格納するストレージ装置とを備え、
     前記バックアップ装置は、
      前記バックアップデータである前記コンテンツが前記ストレージ装置に格納済みであるか否かを判定するための情報である第1の重複判定情報と、
     前記第1の重複判定情報を用いて、前記コンテンツが前記ストレージ装置に格納済みであるか判定する第1のバックアップ処理部とを備え、
     前記ストレージ装置は、
      前記バックアップデータである前記コンテンツが前記ストレージ装置に格納済みであるか否かを判定するための情報である第2の重複判定情報と、
     前記第2の重複判定情報を用いて、前記コンテンツが前記ストレージ装置に格納済みであるか判定する第2のバックアップ処理部とを備え、
     前記バックアップデータとしての前記コンテンツについて、前記第1のバックアップ処理部が前記コンテンツが前記ストレージ装置に格納されていないと判定し、前記第2のバックアップ処理部が前記コンテンツが前記ストレージ装置に格納されていると判定した場合、前記第2のバックアップ処理部は前記第2の重複判定情報を前記バックアップ装置に送信し、前記バックアップ装置の前記第1のバックアップ処理部は、受信した前記第2の重複判定情報を前記第1の重複判定情報に組み入れる処理を実行する、
    ストレージシステム。
  2.  請求項1に記載のストレージシステムであって、
     前記第1の重複判定情報及び前記第2の重複判定情報は、前記バックアップ対象である前記コンテンツを所定のサイズで複数に分割して得られる単位データと、各前記単位データについて求めた固有の情報である単位データ固有情報とを関連付けて格納している、ストレージシステム。
  3.  請求項2に記載のストレージシステムであって、
     前記バックアップ装置は、
      前記ストレージ装置に格納されている前記コンテンツを特定するための情報であるリストア情報と、
      リストアする際に、リストア対象となる前記コンテンツを特定する前記リストア情報を前記ストレージ装置に送信する第1のリストア処理部と、を備え、
     前記ストレージ装置は、
      前記バックアップ装置から受信した前記リストア情報によってリストア対象である前記コンテンツを特定し、特定された前記コンテンツを構成する前記単位データを前記第2の重複判定情報を用いて特定し、特定した前記単位データによって前記コンテンツをリストアして前記バックアップ装置に送信する第2のリストア処理部とを備えている、ストレージシステム。
  4.  請求項1に記載のストレージシステムであって、
     前記バックアップ装置に複数の前記ストレージ装置が通信可能に接続されており、各前記ストレージ装置の前記第2のバックアップ処理部は、前記バックアップ装置の前記第1のバックアップ処理部から前記第1の重複判定情報による判定結果を受信して、前記判定結果が前記ストレージ装置にバックアップ対象の前記コンテンツが格納されていないことを示していた場合、前記第2の重複判定情報を用いてさらに前記ストレージ装置に前記コンテンツが格納されているか判定し、格納されていると判定した場合、前記第2の重複判定情報を前記バックアップ装置に送信する、ストレージ装置。
  5.  請求項1に記載のストレージシステムであって、
     前記バックアップ装置に、前記第2の重複判定情報及び前記第2のバックアップ処理部を有しない複数の前記ストレージ装置と、少なくとも一の管理装置とが通信可能に接続されており、
     前記管理装置は、
      各前記ストレージ装置に関する前記第2の重複判定情報と、
      前記第2のバックアップ処理部とを備え、
     前記管理装置の前記第2のバックアップ処理部は、前記バックアップ装置の前記第1のバックアップ処理部から前記第1の重複判定情報による判定結果を受信して、前記判定結果が各前記ストレージ装置にバックアップ対象の前記コンテンツが格納されていないことを示していた場合、前記第2の重複判定情報を用いてさらに各前記ストレージ装置に前記コンテンツが格納されているか判定し、いずれかの前記ストレージ装置に格納されていると判定した場合、前記第2の重複判定情報を前記バックアップ装置に送信する、ストレージ装置。
  6.  請求項1に記載のストレージシステムであって、
     少なくとも前記バックアップ装置が前記バックアップ装置と前記ストレージ装置とを通信可能に接続している通信ネットワークのトラフィックを監視するネットワーク監視部を備え、前記第1のバックアップ処理部がバックアップ対象である前記コンテンツを前記ストレージ装置へ送信しようとする際に、前記ネットワーク監視部が、前記通信ネットワークのネットワーク負荷が所定のしきい値以上であると判定した場合、前記コンテンツを特定するための固有の情報のみを前記ストレージ装置に送信し、前記コンテンツのデータは送信しない、ストレージシステム。
  7.  請求項2に記載のストレージシステムであって、
     前記バックアップ装置は、所定数の前記単位データ及び前記単位データ固有情報の組を格納することができる記憶領域である単位データ記憶領域を備え、
     前記バックアップ装置の前記第1のバックアップ処理部は、前記単位データ及び前記単位データ固有情報の組の数が前記所定数に達したと判定した場合に、前記単位データ及び前記単位データ固有情報の組を前記ストレージ装置に送信する、
    ストレージシステム。
  8.  請求項2に記載のストレージシステムであって、
     前記バックアップ装置の前記第1のバックアップ処理部は、前記第1の重複判定情報を用いて前記単位データが前記ストレージ装置に格納されているか判定し、格納されていないと判定した場合、あらかじめ設定しておいた上限データサイズに従ってバックアップ対象の前記コンテンツを構成する前記単位データのうち、前記ストレージ装置へ送信する前記単位データの数を算出して、前記ストレージ装置に格納されていないと判定された前記単位データを含めて引き続く前記単位データの前記算出された個数を前記ストレージ装置に送信する、
    ストレージシステム。
  9.  請求項1に記載のストレージシステムであって、前記バックアップ装置の前記第1のバックアップ処理部は、バックアップ対象である前記コンテンツが、前記第1のバックアップ処理部が識別可能である分割情報によって互いに区分された複数のファイルの集合であるアーカイブデータであると判定した場合、まず、前記コンテンツの各前記ファイルの先頭にある前記単位データについて、前記第1のバックアップ処理部が前記単位データが前記ストレージ装置に格納されていないと判定し、前記第2のバックアップ処理部が前記単位データが前記ストレージ装置に格納されていると判定した場合、前記第2のバックアップ処理部は前記第2の重複判定情報を前記バックアップ装置に送信し、前記バックアップ装置の前記第1のバックアップ処理部は、受信した前記第2の重複判定情報を前記第1の重複判定情報に組み入れる処理を実行し、次いで、各前記ファイル内の後続の前記単位データについて、順次同様の処理を実行する、ストレージシステム。
  10.  外部装置からのデータをコンテンツ単位で格納するストレージシステムの制御方法であって、
     前記ストレレージシステムは、前記外部装置からのデータについて、前記コンテンツ単位でバックアップデータを作成するバックアップ処理を実行するバックアップ装置と、前記バックアップ装置と通信可能に接続されており、前記バックアップ装置から受信する前記バックアップデータを格納するストレージ装置とを備え、
     前記バックアップ装置は、
      前記バックアップデータである前記コンテンツが前記ストレージ装置に格納済みであるか否かを判定し、
     前記第1の重複判定情報を用いて、前記コンテンツが前記ストレージ装置に格納済みであるか判定し、
     前記ストレージ装置は、
      前記バックアップデータである前記コンテンツが前記ストレージ装置に格納済みであるか否かを判定するための情報である第2の重複判定情報と、
     前記第2の重複判定情報を用いて、前記コンテンツが前記ストレージ装置に格納済みであるか判定する第2のバックアップ処理部とを備え、
     前記バックアップデータとしての前記コンテンツについて、前記第1のバックアップ処理部が前記コンテンツが前記ストレージ装置に格納されていないと判定し、前記第2のバックアップ処理部が前記コンテンツが前記ストレージ装置に格納されていると判定した場合、前記第2のバックアップ処理部は前記第2の重複判定情報を前記バックアップ装置に送信し、前記バックアップ装置の前記第1のバックアップ処理部は、受信した前記第2の重複判定情報を前記第1の重複判定情報に組み入れる、
    ストレージシステムの制御方法。
  11.  請求項10に記載のストレージシステムであって、
     前記第1の重複判定情報及び前記第2の重複判定情報は、前記バックアップ対象である前記コンテンツを所定のサイズで複数に分割して得られる単位データと、各前記単位データについて求めた固有の情報である単位データ固有情報とを関連付けて格納している、ストレージシステムの制御方法。
PCT/JP2012/081566 2012-12-05 2012-12-05 ストレージシステム及びストレージシステムの制御方法 WO2014087508A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2012/081566 WO2014087508A1 (ja) 2012-12-05 2012-12-05 ストレージシステム及びストレージシステムの制御方法
US14/425,675 US9952936B2 (en) 2012-12-05 2012-12-05 Storage system and method of controlling storage system
JP2014550853A JP5774794B2 (ja) 2012-12-05 2012-12-05 ストレージシステム及びストレージシステムの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/081566 WO2014087508A1 (ja) 2012-12-05 2012-12-05 ストレージシステム及びストレージシステムの制御方法

Publications (1)

Publication Number Publication Date
WO2014087508A1 true WO2014087508A1 (ja) 2014-06-12

Family

ID=50882958

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/081566 WO2014087508A1 (ja) 2012-12-05 2012-12-05 ストレージシステム及びストレージシステムの制御方法

Country Status (3)

Country Link
US (1) US9952936B2 (ja)
JP (1) JP5774794B2 (ja)
WO (1) WO2014087508A1 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015198371A1 (ja) * 2014-06-23 2015-12-30 株式会社日立製作所 ストレージシステム及び記憶制御方法
JP2016134133A (ja) * 2015-01-22 2016-07-25 日本電気株式会社 ストレージシステム
WO2016181479A1 (ja) * 2015-05-12 2016-11-17 株式会社日立製作所 ストレージシステムおよび記憶制御方法
JP2017204706A (ja) * 2016-05-10 2017-11-16 日本電信電話株式会社 コンテンツ流通システム、コンテンツ流通方法、コンテンツ生成装置及びコンテンツ生成プログラム
JP6337982B1 (ja) * 2017-03-22 2018-06-06 日本電気株式会社 ストレージシステム
JP2018527681A (ja) * 2015-09-18 2018-09-20 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ソリッドステートドライブコントローラを使用するデータ重複排除
JP2019095984A (ja) * 2017-11-21 2019-06-20 株式会社キーエンス 画像処理システム
JP2019159785A (ja) * 2018-03-13 2019-09-19 Necソリューションイノベータ株式会社 バックアップサーバ、バックアップ方法、プログラム、ストレージシステム
JP2019160245A (ja) * 2018-03-16 2019-09-19 Necソリューションイノベータ株式会社 ストレージシステム、ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム
JP2020047114A (ja) * 2018-09-20 2020-03-26 富士ゼロックス株式会社 データ処理装置、データ処理方法及びデータ処理プログラム
KR102471662B1 (ko) * 2022-04-04 2022-11-28 김상준 하수처리장 통합관리 서버 및 이를 포함한 시스템

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811423B2 (en) * 2013-01-11 2017-11-07 Commvault Systems, Inc. Partial file restore in a data storage system
US9760444B2 (en) * 2013-01-11 2017-09-12 Commvault Systems, Inc. Sharing of secondary storage data
US9483489B2 (en) 2013-01-14 2016-11-01 Commvault Systems, Inc. Partial sharing of secondary storage files in a data storage system
US10437784B2 (en) * 2015-01-30 2019-10-08 SK Hynix Inc. Method and system for endurance enhancing, deferred deduplication with hardware-hash-enabled storage device
US10110660B2 (en) * 2015-04-20 2018-10-23 Cisco Technology, Inc. Instant file upload to a collaboration service by querying file storage systems that are both internal and external to the collaboration service
US10705750B2 (en) 2016-06-09 2020-07-07 Informatique Holistec Inc. Data storage system and method for performing same
US20170364581A1 (en) * 2016-06-16 2017-12-21 Vmware, Inc. Methods and systems to evaluate importance of performance metrics in data center
US20190129802A1 (en) * 2017-11-02 2019-05-02 EMC IP Holding Company LLC Backup within a file system using a persistent cache layer to tier data to cloud storage
US10216580B1 (en) * 2018-03-29 2019-02-26 Model9 Software Ltd. System and method for mainframe computers backup and restore on object storage systems
JP6884128B2 (ja) 2018-09-20 2021-06-09 株式会社日立製作所 データ重複排除装置、データ重複排除方法、及びデータ重複排除プログラム
US11269536B2 (en) 2019-09-27 2022-03-08 Open Text Holdings, Inc. Method and system for efficient content transfer to distributed stores
US11082495B1 (en) * 2020-04-07 2021-08-03 Open Text Holdings, Inc. Method and system for efficient content transfer to a server

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116839A (ja) * 2007-10-19 2009-05-28 Hitachi Ltd コンテンツ転送システムとその方法およびホームサーバ
JP2012093827A (ja) * 2010-10-25 2012-05-17 Internatl Business Mach Corp <Ibm> ファイルの重複を排除する装置及び方法
JP2012150792A (ja) * 2011-01-14 2012-08-09 Symantec Corp 重複排除記憶システムのスケーラビリティを向上させるシステムおよび方法
JP2012529684A (ja) * 2009-06-08 2012-11-22 シマンテック コーポレーション バックアップ操作において重複排除を行うためのソース分類

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996025801A1 (en) * 1995-02-17 1996-08-22 Trustus Pty. Ltd. Method for partitioning a block of data into subblocks and for storing and communicating such subblocks
JP4391265B2 (ja) * 2004-02-26 2009-12-24 株式会社日立製作所 ストレージサブシステムおよび性能チューニング方法
JP4546387B2 (ja) * 2005-11-17 2010-09-15 富士通株式会社 バックアップシステム、方法及びプログラム
CN101170553B (zh) * 2006-10-24 2011-07-20 华为技术有限公司 实现互联网协议多媒体子系统容灾的方法和装置
JP5014821B2 (ja) * 2007-02-06 2012-08-29 株式会社日立製作所 ストレージシステム及びその制御方法
JP2008276596A (ja) * 2007-05-01 2008-11-13 Hitachi Ltd 記憶装置を決定する方法及び計算機
US8819205B2 (en) * 2007-10-19 2014-08-26 Hitachi, Ltd. Content transfer system, content transfer method and home server
JP5224240B2 (ja) * 2008-03-25 2013-07-03 株式会社日立製作所 計算機システム及び管理計算機
US7894334B2 (en) * 2008-08-15 2011-02-22 Telefonaktiebolaget L M Ericsson Hierarchical redundancy for a distributed control plane
US8499191B2 (en) * 2010-12-17 2013-07-30 Hitachi, Ltd. Failure recovery method for information processing service and virtual machine image generation apparatus
WO2012101674A1 (en) 2011-01-26 2012-08-02 Hitachi, Ltd. Computer system and data de-duplication method
US20120260051A1 (en) * 2011-03-01 2012-10-11 Hitachi, Ltd. Computer system, management system and data management method
US8713577B2 (en) * 2011-06-03 2014-04-29 Hitachi, Ltd. Storage apparatus and storage apparatus management method performing data I/O processing using a plurality of microprocessors
WO2014068617A1 (en) * 2012-10-31 2014-05-08 Hitachi, Ltd. Storage apparatus and method for controlling storage apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116839A (ja) * 2007-10-19 2009-05-28 Hitachi Ltd コンテンツ転送システムとその方法およびホームサーバ
JP2012529684A (ja) * 2009-06-08 2012-11-22 シマンテック コーポレーション バックアップ操作において重複排除を行うためのソース分類
JP2012093827A (ja) * 2010-10-25 2012-05-17 Internatl Business Mach Corp <Ibm> ファイルの重複を排除する装置及び方法
JP2012150792A (ja) * 2011-01-14 2012-08-09 Symantec Corp 重複排除記憶システムのスケーラビリティを向上させるシステムおよび方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703497B2 (en) 2014-06-23 2017-07-11 Hitachi, Ltd. Storage system and storage control method
WO2015198371A1 (ja) * 2014-06-23 2015-12-30 株式会社日立製作所 ストレージシステム及び記憶制御方法
JP2016134133A (ja) * 2015-01-22 2016-07-25 日本電気株式会社 ストレージシステム
WO2016181479A1 (ja) * 2015-05-12 2016-11-17 株式会社日立製作所 ストレージシステムおよび記憶制御方法
US10678434B2 (en) 2015-05-12 2020-06-09 Hitachi, Ltd. Storage system and storage control method for improving a deduplication process
JP2018527681A (ja) * 2015-09-18 2018-09-20 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ソリッドステートドライブコントローラを使用するデータ重複排除
JP2017204706A (ja) * 2016-05-10 2017-11-16 日本電信電話株式会社 コンテンツ流通システム、コンテンツ流通方法、コンテンツ生成装置及びコンテンツ生成プログラム
JP2018159999A (ja) * 2017-03-22 2018-10-11 日本電気株式会社 ストレージシステム
JP6337982B1 (ja) * 2017-03-22 2018-06-06 日本電気株式会社 ストレージシステム
JP2019095984A (ja) * 2017-11-21 2019-06-20 株式会社キーエンス 画像処理システム
JP2019159785A (ja) * 2018-03-13 2019-09-19 Necソリューションイノベータ株式会社 バックアップサーバ、バックアップ方法、プログラム、ストレージシステム
JP7075077B2 (ja) 2018-03-13 2022-05-25 Necソリューションイノベータ株式会社 バックアップサーバ、バックアップ方法、プログラム、ストレージシステム
JP2019160245A (ja) * 2018-03-16 2019-09-19 Necソリューションイノベータ株式会社 ストレージシステム、ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム
JP7099690B2 (ja) 2018-03-16 2022-07-12 Necソリューションイノベータ株式会社 ストレージシステム、ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム
JP2020047114A (ja) * 2018-09-20 2020-03-26 富士ゼロックス株式会社 データ処理装置、データ処理方法及びデータ処理プログラム
KR102471662B1 (ko) * 2022-04-04 2022-11-28 김상준 하수처리장 통합관리 서버 및 이를 포함한 시스템

Also Published As

Publication number Publication date
JPWO2014087508A1 (ja) 2017-01-05
US9952936B2 (en) 2018-04-24
JP5774794B2 (ja) 2015-09-09
US20150212900A1 (en) 2015-07-30

Similar Documents

Publication Publication Date Title
JP5774794B2 (ja) ストレージシステム及びストレージシステムの制御方法
JP5434705B2 (ja) ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
US10162555B2 (en) Deduplicating snapshots associated with a backup operation
US20200167238A1 (en) Snapshot format for object-based storage
US10275397B2 (en) Deduplication storage system with efficient reference updating and space reclamation
EP2997497B1 (en) Selecting a store for deduplicated data
KR20170054299A (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
US20080270436A1 (en) Storing chunks within a file system
JP5313600B2 (ja) ストレージシステム、及びストレージシステムの運用方法
US20130046944A1 (en) Storage apparatus and additional data writing method
US20130212070A1 (en) Management apparatus and management method for hierarchical storage system
WO2014185914A1 (en) Deduplicated data storage system having distributed manifest
US8806062B1 (en) Adaptive compression using a sampling based heuristic
JP5650982B2 (ja) ファイルの重複を排除する装置及び方法
CN108415986B (zh) 一种数据处理方法、装置、系统、介质和计算设备
CN105493080B (zh) 基于上下文感知的重复数据删除的方法和装置
US9594643B2 (en) Handling restores in an incremental backup storage system
JP2000200208A (ja) ファイルバックアップ方法,装置およびそのプログラム記録媒体
EP2997474B1 (en) Reporting degraded state of data retrieved for distributed object
JP5621229B2 (ja) ストレージシステム、管理方法及びプログラム
JP2018185562A (ja) 制御プログラム、制御方法、及び情報処理装置
JP7007565B2 (ja) 情報処理装置および情報処理プログラム
JP5494817B2 (ja) ストレージシステム、データ管理装置、方法及びプログラム
US11989124B2 (en) Garbage collection for a deduplicated cloud tier with encrypted segments
US10877945B1 (en) Optimized block storage for change block tracking systems

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014550853

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14425675

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12889461

Country of ref document: EP

Kind code of ref document: A1