WO2016185573A1 - 重複排除ストレージにおけるボリュームバックアップ・リストア方法 - Google Patents

重複排除ストレージにおけるボリュームバックアップ・リストア方法 Download PDF

Info

Publication number
WO2016185573A1
WO2016185573A1 PCT/JP2015/064401 JP2015064401W WO2016185573A1 WO 2016185573 A1 WO2016185573 A1 WO 2016185573A1 JP 2015064401 W JP2015064401 W JP 2015064401W WO 2016185573 A1 WO2016185573 A1 WO 2016185573A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
volume
logical block
group
volumes
Prior art date
Application number
PCT/JP2015/064401
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/JP2015/064401 priority Critical patent/WO2016185573A1/ja
Publication of WO2016185573A1 publication Critical patent/WO2016185573A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Definitions

  • the present invention relates to a technology for efficiently replicating a volume to which deduplication is applied in a data storage system (hereinafter referred to as storage).
  • the storage controller manages the arrangement and overlapping relationship of all data segments of the subordinate storage.
  • a data replication method is disclosed in which when a data segment is copied from a certain storage to another storage, if the same data exists in the copy destination storage, it is not sent and only the overlapping relationship is updated.
  • Patent Document 2 when sending data for backup from the storage controller to the backup storage controller, the fingerprint value (FP) of the transmitted data segment is stored, and the data has already been transmitted in the subsequent backup A method of determining whether or not using FP and not retransmitting if it has been transmitted is disclosed.
  • any of the methods described in the above patent documents uses a storage-specific method for transmitting deduplicated data.
  • the method described in Patent Document 1 all relationships between data and subordinate storage are managed by the controller, and the layout of data in the subordinate storage is controlled by the controller, which is different from the original data layout. For this reason, even if the backup data of the subordinate storage is accessed via the standard I / O interface without going through the controller, the original data cannot be retrieved.
  • backup data is stored in the backup destination storage as a relationship between FP and data. For this reason, even if the backup storage is accessed without using the controller, the original data cannot be obtained.
  • a typical example of the invention disclosed in the present application is as follows.
  • the first storage manages each of the plurality of volumes provided to the host by dividing it into a plurality of logical blocks, Overlapping relations between multiple logical blocks are managed as duplication management information, one or more of the multiple volumes are managed as a group, and multiple logical blocks are grouped based on duplication management information. For each block, duplication information indicating duplication relation with logical blocks in other volumes belonging to the group is created and transmitted to the backup server.
  • the backup server refers to the duplication information, identifies the second logical block that overlaps the first logical block in the volume belonging to the group, and the data corresponding to the first logical block has already been transmitted to the second storage If it is, the data corresponding to the second logical block is not transmitted to the second storage.
  • a data transfer amount can be reduced and a standard I / O interface can be reduced in a backup / restore system based on a standard I / O interface that does not depend on a specific deduplication technology or copy technology.
  • Backup / restore that can restore backup data is possible.
  • FIG. 1 is a diagram for explaining the outline of the computer system 100 according to the first embodiment of the present invention.
  • the computer system 100 includes a storage 1, a backup server 2, and a backup storage 3. These are connected to each other via a network such as a local area network (LAN), a storage area network (SAN), and an Internet communication network (not shown) so that they can communicate with each other.
  • a network such as a local area network (LAN), a storage area network (SAN), and an Internet communication network (not shown) so that they can communicate with each other.
  • LAN local area network
  • SAN storage area network
  • Internet communication network not shown
  • the computer system 100 includes a plurality of host computers (not shown) that use the storage 1 for storing business data.
  • the host computer is also communicably connected to the storage 1 via the network.
  • Storage 1 has volumes 14x, 14a, 14b, and 14c. These volumes (hereinafter collectively referred to as instruction number 14) are virtual storage areas that can be recognized as logical units (LUs) defined by the host computer in the SCSI standard.
  • a pool 15 is configured in the storage 1.
  • the pool 15 includes a storage area such as a plurality of hard disk drives (HDD), solid state drives (SSD) (not shown, these drive devices are simply referred to as drives), etc., which are built in the storage 1, and RAID (Redundant Array). This is a storage area integrated by Independent (or Inexpensive) Disks) technology.
  • the computer system 100 provides a virtual volume (corresponding to volumes 14x, 14a, 14b, and 14c) that is a virtual storage area to the host computer, and is necessary when data is actually written from the host computer.
  • So-called capacity virtualization technology Thin Provisioning Technology
  • a continuous address is assigned to the storage area of the pool 15 in units of 512 bytes.
  • the address of the storage area of the pool 15 is referred to as a physical address.
  • the definition area of the physical address is called a physical address space.
  • the virtual storage area of the volume 14 is also identified by an address.
  • the address of the volume 14 is called a logical address, and its definition area is called a logical address space.
  • the storage 1 identifies logical addresses by dividing them into blocks of a fixed size (for example, 8 KB). A block of logical addresses is called a logical block.
  • storage 1 allocates a specific range of physical addresses to the logical block, and stores data in the storage area of pool 15 indicated by the physical address.
  • the physical addresses are assigned to the logical blocks in the order of physical addresses. For example, when assigning 0 to 15 in the physical address range to a certain logical block (because the physical address is in units of 512 bytes, 8192 bytes are assigned), assigning from the physical address 16 when assigning next.
  • the storage 1 manages the allocation relationship between logical blocks and physical addresses using the mapping table 126.
  • the mapping table 126 is held in a memory (not shown) of the storage 1.
  • Storage 1 also has a deduplication function.
  • the same physical address range is allocated to logical blocks that hold the same data as a bit array.
  • a logical block to which the same physical address range is assigned may be expressed as a logical block in an overlapping state or simply as a logical block overlapping.
  • FIG. 2 shows the relationship between the logical blocks of the volumes 14a and 14b and the physical address range of the pool 15 as a representative of the volumes 14 of the storage 1.
  • the volume 14a includes logical blocks 141 and 142. These are identified by logical block numbers 000 and 001, respectively (there are naturally logical blocks after logical block number 002, but they are omitted in FIG. 2).
  • the volume 14b includes logical blocks 143, 144, and 145. These are respectively identified by logical block numbers 000, 001, and 002 (again, the description of logical blocks after logical block number 003 is omitted).
  • Pool 15 has physical address ranges 151, 152, 153, 154, and 155. Each of these is an 8 KB address range, and the top physical addresses are 1000, 1010, 2000, 2020, and 3000, respectively. Hereinafter, the physical address range is identified by the head address.
  • Fig. 2 the relationship of allocation of physical address ranges to logical blocks is represented by line segments connecting them.
  • the physical address range 1000 is assigned to the logical block number 000 of volume A.
  • the physical address range 1010 is assigned to both the logical block number 001 of volume A and the logical block number 001 of volume B. This indicates that the logical block number 001 of volume A and the logical block number 001 of volume B are logical blocks that hold the same data, and the physical address range is shared by deduplication processing.
  • the storage 1 when there is a write request from the host computer to the logical block 001 of the volume B, the storage 1 newly assigns the physical address range 3000 to the logical block, for example, and stores the data. As a result, the data of logical block number 001 of volume A is not rewritten.
  • FIG. 3 is a diagram for explaining the structure of the mapping table 126.
  • FIG. 3 shows two tables (a) and (b), each showing the state of the mapping table 126 at a certain point.
  • the mapping table 126 is logically represented by a two-dimensional table structure, but can be implemented by a well-known data structure such as a tree structure.
  • Each row of the mapping table 126 corresponds to the logical blocks of all the logical volumes 14 in the storage 1, and holds information on the corresponding logical blocks.
  • Each row includes fields of a volume number 1261, a block number 1262, a pool address 1263, an FP label 1264, and an update flag 1265.
  • volume number 1261 field the volume number of the corresponding logical block is recorded.
  • block number 1262 the block number of the corresponding logical block is recorded.
  • pool address 1263 the head address of the physical address space allocated to the corresponding logical block is recorded.
  • FP label a fingerprint value ⁇ ⁇ ⁇ (described later) ⁇ ⁇ ⁇ that characterizes data held by the corresponding logical block is recorded.
  • the update flag 1265 records whether or not there has been an update request from the host computer for the corresponding logical block.
  • the fingerprint value is a value obtained by applying a hash function such as MD5 or SHA1 to the data.
  • the fingerprint value is used to search the same data at high speed in the deduplication process.
  • mapping table 126 For example, in the first row of the mapping table 126 shown in FIG. 3A, information related to the logical block 141 (block number 000) of the volume 14a (volume number A) is recorded. From this, it can be seen that the logical block of logical block number 000 of volume number A is assigned a physical address range from physical address 1000.
  • FIG. 3 shows the fields of the pool address 1263 and the updated flag 1265 for the entry of volume B and block number 001 after the time of FIG. 3 (a) in the mapping table 126. The situation when updated to 3000 and 1 respectively is shown.
  • entries other than the block number 001 of volume B have the same contents as in FIG.
  • the mapping table 126 holds information about volumes with volume numbers C and X in addition to volumes with volume numbers A and B.
  • the storage 1 holds the duplication management table 127 in a built-in memory (not shown).
  • the duplicate management table 127 has a data structure for searching and recording duplicate data in the duplicate elimination process.
  • the duplication management table 127 will be described with reference to FIG.
  • the duplication management table 127 is logically represented by a two-dimensional table structure, but can be implemented by a known data structure such as a tree structure or a hash table.
  • a known data structure such as a tree structure or a hash table.
  • Each record in the duplicate management table 127 corresponds to one fingerprint value.
  • the fingerprint value is recorded in the FP label field 1271.
  • the identification information of the logical block for which the fingerprint value is calculated is recorded as a list.
  • the logical block identification information is a set of a volume number and a logical block number.
  • the identification information of the logical block is expressed using “()”. For example, “(A, 000)” represents the logical block indicated by the logical block number 000 of the volume number A.
  • the symbol “[]” in the duplicate block list 1272 is used here to represent a group of logical blocks having the same data.
  • the duplicate block list 1272 is not a mere list, but has a data structure for further grouping and managing a list of logical block identification information.
  • a data structure can be implemented in a variety of ways.
  • the same fingerprint value may be calculated from different data.
  • the duplicate block list 1272 has such a data structure.
  • the backup server 2 is a computer having a function of copying the volume 14 of the storage 1 to the backup storage 3 in accordance with a user instruction.
  • the backup server 2 includes a user interface (not shown), and the user of the computer system 100 can give various instructions such as designation of a backup target volume via this user interface.
  • Backup storage 3 is a storage that holds a copy of volume 14 of storage 1. Similar to the storage 1, the backup storage 3 includes one or more drives, and logical volumes 34a, 34b, 34c can be configured from the storage capacity of these drives. The backup storage 3 does not necessarily require a deduplication function, and may not be a storage having the same function as the storage 1.
  • backup process flow in backup server 2 will be described using symbols S1 to S5 in FIG. S1 to S5 represent processing steps in the backup server 2.
  • the volume 14a, 14b, and 14c are instructed to the backup server 2 as backup targets by the user.
  • a series of processes for backing up the volumes 14a, 14b, and 14c for which backup has been instructed is referred to as a backup round.
  • step S1 the backup server 2 instructs the storage 1 to define a group (hereinafter referred to as backup group) consisting of the volumes 14a, 14b, and 14c to be backed up. Then, the storage 1 recognizes the volumes 14a, 14b, 14c as backup target volumes and records this group information in the memory.
  • the backup target volumes 14a, 14b, 14c, and 14x are volumes in which the common pool 15 is used as a storage area and the same storage area is assigned to some logical addresses by deduplication processing. Please note that.
  • volume 14a, 14b, and 14c are volumes that have been deduplicated by assigning recording areas from the common pool 15, and that the management terminal of the backup server 2 or the management terminal of the storage 1 Can be known in advance from the information displayed on the screen.
  • the user may select volumes 14a, 14b, and 14c as volumes that need to be backed up without recognizing the volume attribute information at all.
  • the backup server 2 instructs the storage 1 to define a group based on a user instruction.
  • the indicated volume does not necessarily have the same pool.
  • the storage 1 may further group the instructed volumes by the storage area providing source pool.
  • step S2 the volume 14a that is one of the backup target volumes is selected, and a complete backup of this volume is created in the volume 34a of the backup storage 3.
  • the backup server 2 sequentially reads data from the volume 14a and writes it to the volume 34a.
  • Another method for transferring data from storage 1 to backup storage 3 is to copy volume 14a to volume 34a mainly by storage 1 or backup storage 3 to transfer data from volume 14a according to instructions from backup server 2. For example, a method of writing to the read volume 34a may be used.
  • step S3 the backup server 2 requests the storage 1 to output the duplicate information of the volume 14b. Then, the storage 1 configures the duplicate information 60 as the duplicate information of the volume 14b and transmits it to the backup server 2.
  • the duplicate information 60 takes a data structure represented by a two-dimensional table structure. Each record corresponds to the logical block of the volume 14b and holds that information.
  • Each record holds fields of block number 61 and duplication related information 62.
  • block number 61 the logical block number of the corresponding logical block is recorded.
  • duplication related information 62 when a corresponding logical block is duplicated with another logical block, identification information of the duplicated logical block is recorded.
  • the identification information of the logical block is expressed by the same expression method as the mapping table 126. If there are a plurality of logical blocks that overlap with the logical block corresponding to the record, the plurality of logical block identification information is recorded in the duplication related information 62.
  • the duplication related information does not include information regarding volumes that are not included in the group defined in step S1. Therefore, the duplicate information 60 does not include information related to the volume 14x.
  • the backup server 2 performs a process of copying the data in the volume 14b to the volume 34b in the backup storage 3.
  • the backup server 2 duplicates only the necessary logical blocks while determining whether or not duplication is necessary for each logical block of the volume 14b using the duplication information 60. Specifically, a logical block that satisfies any of the following conditions is determined as a logical block that needs to be copied. (1) The logical block identification information is not recorded in the duplication related information 62.
  • this logical block is a logical block that is not in a duplicate state or a logical block that overlaps with any logical block in a volume that is not included in the group defined in step S1 (this logical block is called a non-overlapping block). ).
  • the logical block identification information is recorded in the duplication related information 62, and any logical block indicated by the identification information is not replicated to the backup storage 3 at this time in this backup round.
  • this logical block overlaps logical block 010 of volume C (volume 14c), but logical block 010 of volume C is not replicated at this point, Determine that replication is required.
  • this logical block overlaps the logical block 001 of the volume A (volume 14a), but it is determined that the replication is unnecessary because the volume A has already been replicated in step S2. .
  • the logical blocks 002 and 003 of the volume 14b are determined to be duplicated because no duplicate logical block identification information is recorded in the duplication related information 62.
  • logical blocks that are in a duplicate state in the backup group defined in step S1 will have their data copied to the backup storage 3 only once, reducing the amount of data transferred.
  • step S5 After finishing the processing of step S4 for all the logical blocks of the volume 14b, the backup server 2 uses the volume 34a based on the duplication information 60 for the logical blocks that were not copied to the backup storage 3 in step S5. Instruct to copy from (A '). For this instruction, for example, an XCOPY command defined by the SCSI standard or a command specific to the backup storage 3 can be used. Step S5 is normally executed immediately after step S4, but may be executed at an arbitrary timing after the end of step S4. Further, if the backup storage 3 does not provide such a replication function between volumes, step S5 may be omitted. Thereafter, the backup server 2 records the duplication information 60 in the secondary storage area (not shown) ⁇ of the backup server 2 as the backup information of the volume 14b.
  • volume 14c replication is performed in accordance with steps S3 to S5 in the same manner as volume 14b.
  • the duplicate information 60 described in step S3 is a vocabulary or concept defined by the SCSI standard (strictly speaking, "logical block” is not a SCSI standard vocabulary, but can be interpreted as a SCSI standard LBA range). Note that it is composed. It should be noted that the request to output the duplicate information 60 from the backup server 2 to the storage 1 in step S3 can be realized in a format that extends the SCSI standard command. Needless to say, standard commands are defined for reading and writing data to the volume.
  • the duplicate information 60 can take a common format regardless of a specific deduplication function. In view of the above, it can be said that the present invention can be implemented regardless of a specific deduplication technique or volume copy technique depending on a specific vendor.
  • FIG. 6 is a diagram illustrating the configuration of the computer system 100 according to the present embodiment.
  • the computer system 100 includes a storage 1, a backup server 2, and a backup storage 3, which are connected via a network 4 so that they can communicate with each other.
  • One or more host computers 5 are connected to the network 4 so that the volume 14 of the storage 1 can be accessed as an LU.
  • the network 4 is not limited to a single network, and may be a combination of a plurality of independent LANs, SANs, and the like.
  • Storage 1 includes CPU 11, memory 12, and multiple drives 13. Appropriate identification information is assigned to each drive 13 in the storage 1. D00 and D08 in FIG. 6 represent identification information inside the storage 1 of the drive 13.
  • the storage 1 includes the drive 13 identified by D01, D02, D03, D04, D05, D06, and D07 in addition to the drive 13 identified by D00 and D08, but the description is omitted in FIG.
  • the storage 1 configures a pool 15 shown in FIG. 2 based on physical storage areas provided by a plurality of drives 13.
  • Storage 1 may include a plurality of CPUs 11.
  • the storage 1 stores processing units of an I / O processing unit 121, a configuration management unit 122, a duplication information output unit 123, and a deduplication processing unit 124. These processing units are realized by software that is stored in the memory 12 and can be interpreted and executed by the CPU 11, but is drawn inside the memory 12 for convenience. Part or all of these processing units may be realized as hardware. The processing contents of each processing unit will be described in detail later.
  • the memory 12 also stores configuration information 125, a mapping table 126, a duplication management table 127, and group information 128.
  • the mapping table 126 and the duplication management table 127 have been described above and in FIGS. 3 and 4, respectively.
  • the configuration information 125 and the group information 128 will be described in detail later.
  • the backup server 2 includes a CPU 21, a memory 22, and a secondary storage 23.
  • the backup server 2 includes a backup execution unit 221, a restore execution unit 222, a transfer data determination unit 223, and a data transfer unit 224. These processing units are stored in the memory 22 and realized by software that can be interpreted and executed by the CPU 21, but are drawn inside the memory 22 for convenience. Part or all of these processing units may be realized as hardware.
  • Secondary storage 23 is a storage medium such as a hard disk drive or SSD.
  • the secondary storage 23 stores information necessary for the operation of the backup server 2, for example, the duplicate information 60 described above. Further, instead of the secondary storage 23, a storage area provided by the storage 1, the backup storage 3, or a storage device (not shown) or another server can be used.
  • the backup storage 3 includes a CPU 31, a memory 32, and a plurality of drives 331.
  • the drive 331 is used as a storage area for configuring the volumes 34a, 34b, 34c and the like.
  • Volumes 34a, 34b, and 34c can be recognized as SCSI standard logical units from host devices such as the host computer 5, backup server 21, and storage 1, and the I / O processing unit 321 operates. Data can be written or read by
  • the configuration information 322 is internal management information for configuring the volumes 34a, 34b, and 34c.
  • the backup storage 3 also includes various processing units (not shown) for performing volume creation and deletion, other management, and maintenance operations. Although detailed description of the backup storage 3 is avoided, it is obvious to those skilled in the art that such a storage can be configured.
  • the host computer 5 is a computer for operating software such as business applications.
  • the host computer 5 stores data necessary for the operation of these software in the volume 14 of the storage 1.
  • FIG. 7 is a diagram for explaining the contents of the configuration information 125.
  • the configuration information 125 includes configuration information (volume) 125a and configuration information (pool) 125b.
  • the configuration information (volume) 125a is data with a two-dimensional table structure. Each record of the configuration information (volume) 125a corresponds to one of the volumes 14, and holds information related to the corresponding volume. Each record includes fields of volume number 1251, pool number 1252, and size 1253.
  • volume number 1251 record the volume number of the corresponding volume.
  • the pool number 1252 records the pool number of the pool in which the volume is configured.
  • size 1253 the size of the corresponding volume is recorded.
  • the first record of the configuration information (volume) 125a is referred to
  • A is recorded in the volume number 1251
  • this record corresponds to the volume 14a identified by the volume number A.
  • Y is recorded in the pool number 1252
  • the volume 14a is the pool 15 identified by the pool number Y (in this embodiment, the pool number Y is assigned to the pool 15).
  • the size 1253 is recorded as 200 GB (gigabytes), it can be seen that the size of the volume 14a is 200 gigabytes.
  • the configuration information (pool) 125b is two-dimensional data. Each record of the configuration information (pool) 125b corresponds to one of the pools configured in the storage 1. In the present embodiment, only the pool 15 is configured, and the configuration information (pool) 125b holds only information on the pool 15, which is the only pool.
  • Each record includes fields for pool number 1255 and drive 1256.
  • a field for example, RAID level 1257) for holding information unique to the pool may be provided.
  • Pool number 1255 records the pool number of the pool corresponding to the record.
  • identification information of the drive 13 used for configuring the storage area of the pool is recorded.
  • the pool number of the pool 15 is Y, and the pool 15 is composed of eight drives identified by the identification numbers D00 to D07.
  • the pool 15 configures a storage area composed of eight drives by RAID technology, and addresses on the drive are determined from continuous physical addresses defined for the storage area. It can be obtained by calculation according to RAID technology.
  • each processing unit of the storage 1 can read and write data to an arbitrary physical address in the pool 15.
  • the storage 1 includes a processing unit for such I / O to the pool 15, but it is obvious to those skilled in the art, and therefore details are omitted.
  • the processing flow of the I / O processing unit 121 of the storage 1 will be described with reference to FIG.
  • the I / O processing unit 121 is a processing unit that processes an I / O request for the volume 14 from the host computer 5 and the backup server 2.
  • the processing unit may be described as the subject for convenience.
  • the I / O processing unit 121 starts processing from step S100.
  • the I / O processing unit 121 receives an I / O request from the host computer 5.
  • the I / O request includes command types such as read and write, command operand data, and other parameters, but does not limit the scope of the invention.
  • step SP102 the I / O processing unit 121 determines the type of command. If the command is a read command, the process proceeds to step SP103, and if the command is a write, the process proceeds to step SP106. When an I / O request other than read or write is received, appropriate processing (not shown) corresponding to the command is executed.
  • the I / O request includes information specifying the target volume, logical address, and requested size as parameters.
  • the I / O processing unit 121 identifies the volume and logical block number from the parameters, refers to the mapping table 126, and identifies the corresponding physical address range (on the pool 15). Although details are omitted, a mechanism for obtaining a volume and a logical block number from parameters included in an I / O request is obvious to those skilled in the art.
  • step SP104 the I / O processing unit 121 reads data in the physical address range from the pool 15. Actually, data is read from the storage area on the drive corresponding to the physical address range.
  • step SP105 the I / O processing unit 121 returns the read data to the request source.
  • step SP106 the I / O processing unit 121 allocates a physical address range sufficient to record the data requested from the pool 15 to the designated logical block.
  • step SP107 the I / O processing unit 121 records the requested data in the drive corresponding to the allocated physical address range.
  • step SP108 the I / O processing unit 121 records the correspondence between the logical block and the newly allocated physical address range in the mapping table 126.
  • step SP109 the I / O processing unit 121 notifies the request source of the completion of processing.
  • a write request is made to logical block 144 (logical block number 001) of volume 14b (volume number B).
  • the I / O processing unit 121 allocates a physical address range of the pool 15.
  • the physical address range 155 (address 3000) is assigned (step SP106).
  • the I / O processing unit records the requested data in the drive corresponding to the physical address range 155 (step SP107).
  • the I / O processing unit 121 is the start address of the allocated physical address range in the mapping table 126 in the pool address field 1263 of the record corresponding to the volume number B and the block number 001 (1010 is already recorded). Record 3000.
  • the FP label 1264 is not updated here.
  • “1” is recorded in the update flag 1265 as information indicating that the logical block has been written.
  • the mapping table 126 changes from the state shown in FIG. 3A to the state shown in FIG.
  • FIG. 9 is a diagram for explaining the flow of the deduplication processing in the deduplication processing unit 124.
  • the deduplication processing unit 124 periodically performs deduplication processing.
  • Deduplication processing starts from SP201.
  • the deduplication processing unit 124 selects a volume to be deduplicated and a range of logical blocks of the volume. For example, one volume number is selected for each volume in ascending order, and the entire volume is selected as the logical block range.
  • step SP203 one logical block number included in the logical block range to be deduplicated is selected. For example, in the first process, the first logical block number in the logical block range is selected, and in the subsequent process, the next logical block number is selected.
  • step SP204 an entry corresponding to the selected logical block number is acquired from the mapping table 126.
  • step SP205 the old entry is deleted from the duplication management table 127.
  • An old entry is an entry registered in the duplication management table 127 in the previous deduplication process. Specifically, first, the value of the FP label 1264 is obtained from the mapping table 126 entry acquired in step SP204. Next, the duplicate management table 127 is searched using the value of the FP label 1264. From the duplicate block list 1272 obtained as a result of the search, the set of the volume number and logical block number to be processed is deleted.
  • step SP206 data is acquired from the pool 15 based on the physical address acquired from the mapping table 126.
  • step SP207 the fingerprint value of the acquired data is calculated.
  • step SP208 the duplicate management table 127 is searched based on the calculated fingerprint value, and the corresponding entry is acquired.
  • step SP209 if there is an entry corresponding to the duplication management table 127, the process proceeds to step SP210. Otherwise, the process proceeds to step SP213.
  • step SP210 the duplicate block list 1272 of the corresponding entry in the duplicate management table 127 is acquired, and data is acquired from the pool 15 for each logical block recorded in this list.
  • step SP206 the physical address is specified by referring to the entry of the mapping table 126 corresponding to the logical block, and the data is acquired from the physical address.
  • step SP211 the data acquired in step SP206 and step SP210 are compared. If they match, the process proceeds to step SP212, and if they do not match, the process proceeds to step SP213.
  • step SP212 the logical block entry to be processed in the mapping table 126 is changed to the physical address of the other logical block determined to be duplicated.
  • step SP213 the FP label 1264 of the mapping table 126 corresponding to the logical block to be processed is updated to the value calculated in step SP207.
  • step SP214 the logical block identification information to be processed is added to the duplicate block list 1272 of the duplicate management table 127 obtained as a result of the search in step SP208. If it is determined in step SP211 that the data is duplicated, the identification information of the logical block to be processed is added to the same group as the other logical block that is duplicated. Otherwise, add as an independent group. If there is no entry corresponding to the calculated fingerprint value in the duplication management table 127, an entry is added.
  • step SP215 it is determined whether all the logical block ranges selected in step SP202 have been processed. If there is an unprocessed logical block, the logical block is selected in ascending order of the logical block number (step SP203), and the processing after step SP204 is repeated. When all the logical blocks have been processed, the deduplication processing ends (step SP216).
  • the deduplication processing unit 124 selects the logical block number 000-002 of the volume 14b (volume number B) ⁇ ⁇ ⁇ as a target for deduplication processing (step SP202).
  • the logical block having the logical block number 001 is selected as the processing target block (step SP203), and the entry having the volume number 1261 of “B” and the block number 1262 of “000” is acquired from the mapping table 126 shown in FIG. (Step SP204).
  • the deduplication processing unit 124 acquires an old fingerprint value (not shown) as the FP label 1264 from the entry acquired in step SP204, and the old entry of the corresponding FP label 1271 from the duplication management table 127 shown in FIG. (Not shown) is deleted (step SP205).
  • the deduplication processing unit 124 acquires data corresponding to the volume number “B” and the logical block number “000” from the pool 15 based on the mapping table 126 (step SP206), and calculates a fingerprint value. (Step SP207).
  • step SP208 As a result of searching the duplication management table 127 based on the calculated fingerprint value “FFFF” (step SP208), as corresponding entries, “FFFF” is displayed in the FP label 1271, and “[(C , 010)] ”has already been registered. In this case, an affirmative result is obtained in step SP209, and the process proceeds to SP210.
  • the deduplication processing unit 124 acquires data corresponding to the logical block of the logical block number “010” of the volume number “C” from the pool 15. To do. Then, it is assumed that the deduplication processing unit 124 compares the data acquired in step SP206 and step SP210 and determines that the data match (step SP211).
  • the deduplication processing unit 124 uses the volume number “C”, logical block number ”determined to be duplicated for the pool address 1263 of the entry of volume number“ B ”and logical block number“ 000 ”in the mapping table 126. The address is changed to the pool address 1263 corresponding to the logical block “010” (step SP212). Further, the deduplication processing unit 124 updates the FP label 1264 of the entry with the volume number “B” and the logical block number “000” in the mapping table 126 to the fingerprint value “FFFF” calculated in step SP207 ( Step SP213).
  • the deduplication processing unit 124 moves the entry of the FP label 1271 “FFFF” in the duplication management table 127 to the duplicate block list 1272 column as a member of the group “[(C, 010)]” (B, 000 (Step SP214)
  • the deduplication processing unit 124 similarly performs the deduplication processing on the unprocessed logical block numbers “001” ⁇ and “002” selected as the deduplication processing target.
  • the deduplication processing in the storage 1 has been described above. The deduplication processing described so far is only an example, and the present invention can be applied to various deduplication processing. is there.
  • the deduplication process is described as a post-process process that is executed asynchronously with the write process, but it can also be realized as an inline process that is executed in synchronization with the write process.
  • FIG. 10 is a diagram for explaining the backup processing in the backup execution unit 221 of the backup server 2. The backup process will be described with reference to FIG.
  • the backup process is executed according to a user instruction or according to a schedule set in advance by the user.
  • the backup process of the backup execution unit 221 starts from step SP401.
  • step SP402 the backup execution unit 221 instructs the storage 1 to define the backup group. This is a process corresponding to step S1 shown in FIG.
  • Storage unit 1 updates group information 128 according to the backup group definition instruction.
  • FIG. 11 shows an example of the group information 128.
  • Each record of the group information 128 corresponds to a backup group and holds information on the corresponding backup group.
  • Each record includes fields of a group number 1281 and a volume list 1282.
  • the group number 1281 is a unique identification number assigned to the backup group.
  • the volume list 1282 is a list that holds the volumes that constitute the backup group.
  • the backup execution unit 221 instructs the storage 1 to create a backup group G000 composed of volume numbers A, B, C (volumes 14a, 14b, 14c).
  • the storage 1 configures the record shown in the first line of the group information 128 in FIG. As shown in this record, the storage 1 records G000 in the group number 1281, and records A, B, and C in the volume list 1282.
  • the backup execution unit 221 selects one of the volumes included in the backup group as the head volume, and copies this head volume to the backup storage 3 by full backup.
  • a volume that contains the largest number of duplicate logical blocks may be selected from the volumes (volume numbers A, B, C shown in FIG. 1) included in the backup group.
  • a low access frequency volume may be selected.
  • a volume having a certain access frequency may be selected.
  • the backup server 2 may acquire various parameters as a basis for volume selection from the storage 1.
  • the head volume may be a volume arbitrarily selected from the volumes included in the backup group.
  • full backup refers to a backup method in which all logical blocks of a volume are sequentially read and copied to the backup storage 3 without changing the logical block number.
  • Step SP403 corresponds to step S1 shown in FIG. For example, assume that the volume 14a of volume number A is now fully backed up.
  • step SP404 the backup execution unit 221 selects one volume included in the backup group that has not been backed up. For example, since the volume 14a of the volume number A has been backed up, the volume 14b (volume number B) in ascending order by volume number is selected.
  • step SP405 the backup execution unit 221 performs data transfer processing for the selected volume as a backup considering deduplication.
  • the data transfer process is performed by the data transfer unit 224 of the backup server 2. Details of the data transfer processing in the data transfer unit 224 will be described later with reference to FIG. Note that the process of step SP405 includes the processes of steps S3, S4, and S5 of FIG.
  • step SP406 the backup execution unit 221 determines whether all the volumes in the backup group have been processed. If there is a volume that has not been processed, that volume is selected (step SP404), and the processing of step SP405 is executed.
  • step SP407 If all processing has been completed, the backup processing is terminated (step SP407).
  • FIG. 12 is a diagram illustrating the processing flow of the data transfer unit 224.
  • step SP405 of the backup execution unit 221 described in FIG. 10 the data transfer process by the data transfer unit 224 is executed.
  • the data transfer processing unit 224 starts processing from step SP501 for the volume selected in step SP404 in FIG.
  • volume 14b volume number B
  • FIG. 14b volume number B
  • step SP502 the data transfer unit 224 instructs the storage 1 to output the duplicate information 60 of the volume 14b. Upon receiving this instruction, the storage 1 transmits the duplication information 60 of FIG. 1 to the data transfer unit 224.
  • This step SP502 is a process corresponding to step S3 in FIG.
  • the duplicate information 60 has been described with reference to FIG. A process in which the storage 1 generates the duplicate information 60 will be described later with reference to FIG.
  • Steps SP504 to SP507 are a loop process for sequentially processing the logical blocks constituting the volume.
  • the first logical block of the volume is selected (step SP503), and the next and subsequent logical blocks are selected in ascending order of logical blocks (step SP508).
  • Step SP504 and step SP505 are steps for determining whether or not the selected logical block needs to be transferred. These steps together correspond to step S4 in FIG.
  • step SP504 based on the duplication information 60, the data transfer unit 224 determines whether or not the logical block to be processed is a duplicate logical block. If the logical block to be processed is not an overlapping block, the process proceeds to step SP506, and the data of the logical block is transmitted to the backup storage 3. Otherwise, the process proceeds to the next step SP505.
  • step SP505 if the selected logical block is an overlapping block, the data transfer unit 224 determines whether the other overlapping logical block has been transmitted to the backup storage 3 in this backup round. This determination method is as described above. If the logical block to be processed overlaps with the logical block of the same volume, it is determined that the transfer is unnecessary when the block number of the other logical block is smaller than the block number of the logical block to be processed. You may make it do. This is because the duplicated logical blocks have already been transmitted by transmitting them to the backup storage 3 in ascending order of the logical blocks.
  • step SP506 acquire the data of the logical block to be processed and transmit it to the backup storage 3.
  • step SP507 the data transfer unit 224 determines whether all logical blocks included in the logical block range to be processed have been processed. If there is an unprocessed logical block, the next logical block is selected in step SP508, and the processing from step SP504 is performed. Otherwise, the process proceeds to step SP509.
  • step SP509 the data transfer unit 224 uses the local copy function in the backup storage 3 for the logical block that has not been transmitted in the series of processing in steps SP504 to SP507.
  • This process corresponds to step S5 in FIG.
  • the data transfer unit 224 transfers the logical block of logical block number 001 of volume 34a (which is the replication destination of volume 14a) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ in volume 34b (replication destination of volume 34b) to backup storage 3 Instructs to replicate to the logical block number 001).
  • the backup storage 3 receives this instruction and performs data replication.
  • the volume 34b can be accessed from an external device such as the host computer 5 as a volume in which the same data as the volume 14b is recorded.
  • the local copy function is not limited to the SCSI standard XCOPY, and various methods can be used.
  • step SP510 the data transfer unit 224 stores the duplicate information 60 acquired from the storage 1 in the secondary storage 23, and ends the process (step SP511).
  • FIG. 13 is a diagram illustrating a processing flow of the duplicate information output processing by the duplicate information output unit 123 of the storage 1.
  • the duplicate information output process starts from step SP301.
  • the duplicate information output unit 123 receives the identification information of the volume to be processed and identifies the volume number.
  • the volume identification information does not have to directly indicate the volume number, such as a SCSI standard target ID or logical unit number, but may be identification information in a host device such as the host computer 5 or the backup server 2. . Also in this case, it is obvious to those skilled in the art that the volume number can be specified by providing the storage 1 with appropriate configuration information. Here, it is assumed that the volume number B is specified for explanation.
  • step SP303 the duplicate information output unit 123 configures the initialized empty duplicate information 60 on the memory 12.
  • the duplication information output unit 123 refers to the group information 128, identifies the group of the designated volume, and further identifies other volumes that constitute the group. For example, when the volume number of the processing target volume is B, the volume numbers A, B, and C are specified as the group number G000 and the other volumes constituting the group.
  • step SP305 the duplicate information output unit 123 selects the first block number of the volume to be processed. For example, 000 is selected as the first block number of volume number B.
  • step SP306 the duplication information output unit 123 acquires the fingerprint value of the FP label 1246 of the selected block number from the mapping table 126.
  • step SP307 the duplication information output unit 123 searches the duplication management table 127 using the fingerprint value of the FP label acquired in step SP306 as a key. As a result of the search, a corresponding duplicate block list field 1272 of the duplicate management table 127 is obtained.
  • the fingerprint value “FFFF” is obtained by the processing of step SP306.
  • [(B, 000), (C, 010)] is obtained as a duplicate block list by the processing of step SP307.
  • the logical block number “001” [(A, 010), (B, 001), ⁇ ⁇ ⁇ (X, 100)] is obtained as a duplicate block list.
  • the duplicate information output unit 123 excludes logical block identification information of volumes other than the volumes included in the same backup group from the obtained duplicate block list. For example, in the case of [(B, 000), (C, 010)] above, the volumes with volume numbers B and C are both included in the same backup group, and thus are not excluded. On the other hand, in the case of [(A, 010), (B, 001), (X, 100)], the volume with volume number X is not included in the backup group, so exclude (X, 100) and [(A, 010), (B, 001)].
  • the logical block identification information of the logical block to be processed is also excluded, and as a result, (C, 010) and (A, ⁇ ⁇ ⁇ ⁇ 010) are obtained.
  • step SP309 the duplicate information output unit 123 adds the information obtained in step SP308 to the duplicate information 60 on the memory created in step SP303.
  • step SP310 the duplication information output unit 123 determines whether or not all logical blocks have been processed, and if there is an unprocessed block, selects the next logical block number in ascending order and executes the processing from step SP307. . Otherwise, the process proceeds to step SP312.
  • step SP312 the duplication information output unit 123 transmits the duplication information 60 on the memory obtained as a result to the request source (backup server 3) after completing the processing for all the logical blocks, and ends the processing (step SP313). ).
  • the restore process efficiently creates a replica of the volume from the backup storage 3 to the storage 1 using the duplication information 60 for each volume obtained by the backup process.
  • the schematic processing flow is almost the same as the backup processing shown in FIG.
  • the restore process is performed by the restore execution unit 222 of the backup server 2.
  • FIG. 14 is a diagram for explaining the flow of processing of the restore execution unit 222 in the present embodiment.
  • step SP602 the restore execution unit 222 selects a restore target volume from the volume 34 of the backup storage 3. Which volume is selected depends on the user's instruction. Here, it is assumed that the volumes 34b and 34c are selected.
  • step SP603 the restore execution unit 222 performs a full restore of this volume with one of the selected volumes as the first volume.
  • the user may instruct the backup server 2 which volume is the top volume.
  • a volume that has been fully backed up during backup processing may be selected as the first volume.
  • an arbitrarily selected volume may be used as the head volume.
  • full restore refers to a restore method in which all logical blocks of a volume are sequentially read and copied to the storage 1 without changing the logical block number, as in full backup.
  • the volume 34b is now selected as the first volume and is fully restored.
  • the backup storage 3 does not have a local copy function and there is a logical block that is not backed up in the volume 34b.
  • the full restore described above cannot be performed, but instead, the logical block that has not been backed up is identified by referring to the duplication information 60 of volume 34b (volume 14b) and the duplicate data of that logical block is stored. Data is read from the volume to be copied and the data is copied.
  • step SP604 the restore execution unit 222 selects another volume to be restored. For example, the volume 34c is selected.
  • step SP605 the restore execution unit 222 performs data transfer processing for the selected volume as a restore considering deduplication.
  • the data transfer process is executed by the data transfer unit 224 in the same manner as the backup process.
  • the difference from the backup processing is that, in step SP502 in FIG. 12, instead of acquiring the duplicate information 60 from the storage 1, the point of acquiring from the secondary storage 23, the direction of data transfer is read from the backup storage 3, and the storage 1 The point is that the duplicate information 60 is not necessarily stored in SP510. Further, since the duplicate information 60 is recorded with the identification information of the volume 14 in the storage 1, it is read as the volume 34 in the backup storage 3.
  • the backup server 2 backs up the deduplicated volume using a standard I / O interface, but duplicate data is not transferred more than once when creating backup data. Data transfer amount has been reduced.
  • the created backup data can be accessed using a standard I / O interface.
  • volume backup processing is performed on a volume that has been quiesced immediately after deduplication processing (that is, a volume without a write request from the host computer 5) ⁇ ⁇ from the viewpoint of maintaining data consistency.
  • data consistency can be maintained by appropriately duplicating the mapping table 126 and the duplication management table 127 and using the duplicated table.
  • the second embodiment like the first embodiment, reduces the data transfer amount in consideration of the deduplicated volume when creating a replica of the volume from the storage 1 to the backup storage 3.
  • the backup server 2 is not used, and instead the volume 1 is created mainly by the storage 1.
  • the computer system 101 includes a storage 1, a backup storage 3, a network (not shown) for connecting these to be communicable, and a plurality of host computers that are connected to the network and can communicate with the storage 1 and the backup storage 3. (Not shown) consists of cocoons.
  • the backup server 2 in the first embodiment is not essential.
  • the storage 1 includes the CPU 11, the memory 12, the I / O processing unit 121, the configuration management unit 122, the duplicate information output unit 123, and the deduplication process illustrated in FIG. 6.
  • Each processing unit of the unit 124 is provided.
  • configuration information 125, a mapping table 126, a duplication management table 127, and group information 128 are provided. It also has a deduplication function that consists of these.
  • the storage 1 has a function of replicating the volume configured in the storage 1 to the backup server 3 like the backup server 2 shown in the first embodiment.
  • a function of replicating a volume to a storage different from the storage 1 mainly using the storage 1 is widely known under the names of a remote copy function, a remote replication function, a disaster recovery function, and the like.
  • this volume replication function is referred to as a remote copy function.
  • a processing unit that performs a series of volume duplication processing is referred to as a remote copy processing unit ⁇ (instruction number 129).
  • the remote copy processing unit 129 may be implemented as software that is interpreted and executed by the CPU 11 of the storage 1 or may be implemented as hardware built in the storage 1.
  • the remote copy function is preferably bidirectional. That is, the backup storage 3 generally has a remote copy function. However, in this embodiment, the backup storage 3 does not necessarily have a remote copy function.
  • Symbols S1a, S2a, S3a, S4a, and S5a indicate processing steps of the remote copy function.
  • the processing flow of the remote copy processing unit 129 will be described using these symbols.
  • a configuration in which the volume 14a is replicated to the volume 34a, the volume 14b is replicated to the volume 34b, and the volume 14c is replicated to the volume 34c is set in advance.
  • Such a relationship between the replication source and the replication destination between the volume 14 of the storage 1 and the volume 34 of the backup storage 3 is called a volume pair or simply a pair.
  • the first embodiment will be referred to as appropriate for points similar to the first embodiment.
  • step S1a the remote copy processing unit 129 defines a group consisting of volumes to be replicated. This group may be indicated by the user. In this case, the user can designate a group by using a management terminal (not shown) ⁇ for managing the storage 1.
  • the user may simply specify a plurality of volumes without worrying about whether the volumes are configured from the same pool.
  • the remote copy processing unit 129 groups the specified volumes with the pool to form a group.
  • the user may designate a consistency group.
  • the consistency group is a group of volume pairs and is set in the storage 1 in advance by the user. Pairs included in the consistency group can suspend or resume data replication at the same time.
  • the remote copy processing unit 129 identifies the storage 1 volumes from the pairs included in the consistency group, identifies the pools that make up these volumes, and consists of the same pool Group the volumes on the condition.
  • the information of the configured group is recorded in the group information 128.
  • step S2a the remote copy processing unit 129 sets one volume (for example, volume 14a) of the group as the first volume, duplicates this volume as a full backup target, and creates a volume (for example, volume 34a) ⁇ of the backup storage 3.
  • step S3a the remote copy processing unit 129 selects the volume 14b as the next replication processing target volume.
  • Duplicate information 60 is created in the memory 12 for the selected volume 14b.
  • the generation process of the duplicate information 60 is the same as the duplicate information output unit 123 described with reference to FIG. 12, but in this embodiment, instead of sending the duplicate information 60 to the backup server 2, the duplicate information 60 is duplicated.
  • Information 60 is created on the memory 12.
  • step S4a the remote copy processing unit 129 copies the volume 14b to the volume 34b based on the duplication information 60.
  • This duplication processing is basically the same as the processing content of the data transfer unit 224 described with reference to FIG. Only the differences are described below.
  • the duplication information 60 is the duplication information 60 on the memory 22 created in step S3a IV (FIG. 14) IV.
  • step SP506 the subject of data transfer processing is the remote copy processing unit 129 of the storage 1.
  • step SP510 the duplicate information 60 may not be stored.
  • step S5a the remote copy processing unit 129 instructs the backup storage 3 to copy the unreplicated logical block from the logical block of the replicated volume.
  • This process can be performed in the same manner as step SP509 described in FIG.
  • a remote copy function for efficiently duplicating a deduplicated volume to a backup storage can be realized.
  • the deduplicated volume is efficiently remote copied mainly by the storage 1.
  • FIG. 16 is a diagram for explaining the computer system 102 in the third embodiment.
  • the third embodiment is different from the second embodiment in that the contents of the volume 14x (volume number X) at a certain point in the past have already been copied to the backup storage 3 as the volume 34x.
  • the volume 14x is composed of the pool 15 like the volumes 14a, 14b, and 14c.
  • the mapping table 126 and the duplication management table 127 include information related to the volume 14x as shown in FIGS. 3 and 4, respectively.
  • the storage 1 is configured to replicate the volume 14a to the volume 34a, the volume 14b to the volume 34b, the volume 14c to the volume 34c, and the volume 14x to the volume 34x. Further, as described above, the volume 34x is a copy of the volume 14x at a certain point in the past.
  • step S1b the remote copy processing unit 129 configures a group including volumes 14a, 14b, and 14c in accordance with a user instruction.
  • various methods can be used as the group configuration method.
  • step S1.1b the remote copy processing unit 129 identifies that the volume 34x is a duplicate of the volume 14x at a past point in time, and identifies the location where the volume 14x has been updated from the point of the volume 34x.
  • the update information 61 is configured. This process will be described in detail below.
  • the remote copy processing unit 129 refers to the configuration information (volume) 125a and identifies the pool number of the pool 15 that configures the replication target volumes 14a, 14b, and 14c. Next, another volume composed of the pool with this pool number is specified. Thereby, the volume 14x is found.
  • the storage 1 recognizes that the volume 14x is paired with the volume 34x of the backup storage 3 based on the pair configuration information.
  • the remote copy function in order to improve the efficiency of copy processing, it is widely performed to manage the update location of the volume on the storage 1 side with respect to the volume replication on the backup storage 3 side.
  • the update information 61 described above is a copy of this bitmap in the memory 22, for example.
  • step S3b the remote copy processing unit 129 generates duplication information 60 for the volume 14a in the memory 22.
  • This process is basically the same as step S3b in the second embodiment. The difference is that the volume 14x identified in step S1.1b is assumed to be included in the group, and the information of the volume 14x is not excluded. As a result, the duplication information 60 also records duplication with the logical block of the volume 14x.
  • step S4b the remote copy processing unit 129 configures a partial copy of the volume 14a in the volume 34a as in step S4a of the second embodiment.
  • use of the volume 34x is considered in determining whether or not replication is necessary. That is, specific conditions for determining that replication is necessary are as follows. (1) The logical block to be processed is not a duplicate logical block. Or (2) When the logical block to be processed is a duplicate logical block, but not duplicated with the logical block sent so far in this backup round, and the duplicate logical block is stored in volume 14x The logical block is updated after the volume 34x is created.
  • This condition prevents the logical block that overlaps the replicated logical block from being transferred to the volume 34x, thereby enabling more efficient replication.
  • step S5b the remote copy processing unit 129 instructs to copy the unreplicated logical block from the replicated volume logical block, as in step S5a of the second embodiment.
  • step S5b a logical block that overlaps with the volume 14x and that has not been replicated is instructed to be copied from the volume 34x.
  • FIG. 17 is a diagram for explaining the computer system 103 according to the fourth embodiment of the present invention. Similar to the second embodiment, the volume 14 of the storage 1 is replicated to the volume 34 of the backup storage 3, but the volume duplication method is different from that of the second embodiment. Volume replication in this embodiment is performed via the journal volume 16 and the secondary journal volume 36.
  • the journal volume 16 and the secondary journal volume 36 are logical storage areas composed of a plurality of drives 13 and 33 of the storage 1 and the backup storage 3, respectively.
  • volumes may be configured in addition to the volumes 14a, 14b, 34a, and 34b, but the description is omitted in FIG.
  • journal volume 16 data storage for the copy destination volume of the backup storage 3 is recorded in a command format called journal.
  • the journal is interpreted to mean, for example, “record data 1234 at address 000 of volume 14a”.
  • Journals are recorded in the journal volume 16 in chronological order.
  • the backup storage 3 reads the journals recorded in the journal volume 16 in chronological order and stores them in the secondary journal volume 36. Thereafter, the backup storage 3 reads the journals from the secondary journal volume 36 in chronological order, interprets the journal, and updates the volume 34 according to the interpretation.
  • the storage 1 When replicating the volume 14a to the backup storage 3, the storage 1 reads all data of the volume 14a in the order of logical addresses and stores them in the journal volume 16 in the form of a journal. Then, the journal is read out by the backup storage 3, and finally a copy of the volume 14a is created in the volume 34a according to the above.
  • step S2c the remote copy processing unit 129 records data in the journal volume 16 in order from the first logical block of the volume 14a.
  • the configuration of the journal volume 16 will be described with reference to FIG.
  • the journal volume 16 is a logical storage area that can be randomly accessed using a logical address in the same manner as the volume 14 and the like, and is configured by combining a plurality of drives 13 by RAID technology or the like.
  • the remote copy processing unit 129 records data to be copied to the backup storage 3 in order from the head of the journal volume 16 (arrow 17).
  • journals as indicated by instruction numbers 160, 161, 162, and 163 are used as recording formats in the journal volume 16.
  • the journal consists of a plurality of attribute information.
  • the journal attribute information includes at least volume number 1601, logical block number 1602, command 1603, data 1604, and data storage order information.
  • Volume number 1601 is the volume number of the source volume
  • logical block number 1602 is the logical block number of the source logical block
  • data 1604 is the data stored in the source logical block (represented as a bit array in FIG. 18) is there.
  • “WR” is recorded in the command 1603
  • the journal will be resized according to the type of command. For example, if the command is “WR”, the size can accommodate the entire logical block (if the logical block is 8 kilobytes, the size is 8 kilobytes + + other attribute size) ⁇ ⁇ ⁇ , and the command is “DUP” Is a smaller size (for example, if the logical block identification information is 16 bytes, 16 bytes + the size of other attributes). As a result, the data transfer amount can be reduced for overlapping logical blocks.
  • the backup storage 3 reads the journal from the journal volume 16 in time series and records it in the secondary journal volume 36 in the same order (arrow 37).
  • the backup storage 3 sequentially interprets these journals copied to the secondary journal volume 36 and reflects the result on the volume 34. This series of processing in the backup storage 3 is executed by the remote copy processing unit 329.
  • step S3c the storage 1 configures the duplication information 60 for the volume 14b on the memory 22.
  • the duplicate information 60 is the same as that shown in FIG.
  • the remote copy processing unit 129 records the logical blocks of the volume 14b in the journal volume 16 in ascending order of the logical block numbers.
  • the remote copy processing unit 129 refers to the duplication information 60, and for the logical block that matches the following conditions, the “DUP” exemplified in the journal 163 instead of the “WR” command exemplified in the journal 160 of FIG. "The command journal. (1) Duplicate logical block. And (2) The other logical block that has been duplicated has been recorded in the journal volume 16 together with the “WR” command so far in the backup round. And (3) The other logical block that has been duplicated has not been updated by the write request from the host computer 5 until the present time of this backup round.
  • the other logical block number that is duplicated is recorded in the data attribute (for example, 1634) ⁇ ⁇ ⁇ ⁇ ⁇ of the journal.
  • update information using the bitmap data structure shown in the third embodiment can be used.
  • efficient data transfer can be performed in consideration of the deduplicated volume even in remote copy processing via a journal volume.
  • the present invention can also be implemented by using a tape device for backup storage.
  • the present invention can be applied to a computer system including a storage having a deduplication function.
  • Storage 2 Backup server 3: Backup storage 4: Network 5: Host computer

