Data control device and data control method
The data control device efficiently restores data by utilizing snapshots to back up and restore volumes in the cloud, addressing the challenges of incremental data restoration by reducing data transfer and processing time.
Patent Information
- Application Number
- JP2025035689
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-03-06
- Publication Date
- 2025-05-13
- Estimated Expiration
- 2042-07-13
AI Technical Summary
The existing technologies face challenges in efficiently restoring data backed up incrementally to the cloud, as each generation of backup data needs to be acquired and restored in order, leading to increased data transfer, processing, and time.
A data control device connected to a cloud system via a network, which backs up data as objects to an object store and uses snapshots to efficiently restore volumes by determining if a snapshot is stored for the first time to be restored.
This approach allows for easy and appropriate restoration of volumes, reducing the amount of data transferred and processing time, while also minimizing the need for extensive data acquisition from the cloud.
Smart Images

Figure 2025074361000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a technique for restoring a specified volume. [Background technology]
[0002] In recent years, an operational form known as hybrid cloud has emerged, in which on-premise IT assets and public cloud services are combined according to cost and use. In terms of storage, on-premise devices offer high speed I / O access, but the bit cost is high and capacity planning is required in advance. In contrast, cloud services are characterized by low bit cost and no need for capacity planning, although performance is limited by distance and communication bandwidth.
[0003] A typical cloud service is an object store service that stores data in object format and accesses it via a REST API. Object stores have an almost unlimited capacity, so no prior capacity planning is required, and they have a lower bit cost than other cloud storage services.
[0004] One possible use of object stores is as a backup for on-premise storage devices. For example, Patent Literature 1 discloses a method in which snapshot technology is used to find target data from the difference between the first and second snapshots, and deduplication is performed by comparing the data with transferred blocks, and data including multiple deduplication blocks is transferred as an object. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] US Patent Application Publication No. 2020 / 0285410 Summary of the Invention [Problem to be solved by the invention]
[0006] When restoring using data backed up in the cloud, for example, the following problem occurs: To restore using backup data that is an incremental backup of data, it is necessary to acquire the backup data one by one starting from the oldest generation, and restore using that backup data. This is because when incremental backups are made, data that has already been backed up is not included in the backup data of other generations.
[0007] In this way, if backups are continued, for example, at the time of the 100th backup, data for 100 generations will be accumulated, and at the time of restoration, these must be acquired in order and restored, increasing the amount of data to be transferred, increasing the amount of processing required up to restoration, and increasing the processing time.In contrast, Patent Document 1 does not disclose any method for restoring data.
[0008] The present invention has been made in consideration of the above circumstances, and an object of the present invention is to provide a technique that can easily and appropriately restore a volume. [Means for solving the problem]
[0009] In order to achieve the above-mentioned object, a data control device according to one aspect is connected via a network to a cloud system that provides an object store, and backs up backup data of a specified volume to the object store as an object, the data control device having a processor that determines whether the data control device stores a snapshot related to a volume at a first point in time to be restored, and if it determines that the snapshot is stored, restores the volume at the first point in time using the snapshot. Effect of the Invention
[0010] According to the present invention, a volume can be restored easily and appropriately. [Brief description of the drawings]
[0011] [Figure 1] FIG. 1 is a diagram showing the overall configuration of a computer system according to the first embodiment. [Diagram 2] FIG. 2 is a configuration diagram of a cloud system according to the first embodiment. [Diagram 3] FIG. 3 is a configuration diagram of an I / O control program according to the first embodiment. [Figure 4] FIG. 4 is a configuration diagram of a storage management program according to the first embodiment. [Figure 5A] FIG. 5A is a diagram illustrating the configuration of a logical volume according to the first embodiment. [Figure 5B] FIG. 5B is a diagram illustrating updating of a logical volume according to the first embodiment. [Figure 6] FIG. 6 is a diagram illustrating the acquisition of a snapshot of a logical volume according to the first embodiment. [Figure 7] FIG. 7 is a configuration diagram of a mapping table according to the first embodiment. [Figure 8A] FIG. 8A is a diagram showing a registration store screen according to the first embodiment. [Figure 8B] FIG. 8B is a diagram showing a new store registration screen according to the first embodiment. [Figure 9] FIG. 9 is a flowchart of an object store registration process according to the first embodiment. [Figure 10] FIG. 10 is a diagram showing a backup schedule setting screen according to the first embodiment. [Figure 11] FIG. 11 is a flowchart of the backup process according to the first embodiment. [Figure 12A] FIG. 12A is a diagram illustrating backup data in a full backup according to the first embodiment. [Figure 12B]FIG. 12B is a diagram illustrating backup data in an incremental backup according to the first embodiment. [Figure 12C] FIG. 12C is a diagram illustrating backup data in a differential backup according to the first embodiment. [Figure 13] FIG. 13 is a flowchart of the object conversion and transmission process according to the first embodiment. [Figure 14] FIG. 14 is a diagram illustrating data stored in an object store of the object storage system according to the first embodiment. [Figure 15] FIG. 15 is a configuration diagram of metadata according to the first embodiment. [Figure 16A] FIG. 16A is a first example of catalog data according to the first embodiment. [Figure 16B] FIG. 16B is a second example of the catalog data according to the first embodiment. [Figure 17] FIG. 17 is a diagram showing a restore selection screen according to the first embodiment. [Figure 18] FIG. 18 is a flowchart of the backup list acquisition process according to the first embodiment. [Figure 19] FIG. 19 is a flowchart of the restore process according to the first embodiment. [Figure 20] FIG. 20 is a flowchart of the backup data acquisition and restoration process according to the first embodiment. [Figure 21] FIG. 21 is a flowchart of an object reception and conversion process according to the first embodiment. [Figure 22A] FIG. 22A is a diagram illustrating a first specific example of the restore process according to the first embodiment. [Figure 22B] FIG. 22B is a diagram illustrating a second specific example of the restore process according to the first embodiment. [Figure 22C] FIG. 22C is a diagram illustrating a third specific example of the restore process according to the first embodiment. [Figure 22D]FIG. 22D is a diagram illustrating a fourth specific example of the restore process according to the first embodiment. [Figure 23] FIG. 23 is a diagram showing the configuration of a catalog data table according to a modified example of the first embodiment. [Figure 24] FIG. 24 is a diagram showing a backup schedule setting screen according to the second embodiment. [Diagram 25] FIG. 25 is a flowchart of a backup process according to the second embodiment. [Figure 26] FIG. 26 is a flowchart of the old backup set disposal process according to the second embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] Some embodiments will be described with reference to the drawings. Note that the embodiments described below do not limit the invention according to the claims, and all of the elements and combinations thereof described in the embodiments are not necessarily essential to the solution of the invention.
[0013] First, the computer system according to the first embodiment will be described.
[0014] FIG. 1 is a diagram showing the overall configuration of a computer system according to the first embodiment.
[0015] The computer system 1 includes a storage system 10 as an example of a data control device, a cloud system 20, a server group 11, a terminal 17a, a terminal 17b, and the like.
[0016] The terminal 17b and the cloud system 20 are connected via a network. The server group 11 and the storage system 10 are connected via a storage network 12. The storage system 10 and the cloud system 20 are connected via a dedicated line 13a or an Internet line 13b. Furthermore, the storage system 10 and the terminal 17a are connected via a LAN (Local Area Network) 14. The storage system 10 and the terminal 17a are connected to the cloud system 20 via the LAN 14 and the dedicated line 15a or the Internet line 15b.
[0017] The cloud system 20 provides various services to the storage system 10 and the like. The cloud system 20 has an operation management system 18 that manages the operation of a plurality of storage systems including the storage system 10. The operation management system 18 performs processing for managing the operation of the storage system 10.
[0018] The terminal 17b receives input of management instructions for the storage systems from an administrator who manages a plurality of storage systems 10, and transmits the management instructions to the operation management system .
[0019] The terminal 17a receives an operation instruction from an operator who operates the storage system 10, and transmits the operation instruction to the storage system 10.
[0020] The server group 11 performs read and write I / O (Input / Output) on the logical volumes provided by the storage system 10 to execute various processes.
[0021] The storage system 10 is, for example, a disk array device that provides data protection using RAID (Redundant Array of Independent (or Inexpensive) Disks) and a data copy function inside and outside the storage system.
[0022] The storage system 10 comprises multiple redundant I / O control subsystems 150 (150a, 150b), a storage management subsystem 160, multiple host interfaces (I / F) 110a, 110b, network interfaces 120a, 120b, connection interfaces 131, 132, and multiple drives 140 (140-0, 140-1, ..., 140-n).
[0023] The host interfaces 110 a and 110 b communicate with the server group 11 via the storage network 12 .
[0024] The network interfaces 120a and 120b perform communications related to various cloud services provided by the cloud system 20 via the dedicated line 13a or the Internet line 13b.
[0025] The connection interfaces 131, 132 can be connected to other storage systems 170, 180, and communicate with the connected storage systems. For example, the storage system 10 can control the logical volumes 171, 172 provided by the connected storage system 170 as if they were its own logical volumes. Furthermore, the storage system 10 can copy volumes between the connected storage system 180.
[0026] The drive 140 is a physical storage device such as a solid state drive (SSD) or a hard disk drive (HDD).
[0027] The I / O control subsystem 150 configures one or more logical volumes based on the storage areas of the connected drives 140, and provides the logical volumes to the server group 11. The I / O control subsystem 150 issues read and write I / O to the drives 140 based on read and write I / O from the server group 11, and executes I / O processing.
[0028] The I / O control subsystem 150 includes a processor 151 and a memory 152. The processor 151 executes various processes in accordance with programs stored in the memory 152.
[0029] The memory 152 is, for example, a RAM (RANDOM ACCESS MEMORY), and stores necessary information and the programs executed by the processor 151. The memory 152 stores an I / O control program P150.
[0030] The storage management subsystem 160 executes processing for performing various settings and monitoring of the storage system 10. The storage management subsystem 160 receives instructions from an operator via the terminal 17a via the LAN 14. The storage management subsystem 160 stores a storage management program P160, and executes various processes by an internal processor executing the storage management program P160. The storage management subsystem 160 also receives instructions from an operation management system 18 running on the cloud system 20 via the dedicated line 15a or the Internet line 15b, and executes processing according to the instructions. In the example of FIG. 1, the storage management subsystem 160 is provided inside the storage system 10, but the storage management subsystem 160 may be provided outside the storage system 10, and a part of the storage management subsystem 160 may be operated on the cloud system 20.
[0031] Next, the cloud system 20 will be described.
[0032] FIG. 2 is a configuration diagram of a cloud system according to the first embodiment.
[0033] The cloud system 200 is configured with multiple servers and provides various microservices such as a data store service, a computing service, an application service, etc. The cloud system 200 includes a user authentication and access authority management system 210, a database system 220, an object storage system 230, and a management console system 290.
[0034] The user authentication and access authority management system 210 provides a user authentication and access authority management service. The user authentication and access authority management system 210 issues an access ID and a secret key for each user who uses various services, in accordance with instructions from a subscriber of the service of the cloud system 20. The user authentication and access authority management system 210 also defines the authority for the access ID and an access permission policy for each service resource. The user authentication and access authority management system 210 controls access by users and various services.
[0035] The database system 220 provides a SQL database or a NoSQL database.
[0036] The object storage system 230 provides an object store that constitutes unlimited-capacity storage in which objects can be read and written using a REST API.
[0037] The management console system 290 provides a console service that starts / stops the use of various services and displays the usage status. For example, a contractor can access the user authentication and access authority management system 210 through the console service of the management console system 290 to create a user's access ID or check the usage capacity of the object store service.
[0038] Next, the I / O control program P150 that is stored and executed in the I / O control subsystem 150 of the storage system 10 will be explained.
[0039] FIG. 3 is a configuration diagram of an I / O control program according to the first embodiment.
[0040] The I / O control program P150 includes a physical volume control function P1510, a logical volume control function P1520, a point-in-time copy (snapshot acquisition) function P1530, a mapping difference extraction function P1531, a data transfer function P1532, an object metadata generation function P1533, a catalog generation function P1534, an object conversion function P1535, an API communications management function P1536, a restore planner P1537, a catalog acquisition function P1538, and an object metadata acquisition function P1539.
[0041] The physical volume control function P1510 is a function that controls multiple drives 140, and performs drive I / O control, including fault processing for drive paths and the drives themselves.
[0042] The logical volume control function P1520 configures logical volumes via a capacity virtualization mechanism, and performs host I / O control and data copying.
[0043] The point-in-time copy function P1530 is a function that copies and saves a still image (called a snapshot) of a logical volume in cooperation with the logical volume control function P1520. The point-in-time copy function P1530 also has a function for copying the saved snapshot back to the original volume.
[0044] The mapping difference extraction function P1531 obtains the differences between the mapping data of snapshots.
[0045] The data transfer function P1532 copies data to and from the memory and buffers of the network interfaces 120a, 120b.
[0046] The object metadata generation function P1533 generates metadata (meta information) that contains the correspondence between position information within an object and address information of blocks on a logical volume.
[0047] The catalog generation function P1534 creates catalog data (catalog information) that holds various information for each backup generation.
[0048] The object conversion function P1535 converts between binary format data held within the storage system 10 and object format data sent using the REST API, and vice versa.
[0049] The API communication management function P1536 executes communication processing with the cloud system 20 using the REST API via the network interface 120, and also executes various recovery processes related to communication when an error occurs.
[0050] The restore planner P1537 refers to multiple catalog data and snapshots held by the storage system 10 to plan the procedures for restoring data from the cloud system 20.
[0051] The catalog retrieval function P1538 retrieves catalog data from the object store of the cloud system 20 when restoring a volume, and interprets the contents of the retrieved catalog data.
[0052] The object metadata acquisition function P1539 acquires metadata from the object store of the cloud system 20 during restoration, and interprets the contents of the acquired metadata.
[0053] Next, the storage management program P160 that is stored and executed in the storage management subsystem 160 of the storage system 10 will be explained.
[0054] FIG. 4 is a configuration diagram of a storage management program according to the first embodiment.
[0055] The storage management program P160 includes a GUI (Graphical User Interface) and CLI (Command Line Interface) component P1610, a network communication management function P1620, a status monitor P1630, a logging function P1640, a storage volume management function P1650, an object store registration management function P1660, a backup management function P1670, and a restore management function P1680.
[0056] The GUI and CLI component P1610 provides a user interface that makes the management functions of the storage management program P160 available from the terminals 17a, 17b, and the operation management system 18. The GUI and CLI component P1610 provides, for example, an object store registration screen and a backup settings screen.
[0057] The network communications management function P1620 manages the settings of the network interface 120 for connecting to the cloud system 20, and the network settings for connecting to the LAN 14. The network communications management function P1620 sets, for example, the IP address, netmask, gateway, and so forth of the network interface 120.
[0058] The status monitor P1630 displays the health state of the hardware equipped in the storage system 10, the usage capacity and health state of each logical volume and object store, as well as the progress and I / O speed of ongoing processes.
[0059] The logging function P1640 records logs of various processes. For example, the logging function P1640 records the start / end of backup processes, errors, etc.
[0060] The storage volume management function P1650 configures and manages multiple drives 140, storage pools made up of the storage areas of the multiple drives 140, and logical volumes created from the storage areas of the storage pools. Storage pools will be described later using Figure 5A.
[0061] The object store registration and management function P1660 registers and manages information relating to the object store service of the cloud system 20 that the storage system 10 uses.
[0062] The backup management function P1670 manages the settings (backup settings) for backups to the cloud system 20. The restore management function P1680 issues instructions to restore data that has been backed up to the cloud system 20.
[0063] The configuration of the logical volumes in the storage system 10 will now be described.
[0064] FIG. 5A is a diagram illustrating the configuration of a logical volume according to the first embodiment.
[0065] In the storage system 10, a RAID group 300 that performs data protection using RAID is configured from a plurality of drives 140. Data written to the RAID group 300 is distributed and stored in the plurality of drives 140 after undergoing a predetermined calculation according to RAID5, for example.
[0066] Since the RAID group 300 is made up of multiple drives 140, it generally has a large capacity. Therefore, in the storage system 10, a logical management mechanism called a storage pool 600 is defined to manage the capacity of the RAID group 300. The storage pool 600 divides the memory area into multiple blocks of a predetermined block size, and each block is assigned a logical address (pool address) on the storage pool 600 for management. The storage pool 600 may be made up of multiple RAID groups. Furthermore, the storage system 10 may have multiple storage pools.
[0067] The logical volume 500 is a virtual device configured in association with the capacity of a storage pool 600 managed by capacity virtualization (Thin Provisioning) technology. Since the logical volume 500 has no physical entity, when the host writes data to the logical volume 500, the storage system 10 temporarily stores the data in a memory on the I / O control subsystem 150, and then allocates a part of a block of the storage pool 600 to a virtual block of the logical volume 500 and stores the data in that block. The correspondence between the virtual block of the logical volume 500 and the block on the storage pool 600 is managed by a mapping table 400. The mapping table 400 is stored in a memory in the storage management subsystem 160, for example.
[0068] 5A shows an example in which three data units "A", "B", and "C" are written in order to virtual blocks 50, 51, and 52 in logical volume 500. In this example, as shown by the dotted arrows in the figure, blocks 60, 61, and 62 corresponding to pool addresses B00, B01, and B02 in storage pool 600 are assigned to virtual blocks 50, 51, and 52, and the three data units are stored in blocks 60, 61, and 62. In this case, the correspondence between the addresses of virtual blocks 50, 51, and 52 in logical volume 500 and the pool addresses of blocks 60, 61, and 62 in storage pool 600 is recorded in mapping table 400.
[0069] Next, the operation of updating the data in the logical volume 500 will be described.
[0070] Fig. 5B is a diagram illustrating an update of a logical volume according to the first embodiment. Fig. 5B shows an example in which a new data unit 40 "A'" is overwritten by a host (for example, one of the servers in the server group 11) in the virtual block 50 of the logical volume 500 shown in Fig. 5A.
[0071] When the storage system 10 receives a new data unit 40 for virtual block 50 from the host, it reserves a new block 63 (pool address B03) in the storage pool 600, and writes the data unit to the reserved block 63. Next, the storage system 10 associates the pool address B03 of the newly reserved block 63 with the address of the virtual block 50 in the mapping table 400. Note that since block 60 that was associated with virtual block 50 is no longer referenced anywhere, it is determined to be an unused block, and is reclaimed (treated as a free block) at an appropriate time by the storage volume management function P1650, for reuse.
[0072] Next, the acquisition of a snapshot of the logical volume 500 will be described.
[0073] Fig. 6 is a diagram for explaining acquisition of a snapshot of a logical volume according to the first embodiment. Fig. 6 shows an example of acquiring snapshots at several points in time during the process of updating the logical volume 500 shown in Fig. 5A.
[0074] When a snapshot is taken at the point in time when the logical volume 500 (P-VOL) is in the state shown in Fig. 5A, the snapshot taken is snapshot 511 (SS01). Here, a snapshot is a virtual copy of a logical volume at a certain point in time.
[0075] 5A are "A", "B", and "C", and is created by copying the logical volume information in the mapping table 400. Specifically, the snapshot 511 includes information on the correspondence between the addresses of virtual blocks 50, 51, and 52 and the pool addresses B00, B01, and B02 of blocks 60, 61, and 62 in the storage pool 600. In this embodiment, the storage system 10 registers the snapshot 511 in the mapping table 400.
[0076] After that, when the first data unit of the logical volume 500 is rewritten from "A" to "A'" and a snapshot is taken at that time, the snapshot taken becomes a snapshot 512 (SS02). The snapshot 512 indicates that the data units of the logical volume 500 at that time are "A'", "B", and "C", and is created by copying the information of the logical volume 500 in the mapping table 400 at that time. Specifically, the snapshot 512 includes information on the correspondence between the addresses of the virtual blocks 50, 51, and 52 and the pool addresses B03, B01, and B02 of the blocks 63, 61, and 62 in which the data units "A'", "B", and "C" of the storage pool 600 are stored. In this embodiment, the storage system 10 registers the snapshot 512 in the mapping table 400.
[0077] Furthermore, thereafter, when the second data unit of logical volume 500 is overwritten from "B" to "B'", a new block 64 (pool address B04) in storage pool 600 is secured by the operation shown in FIG. 5B, data unit "B'" is written to the secured block 64, and in mapping table 400, the pool address B04 of the newly secured block 64 is associated with the second address of virtual block 50.
[0078] Using snapshots 511 and 512, it is possible to identify the correspondence between the virtual blocks corresponding to the logical volume 500 at the past point in time when the snapshots were taken and the blocks in the storage pool 600, and by obtaining data units from the identified blocks in the storage pool 600, it is possible to restore the logical volume 500 at that point in time.
[0079] Next, the mapping table 400 will be described.
[0080] Fig. 7 is a configuration diagram of a mapping table according to the first embodiment. The mapping table in Fig. 7 is a mapping table in the case where the logical volume 500 and snapshots 511 and 512 are in the state shown in Fig. 6.
[0081] The mapping table 400 includes a column 401 indicating the address (LBA) of a virtual block of the logical volume 500, a column 402 indicating the pool address of a block in the storage pool 600 corresponding to each virtual block of the logical volume 500, and columns 403, 404, etc. corresponding to snapshots 511, 512 of the logical volume 500.
[0082] In column 402 corresponding to logical volume 500, the data units stored in logical volume 500 are "A'", "B'", and "C" as shown in FIG. 6, and therefore B03, B04, B02, ... are stored as the pool addresses of the blocks in storage pool 600 in which these data units are stored.
[0083] In addition, column 403 corresponding to the snapshot corresponds to the state at the time when the data units of logical volume 500 were "A", "B", and "C", and therefore stores B00, B01, B02, ..., which are the pool addresses of the blocks in storage pool 600 in which these data units are stored.
[0084] In addition, column 404 corresponding to the snapshot corresponds to the state at the time when the data units of logical volume 500 were "A'", "B", and "C", and therefore stores B03, B01, B02, ..., which are the pool addresses of the blocks in storage pool 600 in which these data units are stored.
[0085] Here, in storage system 10, the blocks of storage pool 600 registered (referenced) in mapping table 400 are not determined to be unused blocks, and the data units stored in those blocks are maintained in the stored state. Therefore, blocks B00-B04 of storage pool 600 referenced in mapping table 400 are not determined to be unused blocks, and the data units "A", "B", "C", "A'", and "B'" in those blocks are maintained in the stored state.
[0086] Next, a backup process to the cloud system 20 using a snapshot will be described.
[0087] First, a screen in the storage system 10 related to the registration of an object store in the cloud system 20 will be described.
[0088] 8A is a diagram showing a registration store screen according to the first embodiment. The registration store screen D10 is provided to the terminals 17a, 17b etc. by the object store registration management function P1660 and the GUI and CLI component P1610.
[0089] The registered store screen D10 is a screen that is displayed first on, for example, the terminal that issued the request when the storage system 10 receives a request to register a store.
[0090] The registered store screen D10 includes a registered store list display area D100, an add button D111, and a delete button D112.
[0091] The registered store list display area D100 is an area that displays a list of object stores that have already been registered (object store list), and includes registered store selection areas D101, D102, etc. that display registered object stores in a selectable manner.
[0092] The Add button D111 is a button that accepts an instruction to add a new object store or edit a selected object store. When the Add button D111 is pressed while no object store is selected in the registered store list display area D100, the storage system 10 displays a new store registration screen D20 (see FIG. 8B). When the Add button D111 is pressed while an object store is selected in the registered store list display area D100, the storage system 10 displays a screen for editing the selected object store.
[0093] The delete button D112 is a button that accepts the deletion of the object store selected in the registered store list display area D100. When the delete button D112 is pressed, the storage system 10 performs a process of deleting the selected object store.
[0094] FIG. 8B is a diagram showing a new store registration screen according to the first embodiment.
[0095] The new store registration screen D20 has a drop-down box D201, a Tag button D211, an OK button D212, and a Cancel button D213. In the drop-down box D201, cloud services available in the storage system 10 can be selected.
[0096] When a cloud service is selected in the drop-down box D201, the storage system 10 displays setting areas in which input or selection can be made according to the selected cloud service. For example, when an object store is selected in the drop-down box D201, the following setting areas are displayed on the new store registration screen D20: a name setting area D207, a region selection area D202, an access ID input area D203, a secret key input area D204, a bucket name setting area D205, and an encryption selection area D206.
[0097] The name setting area D207 is an area for specifying a registration name for the object store to be created. This registration name is used, for example, when displaying in an object store list. The region selection area D202 is, for example, a drop-down box, and is an area in which the region in which the cloud service is used can be selected. The access ID input area D203 is an area for inputting an access ID required to access the object store to be registered. The secret key input area D204 is an area for inputting a secret key required to access the object store to be registered. The bucket name setting area D205 is an area for specifying a name of a bucket (bucket name) for storing backup data on the object store to be registered. The bucket name needs to be a unique name in the region. Therefore, if no bucket name is specified, the storage system 10 generates a bucket name using unique information that does not overlap with other users, such as the serial number or customer ID of the storage system 10. The encryption selection area D206 is an area for selecting a method for encrypting data in the object store to be registered.
[0098] The Tag button D211 is a button that accepts a tag consisting of a pair of Name and Value. When the Tag button D211 is pressed, a screen (not shown) for inputting a tag is displayed and the input of the tag is accepted.
[0099] The OK button D212 is a button for receiving an instruction to register the object store set on the new store registration screen D20. When the OK button D212 is pressed, the storage system 10 performs a process of registering the object store set on the new store registration screen D20 (object store registration process: see FIG. 9).
[0100] The cancel button D213 is a button for accepting cancellation of the registration of the object store. When the cancel button D213 is pressed, the storage system 10 ends the registration of the object store and closes the new store registration screen D20.
[0101] Next, the object store registration process will be described.
[0102] FIG. 9 is a flowchart of an object store registration process according to the first embodiment.
[0103] The object store registration process is executed by the object store registration management function P1660. When registering an object store, if the authentication information for the object store is incorrect or if the appropriate access rights have not been granted to the object store, then in the backup process that backs up the object store, all backup operations will result in errors, and the backup process will not be performed properly. To prevent this from happening, the storage system 10 is configured to perform an access test on the object store to be registered (referred to as the target object store in the explanation of this process) in the object store registration process.
[0104] In the object store registration process, first, the object store registration management function P1660 (strictly speaking, the processor of the storage management subsystem 160 that executes the storage management program P160) works in conjunction with the network communications management function P1620 to check whether the network settings (for example, the access ID and secret key settings for the target object store) that enable access to the cloud service selected on the new store registration screen D20 in the I / O control subsystem 150 are appropriate (S1100). If the result shows that the network settings are not appropriate (S1100: Not OK), the object store registration management function P1660 displays a message urging the user to review the settings based on an error code for the network settings (S1500), and terminates the processing. An example of a message that prompts the user to review the settings is a message such as "The Access ID or Secret Key is incorrect. Please check."
[0105] On the other hand, if the network settings are appropriate (S1100: OK), the object store registration management function P1660 works in conjunction with the I / O control program P150 to create a LIST command to check the viewing authority for the target object store (S1110), and issues it as a REST API to the object storage system 230 (S1120).The LIST command is a command that obtains a list of objects in the object store.
[0106] Next, the object store registration management function P1660 checks the response to the LIST command (S1130).
[0107] If the response is an error (S1130: Error), the object store registration management function P1660 displays a message requesting that the object store's access permission settings be reviewed, based on the error code corresponding to this error (S1500).
[0108] If a response does not return within a certain period of time and a timeout occurs (S1130: Time Out), the object store registration management function P1660 determines whether or not the timeout is the first time (S1330), and if it is the first time (S1330: Yes), the object store registration management function P1660 proceeds to step S1120 and issues the REST API again.On the other hand, if the timeout is not the first time, that is, if it is a second timeout (S1330: No), poor network communication is suspected, so the object store registration management function P1660 displays a message requesting that the network status be checked (S1600) and ends processing.
[0109] If the response is normal (S1130: No Error), the object store registration management function P1660 works in conjunction with the I / O control program P150 to generate a PUT command to check write permissions for the target object store (S1140), and issues it to the object storage system 230 as a REST API (S1150).
[0110] Next, the object store registration management function P1660 checks the response to the PUT command (S1160).
[0111] The process according to the response check result in step S1160 is similar to the process according to the response check result in step S1130 described above (S1360, S1500, S1600).
[0112] If the response is normal (S1160: No Error), the object store registration management function P1660 works in conjunction with the I / O control program P150 to generate a GET command to confirm read permissions for the target object store (S1170), and issues it to the object storage system 230 as a REST API (S1180).
[0113] Next, the object store registration management function P1660 checks the response to the GET command (S1190).
[0114] The process according to the response check result in step S1190 is similar to the process according to the response check result in step S1130 described above (S1390, S1500, S1600).
[0115] If the response is normal (S1190: No Error), the object store registration management function P1660 works in conjunction with the I / O control program P150 to generate a DELETE command to confirm delete authority for the target object store (S1200), and issues it to the object storage system 230 as a REST API (S1210).
[0116] Next, the object store registration management function P1660 checks the response to the DELETE command (S1220).
[0117] The process according to the response check result in step S1220 is similar to the process according to the response check result in step S1130 described above (S1420, S1500, S1600).
[0118] If the response is normal (S1220: No Error), this means that the series of processes required for normal use of the object store has been confirmed, so the object store registration management function P1660 registers the information about the new object store set on the new store registration screen D20 (S1230) and terminates the object store registration process.
[0119] Next, a backup schedule setting screen D30 for setting a schedule for backups using a registered object store will be described.
[0120] 10 is a diagram showing a backup schedule setting screen according to the first embodiment. The backup schedule setting screen D30 is provided to terminals 17a, 17b, etc. by the object store registration management function P1660 and the GUI and CLI component P1610.
[0121] The backup schedule setting screen D30 includes a logical volume selection area D301, an object store selection area D302, a backup schedule setting area D303, and a backup method selection area D304.
[0122] The logical volume selection area D301 is an area for selecting a logical volume to be backed up. In the example of Fig. 10, in the logical volume selection area D301, the logical volume of VolB (16 TB) indicated by volume number 7F is selected as the backup target.
[0123] The object store selection area D302 is, for example, configured as a drop-down box, and is an area for selecting an object store to be used as a backup destination for a logical volume. In the object store selection area D302, object stores that have already been registered using the screens of Fig. 8A and Fig. 8B are displayed so that they can be selected. In the example of Fig. 10, the object store corresponding to "ams:std Backup" is selected.
[0124] The backup schedule setting area D303 is an area for setting a backup schedule. In the backup schedule setting area D303, for example, a one-shot designation button D3031 for setting the execution of a one-time backup and a periodically designation button D3032 for setting the execution of a periodic backup are displayed. When the one-shot designation button D3031 is selected, it is possible to designate whether the backup is to be executed immediately or at an execution start time. When the periodically designation button D3032 is selected, it is possible to designate a repetition interval (for example, daily, weekly, or monthly), an execution start time, an execution interval time, the number of executions, and the like. In the example of FIG. 10, periodic execution is selected as the backup schedule, and it is designated to be executed daily at 0:00 every day at 30-minute intervals.
[0125] The backup method selection area D304 is an area for setting the backup method. In the example of Fig. 10, the selectable backup methods include a full backup that backs up the entire logical volume, an incremental backup that backs up only the difference in the logical volume from the previous backup, and a differential backup that backs up the difference from the logical volume at the time of the immediately preceding full backup. In the example of Fig. 10, incremental backup is specified.
[0126] The OK button D311 is a button for receiving an instruction to register the backup schedule set on the backup schedule setting screen D30. When the OK button D311 is pressed, the set backup schedule is registered in the scheduler of the storage management subsystem 160.
[0127] The cancel button D312 is a button that accepts an instruction to discard the backup schedule that was set on the backup schedule setting screen D30. When the cancel button D312 is pressed, the set backup schedule is discarded.
[0128] A plurality of backup schedules may be created for one logical volume. For example, a schedule for taking a full backup at 0:00 every Sunday and a schedule for taking incremental backups at 0:00 every Monday through Saturday may be created for the logical volume to be backed up. In this case, the logical volume will be backed up according to a combination of these schedules.
[0129] Next, the backup process will be described.
[0130] FIG. 11 is a flowchart of the backup process according to the first embodiment.
[0131] Backup processing is carried out by the backup management function P1670 issuing instructions to the I / O control program P150, based on a set backup schedule. Furthermore, information necessary for operation is shared as appropriate between the backup management function P1670 and the I / O control program P150.
[0132] When the I / O control program P150 receives an operational command from the backup management function P1670, it acquires (S2100) a snapshot of the logical volume to be backed up (target logical volume) using the point-in-time copy function P1530. Specifically, this is achieved by copying the mapping information (column information) of the target logical volume in the mapping table 400, as explained in Figures 6 and 7.
[0133] Next, the I / O control program P150 checks the backup method that has been set (S2110).
[0134] When a full backup is specified as the backup method (S2110: Full Backup), the I / O control program P150 specifies a dummy snapshot as the comparison source snapshot for creating backup data (S2121). A dummy snapshot is a snapshot in which all pool addresses are filled with 0 (NULL), which means an invalid value.
[0135] Furthermore, if incremental backup is specified as the backup method (S2110: Incremental Backup), the I / O control program P150 specifies the snapshot acquired during the previous backup as the comparison source snapshot (S2122).
[0136] Furthermore, if differential backup is specified as the backup method (S2110: Differential Backup), the I / O control program P150 specifies the snapshot acquired during the immediately preceding full backup as the snapshot to be compared (S2123).
[0137] If this is the first backup, the previous snapshot and the snack shot taken during the immediately preceding full backup do not exist, so even if an incremental or differential backup is specified, a dummy snap is specified as the snapshot to be compared. Therefore, in this case, the incremental data of the incremental backup (incremental backup data) and the differential data of the differential backup will be the full data of the volume (full backup data).
[0138] After executing steps S2121, S2122, or S2123, the I / O control program P150 uses the mapping difference extraction function P1531 to identify the data to be backed up (backup data) (S2130). Specifically, the mapping difference extraction function P1531 extracts the difference between the comparison source snapshot and the backup target snapshot (basically the latest snapshot) by taking the exclusive OR of the pool addresses corresponding to the respective block numbers of the logical volumes. If the result of the exclusive OR is 0, that is, if the pool addresses are the same, this indicates that the data in the block of the logical volume has not been changed and the data in that block is not to be backed up, and if the result is non-zero (note that non-zero is treated as 1), that is, if the pool addresses are different, this indicates that the data in the block has been changed and the data in that block is differential data to be backed up.
[0139] Next, the I / O control program P150 reads the data of the multiple blocks (target blocks) identified as backup targets from the storage pool 600 based on the extraction results of step S2130 and stores it in the transfer memory (S2140), in order to collect the data of these blocks (target blocks) and form an object. Here, if it is not possible to read all of the data at once due to resource constraints of the I / O control subsystem 150, it is sufficient to perform processing in units of a fixed size (for example, 16 MB).
[0140] Next, the I / O control program P150 determines the name of the object to be sent this time (OBJ Key), and accumulates information about the blocks contained in this object (for example, whether they are compressed, their size, etc.) (S2150).
[0141] Next, the I / O control program P150 uses an object conversion function P1535 and an API communications management function P1536 to convert the backup data into an object and execute object (OBJ) conversion and transmission processing (see FIG. 13) to send it to the object store (S2160). Additionally, the I / O control program P150 receives the reception result from the object store asynchronously to the object conversion and transmission processing, and checks whether the transfer was successful (S2161).
[0142] The I / O control program P150 determines whether or not all of the data to be backed up (differential data) has been transferred (S2170), and if it determines that not all of it has been transferred (S2170: No), it advances processing to step S2140 and executes processing to transfer the data that has not been transferred.
[0143] On the other hand, if all of the data to be backed up has been transferred (S2170: Yes), the I / O control program P150 generates metadata (see FIG. 15) for the data to be backed up and stores it in the transfer memory. Next, the I / O control program P150 uses an object conversion function P1535 and an API communications management function P1536 to execute object conversion and transmission processing on the metadata to store it as an object in the object store (S2190).
[0144] Next, the I / O control program P150 confirms that the metadata has been transferred normally (S2200). If the result of this confirms that the metadata has been transferred normally, this indicates that it has been confirmed that the data to be backed up and its metadata have been stored in the object store, so the I / O control program P150 generates catalog data (FIGS. 16A and 16B) that includes various information related to the backup data to be referenced during restoration, and stores this in the transfer memory (S2210).
[0145] Next, the I / O control program P150 executes object (OBJ) conversion and transmission processing (see FIG. 13) to convert the catalog data into an object and send it to the object store (S2220).
[0146] Next, the I / O control program P150 confirms that the catalog data was transferred successfully (S2230).
[0147] After that, the I / O control program P150 executes a disposal process for the snapshot used for the backup. This is because if a snapshot is acquired for each backup and is left in the storage system 10 as is, the number of snapshots will become huge, and the amount of data stored in the storage system 10 will become huge. Therefore, the I / O control program P150 deletes snapshots of older generations that exceed a predetermined number of generations (for example, 3) of snapshots to be retained, which is preset in the storage system 10 by the user (S2240). Note that, if a differential backup is specified as the backup method, the snapshots acquired at the time of the immediately preceding full backup may be excluded from the deletion targets. Snapshots are deleted by deleting the corresponding snapshot (column of the mapping table 400) from the mapping table 400. In this way, by deleting the snapshot, blocks of the storage pool 600 that are no longer referenced anywhere in the mapping table 400 are collected by the I / O control program P150 and reused at an appropriate time, making it possible to appropriately recover the capacity of the storage pool 600.
[0148] Next, the I / O control program P150 updates the management information (step S2250) and terminates the processing.
[0149] According to the above-mentioned backup process, a method designated by the user from among full backup, incremental backup, and differential backup can be used as the backup method.
[0150] Next, the process of identifying the backup data in steps S2110 to S2130 of the backup process will be described in detail.
[0151] Fig. 12A is a diagram explaining backup data in a full backup according to the first embodiment. Fig. 12A shows an example of identifying backup data when the snapshot to be backed up is snapshot 1211A corresponding to the logical volume 2100, and it is determined in step S2110 that the backup method is full backup.
[0152] In this case, in step S2121, a dummy snapshot corresponding to the logical volume 2121A, that is, snapshot 1201A in which the pool addresses corresponding to all of the LBAs of the volume are NULL, is specified as the comparison source snapshot. Next, in step S2130, an exclusive OR (XOR) is taken for snapshot 1201A and snapshot 1211A with respect to the pool addresses corresponding to the same logical volume addresses (LBAs). Here, since each pool address of snapshot 1201A is 0, when the exclusive OR is taken, the result becomes 1 (non-zero), which indicates that the data of all blocks is to be backed up, as shown in result 4130A. Therefore, the backup data 2130A is identified as including the data of all blocks of the logical volume 2100 corresponding to snapshot 1211A.
[0153] Fig. 12B is a diagram illustrating backup data in incremental backup according to the first embodiment. Fig. 12B shows an example of identifying backup data when the snapshot to be backed up is snapshot 1211A corresponding to the logical volume 2100, and it is determined in step S2110 that the backup method is incremental backup.
[0154] In this case, in step S2122, snapshot 1201B, which is the previous backup target corresponding to logical volume 2121B, is specified as the comparison source snapshot. Next, in step S2130, an exclusive OR is taken for snapshot 1201B and snapshot 1211A with respect to pool addresses corresponding to the same logical volume address. When the exclusive OR is taken, as shown in result 4130B, it becomes 1 (non-0) indicating that only the data in block with LBA #1 is the backup target. Therefore, backup data 2130B is identified as the data in block #1 of logical volume 2100 corresponding to snapshot 1211A ("A'" in the example shown in the figure).
[0155] Fig. 12C is a diagram explaining backup data in a differential backup according to the first embodiment. Fig. 12C shows an example of identifying backup data when it is determined in step S2110 that the backup method is differential backup, in a case where the snapshot of the first (1st) backup target is snapshot 1211A corresponding to the logical volume 2100, and the snapshot of the second (2nd) backup target is snapshot 1211C corresponding to the logical volume 2101.
[0156] In this case, in step S2123 during the first backup, snapshot 1201B, which is the backup target in the immediately previous backup corresponding to logical volume 2121B, is specified as the comparison source snapshot. Next, in step S2130, an exclusive OR is taken for snapshot 1201B and snapshot 1211A with respect to the pool addresses corresponding to the same logical volume address. When the exclusive OR is taken, as shown in result 4130C, it becomes 1 (not 0) indicating that only the data in the block with LBA #1 is the backup target. Therefore, backup data 2130C is identified as the data in block #1 of logical volume 2100 corresponding to snapshot 1211A ("A'" in the example shown in the figure).
[0157] Furthermore, in step S2123 during the second backup, snapshot 1201B, which is the backup target of the immediately previous full backup corresponding to logical volume 2121B, is specified as the comparison source snapshot. Next, in step S2130, exclusive OR is taken for snapshot 1201B and snapshot 1211C with respect to pool addresses corresponding to the same logical volume address. When exclusive OR is taken, as shown in result 4130D, it becomes 1 (non-0) indicating that data of blocks with LBAs #1 and #2 are the backup target. Therefore, backup data 2130D is specified as data of blocks #1 and #2 of logical volume 2101 corresponding to snapshot 1211C ("A'", "B'" in the example of the figure). It can be seen from the differential backup that the second backup data includes cumulative changes between the logical volume at the time of the immediately previous full backup, such as data "A'" included in the first backup data.
[0158] Next, the object conversion and transmission processing (S2160, S2190, S2220) will be described.
[0159] FIG. 13 is a flowchart of the object conversion and transmission process according to the first embodiment.
[0160] In the object conversion and transmission process, the storage system 10 converts the data to be processed, which is stored in binary format, into text format and transmits it via the REST API using the HTTP protocol.
[0161] The I / O control program P150 uses the object conversion function P1535 to encode the data to be processed that is stored in the transfer memory into text data, for example, according to BASE64 (S3100). Next, the I / O control program P150 calculates an MD5 hash value from the encoded data to protect the data (S3110). Next, the I / O control program P150 performs a predetermined calculation using the access ID and secret key of the registration information of the object store to create authentication information (S3120). Next, the API communication management function P1536 of the I / O control program P150 creates object data with the created MD5 hash value and authentication information, the transmission date and time, size information, etc. as the HTTP header, and the encoded text data as the HTTP body (S3130), and stores the object data in the object store by REST API communication using a PUT or POST command (S3140). As a result, the object of the data to be processed is stored in the object store.
[0162] Next, data stored in the object store of the object storage system 230 will be described.
[0163] FIG. 14 is a diagram illustrating data stored in an object store of the object storage system according to the first embodiment.
[0164] The object storage system 230 includes an object store 231. The object store 231 includes one or more buckets 2310 and 2320.
[0165] The bucket 2310 stores backup data of the storage system 10. In the example of Fig. 14, the bucket 2310 stores catalog data C23 of the first generation backup of the logical volume with logical volume number 0x7f, catalog data C24 of the second generation backup, metadata M23 referenced by the catalog data C23, one or more backup data 2311, 2312,... referenced by the metadata M23, metadata M24 referenced by the catalog data C24, and one or more backup data 2411, 2412,... referenced by the metadata M24.
[0166] Furthermore, the bucket 2310 stores catalog data C25, metadata M25, backup data 2511, etc. as data relating to the backup of the logical volume with logical volume number 0x90.
[0167] Bucket 2320 is, for example, a bucket in which backup data of another storage system in which the same authentication information is registered is stored.
[0168] Next, the metadata will be described.
[0169] Fig. 15 is a diagram showing the structure of metadata according to the first embodiment. Fig. 15 corresponds to the metadata M24 shown in Fig. 14.
[0170] The metadata M24 is stored in the object store in association with a unique object key that corresponds to the name of the metadata object. The object key is formed, for example, by combining the product number of the storage system 10, the volume number, the backup generation number, etc. In this example, the object key of the metadata M24 is VSP56342-v7f-s02.meta.
[0171] The metadata M24 includes a bitmap size T1510, a bitmap T1511, and one or more data object keys (T1520, T1530, T1540, etc.) and a set of block lengths (T1521, T1531, T1541, etc.).
[0172] Bitmap size T1510 stores the size of the bitmap stored in bitmap T1511.
[0173] The bitmap T1511 stores a bitmap indicating the location (storage location) of blocks of a logical volume included in the backup data. Specifically, the bitmap of the bitmap T1511 is the result of an exclusive OR between snapshots to be compared that were used when extracting the data to be backed up, and indicates whether or not the data of the block is included in the backup data in the order of block numbers. In this embodiment, if the data of a block is included, the bit corresponding to the block is set to 1, and if the data is not included, the bit corresponding to the block is set to 0. For example, in the example of FIG. 15, the bitmap of the bitmap T1511 is "110011...", which indicates that the backup data includes data of blocks with block numbers #1, #2, #5, #6,..., where the bit is "1", and does not include data of blocks with block numbers #3 and #4, where the bit is "0".
[0174] The data object keys (T1520, T1530, T1540, etc.) store object keys that indicate the objects that store the backup data. In this embodiment, when the backup data from one backup is transferred as objects, for example, it is divided into certain size portions and each portion is processed as an object. For this reason, there may be multiple objects that store backup data, and there may be multiple data object keys that indicate them.
[0175] The block length (T1521, T1531, T1541, etc.) stores the data length (block size) of each block in the backup data portion included in the object. This block length is used to determine the extent of one block in the backup data. Note that in the example of FIG. 15, the backup data is stored uncompressed, so the block lengths are the same, but if the blocks are compressed and stored, the block lengths of the compressed blocks will be lined up.
[0176] Next, catalog data will be described. Catalog data is data created at the time of backup, and various information to be referenced at the time of restoration is stored in the catalog data. Information stored in the catalog data includes, for example, the logical volume of the backup source, the capacity required for restoration, the object key for accessing the backup data, the parent-child relationship of the catalog of the backup data, etc.
[0177] Fig. 16A is a first example of catalog data according to the first embodiment, and Fig. 16B is a second example of catalog data according to the first embodiment. Fig. 16A is catalog data created during the second backup of the logical volume and corresponds to catalog data C24 in Fig. 14, and Fig. 16B is catalog data created during the first backup of the logical volume and corresponds to catalog data C23 in Fig. 14.
[0178] The catalog data C24 is associated with an object key VSP56342-v7f-s02.catalog and stored in the object store.
[0179] The catalog data C24 stores an apparatus product number T1610, a backup volume number T1611, a volume usage amount / provisioning size T1612, a snapshot generation number T1613, a snapshot acquisition date and time T1614, a metadata object key T1615, and a parent catalog object key T1616.
[0180] The device product number T1610 stores the device product number of the storage system 10. The backup volume number T1611 stores a volume number that identifies the logical volume to be backed up. The volume usage / provisioning size T1612 stores the provisioning size (allocated capacity) and used size of the logical volume to be backed up. The snapshot generation number T1613 stores the generation number of the snapshot corresponding to the catalog data. The snapshot acquisition date and time T1614 stores the acquisition date and time of the snapshot corresponding to the catalog data. The metadata object key T1615 stores an object key indicating an object that stores metadata corresponding to the catalog data. The parent catalog object key T1616 stores the object key of the object of the catalog data at the time of backup of the parent generation (immediately preceding generation). This object key makes it possible to identify the generation relationship (parent-child relationship) between backups of the same volume.
[0181] According to the catalog data C24, it is catalog data related to the backup of the logical volume with the volume number 0x7f in the storage system 10 with the device product number VSP56342, and it can be seen that the logical volume will be 16TB when restored. In addition, it can be seen that the snapshot has a generation number of 2 and was acquired on April 28, 2021 at 21:00:17, and that to access the backup data, it is sufficient to refer to the metadata object with the object key VSP56342-v7f-s02.meta. Furthermore, it can be seen that an object of catalog data with the object key VSP56342-v7f-s02.catalog exists as catalog data (parent catalog data) corresponding to the snapshot of the previous generation (parent generation). Note that, if parent catalog data exists, it means that when restoring the logical volume to be backed up, it is necessary to perform restoration based on the parent catalog data before performing restoration based on this catalog data.
[0182] The catalog data C23 is associated with an object key VSP56342-v7f-s01.catalog and stored in the object store.
[0183] The catalog data C23 stores an apparatus product number T1710, a backup volume number T1711, a volume usage amount / provisioning size T1712, a snapshot generation number T1713, a snapshot acquisition date and time T1714, a metadata object key T1715, and a parent catalog object key T1716. Each field stores the same information as the field with the same name in the catalog data C24.
[0184] According to catalog data C23, it is backup catalog data for the same logical volume of the same storage system 10 as catalog data C24, the snapshot has a generation number of 1 and was taken at 18:00:14 on April 28, 2021, and it can be seen that to access the backup data, it is sufficient to refer to the metadata object whose object key is VSP56342-v7f-s01.meta. Note that, since the object key of the parent catalog data does not exist, this means that there is no parent catalog, that is, this is the first snapshot, and it can be seen that restoration should be done based on this catalog data.
[0185] Next, the restoration process for restoring a logical volume will be described.
[0186] First, a restore selection screen for selecting various settings for the restore process in the storage system 10 will be described.
[0187] Figure 17 is a diagram showing the restore selection screen according to the first embodiment. The restore selection screen D40 is provided to terminals 17a, 17b etc. by the GUI and CLI component P1610 and restore management function P1680 of the storage management program P160.
[0188] The restore selection screen D40 includes an object store selection area D401, a restore volume selection area D402, a backup version selection area D403, a restore destination selection area D404, a Restore button D411, and a Cancel button D412.
[0189] The object store selection area D401 is, for example, configured as a drop-down box, and is an area for selecting an object store in which a backup of the logical volume to be restored is stored. In the object store selection area D401, object stores that have already been registered using the screens of Fig. 8A and Fig. 8B are displayed so that they can be selected. In the example of Fig. 17, the object store corresponding to "ams:std Backup" is selected.
[0190] The restore volume selection area D402 displays the volumes to be restored in a selectable manner. The restore volume selection area D402 displays information on the volumes in which backup data is stored in the object store selected in the object store selection area D401. A list of volumes in which backup data is stored in the object store and backup data to be displayed in the restore volume selection area D402 and backup version selection area D403 is acquired in advance, and a backup list acquisition process for acquiring the list of volumes and backup data will be described later.
[0191] The backup version selection area D403 displays the backup data of the volume to be restored in a selectable manner. The backup version selection area D403 displays the backup data for the volume selected in the restore volume selection area D402 from the backup data stored in the data store. In the example of Fig. 17, since the logical volume with logical volume number #7F is selected in the restore volume selection area D402, only the backup data for the logical volume with logical volume number #7F is displayed in the backup version selection area D403.
[0192] The restore destination selection area D404 is an area for selecting a volume to which the logical volume is to be restored. The restore destination selection area D404 includes an original volume designation button D4041 and a new volume designation button D4042.
[0193] The specify original volume button D4041 accepts a selection instruction to set the restore destination to the original volume. The specify new volume button D4042 accepts a selection instruction to set a new volume as the restore destination. When the specify new volume button D4042 is selected, storage pools in which a new volume can be created are displayed as selectable. For example, in the example of Fig. 17, the specify new volume button D4042 has been selected in the restore destination selection area D404, and storage pools in which a new volume can be created are displayed, of which storage pool B has been selected. Note that the storage management program P160 may display, as unavailable for selection, storage pools that lack the capacity required to restore the selected logical volume among the storage pools.
[0194] The Restore button D411 is a button that accepts an instruction to execute the restoration set on the restore selection screen D40. When the Restore button D411 is pressed, the storage management function P180 causes the I / O control program P150 to execute restoration processing (see FIG. 19).
[0195] The cancel button D412 is a button that accepts an instruction to discard the restore that was set on the restore selection screen D40. When the cancel button D412 is pressed, the selection of the restore that was set is discarded.
[0196] Next, the backup list acquisition process will be described.
[0197] 18 is a flowchart of the backup list acquisition process according to the first embodiment. The backup list acquisition process is a process for acquiring a list of backup data used for displaying the restore selection screen D40 of FIG.
[0198] Prior to displaying the restore selection screen D40, the storage management program P160 acquires the date and time when the previous backup data list was created (S5100). The date and time when the previous backup data list was created is registered in the storage system 10 when the previous backup data list was created.
[0199] Next, the storage management program P160 works in conjunction with the I / O control program P150 to create a LIST command that acquires a list of catalog data in the object store (S5110). Specifically, the storage management program P160 creates a command to acquire all object keys that end with ".catalog", indicating that they are catalog data.
[0200] Next, the storage management program P160 issues a LIST command to the object storage system 230 via the API communications management function P1536, and obtains the results for the LIST command (S5120).
[0201] Next, the storage management program P160 determines whether or not there is new catalog data that was not included in the previously acquired list (S5130). If the result is that no new catalog data exists (S5130: No), this means that the previously acquired backup data list is the latest, and the storage management program P160 ends processing.
[0202] On the other hand, if new catalog data exists (S5130: Yes), the storage management program P160 creates a GET command to obtain one of the new catalog data in order to acquire the various information contained in this catalog data (S5140). Next, the storage management program P160 issues a GET command to the object storage system 230 via the API communications management function P1536, and obtains the results of the GET command (S5150).
[0203] Next, the storage management program P160 determines whether or not information about all of the new catalog data has been acquired (S5160), and if it determines that information about all of the new catalog data has not been acquired (S5160: No), it proceeds to step S5140.
[0204] On the other hand, if it is determined that information on all new catalog data has been acquired (S5160: Yes), the storage management program P160 identifies the backup data based on all the catalog data, updates the list of backup data, and registers the update date as the creation date (S5170), then terminates processing.
[0205] Here, in this embodiment, even if the storage system of the restore destination of the logical volume is different from the storage system that backed up the logical volume, the logical volume can be restored. Specifically, by registering an object store in the restore destination storage system using the screens of Fig. 8A and Fig. 8B in the same way as that registered in the backup storage system, the backup data of the logical volume backed up in another storage system can be selected as the restore target using the restore selection screen D40 of Fig. 17, and restoration can be performed. In this case, since the original logical volume does not exist in the restore destination storage system, the original volume designation button D4041 is displayed in an unselectable state in the restore destination selection area D404 of the restore selection screen D40 of Fig. 17.
[0206] Next, the restore process will be described.
[0207] FIG. 19 is a flowchart of the restore process according to the first embodiment.
[0208] The restore process is executed by the storage management program P160 when the Restore button D411 is pressed on the restore selection screen D40. In the restore process, if the snapshot used to create the backup data remains in the storage system 10, the data from that snapshot is used, and if not, the backup data is obtained from the object store and restored.
[0209] First, the I / O control program P150 obtains the catalog data corresponding to the backup data selected as the data to be restored (S6100).
[0210] Next, the I / O control program P150 references the logical volume number and snapshot generation number contained in the catalog data, and determines whether its own storage system 10 (local storage system) which is the restore destination is the same as the backup source storage system which backed up the logical volume to be restored (step S6105).
[0211] If it is determined as a result that the local storage system and the backup source storage device are not the same (S6105: No), the I / O control program P150 advances the process to step S6120.
[0212] On the other hand, if it is determined that the local storage system and the backup source storage device are the same (S6105: Yes), the I / O control program P150 determines whether a snapshot of the logical volume corresponding to the acquired catalog data is available in the local storage system 10 (S6110).
[0213] Here, if a snapshot of the logical volume corresponding to the catalog data is available in the local storage system 10, that is, if a snapshot exists and is available (S6110: Yes), this means that the backup data used in the restore remains as a snapshot in the storage system 10, so the I / O control program P150 uses this snapshot to restore the data to the restore-destination logical volume (S6121) and proceeds to step S6140. Specifically, the contents (columns) of the snapshot in the mapping table 400 are added to the mapping table 400 as mapping information (columns) of the restore-destination logical volume. This process can be completed quickly because data on the volume is not read or written.
[0214] On the other hand, if a snapshot of the logical volume corresponding to the catalog data is not available (S6110: No), it is necessary to obtain backup data from the object store of the cloud system 20, so the I / O control program P150 proceeds to step S6120.
[0215] In step S6120, the I / O control program P150 adds the catalog data to be processed to the processing list managed by the restoration planner P1537.
[0216] Next, the I / O control program P150 references the parent catalog object key T1616 of the catalog data, and checks whether or not a backup of the immediately preceding generation (parent generation) exists (S6130).
[0217] As a result, if a parent generation backup exists (S6130: Yes), it is necessary to first restore based on the parent generation backup data, so the I / O control program P150 obtains the parent generation catalog data using the parent catalog object key (S6141) and proceeds to step S6105. As a result, the processing shown in steps S6105 to S6130 is executed. By doing this, the processing list will be registered with the backup catalog data to be restored in generation order, from the last catalog data, such as parent → child → grandchild.
[0218] In the subsequent processes (steps S6140 to S6170), data restoration processes are carried out using each of the catalog data registered in the process list.
[0219] In this data restoration processing, the I / O control program P150 checks whether or not catalog data exists in the processing list (S6140).
[0220] As a result, if catalog data is present in the processing list (S6140: Yes), the I / O control program P150 references the catalog data at the end of the processing list, i.e., the catalog data of the oldest generation, and obtains the object key of the metadata (S6150).
[0221] Next, the I / O control program P150 retrieves the object of the metadata corresponding to the object key from the object store 231, retrieves backup data based on the metadata, and uses the backup data to perform a backup data retrieval and restoration process (see FIG. 20) that restores the volume at that generation (point in time) (S6160).
[0222] Next, the I / O control program P150 removes the catalog data of the generation processed in the backup data acquisition and restoration processing from the processing list (S6170), and proceeds to step S6140. As a result, restoration is performed using the catalog data registered in the processing list.
[0223] On the other hand, if there is no catalog data in the processing list (S6140: No), this indicates that the restoration has finished, so the I / O control program P150 ends the processing.
[0224] Next, the backup data acquisition and restoration process will be described.
[0225] 20 is a flowchart of the backup data acquisition and restoration process according to the first embodiment. The backup data acquisition and restoration process is a process of interpreting the acquired backup data based on metadata and writing it to the restore destination volume.
[0226] The I / O control program P150 retrieves the object from the object store for the metadata based on the object key of the metadata stored in the catalog (e.g., the object key of the metadata object key T1615 in FIG. 16A) and executes an object receive and conversion process (see FIG. 21) that converts the object into a binary format (S7100).
[0227] Next, the I / O control program P150 extracts a bitmap from the acquired metadata (S7110). After that, the I / O control program P150 acquires the object key of the next object to be processed (called the target object) of the backup data from the metadata (S7120), acquires the object corresponding to the object key from the object store 231, and executes the object reception and conversion process (see FIG. 21) that converts the object into binary format (S7130).
[0228] Next, the I / O control program P150 advances the next bit to be referenced (reference bit) in the bitmap acquired in step S7110 (S7140), and determines whether the reference bit is "1" (S7150).
[0229] As a result, if the reference bit is "1" (S7150: Yes), this means that the data obtained from the target object (partial backup data) contains data for a block with a block number corresponding to the reference bit, so the I / O control program P150 writes the data for that block contained in the target object to the block with the corresponding block number in the restore destination volume (S7160).
[0230] On the other hand, if the reference bit is not "1", i.e., if it is "0" (S7150; No), this means that the data obtained from the target object does not contain data for the block with the block number corresponding to the reference bit, so the I / O control program P150 does nothing and proceeds to step S7170.
[0231] In step S7170, the I / O control program P150 increments the block number of the write destination in the restore destination volume by 1 (S7170), and references the next block of the partial backup data (S7180).
[0232] Next, the I / O control program P150 determines whether or not this is the end of the data contained in the partial backup data, in other words, whether or not the next block exists (S7190).
[0233] If the result is that this is not the end of the partial backup data, that is, if the next block exists in the partial backup data obtained from the target object (S7190: No), this indicates that there is remaining data to be restored in the partial backup data, so the I / O control program P150 proceeds to S7140 and further executes the processing of steps S7140 to S7190 on the partial backup data.
[0234] On the other hand, if the reference block does not exist in the partial backup data and this is the end of the data contained in the partial backup data (S7190: Yes), the I / O control program P150 determines whether or not the reference block is the end of the bitmap (S7200).
[0235] As a result, if the reference bit is not the end of the bitmap (S7200: No), this means that the next partial backup data exists in another object, so the I / O control program P150 proceeds to step S7120 and executes the processes of steps S7140 to S7190 for the next partial backup data.
[0236] On the other hand, if the reference bit is at the end of the bitmap (S7200: Yes), this means that writing of all backup data has finished, so the I / O control program P150 ends the processing.
[0237] Next, the object receiving and conversion process will be described.
[0238] FIG. 21 is a flowchart of an object reception and conversion process according to the first embodiment.
[0239] The object reception and conversion process is a process of retrieving a target data object (target object) from an object store and converting the retrieved object into binary data.
[0240] When the I / O control program P150 obtains an object key indicating the target data object (S8100), it identifies the access ID and secret key of the target object store from the object store's registration information (information registered in Figure 8B), and uses the access ID and secret key to perform a specified calculation and create authentication information (S8110).
[0241] Next, the I / O control program P150 uses the API communications management function P1536 to construct a GET command with authentication information, transmission date and time, etc. as an HTTP header (S8120), and requests the target object from the object store via REST API communications (S8130).
[0242] The I / O control program P150 receives a response including the object from the object store (S8200), and checks the MD5 of the received data to confirm whether or not there are any errors in the data (S8210). If there are no errors in the data, the I / O control program P150 decodes the received data, for example, using BASE64 to convert it to binary data (S8220), copies the converted binary data to a memory area for storing data (buffer memory) (S8230), and ends the process.
[0243] Next, a specific example of the restore process will be described with reference to FIGS. 22A to 22D.
[0244] Here, Figures 22A to 22D illustrate an example in which snapshots SS01, SS02, and SS03 are taken in storage system 10, and when each snapshot is taken, incremental backups are performed, and backup data BA01 corresponding to snapshot SS01, backup data BA02 corresponding to snapshot SS02, and backup data BA03 corresponding to snapshot SS03 are stored in bucket 2310 of object store 231.
[0245] For example, if snapshot SS01 has data units "A", "B", and "C", snapshot SS02 has data units "A'", "B", and "C", and snapshot SS03 has data units "A'", "B'", and "C'", then backup data BA01 will have data units "A", "B", and "C", backup data BA02 will have data unit "A'", and backup data BA03 will have data units "B'" and "C'".
[0246] First, the first specific example will be described.
[0247] FIG. 22A is a diagram illustrating a first specific example of the restore process according to the first embodiment.
[0248] FIG. 22A shows an example in which, in the storage system 10, snapshot SS01 is deleted and snapshots SS02 and SS03 exist, and the volume corresponding to the third generation snapshot SS03 is restored to volume R00 as the restore target.
[0249] In this example, by executing the restore processing shown in Fig. 19, the I / O control program P150 obtains catalog data corresponding to the backup data BA03 at the time of the restore target (S6100), and uses this catalog data to confirm whether snapshot SS03 for the volume to be restored in the storage system 10 is available. In this example, the I / O control program P150 determines that snapshot SS03 is available (S6110: Yes). As a result, the I / O control program P150 restores volume R00 based on snapshot SS03 (P1: S6121). In this example, because no other catalogs are registered in the processing list (S6140: No), the I / O control program P150 completes the restore processing.
[0250] According to this process, it is possible to quickly restore the volume corresponding to the third generation snapshot to volume R00 of the storage system 10 without retrieving backup data from the data store. Also, in cases where a fee is incurred when retrieving data from the object store, it is possible to reduce the amount of data retrieved from the object store, thereby reducing the cost of retrieving data.
[0251] Next, a second specific example will be described.
[0252] FIG. 22B is a diagram illustrating a second specific example of the restore process according to the first embodiment.
[0253] FIG. 22B shows an example in which, in the storage system 10, snapshots SS01 and SS02 are deleted and snapshot SS03 exists, and the volume corresponding to the second generation snapshot SS02 is restored to volume R00 as the restore target.
[0254] In this example, by executing the restore processing shown in Fig. 19, the I / O control program P150 obtains catalog data corresponding to the backup data BA02 at the time of the restore target (S6100), and checks whether this catalog data is available for use as a snapshot SS02 for the volume to be restored in the storage system 10. In this example, the I / O control program P150 determines that the snapshot SS02 is not available (S6110: No), and adds the catalog data corresponding to the backup data BA02 to the processing list. Next, because the parent generation backup data BA01 exists for the backup data BA02 (S6130: Yes), the I / O control program P150 obtains the catalog data for the backup data BA01 and checks the corresponding snapshot. As a result, because a corresponding snapshot SS01 does not exist, the I / O control program P150 adds the catalog data for the backup data BA01 to the processing list. Thereafter, because the processing list contains catalog data for backup data BA01 and backup data BA02, the I / O control program P150 executes steps S6150 to S6170 to perform process P2, which uses the catalog data and metadata for backup data BA01 to restore volume R00 to its first generation state, and then performs process P3, which uses the catalog data and metadata for backup data BA02 to restore volume R00 to its second generation state.
[0255] According to this process, a volume corresponding to the second generation snapshot can be restored to volume R00 of the storage system 10.
[0256] Next, a third specific example will be described.
[0257] FIG. 22C is a diagram illustrating a third specific example of the restore process according to the first embodiment.
[0258] FIG. 22C shows an example in which a volume corresponding to the third generation snapshot SS03 is restored to volume R01 in a storage system 10′ other than the storage system 10 that does not have a snapshot of the volume to be restored.
[0259] In this example, since no snapshots exist in the storage system 10', by executing the restore processing shown in Fig. 19, the I / O control program P150 adds the catalog data of the backup data BA03, BA02, and BA01 to the processing list (S6120). As a result, the I / O control program P150 executes the processing of steps S6150 to S6170, and performs processing P4 to restore volume R00 to the state of the first generation using the catalog data and metadata for backup data BA0, then performs processing P5 to restore volume R00 to the state of the second generation using the catalog data and metadata for backup data BA02, and then performs processing P6 to restore volume R00 to the state of the third generation using the catalog data and metadata for backup data BA03.
[0260] According to this process, the metadata and catalog data of the backup data are also stored in the object store along with the backup data, and this data can be used to properly restore the desired volume even in a storage system that does not perform backups.
[0261] Next, a fourth specific example will be described.
[0262] FIG. 22D is a diagram illustrating a fourth specific example of the restore process according to the first embodiment.
[0263] FIG. 22D shows an example in which in storage system 10, snapshot SS01 is deleted, and snapshots SS02 and SS03 exist but snapshot SS03 has become unavailable for some reason, and the volume corresponding to the third generation snapshot SS03 is restored to volume R00 as the restore target.
[0264] In this example, by executing the restore process shown in Fig. 19, the I / O control program P150 adds the catalog data of the backup data BA03 to the processing list because the snapshot SS03 corresponding to the backup data BA03 is unavailable (S6120). Next, the I / O control program P150 acquires a catalog corresponding to the backup data BA02 because the parent generation backup data BA02 exists (S6141). Because the snapshot SS02 corresponding to the backup data BA02 is available in the storage system 10, the I / O control program P150 restores the volume R00 to the second generation state by restoring the snapshot SS02 to the volume R00 (P7: S6121). Next, the I / O control program P150 executes the processing of steps S6150 to S6170, and performs processing P8 to restore the volume R00 to the third generation state using the catalog data and metadata for the backup data BA03.
[0265] According to this process, even if a snapshot (first point-in-time snapshot) corresponding to the volume to be restored is not stored in the storage system 10, if a snapshot (second point-in-time snapshot) of an earlier generation related to the volume is stored, that snapshot can be used to obtain subsequent backup data (subsequent incremental data) from the data store, eliminating the need to receive and restore backup data of all generations from the data store, and allowing the volume to be restored appropriately and quickly. Also, in cases where a fee is incurred when retrieving data from the object store, the amount of data retrieved from the object store can be reduced, thereby reducing the cost of retrieving data.
[0266] Next, a modification of the computer system according to the first embodiment will be described.
[0267] In the computer system 1 of the first embodiment, all of the backup data objects, metadata related to the backup data, and catalog data are stored in the object store 231 of the object storage system 230. However, for example, the catalog data may be stored and managed as a catalog data table in the database system 220 of the cloud system 20.
[0268] FIG. 23 is a diagram showing the configuration of a catalog data table according to a modified example of the first embodiment.
[0269] The catalog data table T1000 stores records (entries) for each catalog. A record of the catalog data table T1000 includes fields for a key T1001, an apparatus product number T1002, a backup volume number T1003, a volume usage amount / provisioning size T1004, a snapshot generation number T1005, a snapshot acquisition date and time T1006, a metadata object key T1007, and a parent catalog key T1008.
[0270] The key T1001 stores an identification name (key) of the catalog data. The device product number T1002 stores the device product number of the storage system 10. The backup volume number T1003 stores a volume number that identifies the logical volume to be backed up. The volume usage / provisioning size T1004 stores the provisioning size (allocated capacity) and used size of the logical volume to be backed up. The snapshot generation number T1005 stores the generation number of the snapshot corresponding to the catalog data. The snapshot acquisition date and time T100 stores the acquisition date and time of the snapshot corresponding to the catalog data. The metadata object key T1007 stores an object key indicating the object for which metadata corresponding to the catalog data is being checked. The parent catalog key T1008 stores an identification name (key) indicating the catalog data at the time of backup of the parent generation (the immediately preceding generation).
[0271] In this catalog data table T1000, the catalog data in the object format shown in FIGS. 16A and 16B are managed as records.
[0272] In the storage system according to the modified example, multiple catalog data can be acquired by issuing a NoSQL command once to the database system 220, without performing the process shown in Fig. 18 as the backup list acquisition process. This allows the backup list acquisition process to be performed quickly. Furthermore, in the storage system according to the modified example, it is not necessary to perform a process of object conversion or reverse conversion on the catalog data in the backup process or restore process.
[0273] Next, a computer system according to a second embodiment will be described.
[0274] The computer system according to the second embodiment does not directly set the backup method, but automatically selects full backup or incremental backup, taking into consideration the fee for the object store service or the time required for restoration. In the second embodiment, the differences from the first embodiment will be mainly described, and overlapping descriptions may be omitted.
[0275] FIG. 24 is a diagram showing a backup schedule setting screen according to the second embodiment.
[0276] The backup schedule setting screen D31 includes a backup policy setting area D305 and a deletion policy setting area D306 instead of the backup method selection area D304 of the schedule setting screen D30 of the first embodiment shown in FIG.
[0277] The backup policy setting area D305 is an area for selecting a backup policy. The backup policy setting area D305 includes a time-based selection button D3051 for selecting a time-based method as a method for selecting a full backup or an incremental backup, a cost-based selection button D3052 for selecting a method based on a restoration fee, and a threshold setting area D3053 for setting a threshold used for selection.
[0278] When the time-based selection button D3051 is selected, a backup method is performed in which if the total time of a full backup and incremental backup exceeds a threshold (threshold in setting area D3053) when the full backup time is set to 1.0, a new full backup is performed, and otherwise an incremental backup is performed. This backup method is suitable when you want to keep the backup time or restore time below a certain value.
[0279] When the cost-based selection button D3052 is selected, if the expected restore fee for a full backup is set to 1.0, and the total expected restore fee for a full backup and incremental backup exceeds a threshold (threshold in the setting area D3053), a new full backup is performed, and otherwise an incremental backup is performed. This backup method is suitable when you want to keep the cost of restoration below a certain level.
[0280] The deletion policy setting area D306 is an area for selecting a policy for handling the deletion of old backup data sets. Here, the old backup data set refers to the backup data group consisting of the full backup and incremental backups prior to a new full backup.
[0281] The deletion policy setting area 306 includes an old backup dataset deletion selection button D3061 and an old backup dataset archive selection button D3062. When the old backup dataset deletion selection button D3061 is selected, the storage system 10 deletes the old backup dataset. When the old backup dataset archive selection button D3062 is selected, the storage system 10 moves the old backup dataset to the archive layer of the object store.
[0282] Next, a backup process by the storage system according to the second embodiment will be described.
[0283] Fig. 25 is a flowchart of the backup process according to the second embodiment. Note that the same reference numerals are used to designate the same parts as those in the backup process according to the first embodiment shown in Fig. 11, and duplicated explanations may be omitted.
[0284] When the I / O control program P150 receives an operational command from the backup management function P1670, it uses the point-in-time copy function P1530 to obtain a snapshot of the logical volume to be backed up (target logical volume) (S2100).
[0285] Next, the I / O control program P150 checks the backup policy that has been set (S2101).
[0286] If the backup policy is specified to be based on backup time (S2101: Time-based), the I / O control program P150 calculates the ratio by dividing the total backup time by the time required for the previous full backup (S2102), and proceeds to step S2104.
[0287] On the other hand, if the backup policy is specified to be based on the expected cost of restoration (S2101: Cost-based), the I / O control program P150 calculates the Ratio by dividing the maximum restoration cost, i.e. the cost of restoring the full backup and all incremental backups up to now, by the expected restoration cost of the previous full backup (S2103), and proceeds to step S2104.
[0288] In step S2104, the I / O control program P150 determines whether or not the Ratio exceeds a set threshold value. As a result, if the Ratio exceeds the threshold value (S2104: Yes), the I / O control program P150 sets full backup as the backup method (S2105), whereas if the Ratio does not exceed the threshold value (S2104: No), it sets incremental backup as the backup method (S2106).
[0289] Next, the I / O control program P150 executes the processing of steps S2110 to S2230.
[0290] Next, the I / O control program P150 calculates the time required for the current backup (S2231). Note that the time required for the current backup can be obtained by measuring in advance the time required for steps S2130 to S2230.
[0291] Next, the I / O control program P150 acquires the object store capacity consumed this time and the number of objects transferred (S2232), and calculates the cost required for restoration based on the capacity and number of objects (S2233). Specifically, the I / O control program P150 calculates the transfer cost by multiplying the object store capacity consumed by the transfer capacity unit price, calculates the request cost by multiplying the number of transferred objects by the request unit price, and calculates the cost by adding these up. Note that if other fees are incurred by the cloud service provider, these can also be taken into consideration.
[0292] Next, the I / O control program P150 updates the total backup time by adding the time required for this backup to the total backup time up to the previous time, and also updates the maximum restore cost by adding the calculated cost to the maximum restore cost (S2234). Furthermore, if this was a full backup, the I / O control program P150 updates the full backup time and full restore cost (S2235). The processing thereafter is the same as the backup processing shown in Fig. 11.
[0293] Next, the process of disposing of an old backup set by the storage system according to the second embodiment will be described.
[0294] Figure 26 is a flowchart of old backup set disposal processing related to the second embodiment. The old backup set disposal processing is executed in cooperation with the I / O control program P150 and the backup management function P1670 of the storage management program P160 when, for example, a full backup has been performed in the backup processing shown in Figure 25.
[0295] The backup management function P1670 acquires catalog data (catalog data group) for past backup data using a method similar to that shown in Fig. 18 (S9100). Next, the backup management function P1670 traces back to parent generations, starting from the catalog data for the previous backup, to identify the backup group which has the previous full backup as the parent as the backup group to be disposed of, that is, to be deleted or archived (S9110), and passes the catalog data of the backup group to be disposed of and the object key of this catalog data to the I / O control program P150.
[0296] Next, the I / O control program P150 references each catalog data that has been passed, and acquires the object key of the metadata object that corresponds to the backup data that corresponds to each catalog data (S9120). Next, the I / O control program P150 acquires metadata using the acquired object key, and acquires one or more object keys (object key groups) of one or more objects of the backup data stored in the metadata (S9130). Through the above processing, it is possible to identify the set of catalog data, metadata, and backup data to be disposed of.
[0297] Next, the I / O control program P150 checks the deletion policy setting (S9140), and if the deletion policy is set to delete (S9140:Delete), it uses the acquired object keys to delete the corresponding metadata and backup data objects from the object store 231 (S9200), and deletes the corresponding catalog data from the object store 231 (S9210), and then terminates the processing.
[0298] On the other hand, if the deletion policy is set to archive (S9140: Archive), the I / O control program P150 uses the acquired object keys to move the corresponding metadata and backup data objects to the archive layer of the object store 231 (S9300), and rewrites the object keys of the metadata of each catalog data to point to the metadata objects in the archive layer so that it is clear that this data has been moved to the archive layer (S9310), and then terminates the processing.
[0299] According to the above process, old backup sets stored in the object store can be appropriately disposed of.
[0300] The present invention is not limited to the above-described embodiment, and can be modified as appropriate without departing from the spirit of the present invention.
[0301] For example, in the above-described embodiment, a part or all of the processing performed by the processor may be performed by a hardware circuit. Also, the program in the above-described embodiment may be installed from a program source. The program source may be a program distribution server or a storage medium (e.g., a portable storage medium). [Explanation of symbols]
[0302] 1... computer system, 10... storage system, 20... cloud system, 150... I / O control subsystem, 151... processor, 160... storage management subsystem, 230... object storage system, 231... object store
Claims
[Claim 1] A data control device that is connected to a cloud system that provides an object store via a network and that backs up backup data of a snapshot of a predetermined volume having a plurality of data to the object store as an object, The data control device comprises a processor; The processor, When backing up a snapshot of the specified volume, Generate, for the snapshot to be backed up, backup data that is a difference from other snapshots stored in the object store, catalog information including identification information of the specified volume and identification information of the other snapshots that are comparison sources for the backup data, and metadata including difference presence / absence information indicating the presence or absence of a difference from the other snapshots and the presence or absence of data in the backup data; The backup data, the catalog information, and the metadata are converted into objects and stored in the object store; When restoring the specified volume that was backed up, Based on the catalog information, an object to be used for the restore is identified and retrieved from the object store to restore the specified volume. Data control device.
Citation Information
Patent Citations
Data compression technology and data storage technology
JP2009533731A
Computer system and method for managing hierarchy of journal
JP2010079526A
Method and system for executing increment SQL server database backup
JP2012146301A
A distributed backup system that determines the access destination based on multiple performance metrics.
JP2015529861A
Data restoration using block disk presentations
US20170329543A1