Abstract

第1のストレージは、複数の論理ブロックに分割して管理し、複数の論理ブロックに各々格納されるデータの重複関係を重複管理情報として管理し、複数のボリュームのうちの二以上のボリュームをグループとして管理する。第1のストレージは、重複管理情報に基づいて、グループ内のあるボリュームについて、複数の論理ブロックごとに、グループに属する他のボリューム内の論理ブロックとの重複関係を示す重複情報を作成してバックアップサーバに送信する。バックアップサーバは、重複情報を参照し、グループに属するボリューム内の第1の論理ブロックと重複する第2の論理ブロックを特定し、第1の論理ブロックに対応するデータが第2のストレージへ送信済みである場合には、第2の論理ブロックに対応するデータを第2のストレージへ送信しない。

Description

重複排除ストレージにおけるボリュームバックアップ・リストア方法
 本発明は、データストレージシステム(以下ストレージ)において、重複排除が適用されたボリュームを効率的に複製する技術に関する。
 企業情報システムではデータが年々増加しており、システムの管理・調達コストを増大させている。このため、重複排除技術等のデータ量削減技術が進展している。また、データを災害等による消失から保護するため、データのバックアップが行なわれている。重複排除技術を導入するシステムでは、データのバックアップに伴うデータ転送量削減のため、重複排除済みの状態のデータをバックアップすることが求められる。
 特許文献1には、ストレージコントローラが、配下のストレージのすべてのデータセグメントの配置と重複関係を管理する。あるストレージから別のストレージへデータセグメントをコピーするとき、コピー先ストレージに同一データが有れば送らず、重複関係のみ更新するデータ複製方法が開示されている。
 特許文献2には、ストレージコントローラからバックアップ用ストレージコントローラへバックアップのためデータを送信するとき、送信済みデータセグメントのフィンガープリント値(FP)を記憶しておき、次回以降のバックアップで、データが送信済みかをFPを使って判定し、送信済みであれば再送信しない方法が開示されている。
WO 2010/015648 US 2011/0167221
 上記特許文献に記載のいずれの方法も、重複排除済みデータを送信するためにストレージ固有の方法を用いる。例えば特許文献1に記載の方法では、データと配下のストレージの関係はすべてコントローラで管理され、配下のストレージにおけるデータのレイアウトはコントローラにより制御されており、元のデータのレイアウトとは異なっている。このため、配下のストレージのバックアップデータに対し、標準的なI/Oインタフェースでコントローラを介さずにアクセスしても、元のデータを取り出すことができない。また、特許文献2に記載の方法では、バックアップデータはFPとデータの関係としてバックアップ先ストレージに格納される。このため、バックアップストレージにコントローラを介さずにアクセスしても、元のデータを得ることはできない。すなわち、いずれの方法も、バックアップデータをリストアするために、バックアップデータを作成したコントローラを介さなければならない。このことは、災害等によりコントローラが故障した場合に、復旧時間を増大させることになる。これを回避するため、これらのコントローラの管理下にあるデータに対し、標準的なI/Oインタフェースを使ってバックアップデータを作成しようとする場合、標準的なI/Oインタフェースではデータの重複関係を判定できず、バックアップデータ作成に係るデータ転送量を増大させる。よって、特定の重複排除技術、コピー技術によらない、標準的なI/Oインタフェースをベースとするバックアップ・リストアシステムにおいて、バックアップおよびリストアに係るデータ転送量を削減し、尚且つバックアップデータもまた標準的なI/Oインタフェースで読み出すことができるバックアップ・リストア方法が望まれる。
 本願において開示される発明の代表的な一例を示せば以下のとおりである。
 すなわち、第1のストレージ、第2のストレージ、及び、バックアップサーバを含む計算機システムにおいて、第1のストレージは、ホストに提供する複数のボリュームの各々を、複数の論理ブロックに分割して管理し、複数の論理ブロックの間の重複関係を重複管理情報として管理し、複数のボリュームのうちの一以上のボリュームをグループとして管理し、重複管理情報に基づいて、グループ内のあるボリュームについて、複数の論理ブロックごとに、グループに属する他のボリューム内の論理ブロックとの重複関係を示す重複情報を作成してバックアップサーバに送信する。
 バックアップサーバは、重複情報を参照し、グループに属するボリューム内の第1の論理ブロックと重複する第2の論理ブロックを特定し、第1の論理ブロックに対応するデータが第2のストレージへ送信済みである場合には、第2の論理ブロックに対応するデータを第2のストレージへ送信しない。
 本発明によれば、特定の重複排除技術、コピー技術によらない、標準的なI/Oインタフェースをベースとするバックアップ・リストアシステムにおいて、データ転送量を削減でき,かつ標準的なI/Oインタフェースによりバックアップデータをリストア可能なバックアップ・リストアが可能となる。
本発明の第一の実施例の概要を説明する図である。 本発明の第一の実施例に係るボリュームとプールの構成を説明する図である。 本発明の第一の実施例に係るマッピングテーブルを説明する図である。 本発明の第一の実施例に係る重複管理テーブルを説明する図である。 本発明の第一の実施例に係る重複情報を説明する図である。 本発明の第一の実施例に係る計算機システムを説明する図である。 本発明の第一の実施例に係る構成情報を説明する図である。 本発明の第一の実施例に係るI/O処理の流れを説明する図である。 本発明の第一の実施例に係る重複排除処理の流れを説明する図である。 本発明の第一の実施例に係るバックアップ処理の流れを説明する図である。 本発明の第一の実施例に係るグループ情報を説明する図である。 本発明の第一の実施例に係るデータ転送処理の流れを説明する図である。 本発明の第一の実施例に係る重複情報出力処理の流れを説明する図である。 本発明の第一の実施例に係るリストア処理の流れを説明する図である。 本発明の第二の実施例に係る計算機システムを説明する図である。 本発明の第三の実施例に係る計算機システムを説明する図である。 本発明の第四の実施例に係る計算機システムを説明する図である。 本発明の第四の実施例に係るジャーナルボリュームを説明する図である。
 以下、図面を用い、本発明の第一の実施の形態を説明する。
 図1は、本発明の第一の実施の形態に係る計算機システム100の概要を説明する図である。
 計算機システム100は、ストレージ1、バックアップサーバ2、バックアップストレージ3を含む。これらは、図示しないローカルエリアネットワーク(LAN)、ストレージエリアネットワーク(SAN)、インターネット通信網などのネットワークにより、相互に通信可能に接続されている。
 他に、計算機システム100は、ストレージ1を業務データの格納に利用する複数のホスト計算機 (図示せず)を含む。ホスト計算機は、同じくネットワークによりストレージ1と通信可能に接続されている。
 ストレージ1には、ボリューム14x、14a、14b、14cが構成されている。これらのボリューム(以下、指示番号14で総称)は、ホスト計算機がSCSI規格に定義されるロジカルユニット(LU)として認識可能な仮想的な記憶領域である。また、ストレージ1には、プール15が構成されている。プール15は、ストレージ1が内蔵する複数のハードディスクドライブ(HDD)、ソリッドステートドライブ (SSD) (図示せず。以下、これらのドライブ装置を単にドライブと呼ぶ)等の記憶領域をRAID(Redundant Array of Independent (or Inexpensive) Disks)技術等により統合してなる記憶領域である。計算機システム100は、ホスト計算機に対して仮想的な記憶領域である仮想ボリューム(ボリューム14x、14a、14b、14cに相当)を提供し、ホスト計算機から実際にデータの書き込みが発生する際に必要な容量を割り当てる、いわゆる容量仮想化技術(Thin Provisioning Technology)を採用している。プール15の記憶領域には、512バイトを単位として連続的なアドレスが割り当てられている。以降、プール15の記憶領域のアドレスを物理アドレスと呼ぶ。また、物理アドレスの定義域を物理アドレス空間と呼ぶ。ボリューム14の仮想的な記憶領域も、またアドレスにより識別される。以降、ボリューム14のアドレスを論理アドレス、その定義域を論理アドレス空間と呼ぶ。ストレージ1は、論理アドレスを固定の大きさ(例えば8KB)のブロックに区切り識別する。論理アドレスのブロックを論理ブロックと呼ぶ。ホスト計算機がボリューム14のある論理ブロックにデータを書き込むように要求すると、ストレージ1は、当該論理ブロックに物理アドレスの特定の範囲を割り当て、その物理アドレスにより指示されるプール15の記憶領域に、データを書き込む。論理ブロックへの物理アドレスの割り当ては、物理アドレス順になされる。例えば、ある論理ブロックに物理アドレス範囲の0から15 (物理アドレスは、512バイトと単位とするから、8192バイトを割り当てたことになる) を割り当てたとき、次に割り当てるときには物理アドレス16から割り当てる。
 ストレージ1は、論理ブロックと物理アドレスの割り当ての関係をマッピングテーブル126により管理する。マッピングテーブル126は、ストレージ1のメモリ(図示せず)に保持されている。
 またストレージ1は、重複排除機能を有する。ストレージ1が重複排除処理を実行すると、ビット配列として同じデータを保持する論理ブロックに、同じ物理アドレス範囲が割り当てられる。以降、このように重複排除処理の実行後に、同じ物理アドレス範囲を割り当てられた論理ブロックを、重複状態にある論理ブロック、あるいは単に論理ブロックが重複していると表現することがある。
 論理ブロックと物理アドレス範囲の割り当て、およびマッピングテーブル126を、それぞれ図2および図3を参照して説明する。
 図2は、ストレージ1のボリューム14の内、代表してボリューム14aと14bの論理ブロック、およびプール15の物理アドレス範囲の割り当ての関係を示している。
 ボリューム14aには、論理ブロック141と142が含まれている。これらはそれぞれ、論理ブロック番号000、001により識別される (論理ブロック番号002以降の論理ブロックも当然あるが、図2では省略している)。また、ボリューム14bには、論理ブロック143, 144, 145が含まれている。これらはそれぞれ、論理ブロック番号000, 001, 002により識別される (ここでも、論理ブロック番号003以降の論理ブロックの記載を省略している)。
 プール15には、物理アドレス範囲151、152、153、154、155がある。これらはそれぞれ、8KBのアドレス範囲であり、先頭の物理アドレスはそれぞれ1000、1010、2000、2020、3000である。以降、物理アドレス範囲をその先頭アドレスで識別することとする。
 図2では、論理ブロックに対する物理アドレス範囲の割り当ての関係を、これらを結ぶ線分で表現している。例えば、ボリュームAの論理ブロック番号000に対しては、物理アドレス範囲1000が割り当てられている。
 ボリュームAの論理ブロック番号001とボリュームBの論理ブロック番号001は、共に物理アドレス範囲1010を割り当てられている。これは、ボリュームAの論理ブロック番号001とボリュームBの論理ブロック番号001が同じデータを保持する論理ブロックであり、重複排除処理により物理アドレス範囲を共有する状態とされたことを示している。ここで、ボリュームBの論理ブロック001に対するホスト計算機からのライト要求があった場合には、ストレージ1は例えば物理アドレス範囲3000を新たに当該論理ブロックに割り当て、データを格納する。これにより、ボリュームAの論理ブロック番号001のデータが書き変わることがない。
 図3は、マッピングテーブル126の構造を説明する図である。図3には(a)と(b)の二つのテーブルが描かれているが、それぞれマッピングテーブル126のある時点での状態を示している。
 マッピングテーブル126は、論理的には二次元の表構造で表されるが、木構造等、よく知られたデータ構造により実施することができる。
 マッピングテーブル126の各行は、それぞれ、ストレージ1のすべての論理ボリューム14の論理ブロックに対応し、対応する論理ブロックに関する情報を保持している。各行はボリューム番号1261、ブロック番号1262、プールアドレス1263、FPラベル1264、更新ありフラグ1265の各フィールドからなる。
 ボリューム番号1261フィールドには、対応する論理ブロックのボリューム番号を記録する。ブロック番号1262には、対応する論理ブロックのブロック番号を記録する。プールアドレス1263には、対応する論理ブロックへ割り当てられている物理アドレス空間の先頭アドレスを記録する。FPラベルには、対応する論理ブロックが保持するデータを特徴付けるフィンガープリント値 (後述) を記録する。更新ありフラグ1265は、対応する論理ブロックに対するホスト計算機からの更新要求があったか否かを記録する。
 フィンガープリント値とは、MD5やSHA1等のハッシュ関数をデータに適用して得られる値である。フィンガープリント値は、重複排除処理において、同一データを高速に検索するために使用される。
 例えば、図3の(a)に示したマッピングテーブル126の第一行目には、ボリューム14a (ボリューム番号A)の論理ブロック141 (ブロック番号000)に関する情報を記録する。これを見ると、ボリューム番号Aの論理ブロック番号000の論理ブロックは、物理アドレス1000からの物理アドレス範囲が割り当てられていることがわかる。
 次にボリュームAのブロック番号001のレコードと、ボリュームBのブロック番号001のレコードを参照すると、いずれも物理アドレス1010からの物理アドレス範囲が割り当てられていることがわかる。これらは、図2に示した関係を記述している。
 図3 の(b)に示した図は、マッピングテーブル126の図3の(a)の時点の後、ボリュームB、ブロック番号001のエントリについて、プールアドレス1263と更新ありフラグ1265の各フィールドを、それぞれ3000、1に更新した時点の様子を示している。なお、図3の(b)の図では、ボリュームBのブロック番号001以外のエントリは、図3の(a)と内容は同じであるため記載を省略している。
 マッピングテーブル126には、ボリューム番号A、Bのボリュームのほかに、ボリューム番号C、Xのボリュームに関する情報も保持している。
 再び図1に戻り、ストレージ1は重複管理テーブル127を内蔵のメモリ(図示せず)に保持している。重複管理テーブル127は、重複排除処理において、重複するデータを検索し、記録しておくためのデータ構造である。図4を参照し、重複管理テーブル127を説明する。
 重複管理テーブル127は、論理的には二次元の表構造で表されるが、木構造やハッシュテーブル等知られたデータ構造により実施することができる。特に、後述の重複排除処理や重複情報出力処理で、フィンガープリント値に基づき検索する処理が必要となるため、フィンガープリント値を保持するFPラベルフィールド1271をキーとするハッシュテーブルや木構造での実施が好ましい。
 重複管理テーブル127の各レコードは、ひとつのフィンガープリント値に対応する。フィンガープリント値はFPラベルフィールド1271に記録されている。重複ブロックリストフィールド1272には、このフィンガープリント値が算出された論理ブロックの識別情報がリストとして記録されている。論理ブロックの識別情報は、ボリューム番号と論理ブロック番号の組でなる。図4では、論理ブロックの識別情報を”()”を使って表現している。例えば、”(A, 000)”は、ボリューム番号Aの論理ブロック番号000で指示される論理ブロックを表す。なお、図4において、重複ブロックリスト1272内の記号”[]”は、データが同一である論理ブロックのグループを表現するためにここで使用している。すなわち、重複ブロックリスト1272は、単なるリストではなく、論理ブロックの識別情報のリストをさらにグループ化して管理するデータ構造を取る。このようなデータ構造が様々な方法で実施可能であることは当業者には自明である。異なるデータから、同一のフィンガープリント値が算出される場合がある。フィンガープリント値が同じでもデータが異なる論理ブロックを区別するため、重複ブロックリスト1272ではこのようなデータ構造を取っている。
 FPラベルがFF00のレコードを参照すると、重複ブロックリストには(A, 001), (B, 001), (X, 100)が記録されている。これは、論理ブロック(A, 001), (B, 001), (X, 001)が同一のデータを保持する論理ブロックであることを示している。この関係は、図3で示したマッピングテーブル126を参照することでも確認できる。
 再び図1へ説明を戻す。バックアップサーバ2は、ストレージ1のボリューム14を、ユーザの指示に従いバックアップストレージ3へ複製する機能を有する計算機である。バックアップサーバ2は、ユーザインタフェース(図示なし)を備えており、計算機システム100のユーザが、このユーザインタフェースを介して、バックアップ対象ボリュームの指定等様々な指示ができるようになっている。
 バックアップストレージ3は、ストレージ1のボリューム14の複製を保持するストレージである。ストレージ1と同様に、バックアップストレージ3には1以上のドライブが内蔵されており、これらのドライブの記憶容量から論理的なボリューム34a, 34b, 34cが構成できるようになっている。バックアップストレージ3は、重複排除機能を必ずしも必要としないし、ストレージ1と同等機能を有するストレージでなくてもよい。
 バックアップサーバ2におけるバックアップ処理の流れを、図1中の記号S1~S5を使い説明する。S1~S5は、バックアップサーバ2における処理ステップを表す。ここで、ユーザからバックアップ対象としてボリューム14a, 14b, 14cが、バックアップサーバ2に対して指示されたものとする。以降、バックアップが指示されたボリューム14a, 14b, 14cをバックアップする一連の処理を、バックアップラウンドと呼ぶ。
 ステップS1において、バックアップサーバ2は、ストレージ1に対して、バックアップ対象とするボリューム14a, 14b, 14cからなるグループ(以下、バックアップグループ)を定義するように指示する。すると、ストレージ1は、ボリューム14a, 14b, 14cをバックアップ対象ボリュームとして認識し、このグループ情報をメモリに記録する。ここで、バックアップ対象のボリューム14a, 14b, 14cおよび14xは、共通のプール15を記憶領域とし、重複排除処理によって一部の論理アドレスに対して同一の記憶領域が割り当てられているボリュームであることに留意されたい。
 バックアップグループにボリューム14a, 14b, 14cを含むことは、計算機システム100のユーザがバックアップサーバ2に接続された管理端末 (図示せず) を操作してバックアップサーバ2に指示することができる。バックアップサーバ2は、このユーザの指示に従い、ストレージ1に対してバックアップグループの作成を指示する。このとき、計算機システム100のユーザは、ボリューム14a、14b、14cが共通のプール15から記録領域が割り当てられ重複排除されたボリュームであることを、上記バックアップサーバ2の管理端末もしくはストレージ1の管理端末に表示される情報から予め知ることができる。あるいは、ユーザはそのようなボリュームの属性情報について全く認識せずに、単にバックアップが必要と考えるボリュームとしてボリューム14a, 14b, 14cを選択することもある。この場合も、バックアップサーバ2はストレージ1に対してユーザの指示に基づくグループ定義の指示を行う。ただし、この場合は、指示されるボリュームが必ずしもプールを同じくするとは限られない。この場合は、ストレージ1は、指示されたボリュームを更にその記憶領域提供元プールによってグループ化してもよい。
 ステップS2において、バックアップ対象のボリュームのひとつであるボリューム14aを選択し、このボリュームの完全なバックアップをバックアップストレージ3のボリューム34aに作成する。このとき、バックアップサーバ2がボリューム14aからデータを順次読み出してボリューム34aへ書き込む。ストレージ1からバックアップストレージ3へのデータ転送方法としては、他にバックアップサーバ2の指示により、ストレージ1が主体となってボリューム14aをボリューム34aへ複製する方法、もしくはバックアップストレージ3がボリューム14aからデータを読み出しボリューム34aへ書き込む方法等を使ってもよい。
 ボリューム14aの複製完了後、ステップS3において、バックアップサーバ2は、ストレージ1に対して、ボリューム14bの重複情報を出力するように要求する。すると、ストレージ1は、ボリューム14bの重複情報として重複情報60を構成し、バックアップサーバ2へ送信する。
 次に、重複情報60の内容を、図5を使って説明する。
 重複情報60は、二次元の表構造で表現されるデータ構造を取る。各レコードは、ボリューム14bの論理ブロックに対応し、その情報を保持している。
 各レコードは、ブロック番号61、重複関連情報62の各フィールドを保持する。ブロック番号61には、対応する論理ブロックの論理ブロック番号が記録される。重複関連情報62には、対応する論理ブロックが他の論理ブロックと重複しているとき、その重複している他の論理ブロックの識別情報を記録する。図5では、マッピングテーブル126と同じ表現方法により論理ブロックの識別情報を表現する。なお、レコードに対応する論理ブロックと重複する論理ブロックが複数ある場合には、それらの複数の論理ブロック識別情報が重複関連情報62に記録される。ここで、重複関連情報には、ステップS1で定義したグループに含まれないボリュームに関する情報を含まない。したがって、重複情報60には、ボリューム14xに係る情報を含んでいない。
 再び図1の説明に戻る。ステップS4において、バックアップサーバ2は、ボリューム14bのデータをバックアップストレージ3のボリューム34bへ複製する処理を行う。ここで、バックアップサーバ2は、ボリューム14bの各論理ブロックにつき、複製が必要か田舎を重複情報60を使って判定しつつ、必要な論理ブロックのみを複製する。具体的には、次のいずれかの条件を満たす論理ブロックを、複製が必要な論理ブロックと判定する。
(1) 重複関連情報62に、論理ブロック識別情報が記録されていない。すなわち、この論理ブロックは、重複状態でない論理ブロックか、ステップS1で定義したグループに含まないボリュームの何れかの論理ブロックと重複する論理ブロックである (このような論理ブロックを、非重複ブロックと呼ぶ)。
(2) 重複関連情報62に、論理ブロック識別情報が記録されており、それらの識別情報で指示されるいずれの論理ブロックも、このバックアップラウンドにおける現時点でバックアップストレージ3へ複製されていない。
 例えば、ボリューム14bの論理ブロック000について判定するとき、この論理ブロックはボリュームC (ボリューム14c) の論理ブロック010と重複しているが、ボリュームCの論理ブロック010はこの時点では複製されていないから、複製が必要と判定する。一方、ボリューム14bの論理ブロック001について判定するとき、この論理ブロックはボリュームA (ボリューム14a)の論理ブロック001と重複しているが、ボリュームAは、ステップS2で複製済みだから、複製不要と判定する。ボリューム14bの論理ブロック002および003は、重複関連情報62に重複している他の論理ブロック識別情報が記録されていないから、複製要と判定する。
 この判定条件に基づけば、ステップS1で定義したバックアップグループ内で、互いに重複状態にある論理ブロックは、そのデータが一度だけバックアップストレージ3へ複製されることになり、データ転送量の削減が達成される。
 ボリューム14bのすべての論理ブロックについて、ステップS4の処理を終えた後、バックアップサーバ2は、ステップS5において、バックアップストレージ3に対し、複製を行なわなかった論理ブロックについて、重複情報60に基づき、ボリューム34a (A’)から複製するように指示する。この指示には、例えばSCSI標準で定義されているXCOPYコマンドや、バックアップストレージ3に固有のコマンドを使用することができる。ステップS5は、通常、ステップS4の直後に実行されるが、ステップS4の終了後、任意のタイミングで実行されてもよい。また、もしバックアップストレージ3がこのようなボリューム間の複製機能を提供していないなら、ステップS5を省略してもよい。その後、バックアップサーバ2は、重複情報60をボリューム14bのバックアップ情報として、バックアップサーバ2の二次記憶領域 (図示なし) に記録する。
 ボリューム14cについても、上記ボリューム14bと同様にステップS3~S5に従い複製を処理する。
 ここで、ステップS3で説明した重複情報60は、SCSI標準で定義される語彙または概念(厳密には“論理ブロック”はSCSI標準の語彙ではないが、SCSI標準のLBAの範囲として解釈できる)で構成されることに注意されたい。また、ステップS3において、バックアップサーバ2からストレージ1へ重複情報60を出力する要求には、SCSI標準のコマンドを拡張する形式で実現可能である点に注意されたい。言うまでもなく、ボリュームに対するデータの読み出しや書き込みは標準的なコマンドが定義されている。重複情報60は、特定の重複排除機能によらず共通的な形式を取ることができる。以上を鑑みれば、本発明は、特定のベンダに依存した、特定の重複排除技術やボリュームコピー技術によらず、実施可能であるといえる。
 以上が、本実施形態の概要である。以降、図面を参照しながら、本実施形態を詳細に説明する。
 図6は、本実施形態の計算機システム100の構成を説明する図である。
 図1で説明したように、計算機システム100は、ストレージ1、バックアップサーバ2、バックアップストレージ3を含み、これらがネットワーク4で相互に通信可能に接続されている。また、ネットワーク4には、1以上のホスト計算機5が接続されており、ストレージ1のボリューム14をLUとしてアクセスできるようになっている。ネットワーク4は、単一のネットワークとは限られず、複数の独立したLAN、SAN等の組み合わせであってもよい。
 ストレージ1は、CPU 11、メモリ12、複数のドライブ13を含む。ドライブ13は、それぞれストレージ1内部で適切な識別情報が割り当てられている。図6におけるD00、D08はドライブ13のストレージ1内部での識別情報を表している。ストレージ1は、D00、D08で識別されるドライブ13以外にも、D01、D02、D03、D04、D05、D06、D07で識別されるドライブ13を備えているが、図6では記載を省略する。ストレージ1は、複数のドライブ13によって提供される物理的な記憶領域に基づいて、図2に示すプール15を構成している。
 ストレージ1は、複数のCPU 11を備えてもよい。
 ストレージ1は、I/O処理部121、構成管理部122、重複情報出力部123、重複排除処理部124の各処理部が格納されている。これら処理部は、メモリ12に格納され、CPU 11により解釈、実行可能なソフトウェアにより実現されるが、便宜上メモリ12内部に描かれている。なお、これらの処理部の一部または全部は、ハードウェアとして実現されていてもよい。各処理部の処理内容については、以降で詳細に説明する。
 メモリ12にはまた、構成情報125、マッピングテーブル126、重複管理テーブル127、グループ情報128が格納される。このうち、マッピングテーブル126、重複管理テーブル127については、上記およびそれぞれ図3、図4で説明済みである。構成情報125、グループ情報128については、以降で詳細に説明する。
 バックアップサーバ2は、CPU 21、メモリ22、二次記憶23を含んでいる。
 バックアップサーバ2は、バックアップ実行部221、リストア実行部222、転送データ判定部223、データ転送部224の各処理部を備えている。これらの処理部は、メモリ22に格納され、CPU 21により解釈、実行可能なソフトウェアにより実現されるが、便宜上メモリ22の内部に描かれている。なお、これらの処理部の一部または全部は、ハードウェアとして実現されていてもよい。
 二次記憶23は、ハードディスクドライブ、SSD等の記憶媒体である。二次記憶23には、バックアップサーバ2が動作する上で必要な情報、例えば上述の重複情報60が格納される。また、二次記憶23に代えて、ストレージ1、バックアップストレージ3、もしくは図示しないストレージ装置や他のサーバが提供する記憶領域を利用することができる。
 バックアップストレージ3は、CPU 31、メモリ32、複数のドライブ331を備えている。ドライブ331は、ボリューム34a、34b、34c等を構成するための記憶領域として使用される。ボリューム34a、34b、34cは、ホスト計算機5、バックアップサーバ21、ストレージ1等の上位装置からSCSI標準のロジカルユニットとして認識可能になっており、I/O処理部321が動作することで、上位装置によるデータのライトやリードを受け付けられるようになっている。構成情報322は、ボリューム34a、34b、34cを構成するための内部的な管理情報である。また、バックアップストレージ3は、ボリュームの作成や削除、その他の管理、保守操作をするための様々な処理部 (図示なし) を備えている。バックアップストレージ3については詳述を避けるが、このようなストレージを構成可能であることは当業者には自明である。
 ホスト計算機5は、業務アプリケーションなどのソフトウェアを動作させるための計算機である。ホスト計算機5は、これらソフトウェアの動作に必要なデータを、ストレージ1のボリューム14へ格納する。
 図7は、構成情報125の内容を説明する図である。
 構成情報125は、構成情報(ボリューム)125aと、構成情報(プール)125bからなる。
 構成情報(ボリューム)125aは、二次元の表構造のデータである。構成情報(ボリューム)125aの各レコードは、それぞれボリューム14のひとつに対応し、対応するボリュームに関する情報を保持する。各レコードは、ボリューム番号1251、プール番号1252、サイズ1253の各フィールドを含む。
 ボリューム番号1251には、対応するボリュームのボリューム番号を記録する。プール番号1252は、ボリュームが構成されているプールのプール番号が記録する。サイズ1253には、対応するボリュームのサイズを記録する。
 例えば、構成情報(ボリューム)125aの第一番目のレコードを参照すると、ボリューム番号1251にはAと記録されているから、このレコードはボリューム番号Aで識別されるボリューム14aに対応することが分かる。また、プール番号1252にはYと記録されているから、このボリューム14aは、プール番号Yで識別されるプール15 (本実施形態では、プール15にプール番号Yを割り当てる) であることが分かる。また、サイズ1253には、200GB(ギガバイト)と記録されているから、ボリューム14aのサイズは200ギガバイトであることが分かる。
 構成情報(プール) 125bは、二次元データである。構成情報(プール)125bの各レコードは、ストレージ1に構成されたプールのひとつに対応する。なお、本実施形態では、プール15だけが構成されており、構成情報(プール)125bには唯一のプールであるプール15の情報のみが保持されている。
 各レコードは、プール番号1255、ドライブ1256の各フィールドを含む。その他、プール固有の情報を保持するためのフィールド (例えばRAIDレベル1257)を備えてもよい。
 プール番号1255は、レコードに対応するプールのプール番号を記録する。ドライブ1256には、プールの記憶領域を構成するために使用されるドライブ13の識別情報を記録する。
 例えば、構成情報(プール) 125bを参照すれば、プール15のプール番号がYであり、プール15は識別番号D00~D07で識別される8台のドライブから構成されることが分かる。
 なお、本実施形態では、プール15は、RAID技術により8台のドライブから構成される記憶領域を構成し、この記憶領域に対して定義される連続的な物理アドレスから、ドライブ上のアドレスを、RAID技術に従い演算で求めることができるようになっている。これにより、ストレージ1の各処理部は、プール15の任意の物理アドレスに対するデータの読み出しや書き込みができるようになっている。ストレージ1は、このようなプール15へのI/Oのための処理部を備えているが、当業者には自明であるため詳細を省く。
 図8を用い、ストレージ1のI/O処理部121の処理の流れを説明する。I/O処理部121は、ホスト計算機5、バックアップサーバ2からのボリューム14に対するI/Oリクエストを処理する処理部である。なお、以降の説明において、ストレージ1のCPU 11の働きにより処理が行われる場合、便宜的に、処理部を主語として説明する場合がある。
 I/O処理部121は、ステップS100から処理を開始する。
 ステップSP101において、I/O処理部121は、ホスト計算機5からのI/Oリクエストを受領する。以下、説明の便宜上、I/Oリクエストにはリード、ライト等のコマンド種別と、コマンドのオペランドであるデータおよびその他のパラメータを含むものとしているが、発明の適用範囲を限定するものではない。
 ステップSP102において、I/O処理部121は、コマンドの種別を判定し、コマンドがリードコマンドであればステップSP103へ進み、ライトであればステップSP106へ進む。なお、リード、ライト以外のI/Oリクエストを受領した場合は、コマンドに応じた図示しない適切な処理が実行される。
 リードコマンドの場合、I/Oリクエストには対象のボリュームを指定する情報、論理アドレス、要求サイズがパラメータとして含まれる。
 ステップSP103において、I/O処理部121は、パラメータからボリューム、論理ブロック番号を特定し、マッピングテーブル126を参照し、対応する物理アドレス範囲(プール15上)を特定する。詳細を省くが、I/Oリクエストに含まれるパラメータからボリュームおよび論理ブロック番号を求める仕組みは、当業者には自明である。
 ステップSP104において、I/O処理部121は、物理アドレス範囲のデータをプール15から読み出す。実際には、物理アドレス範囲に対応するドライブ上の記憶領域からデータが読み出されることになる。
 ステップSP105において、I/O処理部121は、読み出したデータを要求元へ応答する。
 I/Oリクエストがライトである場合、ステップSP106からの処理を実行する。
 ステップSP106において、I/O処理部121は、プール15から要求されたデータを記録するために十分な物理アドレス範囲を、指定された論理ブロックに割り当てる。
 ステップSP107において、I/O処理部121は、割り当てた物理アドレス範囲に対応するドライブに、要求されたデータを記録する。
 ステップSP108において、I/O処理部121は、マッピングテーブル126に、論理ブロックと新しく割り当てた物理アドレス範囲の対応を記録する。
 ステップSP109において、I/O処理部121は、要求元へ処理完了を通知する。
 ライトの処理の具体的な動作を、図2および図3を参照して説明する。
 今、ボリューム14b (ボリューム番号B) の論理ブロック144 (論理ブロック番号001)に対し、ライトが要求されたとする。このとき、I/O処理部121は、プール15の物理アドレス範囲を割り当てる。ここでは、例えば物理アドレス範囲155 (アドレス3000)を割り当てたとする (ステップSP106)。次に、I/O処理部は、物理アドレス範囲155に対応するドライブに、要求されたデータを記録する (ステップSP107)。次に、I/O処理部121は、マッピングテーブル126の、ボリューム番号B、ブロック番号001に対応するレコードのプールアドレスフィールド1263に (1010が記録済み)、割り当てた物理アドレス範囲の先頭アドレスである3000を記録する。なお、FPラベル1264は、ここでは更新しない。また、更新ありフラグ1265に、論理ブロックへのライトがあったことを示す情報として、”1”を記録しておく。この結果、マッピングテーブル126は、図3の(a)の状態から、図3の(b)の状態となる。
 図9は、重複排除処理部124における重複排除処理の流れを説明する図である。重複排除処理部124は、定期的に重複排除処理を実行する。
 重複排除処理は、SP201より開始する。
 ステップSP202において、重複排除処理部124は、重複排除処理の対象とするボリュームと、そのボリュームの論理ブロックの範囲を選択する。例えば、ボリュームとしてはボリューム番号を昇順に毎回一つ、論理ブロック範囲としてはボリュームの全体を選択する。
 ステップSP203において、重複排除対象の論理ブロック範囲に含まれる一つの論理ブロック番号を選択する。例えば、初回の処理では、論理ブロック範囲の先頭の論理ブロック番号を選択し、後続の処理ではその次の論理ブロック番号を選択する。
 ステップSP204において、マッピングテーブル126から、選択した論理ブロック番号に対応するエントリを取得する。
 ステップSP205において、重複管理テーブル127より、古いエントリを削除する。古いエントリとは、前回の重複排除処理で重複管理テーブル127に登録したエントリを言う。具体的には、まずステップSP204で取得したマッピングテーブル126エントリから、FPラベル1264の値を得る。次に、このFPラベル1264の値を用いて、重複管理テーブル127を検索する。検索の結果得られた重複ブロックリスト1272から、処理対象のボリューム番号と論理ブロック番号の組を削除する。
 ステップSP206において、マッピングテーブル126から取得した物理アドレスに基づき、プール15からデータを取得する。
 ステップSP207において、取得したデータのフィンガープリント値を算出する。
 ステップSP208において、算出したフィンガープリント値に基づき、重複管理テーブル127を検索し、対応するエントリを取得する。
 ステップSP209において、重複管理テーブル127に対応するエントリがあれば、ステップSP210の処理へ進む。そうでなければ、ステップSP213の処理へ進む。
 ステップSP210において、重複管理テーブル127の対応するエントリの重複ブロックリスト1272を取得し、このリストに記録されている論理ブロックにつき、プール15からデータを取得する。リストに複数の論理ブロック識別情報のグループが含まれている場合、各グループにつき一つの論理ブロックを選択し、そのデータをプール15から取得する。データの取得において、ステップSP206と同様に、論理ブロックに対応するマッピングテーブル126のエントリを参照することで、物理アドレスを特定し、その物理アドレスからデータを取得する。
 ステップSP211において、ステップSP206とステップSP210で取得したデータを比較する。一致する場合、ステップSP212へ進み、一致しない場合は、ステップSP213へ進む。
 一致する場合は、論理ブロックは重複しているということになる。この場合は、ステップSP212において、マッピングテーブル126の処理対象の論理ブロックのエントリを、重複と判定された他方の論理ブロックの物理アドレスへ変更する。
 ステップSP213において、処理対象の論理ブロックに対応するマッピングテーブル126のFPラベル1264を、ステップSP207で算出した値へ更新する。
 ステップSP214において、ステップSP208で検索の結果得られた重複管理テーブル127の重複ブロックリスト1272に、処理対象の論理ブロックの識別情報を追加する。もし、ステップSP211の判定で、重複データであった場合は、重複している他方の論理ブロックと同じグループに、処理対象の論理ブロックの識別情報を追加する。そうでなければ、独立したグループとして追加する。またもし、重複管理テーブル127に、算出したフィンガープリント値に対応するエントリがなければ、エントリを追加する。
 ステップSP215において、ステップSP202で選択した論理ブロック範囲のすべてを処理したかどうかを判定する。未処理の論理ブロックがあれば、論理ブロックを論理ブロック番号の昇順に選択し(ステップSP203)、ステップSP204以降の処理を繰り返す。すべての論理ブロックの処理を終えると、重複排除処理は終了となる(ステップSP216)。
 今、重複排除処理部124が、ボリューム14b (ボリューム番号B) の論理ブロック番号000-002を、重複排除処理の対象として選択したとする(ステップSP202)。まず、論理ブロック番号001の論理ブロックが処理対象ブロックとして選択され(ステップSP203)、図3に示すマッピングテーブル126から、ボリューム番号1261が”B”でブロック番号1262が”000”のエントリが取得される(ステップSP204)。そして、重複排除処理部124は、ステップSP204で取得したエントリから、FPラベル1264として古いフィンガープリント値(図示しない)を取得し、図5に示す重複管理テーブル127から該当するFPラベル1271の古いエントリ(図示しない)を削除する(ステップSP205)。
 続いて、重複排除処理部124は、マッピングテーブル126に基づいて、ボリューム番号”B”、論理ブロック番号”000”に相当するデータをプール15から取得し(ステップSP206)、フィンガープリント値を算出する(ステップSP207)。
 ここで、算出したフィンガープリント値”FFFF”に基づいて、重複管理テーブル127を検索した結果(ステップSP208)、対応するエントリとして、FPラベル1271に”FFFF”、重複ブロックリスト1272に”[(C, 010)]”が、既に登録されていたとする。この場合、ステップSP209の判定で肯定的の結果となり、SP210に進んで、重複排除処理部124は、ボリューム番号”C”の論理ブロック番号”010”の論理ブロックに対応するデータをプール15から取得する。そして、重複排除処理部124は、ステップSP206とステップSP210で取得したデータを比較し、データが一致していることを判定したとする(ステップSP211)。この場合、重複排除処理部124は、マッピングテーブル126において、ボリューム番号”B”、論理ブロック番号”000”のエントリのプールアドレス1263を、重複と判定されたボリューム番号”C”、論理ブロック番号”010”の論理ブロックに対応するプールアドレス1263へと変更する(ステップSP212)。また、重複排除処理部124は、マッピングテーブル126において、ボリューム番号”B”、論理ブロック番号”000”のエントリのFPラベル1264を、ステップSP207にて算出したフィンガープリント値”FFFF”に更新する(ステップSP213)。
 次に重複排除処理部124は、重複管理テーブル127のFPラベル1271”FFFF”のエントリに対し、重複ブロックリスト1272欄へ、”[(C, 010)]”のグループのメンバとして(B, 000]を追加する(ステップSP214)。なお、重複排除処理部124は、重複排除処理の対象として選択された、未処理の論理ブロック番号”001”¥及び”002”についても、同様に重複排除処理を実行する(ステップSP215)。以上、ストレージ1における重複排除処理について説明した。なお、ここまでに説明した重複排除処理は一例に過ぎず、本発明は様々な重複排除処理に対して適用可能である。
 また、本実施例では、重複排除処理は、ライト処理と非同期に実行されるポストプロセスによる処理として説明したが、ライト処理と同期して実行されるインラインによる処理としても実現可能である。
 以降、バックアップサーバ2におけるバックアップ処理について説明する。
 図10は、バックアップサーバ2のバックアップ実行部221におけるバックアップ処理について説明する図である。図10を参照し、バックアップ処理について説明する。
 バックアップ処理は、ユーザの指示により、あるいはユーザが予め設定しておいたスケジュールに従い実行される。
 バックアップ実行部221のバックアップ処理は、ステップSP401より開始する。
 ステップSP402において、バックアップ実行部221は、バックアップグループの定義をストレージ1に指示する。これは、図1に示したステップS1に相当する処理である。
 バックアップグループの定義の指示により、ストレージ1はグループ情報128を更新する。図11に、グループ情報128の一例を示す。
 グループ情報128の各レコードはバックアップグループに対応し、対応するバックアップグループの情報を保持する。各レコードは、グループ番号1281、ボリュームリスト1282の各フィールドからなる。
 グループ番号1281は、バックアップグループに割り当てられた一意な識別番号である。ボリュームリスト1282は、バックアップグループを構成するボリュームを保持するリストである。
 今、バックアップ実行部221は、ボリューム番号A, B, C (ボリューム14a, 14b, 14c)からなるバックアップグループG000の作成を、ストレージ1へ指示したとする。ストレージ1は、この指示を受け、図11のグループ情報128の第一行目に示したレコードを構成する。このレコードに示すように、ストレージ1は、グループ番号1281にはG000を記録し、ボリュームリスト1282にはA, B, Cを記録する。
 図10の説明に戻る。ステップSP403において、バックアップ実行部221は、バックアップグループに含まれるボリュームの一つを先頭ボリュームとして選択し、この先頭ボリュームをフルバックアップによりバックアップストレージ3に複製する。なお、先頭ボリュームの選択方法の一例として、バックアップグループに含まれるボリューム(図1に示すボリューム番号A, B, C)のうち、重複論理ブロックを最も多く含むボリュームを選択してもよい。また、ホスト計算機5への性能影響を考慮し、低アクセス頻度のボリュームを選択してもよい。また、ストレージ1内部のキャッシュヒット率を考慮し、一定のアクセス頻度のボリュームを選択してもよい。バックアップサーバ2は、ボリューム選択の根拠とする各種パラメータを、ストレージ1から取得するようにしてもよい。また、先頭ボリュームは、バックアップグループに含まれるボリュームから任意に選択したボリュームであってもよい。ここで、フルバックアップとは、ボリュームのすべての論理ブロックを順次読み出し、論理ブロック番号を変えずにバックアップストレージ3へ複製するバックアップ方式を言う。ステップSP403は、図1に示したステップS1に相当する。例えば、今ボリューム番号Aのボリューム14aをフルバックアップしたとする。
 ステップSP404において、バックアップ実行部221は、バックアップグループに含まれるバックアップ処理されていないボリュームを一つ選択する。例えば、ボリューム番号Aのボリューム14aはバックアップ済みだから、ボリューム番号で昇順のボリューム14b (ボリューム番号B)を選択する。
 ステップSP405おいて、バックアップ実行部221は、選択したボリュームにつき、重複排除済みを考慮したバックアップとして、データ転送処理を行う。データ転送処理は、バックアップサーバ2のデータ転送部224により行われる。データ転送部224におけるデータ転送処理の詳細については、後に図12を参照して説明する。なお、ステップSP405の処理には、図1のステップS3、S4、S5の処理が含まれる。
 ステップSP406において、バックアップ実行部221は、バックアップグループのすべてのボリュームについて処理済かどうかを判定する。処理済みでないボリュームがあればそのボリュームを選択し (ステップSP404)、ステップSP405の処理を実行する。
 すべて処理済みであれば、バックアップ処理を終了する (ステップSP407)。
 図12は、データ転送部224の処理の流れを説明する図である。
 図10で説明した、バックアップ実行部221のステップSP405において、データ転送部224によるデータ転送処理が実行される。
 データ転送処理部224は、図10のステップSP404で選択したボリュームを対象に、ステップSP501より処理を開始する。ここでは、ボリューム14b (ボリューム番号B)を処理対象とする場合を例に説明する。
 ステップSP502において、データ転送部224は、ストレージ1に対して、ボリューム14bの重複情報60の出力を指示する。この指示を受け、ストレージ1は、図1の重複情報60を、データ転送部224へ送信する。このステップSP502は、図1のステップS3に相当する処理である。重複情報60については、図5を用いて説明した。ストレージ1が、重複情報60を生成する処理については、図13を用いて後述する。
 ステップSP504からSP507までは、ボリュームを構成する論理ブロックを逐次処理するループ処理となっている。初回の実行では、ボリュームの先頭の論理ブロックが選択され (ステップSP503)、次回以降は論理ブロックが、論理ブロックの昇順に選択される (ステップSP508)。
 ステップSP504とステップSP505は、選択した論理ブロックを転送する必要があるか否かを判定するステップである。これらのステップは合わせて、図1のステップS4に相当する。
 まずステップSP504において、データ転送部224は、重複情報60に基づき、処理対象の論理ブロックが重複する論理ブロックか否かを判定する。ここで、処理対象の論理ブロックが重複するブロックでなければステップSP506へ進み、その論理ブロックのデータをバックアップストレージ3へ送信する。そうでなければ、次のステップSP505へ進む。
 ステップSP505において、データ転送部224は、選択した論理ブロックが重複するブロックである場合、その重複する他方の論理ブロックが、このバックアップラウンドでバックアップストレージ3に送信済みかどうかを判定する。この判定方法については前述のとおりである。もし、処理対象の論理ブロックが同じボリュームの論理ブロックと重複している場合は、重複する他方の論理ブロックのブロック番号が、処理対象の論理ブロックのブロック番号よりも小さい場合に、転送不要と判断するようにしてもよい。なぜなら、当該重複状態の論理ブロックは、論理ブロックの昇順にバックアップストレージ3に送信することによって、既に送信済みだからである。
 もし送信済みでなければ、ステップSP506へ進み、処理対象の論理ブロックのデータを取得し、バックアップストレージ3へ送信する。
 ステップSP507において、データ転送部224は、処理対象の論理ブロック範囲に含まれるすべての論理ブロックについて処理したかどうかを判定する。未処理の論理ブロックがあれば、ステップSP508にて次の論理ブロックを選択し、ステップSP504からの処理を行う。そうでなければ、ステップSP509の処理へ進む。
 ステップSP509において、データ転送部224は、ステップSP504~SP507の一連の処理で、送信しなかった論理ブロックにつき、バックアップストレージ3内のローカルコピー機能を使って、データを複製する。この処理は、図1のステップS5に相当する。例えば、重複情報60において、ブロック番号001は(A, 001)が重複関連情報62に記録されているから、この論理ブロック番号001の論理ブロックは、バックアップストレージ3へ複製されていない。そこで、データ転送部224は、バックアップストレージ3に対して、バックアップストレージ3内のボリューム34a (ボリューム14aの複製先である) の論理ブロック番号001の論理ブロックを、ボリューム34b (ボリューム34bの複製先である) の論理ブロック番号001の論理ブロックへ複製するように指示する。バックアップストレージ3は、この指示を受け、データの複製を行なう。
 この結果、ボリューム34bは、ホスト計算機5などの外部装置から、ボリューム14bと同じデータが記録されているボリュームとしてアクセスできる。
 なお、バックアップストレージ3が、ローカルコピー機能を備えない場合は、このような処理を行わないようにしてもよい。また、ローカルコピー機能には、SCSI標準のXCOPYに限られず、様々な方法を使うことができる。
 ステップSP510において、データ転送部224は、ストレージ1から取得した重複情報60を、二次記憶23へ格納し、処理を終了する (ステップSP511)
 図13は、ストレージ1の重複情報出力部123による重複情報出力処理について、処理の流れを説明する図である。
 重複情報出力処理は、ステップSP301より開始される。
 ステップSP302において、重複情報出力部123は、処理対象とするボリュームの識別情報を受領し、ボリューム番号を特定する。ボリュームの識別情報にはSCSI標準のターゲットID、ロジカルユニット番号等、直接にボリューム番号を示すものでなくてもよく、ホスト計算機5またはバックアップサーバ2など上位の装置での識別情報であってもよい。この場合も、適切な構成情報をストレージ1に備えさせることでボリューム番号を特定できることは当業者には自明である。ここで、説明のためボリューム番号Bが特定されたものとする。
 ステップSP303において、重複情報出力部123は、メモリ12上に、初期化された空の重複情報60を構成する。
 ステップSP304において、重複情報出力部123は、グループ情報128を参照し、指定されたボリュームのグループを特定し、さらにそのグループを構成する他のボリュームを特定する。例えば、処理対象ボリュームのボリューム番号がBの場合は、グループ番号G000および、グループを構成する他のボリュームとして、ボリューム番号A, B, Cを特定する。
 ステップSP305において、重複情報出力部123は、処理対象のボリュームの先頭のブロック番号を選択する。ボリューム番号Bの先頭ブロック番号として、例えば000を選択する。
 ステップSP306において、重複情報出力部123は、マッピングテーブル126より、選択したブロック番号のFPラベル1246のフィンガープリント値を取得する。
 ステップSP307において、重複情報出力部123は、ステップSP306で取得したFPラベルのフィンガープリント値をキーとし、重複管理テーブル127を検索する。検索の結果、重複管理テーブル127の対応する重複ブロックリストフィールド1272を得る。
 例えば、ボリューム14bの論理ブロック番号”000”については、ステップSP306の処理により、フィンガープリント値”FFFF”を得る。次に、ステップSP307の処理により、重複ブロックリストとして、[(B, 000), (C, 010)]を得る。同様に、論理ブロック番号”001”については、重複ブロックリストとして、[(A, 010), (B, 001), (X, 100)]を得る。
 ステップSP308において、重複情報出力部123は、得られた重複ブロックリストの内、同一バックアップグループに含まれるボリューム以外のボリュームの論理ブロック識別情報を除外する。例えば、上の[(B, 000), (C, 010)]の場合、ボリューム番号B, Cのボリュームは、共に同一バックアップグループに含まれるから、いずれも除外しない。一方、[(A, 010), (B, 001), (X, 100)]の場合、ボリューム番号Xのボリュームはバックアップグループに含まれないから、(X, 100)を除外し [(A, 010), (B, 001)]を得る。なお、ここで、処理対象の論理ブロックの論理ブロック識別情報も除外することとし、結果的に、それぞれ(C, 010), (A, 010)を得る。
 ステップSP309において、重複情報出力部123は、ステップSP308で得た情報を、ステップSP303で作成したメモリ上の重複情報60へ追加する。
 ステップSP310において、重複情報出力部123は、すべての論理ブロックについて処理したかどうかを判定し、未処理のブロックがあれば昇順に次の論理ブロック番号を選択し、ステップSP307からの処理を実行する。そうでなければ、ステップSP312の処理へ進む。
 ステップSP312において、重複情報出力部123は、すべての論理ブロックについて処理終了後、結果として得られるメモリ上の重複情報60を、要求元 (バックアップサーバ3) へ送信し、処理を終了する (ステップSP313)。
 次に、バックアップしたボリュームをリストアする際の処理について説明する。リストア処理は、バックアップ処理により得たボリューム毎の重複情報60を使い、バックアップストレージ3からストレージ1へ、効率的にボリュームの複製を作成する。概略的な処理の流れは、図10で示したバックアップ処理とほぼ同じとなる。リストア処理は、バックアップサーバ2のリストア実行部222により行なわれる。
 図14は、本実施形態におけるリストア実行部222の処理の流れを説明する図である。
 リストア処理は、ステップSP601より開始する。
 ステップSP602において、リストア実行部222は、リストア対象のボリュームを、バックアップストレージ3のボリューム34から選択する。どのボリュームを選択するかはユーザの指示による。ここでは、ボリューム34bと34cを選択したものとして説明する。
 ステップSP603において、リストア実行部222は、選択したボリュームの一つを先頭ボリュームとして、このボリュームをフルリストアする。なお、どのボリュームを先頭ボリュームとするかはユーザがバックアップサーバ2に対して指示するようにしてもよい。また、バックアップ処理の際にフルバックアップしたボリュームを先頭ボリュームとして選択してもよい。また、任意に選択したボリュームを先頭ボリュームとしてもよい。ここで、フルリストアとは、フルバックアップと同様に、ボリュームのすべての論理ブロックを順次読み出し、論理ブロック番号を変えずにストレージ1へ複製するリストア方式を言う。ここで、今ボリューム34bを先頭ボリュームとして選択し、フルリストアするものとする。
 なお、もしバックアップストレージ3がローカルコピー機能を持たず、ボリューム34bにバックアップされていない論理ブロックがあったとする。この場合は、上述のフルリストアを行なうことはできないが、代わりに、ボリューム34b (ボリューム14b) の重複情報60を参照してバックアップされていない論理ブロックを特定し、その論理ブロックの重複データを格納するボリュームからデータを読み出し、そのデータをコピーする。
 ステップSP604において、リストア実行部222は、リストア対象の別のボリュームを選択する。例えば、ボリューム34cを選択する。
 ステップSP605において、リストア実行部222は、選択したボリュームを対象に、重複排除済みを考慮したリストアとして、データ転送処理を行なう。ここで、データ転送処理は、バックアップ処理と同様に、データ転送部224により実行される。バックアップ処理との違いは、図12ステップSP502において、重複情報60をストレージ1から取得することに代えて、二次記憶23から取得する点、データ転送の方向を、バックアップストレージ3から読み出し、ストレージ1への送信とする点、SP510において、重複情報60の保存が必ずしも必要ない点である。また、重複情報60は、ストレージ1におけるボリューム14の識別情報が記録されているから、これらをバックアップストレージ3におけるボリューム34に読み替える。
 以上説明したとおり、第一の実施形態では、バックアップサーバ2は標準的なI/Oインタフェースを用いて重複排除済みボリュームをバックアップするが、バックアップデータ作成においては、重複データを2回以上転送しないため、データ転送量が削減されている。また、作成されたバックアップデータは、標準的なI/Oインタフェースを用いてアクセスできる。
 なお、以上で説明した一連のボリュームバックアップ処理は、データ一貫性維持の観点から、重複排除処理直後に静止化されたボリューム (すなわち、ホスト計算機5からのライト要求がない状態のボリューム) に対して実施することが好ましいが、マッピングテーブル126や重複管理テーブル127を適切に複製し、複製したテーブルを使うことでも、データの一貫性を保てる。
 以下、第二の実施例について説明する。第二の実施例は、第一の実施例のように、ストレージ1からバックアップストレージ3へボリュームの複製を作る際、重複排除済みボリュームを考慮しデータ転送量を削減する。だだし、第一の実施例と異なり、第二の実施例ではバックアップサーバ2を使わず、代わりにストレージ1が主体となってボリュームの複製を作成する。
 図15を参照し、第二の実施例による計算機システム101における、ボリュームの複製方法を説明する。
 計算機システム101は、ストレージ1、バックアップストレージ3および、これらを通信可能に接続するためのネットワーク (図示せず)、および当該ネットワークに接続され、ストレージ1およびバックアップストレージ3と通信可能な複数のホスト計算機 (図示せず) からなる。実施例1におけるバックアップサーバ2は必須としない。
 図15では省略するが、実施例1と同様に、ストレージ1は、図6に示したCPU 11、メモリ12、I/O処理部121、構成管理部122、重複情報出力部123、重複排除処理部124の各処理部を備えている。また、構成情報125、マッピングテーブル126、重複管理テーブル127、グループ情報128を備えている。またこれらから構成される重複排除機能を備えている。
 さらにストレージ1は、実施例1で示したバックアップサーバ2のように、ストレージ1内部に構成されたボリュームを、バックアップサーバ3へ複製する機能を備えている。このような、ストレージ1が主体となり、ボリュームをストレージ1とは異なるストレージへ複製する機能は、リモートコピー機能、リモートレプリケーション機能、ディザスタリカバリー機能などの名称で広く知られている。以下、本実施形態においても、このボリューム複製機能をリモートコピー機能と呼ぶこととする。ストレージ1のリモートコピー機能において、一連のボリューム複製処理を行う処理部を、リモートコピー処理部 (指示番号129) と呼ぶこととする。リモートコピー処理部129は、ストレージ1のCPU 11により解釈・実行されるソフトウェアとして実施されてもよいし、ストレージ1に内蔵するハードウェアとして実施されてもよい。
 一般に、リモートコピー機能は双方向性があることが好ましい。すなわち、バックアップストレージ3もまたリモートコピー機能を有する構成が一般的である。ただし、本実施形態では、バックアップストレージ3がリモートコピー機能を必ずしも有しない。
 記号S1a、S2a、S3a、S4a、S5aは、リモートコピー機能の処理ステップを示している。以下、これらの記号を使い、リモートコピー処理部129の処理の流れについて説明する。ここで、ストレージ1において、ボリューム14aはボリューム34a、ボリューム14bはボリューム34b、ボリューム14cはボリューム34cへそれぞれ複製する構成が、予め設定されているとする。このような、ストレージ1のボリューム14と、バックアップストレージ3のボリューム34の間の、複製元、複製先の関係をボリュームペアまたは単にペアと呼ぶ。なお、以下の説明において、実施例1と類似する点については適宜実施例1を参照する。
 ステップS1aにおいて、リモートコピー処理部129は、複製対象のボリュームからなるグループを定義する。このグループは、ユーザによって指示されるものであってもよい。この場合、ストレージ1を管理するための管理端末 (図示せず) を使うことで、ユーザはグループを指示できる。
 グループを構成する別の方法として、ユーザは、ボリュームが同一プールから構成されているかどうかを気にすることなく、単に複数のボリュームを指定することとしてもよい。この場合、リモートコピー処理部129は、指定されたボリュームをそのプールでグループ化し、グループを構成する。
 グループを構成する更に別の方法として、ユーザは、一貫性グループを指定することとしてもよい。一貫性グループとは、ボリュームペアのグループであり、ユーザにより予めストレージ1に設定されている。一貫性グループに含まれるペアは、同じ時刻でデータ複製の中止や再開をすることができる。一貫性グループが指定された場合、リモートコピー処理部129は、一貫性グループに含まれるペアから、ストレージ1のボリュームを特定し、これらのボリュームを構成するプールを特定し、同一プールで構成されることを条件にボリュームをグループ化する。
 構成したグループの情報は、グループ情報128に記録される。
 ステップS2aにおいて、リモートコピー処理部129は、グループの一つのボリューム (例えばボリューム14a) を先頭ボリュームとし、このボリュームをフルバックアップ対象として複製し、バックアップストレージ3のボリューム (例えばボリューム34a) として作成する。
 ステップS3aにおいて、リモートコピー処理部129は、次の複製処理対象ボリュームとしてボリューム14bを選択する。この選択したボリューム14bに対し、重複情報60をメモリ12に作成する。ここで、重複情報60の生成処理は、図12を用いて説明した重複情報出力部123と同じであるが、本実施形態では、重複情報60をバックアップサーバ2へ送信することに代えて、重複情報60をメモリ12上に作成する。
 ステップS4aにおいて、リモートコピー処理部129は、重複情報60に基づき、ボリューム14bをボリューム34bへ複製する。この複製処理は、図12を用いて説明したデータ転送部224の処理内容と基本的には同じである。相違点のみを以下に述べる。
 ステップSP502において、重複情報60を、ステップS3a (図14) で作成したメモリ22上の重複情報60とする。
 ステップSP506において、データ転送処理の主体が、ストレージ1のリモートコピー処理部129である。
 ステップSP510において、重複情報60を、保存しなくてもよい。
 図15に戻り、ステップS5aにおいて、リモートコピー処理部129は、バックアップストレージ3に対し、未複製の論理ブロックを、複製済みのボリュームの論理ブロックからコピーするように、指示する。この処理は、図12で説明したステップSP509と同様に処理できる。
 以上が、第二の実施形態である。本実施形態により、重複排除済みボリュームを効率的にバックアップストレージへ複製するリモートコピー機能が実現できる。
 次に、第三の実施例について説明する。第三の実施例は、第二の実施例と同様に、重複排除済みボリュームをストレージ1が主体となって効率的にリモートコピーする。
 図16は、第三の実施例における計算機システム102を説明する図である。
 第三の実施例では、ボリューム14x (ボリューム番号X) の過去のある時点での内容が、バックアップストレージ3にボリューム34xとして複製済みである点が、第二の実施例とは異なる。ボリューム14xは、ボリューム14a, 14b, 14cと同様に、プール15から構成されている。マッピングテーブル126、重複管理テーブル127は、それぞれ図3、図4に示したように、ボリューム14xに関する情報を含んでいる。
 第三の実施例におけるリモートコピー処理部129の処理の流れを、記号S1b, S1.1b, S4b,S5bを使い説明する。これらの記号は、処理ステップを表している。
 第三の実施例では、ボリューム14aはボリューム34a、ボリューム14bはボリューム34b、ボリューム14cはボリューム34c、ボリューム14xはボリューム34xへそれぞれ複製する構成が、ストレージ1に予めなされているとする。また、前述のように、ボリューム34xは、ボリューム14xの過去のある時点での複製である。
 ステップS1bにおいて、リモートコピー処理部129は、ユーザの指示に従い、ボリューム14a, 14b, 14cからなるグループを構成する。なお、グループの構成方法に様々な方法を取ることができることは、第二の実施例の説明のとおりである。
 ステップS1.1bにおいて、リモートコピー処理部129は、ボリューム34xが、ボリューム14xの過去のある時点での複製であることを特定し、ボリューム14xが、ボリューム34xの時点から更新された箇所を特定し、更新情報61を構成する。この処理について、以下に詳細に示す。
 まず、リモートコピー処理部129は、構成情報(ボリューム)125aを参照し、複製対象のボリューム14a, 14b, 14cを構成するプール15のプール番号を特定する。次に、このプール番号のプールから構成される他ボリュームを特定する。これにより、ボリューム14xが見つかる。
 次に、ストレージ1は、ペア構成情報により、ボリューム14xが、バックアップストレージ3のボリューム34xとペアの関係にあることを認識する。
 ところで、リモートコピー機能においては、コピー処理の効率化のため、バックアップストレージ3側のボリューム複製に対する、ストレージ1側のボリュームの更新箇所を管理することが広く行なわれている。実際、リモートコピーによる複製を作成した後、ホスト計算機5からライト要求が複製元のボリュームにあった場合は、ライト要求の対象の論理アドレスを、ビットマップデータ構造等を使いメモリ22に記録しておくことができる。そこで、上述の更新情報61は、例えばこのビットマップをメモリ22内に複製したものとする。このビットマップを参照することで、ボリューム14aとボリューム34aの各論理アドレスについて、二つのボリューム間で同じデータを記録しているか、ボリューム14aに新しいデータが記録されているかを特定できる。
 ステップS3bにおいて、リモートコピー処理部129は、ボリューム14aに対する重複情報60をメモリ22に生成する。この処理は、基本的には、実施例2のステップS3bと同じである。異なる点は、ステップS1.1bで特定したボリューム14xがグループに含まれると仮定し、ボリューム14xの情報を排除しない点である。これにより、重複情報60には、ボリューム14xの論理ブロックとの重複も記録されることになる。
 ステップS4bにおいて、リモートコピー処理部129は、実施例2のステップS4aと同様に、ボリューム14aの部分的な複製をボリューム34aに構成する。ただし、実施例2とは異なり、複製が必要か否かの判定には、ボリューム34xの利用が考慮される。すなわち、複製が必要と判定する具体的な条件は以下のとおりである。
(1) 処理対象の論理ブロックが、重複する論理ブロックでない。または
(2) 処理対象の論理ブロックが、重複する論理ブロックであるが、このバックアップラウンドの現時点までに送信された論理ブロックと重複していなく、かつ、重複論理ブロックがボリューム14xに格納されている場合には、当該論理ブロックが、ボリューム34xの作成後に更新されている。
 この条件により、ボリューム34xに複製済みの論理ブロックと重複する論理ブロックが転送されないこととなり、より効率的な複製が可能となる。
 ステップS5bにおいて、リモートコピー処理部129は、実施例2のステップS5aと同様に、未複製の論理ブロックを、複製済みのボリュームの論理ブロックからコピーするように、指示する。ここで、実施例2での処理に加え、ステップS5bでは、ボリューム14xと重複する論理ブロックで、複製しなかった論理ブロックについては、ボリューム34xからコピーするように指示する。
 以上の処理により、複製済みボリュームがバックアップストレージ3に格納済みの場合には、さらに効率的なリモートコピーが可能である。
 次に、別の非同期リモートコピー方式における本発明の実施形態を説明する。
 図17は、本発明の第四の実施形態における計算機システム103を説明する図である。実施例2と同様にストレージ1のボリューム14が、バックアップストレージ3のボリューム34へ複製される構成となっているが、ボリューム複製の方式が実施例2とは異なる。本実施形態におけるボリュームの複製は、ジャーナルボリューム16および副ジャーナルボリューム36を介して行なわれる。ジャーナルボリューム16および副ジャーナルボリューム36は、それぞれストレージ1およびバックアップストレージ3の複数のドライブ13および33から構成される論理的な記憶領域である。なお、実施例4では、ボリューム14a、14b、34a、34bのほかにもボリュームが構成されていてもよいが、図17では記載を省略している。
 ジャーナルボリューム16および副ジャーナルボリューム36を介したリモートコピーの方式について、まず簡単に説明する。
 ジャーナルボリューム16には、バックアップストレージ3のコピー先ボリュームに対するデータ格納を、ジャーナルというコマンド形式で記録する。ジャーナルは、例えば、”ボリューム14aのアドレス000に、データ1234を記録する”といった意味に解釈される。ジャーナルは時系列順に、ジャーナルボリューム16に記録される。バックアップストレージ3は、ジャーナルボリューム16に記録されたジャーナルを、時系列順に読み出し、副ジャーナルボリューム36へ格納する。その後、バックアップストレージ3は、副ジャーナルボリューム36からジャーナルを時系列順に読み出し、ジャーナルを解釈し、解釈に従ってボリューム34を更新する。
 ストレージ1は、ボリューム14aをバックアップストレージ3へ複製する場合、ボリューム14aの全データを論理アドレス順に読み出し、ジャーナルの形式でジャーナルボリューム16へ格納する。すると、ジャーナルはバックアップストレージ3により読み出され、上述に従い、最終的にはボリューム34aにボリューム14aの複製が作られる。
 ボリューム14にホスト計算機5からのライト要求がある場合、ライト要求によるデータがボリューム14に格納された上で、ジャーナルボリューム16にも記録される。
 本実施例におけるリモートコピー処理の流れを、記号S2c, S3c, S4cを使って説明する。これらの記号は、処理の流れを示す。
 ステップS2cにおいて、リモートコピー処理部129は、ボリューム14aの先頭の論理ブロックから順に、データをジャーナルボリューム16へ記録する。ジャーナルボリューム16の構成を、図18を参照して説明する。
 ジャーナルボリューム16は、ボリューム14等と同様に、論理アドレスを使用してランダムアクセス可能な論理的な記憶領域であり、複数のドライブ13をRAID技術等により組み合わせて構成されている。リモートコピー処理部129は、ジャーナルボリューム16の先頭から順に、バックアップストレージ3へ複製すべきデータを記録していく(矢印17)。このとき、ジャーナルボリューム16への記録形式として、指示番号160, 161, 162, 163に示すようなジャーナルを用いる。ジャーナルは、複数の属性情報からなる。例えば、ジャーナル160を参照すると、ジャーナルの属性情報として、ボリューム番号1601、論理ブロック番号1602、コマンド1603、データ1604、データの格納順序に関する情報を少なくとも含む。ボリューム番号1601は、複製元ボリュームのボリューム番号、論理ブロック番号1602は複製元論理ブロックの論理ブロック番号、データ1604は、複製元論理ブロックに格納されているデータ (図18ではビット配列として表現) である。コマンド1603には”WR”と記録されているが、これは、ボリューム番号1601、論理ブロック番号1602で指示されるボリュームに、データ1604に記録されたデータが格納済みであることを示し、したがって、ボリューム14aの複製先であるボリューム34aにも、この状態を復元しなければならないことを示す。
 一方、ジャーナル163を参照すると、そのコマンド1633には”DUP”と記録され、データ1634には、ボリューム14aの論理ブロック001を示す識別情報”(A, 001)”が記録されている。これは、ボリューム番号 1631、論理ブロック番号 1632の各属性で指示される論理ブロック (B, 001) が、論理ブロック (A, 001)と重複していることを示し、したがって、バックアップストレージ3は、ボリューム34bの論理ブロック001を、ボリューム34aの論理ブロック001のデータで復元しなければならないことを示す。
 ジャーナルは、コマンドの種類に応じてサイズを変えることとする。例えば、コマンドが”WR”の場合には、論理ブロック全体を収容可能なサイズ(論理ブロックを8キロバイトとするならば、8キロバイト + その他の属性のサイズ) とし、コマンドが”DUP”の場合には、より小さいサイズ (例えば、論理ブロック識別情報を16バイトとするならば、16バイト+その他の属性のサイズ)とする。これによって、重複する論理ブロックについてはデータ転送量を削減することができる。
 バックアップストレージ3は、ジャーナルボリューム16から時系列でジャーナルを読み出し、副ジャーナルボリューム36へ同じ順で記録する (矢印37)。バックアップストレージ3は、副ジャーナルボリューム36へ複製されたこれらのジャーナルを逐次解釈し、その結果をボリューム34へ反映していく。バックアップストレージ3におけるこの一連の処理は、リモートコピー処理部329により実行される。
 図17に戻る。ステップS3cにおいて、ストレージ1は、ボリューム14bに対する重複情報60を、メモリ22上に構成する。重複情報60は、図5に示したものと同じである。
 ステップS4cにおいて、リモートコピー処理部129は、ボリューム14bの論理ブロックを、論理ブロックの番号の昇順に、ジャーナルボリューム16へ記録していく。ここで、リモートコピー処理部129は、重複情報60を参照し、以下の条件に一致する論理ブロックについては、図17のジャーナル160に例示した”WR”コマンドではなく、ジャーナル163に例示した”DUP”コマンドのジャーナルとする。
(1) 重複した論理ブロックである。かつ
(2) 重複する他方の論理ブロックが、このバックアップラウンドの現時点までに、ジャーナルボリューム16に”WR”コマンドとともに記録されている。かつ
(3) 重複する他方の論理ブロックが、このバックアップラウンドの現時点までに、ホスト計算機5からのライト要求により更新されていない。
 上記条件に一致する場合は、ジャーナルのデータ属性 (例えば、1634) には、重複する他方の論理ブロック番号を記録する。
 (3)の判定には、例えば実施例3で示したビットマップデータ構造を用いた更新情報を使うことができる。
 以上、第四の実施形態によれば、ジャーナルボリュームを介したリモートコピー処理においても、重複排除済みボリュームを考慮した効率的なデータ転送が可能である。
 以上、様々な実施形態について述べたが、本発明は、バックアップストレージにテープ装置を用いることでも実施できる。本発明は、重複排除機能を備えたストレージを含む計算機システムに適用可能である。
 1:ストレージ
 2:バックアップサーバ
 3:バックアップストレージ
 4:ネットワーク
 5:ホスト計算機

Claims (12)

  1.  第1のストレージ、第2のストレージ、及び、バックアップサーバを含む計算機システムであって、
     前記第1のストレージは、ホストに提供する複数のボリュームの各々を、複数の論理ブロックに分割して管理し、
     前記第1のストレージは、前記複数の論理ブロックに各々格納されるデータの重複関係を重複管理情報として管理し、
     前記第1のストレージは、前記複数のボリュームのうちの二以上のボリュームをグループとして管理し、
     前記第1のストレージは、前記重複管理情報に基づいて、前記グループに属する一のボリュームについて、前記複数の論理ブロックごとに、前記グループに属する他のボリューム内の論理ブロックに格納されるデータとの重複関係を示す重複情報を作成して前記バックアップサーバに送信し、
     前記バックアップサーバは、前記重複情報を参照し、前記グループに属するボリューム内の第1の論理ブロックと重複する第2の論理ブロックを特定し、当該第1の論理ブロックに対応するデータが前記第2のストレージへ送信済みである場合には、当該第2の論理ブロックに対応するデータを前記第2のストレージへ送信しないことを特徴とする、計算機システム。
  2.  前記バックアップサーバは、前記第2のストレージへ送信しないと判定した前記第2の論理ブロックに対応するデータについて、前記第2のストレージに格納されている前記第1の論理ブロックに対応するデータを複製して格納することを前記第2のストレージに対して指示することを特徴とする、
     請求項1に記載の計算機システム。
  3.  前記第1のストレージは、一以上の記憶媒体により構成される物理記憶領域をプールとして管理し、当該プールに構成される複数の物理ブロックのうちの一の物理ブロックを、前記複数の論理ブロックのいずれかに動的に割当てることを特徴とする、
     請求項1に記載の計算機システム。
  4.  前記バックアップサーバは、前記グループに属する第1のボリュームに格納されたデータを、前記第2のストレージに複製し、
     前記バックアップサーバは、前記重複情報を参照し、前記グループに属する第2のボリューム内の前記第2の論理ブロックが、前記第1のボリューム内の前記第1の論理ブロックと重複することを特定し、当該第2の論理ブロックに対応するデータを前記第2のストレージへ送信しないことを特徴とする、
     請求項1に記載の計算機システム。
  5.  前記バックアップサーバは、前記第2のストレージに複製された、前記グループに対応する複数のボリュームのうちあるボリュームを選択して、当該ボリュームに格納されたデータを前記第1のストレージにリストアし、
     前記バックアップサーバは、リストアの際、前記重複情報を参照し、前記第1のストレージにリストアしたボリュームに含まれる第3の論理ブロックが、前記グループに対応して前記第2のストレージ内で作成された他のボリューム内の第4の論理ブロックと重複することを特定し、当該第4の論理ブロックに対応するデータを前記第1のストレージへ送信しないことを特徴とする、
     請求項1に記載の計算機システム。
  6.  第1及び第2のストレージ含む計算機システムであって、
     前記第1のストレージは、ホストに提供する複数のボリュームの各々を、複数の論理ブロックに分割して管理し、
     前記第1のストレージは、前記複数の論理ブロックに各々格納されるデータの重複関係を重複管理情報として管理し、
     前記第1のストレージは、前記複数のボリュームのうちの二以上のボリュームをグループとして管理し、
     前記第1のストレージは、前記重複管理情報に基づいて、前記グループ内のあるボリュームについて、前記複数の論理ブロックごとに、前記グループに属する他のボリューム内の論理ブロックとの重複関係を示す重複情報を管理し、
     前記第1のストレージは、前記重複情報を参照し、前記グループに属するボリューム内の第1の論理ブロックと重複する第2の論理ブロックを特定し、当該第1の論理ブロックに対応するデータが前記第2のストレージへ送信済みである場合には、当該第2の論理ブロックに対応するデータを前記第2のストレージへ送信しないことを特徴とする、計算機システム。
  7.  前記第1のストレージは、前記グループに属するボリュームである第3のボリュームを備え、
     前記第2のストレージは、前記第3のボリュームのある時点での複製である第4のボリュームを備え、
     前記第1のストレージは、前期複数の論理ブロックごとの前記重複情報を参照し、前記第2の論理ブロックに重複する前記第1の論理ブロックが前記第3のボリュームに含まれ、当該第2の論理ブロックが第4のボリュームへ複製された時刻から更新されていない場合に、第2の論理ブロックを第二のストレージへ送信しないとさらに判定する、
     請求項6記載の計算機システム。
  8.  前記第2のストレージは、前記第1のストレージが前記第2のストレージへ送信しないと判定した前記第2の論理ブロックに対応するデータについて、当該第2のストレージに格納されている前記第1の論理ブロックに対応するデータを複製して格納することを特徴とする、
     請求項6に記載の計算機システム。
  9. 前記第1のストレージは、一以上の記憶媒体により構成される物理記憶領域をプールとして管理し、当該プールに構成される複数の物理ブロックのうちの一の物理ブロックを、前記複数の論理ブロックのいずれかに動的に割当てることを特徴とする、
     請求項6に記載の計算機システム。
  10. 前記第1のストレージは、前記グループに属する第1のボリュームに格納されたデータを、前記第2のストレージに複製し、
     前記第1のストレージは、前記重複情報を参照し、前記グループに属する第2のボリューム内の前記第2の論理ブロックが、前記第1のボリューム内の前記第1の論理ブロックと重複することを特定し、当該第2の論理ブロックに対応するデータを前記第2のストレージへ送信しないことを特徴とする、
     請求項8に記載の計算機システム。
  11.  前記第2のストレージは、前記第2のストレージに複製された、前記グループに対応する複数のボリュームのうちあるボリュームを選択して、当該ボリュームに格納されたデータを前記第1のストレージにリストアし、
     前記第2のストレージは、リストアの際、前記重複情報を参照し、前記第1のストレージにリストアしたボリュームに含まれる第3の論理ブロックが、前記グループに対応して前記第2のストレージ内で作成された他のボリューム内の第4の論理ブロックと重複することを特定し、当該第4の論理ブロックに対応するデータを前記第1のストレージへ送信しないことを特徴とする、
     請求項6に記載の計算機システム。
  12.  複数の第1のボリュームとジャーナルボリュームを備える第1のストレージと、
     複数の第2のボリュームと副ジャーナルボリュームを備える第2のストレージとを少なくとも含む計算機システムであって、
     前記第2のストレージは、前記ジャーナルボリュームからジャーナルを時系列にしたがって読み出して前記副ジャーナルボリュームへ格納し、前記副ジャーナルボリュームからジャーナルを時系列にしたがって読み出して、ジャーナルに含まれるコマンドに従って前記第2のボリュームにデータを記録し、
     前記第1のストレージは、ホストに提供する複数のボリュームの各々を、複数の論理ブロックに分割して管理し、
     前記第1のストレージは、前記複数の論理ブロックに各々格納されるデータの重複関係を重複管理情報として管理し、
     前記第1のストレージは、前記重複管理情報に基づいて、前記複数のボリュームについて、前記複数の論理ブロックごとに、他のボリューム内の論理ブロックとの重複関係を示す重複情報を管理し、
     前記第1のストレージは、前記論理ブロックごとの前記重複情報を参照し、第1の論理ブロックと重複する第2の論理ブロックを特定し、前記第2の論理ブロックに関して前記ジャーナルボリュームに復元を指示するコマンドとデータからなる第1のジャーナルを記録している場合であって、第1のジャーナルを記録した時刻から前記第2の論理ブロックに更新がない場合、前記第1の論理ブロックに関して前記第2の論理ブロックからの複製を指示するコマンドを含むジャーナルを前記ジャーナルボリュームに記録することを特徴とする、計算機システム。
PCT/JP2015/064401 2015-05-20 2015-05-20 重複排除ストレージにおけるボリュームバックアップ・リストア方法 WO2016185573A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/064401 WO2016185573A1 (ja) 2015-05-20 2015-05-20 重複排除ストレージにおけるボリュームバックアップ・リストア方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/064401 WO2016185573A1 (ja) 2015-05-20 2015-05-20 重複排除ストレージにおけるボリュームバックアップ・リストア方法

Publications (1)

Publication Number Publication Date
WO2016185573A1 true WO2016185573A1 (ja) 2016-11-24

Family

ID=57319568

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/064401 WO2016185573A1 (ja) 2015-05-20 2015-05-20 重複排除ストレージにおけるボリュームバックアップ・リストア方法

Country Status (1)

Country Link
WO (1) WO2016185573A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018106272A (ja) * 2016-12-22 2018-07-05 日本電気株式会社 ストレージ装置、ストレージ装置のバックアップ方法、ストレージ装置のバックアップシステム及びストレージ装置の制御プログラム
US10866743B2 (en) 2018-02-02 2020-12-15 Fujitsu Limited Storage control device using index indicating order of additional writing of data, storage control method using index indicating order of additional writing of data, and recording medium recording program using index indicating order of additional writing of data
US11449263B1 (en) 2021-07-12 2022-09-20 Hitachi, Ltd. Backup system and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128845A (ja) * 2010-12-16 2012-07-05 Internatl Business Mach Corp <Ibm> データ処理のための方法、システム、およびコンピュータ・プログラム
JP2014522044A (ja) * 2011-08-30 2014-08-28 インターナショナル・ビジネス・マシーンズ・コーポレーション レプリケーション元ストレージからレプリケーション先ストレージにオブジェクトを複製するためのコンピュータ・プログラム製品、システム、および方法(レプリケーション元サーバからレプリケーション先サーバへのデータ・オブジェクトのレプリケーション)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128845A (ja) * 2010-12-16 2012-07-05 Internatl Business Mach Corp <Ibm> データ処理のための方法、システム、およびコンピュータ・プログラム
JP2014522044A (ja) * 2011-08-30 2014-08-28 インターナショナル・ビジネス・マシーンズ・コーポレーション レプリケーション元ストレージからレプリケーション先ストレージにオブジェクトを複製するためのコンピュータ・プログラム製品、システム、および方法(レプリケーション元サーバからレプリケーション先サーバへのデータ・オブジェクトのレプリケーション)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018106272A (ja) * 2016-12-22 2018-07-05 日本電気株式会社 ストレージ装置、ストレージ装置のバックアップ方法、ストレージ装置のバックアップシステム及びストレージ装置の制御プログラム
US10459654B2 (en) 2016-12-22 2019-10-29 Nec Corporation Storage apparatus, storage apparatus backup method, storage apparatus backup system, and storage medium
US10866743B2 (en) 2018-02-02 2020-12-15 Fujitsu Limited Storage control device using index indicating order of additional writing of data, storage control method using index indicating order of additional writing of data, and recording medium recording program using index indicating order of additional writing of data
US11449263B1 (en) 2021-07-12 2022-09-20 Hitachi, Ltd. Backup system and method
US11762574B2 (en) 2021-07-12 2023-09-19 Hitachi, Ltd. Backup system and method

Similar Documents

Publication Publication Date Title
US7975115B2 (en) Method and apparatus for separating snapshot preserved and write data
US8204858B2 (en) Snapshot reset method and apparatus
US7308528B2 (en) Virtual tape library device
US7716183B2 (en) Snapshot preserved data cloning
US7873809B2 (en) Method and apparatus for de-duplication after mirror operation
WO2018040591A1 (zh) 一种远程数据复制方法及系统
US9037541B2 (en) Metadata for data storage array
US8850145B1 (en) Managing consistency groups in storage systems
US20190339896A1 (en) System for migrating virtual tape volumes between filesystems
US9218138B1 (en) Restoring snapshots to consistency groups of mount points
US20050097132A1 (en) Hierarchical storage system
US20110246731A1 (en) Backup system and backup method
US9075755B1 (en) Optimizing data less writes for restore operations
US20180267713A1 (en) Method and apparatus for defining storage infrastructure
US11269776B2 (en) Direct input/output path to compressed data
US20130305003A1 (en) Storage apparatus and data management method
US9063892B1 (en) Managing restore operations using data less writes
JP2021140402A (ja) ストレージシステム及びその制御方法
JP6561765B2 (ja) ストレージ制御装置およびストレージ制御プログラム
WO2016185573A1 (ja) 重複排除ストレージにおけるボリュームバックアップ・リストア方法
US20150261465A1 (en) Systems and methods for storage aggregates and infinite storage volumes
US10089125B2 (en) Virtual machines accessing file data, object data, and block data
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
JP2004185644A (ja) 記憶装置システム
JP2007172365A (ja) データ複製システム、複製データ処理プログラムおよび複製データ処理方法

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15892573

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP