Computing system and backup management method
The computer system efficiently manages backup data in cloud systems by comparing costs and processing differential data to optimize storage and deletion processes, thereby reducing costs and power consumption.
Patent Information
- Application Number
- JP2024078477
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-05-14
- Publication Date
- 2025-11-27
AI Technical Summary
There is a need for efficient management of backup data stored in cloud systems.
A computer system comprising a cloud system and a local storage system connected via a network, with a backup function unit that backs up snapshot data to cloud storage, and a management function unit that manages backup data and management files for each generation, implementing a process for deleting updates and management files based on cost comparisons and differential data processing.
This approach enables efficient management of backup data by reducing costs and power consumption in cloud storage systems.
Smart Images

Figure 2025173095000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a technique for efficiently managing backup data stored in a cloud system. [Background technology]
[0002] A technique for creating multiple generations of snapshots of a storage device is known as a data backup method.
[0003] As an example of a technology related to snapshots, Patent Document 1 discloses a storage control device that creates multiple generations of snapshots of a storage device, and that includes a first calculation unit that calculates, as a first number of areas, the number of areas that are updated in a first snapshot of the multiple generations of snapshots that is to be deleted and that have not been updated in a second snapshot that is a generation subsequent to the first snapshot; a second calculation unit that calculates, as a second number of areas, the number of areas that are updated in the second snapshot; and a determination unit that, if the first number of areas is equal to or greater than the second number of areas, determines the second snapshot to be the merge target in a merge process and the first snapshot to be the merge destination in the merge process; and, if the first number of areas is less than the second number of areas, determines the first snapshot to be the merge target in the merge process and the second snapshot to be the merge destination in the merge process. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Publication No. 2020-155071 Summary of the Invention [Problem to be solved by the invention]
[0005] There is a demand for efficient management of backup data stored in cloud systems.
[0006] Therefore, an object of the present invention is to provide a technique that enables efficient management of backup data. [Means for solving the problem]
[0007] In order to achieve the above object, a computer system according to one aspect is a computer system comprising: a cloud system that provides cloud storage; and a local storage system that is connected to the cloud system via a network, the computer system comprising: a backup function unit that backs up snapshot data of the local storage system to the cloud storage as backup data; the cloud storage has the backup data and management files linked to each of the backup data; the computer system comprises a management function unit that manages the backup data and the management files stored in the cloud storage for each generation; the management function unit compares a load cost required for generation deletion processing with a reduction cost reduced by the generation deletion processing, and executes the generation deletion processing if the reduction cost is greater than the load cost; the generation deletion processing comprises backing up a predetermined number of generations (M is an integer equal to or greater than 1). A process for deleting updates and management files, the process comprising a first process, a second process, a third process, and a fourth process, wherein the first process is a process for obtaining differential data of M generations of backup data from the N+1 generation to the N+M generation, which is a generation newer than a predetermined N generation (N is an integer greater than or equal to 1); the second process is a process for storing the differential data in the cloud storage and overwriting it onto the N-generation backup data; the third process is a process for merging, in the cloud storage, the N-generation management file linked to the N-generation backup data through the N+M-generation management file linked to the N+M-generation backup data, and linking it to the N-generation backup data; and the fourth process is a process for deleting, in the cloud storage, the N+1 generation to the N+M-generation backup data and management files. [Effects of the Invention]
[0008] According to the present invention, backup data can be managed efficiently. [Brief explanation of the drawings]
[0009] [Figure 1] FIG. 1 is a configuration diagram of a computer system according to a first embodiment. [Figure 2] FIG. 2 is a configuration diagram of a cloud system. [Figure 3] FIG. 3 is a configuration diagram of a local storage system. [Figure 4] Figure 4 is a diagram of the SmartNIC configuration. [Figure 5] FIG. 5 is a diagram showing the configuration of the storage charge table. [Figure 6] FIG. 6 is a diagram showing the configuration of the compute system billing table. [Figure 7] FIG. 7 is a diagram showing the configuration of the power consumption amount table. [Figure 8] FIG. 8 is a diagram showing the structure of the CO2 emission table. [Figure 9] FIG. 9 is a diagram showing the structure of the processing time table. [Figure 10] FIG. 10 is a flowchart of the backup process. [Figure 11] FIG. 11 is a flowchart of the restore process. [Figure 12] FIG. 12 is a flowchart of a backup generation management process according to the first embodiment. [Figure 13] FIG. 13 is a flowchart of the backup generation designated deletion process according to the first embodiment. [Figure 14] FIG. 14 is a configuration diagram of a computer system according to the second embodiment. [Figure 15] FIG. 15 is a flowchart of a backup generation management process related to the second embodiment. [Figure 16] FIG. 16 is a configuration diagram of a computer system according to the third embodiment. [Figure 17] FIG. 17 is a flowchart of a backup generation management process related to the third embodiment. [Figure 18] FIG. 18 is a flowchart of a backup generation management process related to the fourth embodiment. [Figure 19] FIG. 19 is a flowchart of a backup generation management process related to the fifth embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0010] 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 not all of the elements and combinations thereof described in the embodiments are necessarily essential to the solution of the invention.
[0011] In the following explanation, various types of information may be described using the expression "aaa table," but the various types of information may be expressed using data structures other than tables. To indicate that the various types of information are independent of the data structure, the "aaa table" can be called "aaa information."
[0012] Furthermore, when describing the content of each piece of information, expressions such as "identifier," "name," and "ID" are used to refer to identification information, but these are interchangeable. Other types of identification information may be used instead of at least one of these.
[0013] Furthermore, in the following description, processing may be described with a "program" as the operating entity; however, a program is executed by a processor to perform a predetermined process using storage resources (e.g., memory) and / or communication interface devices (e.g., communication ports) as appropriate, and therefore the processor may also be considered the operating entity of the process. Conversely, processing performed by a processor may be interpreted as being performed by executing one or more programs. The processor is typically a microprocessor such as a CPU (Central Processing Unit), but may also include hardware circuits that perform part of the processing (e.g., encryption / decryption, compression / decompression).
[0014] In addition, in the following description, when describing elements of the same type without distinguishing between them, reference signs will be used, and when describing elements of the same type with distinction between them, an identifier assigned to the element (e.g., at least one of a number and a code) may be used instead of the reference sign of the element. [Example]
[0015] FIG. 1 is a configuration diagram of a computer system according to a first embodiment.
[0016] In the first embodiment, a backup generation management program 411 on a SmartNIC 40 connected to a local storage system 30 manages generations of backup data to be stored in the cloud storage 210. The cloud storage 210 stores X generations (X is an integer equal to or greater than 1) of backup data, starting from the most recent generation. For example, a backup is performed once a day, and 30 generations of backup data are stored. The backup generation management program 411 monitors the number of generations of backup data transferred to the cloud storage 210, and if the number of generations exceeds the set number of generations to be stored, it deletes the oldest backup generation, thereby achieving generation management for backups.
[0017] The computer system 1 includes a terminal 10, a cloud system 20, a local storage system 30, a SmartNIC 40, one or more hosts 50, and a network 60. The cloud system 20, the local storage system 30, and the SmartNIC 40 are connected via the network 60. The network 60 is a network such as a WAN (Wide Area Network). The terminal 10 and the cloud system 20 are connected by a network such as an in-site LAN (Local Area Network) or a WAN. The host 50 and the local storage system 30 are connected by a network such as an in-site LAN or a WAN.
[0018] The cloud system 20 includes a storage management system 200 and a cloud storage 210 .
[0019] The terminal 10 is a terminal used by an administrator who manages the cloud system 20.
[0020] The host 50 executes various processes using logical volumes provided by the local storage system 30 .
[0021] The local storage system 30 is a disk array device that provides, for example, data protection using RAID (Redundant Array of Independent (or Inexpensive) Disks) and data copy functions inside and outside the local storage system 30.
[0022] The SmartNIC 40 executes processing related to the backup of data stored in the local storage system 30. The SmartNIC 40 includes a backup generation management program 411, a cost-related table 412, and a backup program 413.
[0023] The backup generation management program 411 manages the backup data and management files transferred to the cloud storage 210 by generation. The backup generation management program 411 monitors the number of backup generations transferred to the cloud storage 210, and if the number exceeds the set number of generations to be retained, executes a generation deletion process to delete the oldest generation of backup data. The backup generation management program 411 compares the load cost of the generation deletion process with the cost reduction achieved by the generation deletion process, and determines whether to execute the generation deletion process. For example, the backup generation management program 411 calculates the amount charged for garbage collection (sometimes abbreviated as "garbage collection") during the generation deletion process as a cost, and determines whether to execute garbage collection (FIG. 1(1)).
[0024] Here, garbage collection refers to deleting data referenced only by the backup generation to be deleted. Since data referenced only by the backup generation to be deleted is unused data, if it is retained in the cloud storage 210, capacity charges will be incurred. Therefore, it is desirable to delete unused data during the backup generation deletion process. Because data must be retrieved from the cloud storage 210 in conjunction with garbage collection, transfer volume charges and request charges will be incurred. Therefore, in this embodiment, the capacity charge (A) (reduction cost) that can be reduced by implementing garbage collection and the transfer volume charge (B) + request charge (C) (total amount, load cost, load charge) required for garbage collection are calculated, and garbage collection is implemented only if the capacity charge (A) that can be reduced exceeds the transfer volume charge (B) + request charge (C) required for garbage collection. Specifically, for example, the capacity charge (A) that can be reduced when GabeColle is implemented and the transfer charge (B) + request charge (C) required for GabeColle are calculated by obtaining the second oldest generation management file from the cloud storage 210 and referring to the cost-related table 412 (see FIG. 4). Here, the management file is, for example, a bitmap that indicates in which areas differential data exists between backup generations.
[0025] If the capacity charge (A) that can be reduced by GabeColle exceeds the transfer charge (B) plus the request charge (C) incurred by GabeColle, the backup generation management program 411 executes a process (first process) to acquire the second oldest generation differential object from the cloud storage 210 (FIG. 1(2)). Here, the differential object is an object that stores differential data between backup generations, packed forward.
[0026] The backup generation management program 411 then executes a process (second process) of overwriting the oldest generation existing object with the differential data of the acquired differential object (FIG. 1(3)). At this time, the backup generation management program 411 uses functions provided by the cloud storage 210, etc., to transfer only the parts that contain differential data (using the first function), and copies parts of the existing object for parts that do not contain differential data (using the second function). For example, the backup generation management program 411 uses a multipart upload API (Application Programming Interface) to transfer only the parts that contain differential data. That is, it specifies the part number or ID to the multipart upload API, stores the parts that contain differential data using the UploadPart API, and copies the parts that do not contain differential data from the existing object in the cloud storage 210 using the UploadPartCopy API. Therefore, the parts that do not contain differential data remain as existing objects.
[0027] Furthermore, the backup generation management program 411 executes a process (third process) of linking the management file obtained by merging the oldest generation management file with the second oldest generation management file to the oldest object. For example, the backup generation management program 411 changes the name of the management file obtained by merging the oldest generation management file with the second oldest generation management file to the management file name of the oldest generation (FIG. 1(4)). Note that if the name of an object cannot be changed directly in the cloud storage 210, the backup generation management program 411 may create a management file obtained by merging the oldest generation management file with the second oldest generation management file, and transfer the created management file as an object with the management file name of the oldest generation.
[0028] Furthermore, the backup generation management program 411 executes a process (fourth process) to delete the management file and differential object of the second oldest generation (FIG. 1(5)).
[0029] These processes can reduce costs in the cloud system 20 in managing backup generations using the cloud storage 210.
[0030] Note that the cost may be determined not only by the charge amount due to GabeColle for the backup generation deletion process, but also by other indicators. For example, the amount of power consumption may be used as the cost. That is, the backup generation management program 411 may compare the amount of power consumption (load cost) required for the backup generation deletion process with the amount of power consumption reduced by the backup generation deletion process (reduction cost) as indicators to determine whether to implement GabeColle. These processes can reduce power consumption in the cloud system 20 in backup generation management using the cloud storage 210.
[0031] Furthermore, the management file does not have to be a bitmap file as long as it can indicate which areas between generations contain differential data. For example, it may use logical block addresses (LBAs) to manage which areas between generations contain differential data in LBA units.
[0032] Next, the cloud system 20 will be described in detail.
[0033] FIG. 2 is a configuration diagram of a cloud system.
[0034] The cloud system 20 includes a storage management system 200 and a cloud storage 210. The storage management system 200 and the cloud storage 210 are constructed using resources (processors, memory, etc.) allocated from multiple servers that make up the cloud system 20.
[0035] The storage management system 200 is a system that manages the operation of a plurality of local storage systems 30 within the cloud system 20 and outside the cloud system 20 .
[0036] The storage management system 200 has a backup schedule setting program 201, a storage management operation program 202, and a restore setting program 203. The backup schedule setting program 201 is executed by a processor assigned to the storage management system 200 to execute a process for setting a backup schedule for the local storage system 30. The storage management operation program 202 is executed by a processor assigned to the storage management system 200 to execute a process for operating the local storage system 30 within the cloud system 20 and outside the cloud system 20. For example, the storage management operation program 202 operates the local storage system 30 using an API for operations management provided by the local storage system 30. The restore setting program 203 is executed by a processor assigned to the storage management system 200 to execute a process for setting the restoration of data backed up in the cloud storage 210 to the local storage system 30 within the cloud system 20 and outside the cloud system 20.
[0037] The cloud storage 210 is a system for storing data. The cloud storage 210 provides objects, files, blocks, and the like as interfaces for data input and output.
[0038] Next, the local storage system 30 will be described in detail.
[0039] FIG. 3 is a configuration diagram of a local storage system.
[0040] The local storage system 30 is a system that provides block access to the host 50, and has a storage management subsystem 300, multiple redundant I / O control subsystems 380, and multiple drives 390 (390-0, 390-1, ..., 390-n).
[0041] The drive 390 is a physical storage device such as an SSD (Solid State Drive) or HDD (Hard Disk Drive). The drive 390 stores volume data (volume data) provided by the local storage system 30. For example, the volume data is snapshot data (hereinafter referred to as snapshot).
[0042] The I / O control subsystem 380 configures and provides one or more logical volumes based on the storage areas of the connected drives 390. The I / O control subsystem 380 executes I / O processing by issuing read and write I / O to the drives 390 based on the read and write I / O.
[0043] The I / O control subsystem 380 includes a processor 381 and a memory 382. The processor 381 executes various processes in accordance with programs stored in the memory 382. The memory 382 is, for example, a RAM (RANDOM ACCESS MEMORY), and stores the programs executed by the processor 381 and necessary information. The memory 382 stores an I / O control program 383.
[0044] The storage management subsystem 300 comprises a memory 310, a CPU 320, and a network I / F 330. These components (310, 320, 330) are interconnected by a communication path such as a bus.
[0045] The network I / F 330 communicates with other devices (host 50, cloud system 20, etc.) via the network 60 or another network. The network I / F 330 connects to the host 50 using a protocol such as FC (Fibre Channel) or iSCSI.
[0046] The CPU 320 executes programs stored in the memory 310. The memory 310 is, for example, a RAM, and stores the programs executed by the CPU 320 and necessary information. The memory 310 stores a storage management program 311, a backup scheduler 312, and a snapshot program 313.
[0047] The storage management program 311 is executed by the CPU 320 to perform management operations for the local storage system 30. The backup scheduler 312 is executed by the CPU 320 to perform regular backups. For example, a backup function unit is configured when the CPU 320 executes the backup scheduler 312. The snapshot program 313 is executed by the CPU 320 to perform snapshot operations. Note that the programs and information stored in the memory 310 may be stored in a storage device (not shown). In this case, the programs are read into the memory 310 by the CPU 320 and executed.
[0048] Next, the SmartNIC 40 will be described in detail.
[0049] Figure 4 is a diagram of the SmartNIC configuration.
[0050] The SmartNIC 40 includes a memory 403, a CPU 402, and network I / Fs 401 and 404. These components (403, 402, 401, and 404) are interconnected by a communication path such as a bus.
[0051] The CPU 402 executes a program stored in the memory 403 .
[0052] The network I / F 401 communicates with the cloud system 20 via the network 60. The network I / F 404 communicates with the storage management subsystem 300 of the local storage system 30.
[0053] The memory 403 is, for example, a RAM, and stores programs executed by the CPU 402 and necessary information. The memory 403 stores a management interface program 410, a backup generation management program 411, a cost-related table 412, a backup program 413, a restore program 414, and an operating system 415. Note that the programs and information stored in the memory 403 may be stored in a storage device (not shown). In this case, the programs are read into the memory 403 by the CPU 402 and executed.
[0054] The management interface program 410 is executed by the CPU 402 to provide an API for operating backup management and accepts operations via the network 60 . The backup generation management program 411 is executed by the CPU 402 to manage multiple generations of snapshots backed up to the cloud storage 210. Here, the execution of the backup generation management program 411 by the CPU 402 constitutes a management function unit. The backup program 413 is executed by the CPU 402 to communicate with the cloud storage 210 of the cloud system 20 to write and read data. The restore program 414 is executed by the CPU 402 to restore data backed up to the cloud storage 210 to the local storage system 30. The operating system 415 is executed by the CPU 402 to control the SmartNIC 40 and execute other programs.
[0055] The cost-related table 412 is a table that holds information on costs related to the use of the cloud system 20. The cost-related table 412 includes one or more tables from among a storage billing table 500, a compute system billing table 600, a power consumption table 700, a CO2 emission table 800, and a processing time table 900.
[0056] In the computer system 1 of this embodiment, a SmartNIC is provided, but this configuration is not limited to this. Instead of the SmartNIC, a configuration that does not affect the performance of the processor 381 of the I / O control subsystem 380, such as a physical server, a virtual server, or a container, may be used, and the functions of the SmartNIC may be realized in the local storage system 30.
[0057] Next, the storage charge table 500 will be described.
[0058] FIG. 5 is a diagram showing the configuration of the storage charge table.
[0059] The storage billing table 500 is a table that holds the fees (billing amounts) incurred for the use of the cloud storage 210. The storage billing table 500 stores entries corresponding to each storage class of the cloud storage 210 in each cloud.
[0060] An entry in the storage charge table 500 includes fields for a cloud ID 501 , a storage class 502 , a capacity charge 503 , a transfer amount charge 504 , and a request charge 505 .
[0061] Cloud ID 501 stores identification information (cloud ID) that identifies the cloud to which the cloud storage 210 corresponding to the entry belongs. Note that a cloud ID may be assigned for each type of cloud, or may be assigned for each individual cloud. Storage class 502 stores the type of storage (storage class) provided by the cloud storage 210. For example, storage classes include high speed, standard, low speed, etc.
[0062] Capacity charge 503 stores a fee (capacity charge) that is charged according to the amount of data stored in cloud storage 210. The capacity charge is, for example, a monthly fee per 1 GB. Transfer volume charge 504 stores a fee (transfer volume charge) that is charged when uploading data to cloud storage 210 (IN) and a fee (transfer volume charge) that is charged when downloading data from cloud storage 210 (OUT). The transfer volume charge is, for example, a fee per 1 GB. Request charge 505 stores a fee (request charge) that is charged according to the number of requests made to cloud storage 210. Requests include PUT, POST, GET, and LIST. If the fee varies depending on the type of request, the request charge for each type of request may be stored in request charge 505. The request charge is, for example, a fee per 1,000 requests.
[0063] Next, the computing system billing table 600 will be described.
[0064] FIG. 6 is a diagram showing the configuration of the compute system billing table.
[0065] The compute system billing table 600 is a table that holds the fees (billing amounts) incurred for the use of the cloud compute system 220. The compute system billing table 600 stores entries corresponding to each type of compute system in each cloud. An entry in the compute system billing table 600 includes fields for a cloud ID 601, a compute type 602, a time charge 603, and a request charge 604.
[0066] The cloud ID 601 stores identification information (cloud ID) that identifies the cloud to which the cloud compute system corresponding to the entry belongs. The compute type 602 stores the type (compute type) of the cloud compute system corresponding to the entry. For example, the compute type may be a virtual machine, a container, or a serverless system.
[0067] Hourly charge 603 stores the fee (charge amount) incurred per hour that the cloud compute system is running. For example, if the compute type is a virtual machine or a container, an hourly charge is incurred. The hourly charge amount is, for example, a charge per hour. Request charge 604 stores the fee (charge amount) incurred for requests to the compute system. For example, if the compute type is serverless, a request charge is incurred. The request charge is, for example, a charge per 1 million requests.
[0068] The storage charging table 500 and the compute system charging table 600 may be stored in the SmartNIC 40 or the compute system of the cloud system 20 when the computer system 1 is constructed. Alternatively, the backup generation management program 411 may create them when the backup generation management program 411 is installed. Furthermore, because the cloud system 20 may change its fees frequently, the backup generation management program 411 may periodically check the fees and update the storage charging table 500 and the compute system charging table 600. Alternatively, a system administrator may update the storage charging table 500 and the compute system charging table 600 via the storage management system 200.
[0069] Next, the power consumption amount table 700 will be described.
[0070] FIG. 7 is a diagram showing the configuration of the power consumption amount table.
[0071] The power consumption table 700 is a table for managing the power consumption for a predetermined configuration (SmartNIC, cloud storage, cloud compute system) in the computer system 1. The power consumption table 700 stores an entry for each predetermined configuration in the computer system 1. The entry in the power consumption table 700 includes fields for a location ID 701, a compute type 702, a storage class 703, a data storage power consumption 704, a compute processing power consumption 705, and a communication processing power consumption 706.
[0072] Location ID 701 stores an ID (location ID) that identifies the location of the configuration corresponding to the entry. Location IDs include cloud and on-premise (on-premise). Compute type 702 stores the type of compute (compute type) when the configuration corresponding to the entry is a compute system or SmartNIC. Compute types include SmartNIC, virtual machine, container, serverless, etc. Storage class 703 stores the storage class provided by the cloud storage when the configuration corresponding to the entry is cloud storage.
[0073] The data storage power consumption 704 stores the power consumption generated according to the amount of data stored in cloud storage when the configuration corresponding to the entry is cloud storage. The power consumption stored in the data storage power consumption 704 is, for example, the power consumption per 1 GB. The compute processing power consumption 705 stores the power consumption required for the configuration corresponding to the entry to execute compute processing. The power consumption of the compute processing power consumption 705 is, for example, the power consumption per 1 GB. The communication processing power consumption 706 stores the power consumption required for communication processing. The power consumption stored in the communication processing power consumption 706 is, for example, the power consumption per 1 GB.
[0074] Next, the CO2 emission amount table 800 will be described.
[0075] FIG. 8 is a diagram showing the structure of the CO2 emission table.
[0076] The CO2 emission table 800 is a table that holds the CO2 emission amounts that will be emitted in relation to processing in a specified configuration in the computer system 1. The CO2 emission table 800 stores entries for each specified configuration in the computer system 1. The entries in the CO2 emission table 800 include fields for location ID 801, compute type 802, storage class 803, data storage CO2 emission amount 804, compute processing CO2 emission amount 805, and communication processing CO2 emission amount 806.
[0077] Location ID 801 stores an ID (location ID) that identifies the location of the configuration corresponding to the entry. Location IDs include cloud and on-premise (on-premise). Compute type 802 stores the type of compute (compute type) when the configuration corresponding to the entry is a compute system or SmartNIC. Compute types include SmartNIC, virtual machine, container, serverless, etc. Storage class 803 stores the storage class provided by the cloud storage when the configuration corresponding to the entry is cloud storage.
[0078] The data storage CO2 emission amount 804 stores the amount of CO2 emission generated according to the amount of data stored in the cloud storage when the configuration corresponding to the entry is cloud storage. The CO2 emission amount stored in the data storage CO2 emission amount 804 is, for example, the amount of CO2 emission per 1 GB. The compute processing CO2 emission amount 805 stores the amount of CO2 emission generated when the configuration corresponding to the entry executes a compute process. The CO2 emission amount in the compute processing CO2 emission amount 805 is, for example, the amount of CO2 emission per 1 GB. The communication processing CO2 emission amount 806 stores the amount of CO2 emission generated in communication processing. The CO2 emission amount stored in the communication processing CO2 emission amount 806 is, for example, the amount of CO2 emission per 1 GB. The values of the CO2 emission amounts stored in the data storage CO2 emission amount 804, the compute processing CO2 emission amount 805, and the communication processing CO2 emission amount 806 may be obtained, for example, from tools or information provided by the cloud system 20, and set or updated.
[0079] Next, the processing time table 900 will be described.
[0080] FIG. 9 is a diagram showing the structure of the processing time table.
[0081] The processing time table 900 is a table that holds the processing time and communication time when performing GabeColle processing with a predetermined configuration in the computer system 1. The processing time table 900 stores an entry for each predetermined configuration in the computer system 1. An entry in the processing time table 900 includes fields for a location ID 901, a compute type 902, a processing time 903, and a communication time 904.
[0082] Location ID 901 stores the location ID of the configuration corresponding to the entry. Compute type 902 stores the compute type of the configuration corresponding to the entry. Processing time 903 stores the processing time of GabeColle processing using the configuration corresponding to the entry. The processing time stored in processing time 903 is, for example, the processing time per 1 GB. Communication time 904 stores the communication time of GabeColle processing using the configuration corresponding to the entry. The communication time in communication time 904 is, for example, the communication time per 1 GB. The processing time and communication time of GabeColle processing stored in processing time 903 and communication time 904 may be actually measured values or estimated values.
[0083] Next, a backup process in the computer system 1 according to the first embodiment will be explained.
[0084] FIG. 10 is a flowchart of the backup process.
[0085] The backup process 14000 is a process of creating snapshot data (also called "snapshot") of data (volume data) in a specified volume of the local storage system 30, and when a new snapshot is created, backing up differential data from the previous snapshot as backup data to the cloud storage 210. Note that the backup data may be object data (also called "object").
[0086] The backup process 14000 is executed periodically, for example, by the backup scheduler 312 of the local storage system 30. The backup process may be executed during a time period when the amount of data stored in the local storage system 30 or an index related to IO performance is smaller than a predetermined threshold.
[0087] The backup scheduler 312 of the local storage system 30 checks the current time and the scheduled time (backup time) for performing the configured backup (S14001), and determines whether the current time and the backup time match (S14002).
[0088] As a result, if the current time and the backup time do not match (S14002: No), the backup scheduler 312 proceeds to step S14001.
[0089] On the other hand, if the current time and the backup time match (S14002: Yes), the backup scheduler 312 instructs the snapshot program 313 to take a snapshot (S14003).
[0090] Upon receiving the instruction, the snapshot program 313 acquires a snapshot of the volume to be backed up, and returns a response to the backup scheduler 312 (S14004).
[0091] The backup scheduler 312 receives the response from the snapshot program and instructs the backup program 413 of the SmartNIC 40 to transfer data by specifying the backup type and the snapshot to be transferred (S14005). Here, the backup type is either a full backup, a differential backup, or an incremental backup.
[0092] The backup program 413 mounts the specified snapshot (S14006). That is, the backup program 413 accesses the snapshot and reads the snapshot.
[0093] The backup program 413 checks the specified backup type and determines whether it is a differential backup or an incremental backup (S14007). As a result, if the backup type is a differential backup or an incremental backup (S14007: Yes), the backup program 413 proceeds to step S14008, but if the backup type is not a differential backup or an incremental backup, that is, a full backup (S14007: No), the backup program 413 proceeds to step S14009.
[0094] In step S14008, the backup program 413 obtains data difference information from the storage management program 311 of the local storage system 30. Here, the data difference information is the data difference between snapshots, and includes information on blocks that have been updated between the previous snapshot that serves as the reference (the first snapshot in the case of a differential backup, or the previous snapshot in the case of an incremental backup) and the current snapshot. The data difference information may be obtained using an information sharing volume or by another method. For example, the backup program 413 may instruct the storage management program 311 of the local storage system 30 via the management network.
[0095] In step S14009, the backup program 413 obtains the data to be backed up from the local storage system 30, transfers the data to the cloud storage 210, and returns a response to the backup scheduler 312 when the data transfer is complete. Specifically, for example, the backup program 413 references the data difference information to check whether or not there is difference data for each part, and stores and transfers the data in the part that contains the difference data. Upon receiving the response from the backup program, the backup scheduler 312 terminates the backup process 14000.
[0096] In the above-described backup process 14000, the backup program 413 determines the backup type, and if it is a differential backup or incremental backup, obtains data difference information from the storage management program 311. However, the backup scheduler 312 may also pass the data difference information to the backup program 413 at the timing when it issues a backup instruction to the backup program 413.
[0097] Next, the restore process 15000 in the computer system 1 according to the first embodiment will be explained.
[0098] FIG. 11 is a flowchart of the restore process.
[0099] The restore process 15000 is started periodically or in response to an instruction from an administrator by the restore program 414 of the SmartNIC 40. In the following example, a process is started in response to an instruction from an administrator.
[0100] First, the restore setting program 203 of the storage management system 200 of the cloud system 20 receives a backup generation list reference request from the administrator from the terminal 10, and requests the restore program 414 of the SmartNIC 40 to reference the backup generation list (S15001).
[0101] The restore program 414 acquires the list of management files from the cloud storage 210 and responds to the restore setting program 203, that is, sends the list of management files (S15002).
[0102] The restore setting program 203 receives the list of management files, outputs a list of backup generations based on the list of management files, and receives a restore request including a designation of the generation to be restored from the administrator (S15003).
[0103] The restore setting program 203 requests a restore from the restore program 414 (S15004). This request includes information on the generation to be restored and the volume to be restored.
[0104] The restore program 414 acquires the management file of the generation accepted in step S15004 from the cloud storage 210 (S15005).
[0105] Next, the restore program 414 determines whether or not the restoration of all data of the specified generation has been completed (S15006). As a result, if the restoration of all data has been completed (S15006: Yes), the restore program 414 proceeds to step S15008. On the other hand, if the restoration of all data has not been completed (S15006: No), the restore program 414 obtains the data to be restored from the cloud storage 210, starting from the top of the volume, and writes it to the local storage system 30 (S15007), and proceeds to step S15006.
[0106] In step S15008, the restore program 414 responds to the restore setting program 203 that the restore is complete, and ends the restore process 15000.
[0107] Next, the backup generation management process 9000 in the computer system 1 according to the first embodiment will be explained.
[0108] 12 is a flowchart of the backup generation management process. The backup generation management process 9000 is a process (generation deletion process) for deleting the oldest M generations (M is an integer equal to or greater than 1) of object data from the cloud storage 210.
[0109] The backup generation management process 9000 is executed by the backup generation management program 411 of the SmartNIC 40 periodically or in response to an instruction from an administrator.
[0110] The backup generation management program 411 obtains a list of management files from the cloud storage 210 (S9001). Here, the management files for each backup generation stored in the cloud storage 210 are stored, for example, in the same directory, and the backup generation management program 411 obtains a list of objects in this directory. In this embodiment, the backup generation management program 411 obtains only the object names as the list, and does not obtain the contents of the management files.
[0111] The backup generation management program 411 references the acquired list of management files and checks whether the number of backup generations (number of backup generations) held in the cloud storage 210 (number of held generations) exceeds a preset upper limit value for the number of generations held (S9002). Here, the number of generations held in the cloud storage 210 can be obtained by calculating the number of management files from the acquired list of management files. The upper limit value for the number of generations held is reflected in the backup generation management program 411 of the SmartNIC 40 by, for example, being set by the administrator in the storage management system 200.
[0112] If the number of retained generations does not exceed the upper limit of the number of retained generations (S9002: No), there is no need to delete the backup generation, so the backup generation management program 411 ends the backup generation management process 9000.
[0113] On the other hand, if the number of retained generations exceeds the upper limit (S9002: Yes), the backup generation management program 411 sets the number exceeding the upper limit of the number of retained generations as M, and acquires M generations of management files from the cloud storage 210, from the second oldest generation (N+1 generation) to the (M+1)th oldest generation (N+M generation) (S9003). Here, N is the oldest (first oldest) generation and is an integer greater than or equal to 1. In step S9003, for example, if M=1, the management file of the second oldest generation is acquired, and if M=2, the management files of the second oldest generation and the third oldest generation are acquired.
[0114] Next, the backup generation management program 411 calculates the capacity charge (A) that can be reduced by implementing GabeColle and the transfer volume charge (B) + request charge (C) for GabeColle based on the acquired management file and the storage billing table 500 (S9004). The capacity charge (A) that can be reduced by implementing GabeColle can be calculated by identifying the differential data volume for backup generations that exceed the upper limit of the number of generations retained from the acquired management file, and calculating the reduction in the capacity charge (reduced charge) when this differential data volume is reduced based on the storage billing table 500. The transfer volume charge (B) for GabeColle can be calculated by calculating the charge amount that will be incurred according to the transfer volume that will be incurred when GabeColle is implemented. The request charge (C) for GabeColle can be calculated by identifying the number of requests that will be incurred when GabeColle is implemented and calculating the charge amount that will be incurred according to that number of requests.
[0115] Next, the backup generation management program 411 determines whether the capacity charge (A) that can be reduced when GabeColle is implemented is greater than the transfer amount charge (B) plus the request charge (C) required for GabeColle (S9005).
[0116] If the capacity charge (A) that can be reduced by implementing GabeColle is not greater than the transfer charge (B) + request charge (C) required for GabeColle (S9005: No), this means that the total cost of cloud storage 210 will increase if GabeColle is implemented, so the backup generation management program 411 terminates the backup generation management process 9000.
[0117] On the other hand, if the capacity charge (A) that can be reduced by implementing GabeColle is greater than the transfer charge (B) for GabeColle plus the request charge (C) (S9005: Yes), the backup generation management program 411 performs a process (first process) to obtain M generations of differential objects from the cloud storage 210, from the second oldest backup generation (N+1 generation) to the (M+1)th oldest backup generation (N+M generation) (S9006).
[0118] Next, the backup generation management program 411 determines whether aggregation has been completed for all of the one or more acquired differential objects (S9007). As a result, if aggregation has been completed for all of M generations of differential data (S9007: Yes), the backup generation management program 411 proceeds to step S9010.
[0119] On the other hand, if aggregation of all M generations of differential data has not been completed (S9007: No), the backup generation management program 411 selects the next partial differential data from the acquired differential data for which processing has not been completed, and determines whether the partial differential data size is smaller than the minimum part size (S9008). Here, partial differential data is the data part of the differential data where a difference exists, and the minimum part size is the smallest part size that can be transferred using the multipart upload API of the cloud storage 210.
[0120] If the size of the partial differential data is not smaller than the minimum part size (S9008: No), the size is transferable using the multipart upload API, so the backup generation management program 411 proceeds to step S9007. On the other hand, if the size of the partial differential data is smaller than the minimum part size (S9008: Yes), the backup generation management program 411 acquires the data before and after the partial differential data from the object of the oldest backup generation so that the data including the partial differential data has the minimum part size, and proceeds to step S9007 (S9009).
[0121] In step S9010, the backup generation management program 411 executes a process (second process) of overwriting the aggregated differential data onto the existing object of the oldest backup generation (Nth generation). Here, the backup generation management program 411 uses a multipart upload API provided by the cloud storage 210 to transfer only the data of the part that has differential data, and the part that does not have differential data remains as the original existing object. Specifically, for example, for the part that has differential data, the data may be transferred using the UploadPart API, and for the part that does not have differential data, the UploadPartCopy API may be used to instruct copying from the existing object.
[0122] Next, the backup generation management program 411 executes a process (third process) of merging management files from the oldest backup generation (N generation) to the (M+1)th oldest backup generation (N+M generation) in the cloud storage 210, and linking the merged management file to the object of the oldest backup generation (N generation) (S9011). For example, the backup generation management program 411 merges management files from the oldest generation to the (M+1)th oldest generation, and renames the merged management file to the management file name of the oldest backup generation (N generation). If the name of an object cannot be changed directly in the cloud storage 210, the contents of the management file can be transferred as an object with the management file name of the oldest generation (N generation) for the management file obtained by merging management files from the oldest generation to the (M+1)th oldest generation.
[0123] Next, the backup generation management program 411 executes a process (fourth process) to delete the management files and differential objects from the second oldest generation (N+1 generation) to the (M+1)th oldest generation (N+M generation) from the cloud storage 210 (S9012), and terminates the backup generation management process 9000.
[0124] According to the backup generation management process 9000 described above, if the capacity charge (A) that can be reduced by implementing GabeColle is greater than the transfer volume charge (B) + request charge (C) required for GabeColle, implementing GabeColle can reduce the costs of the cloud system 20.
[0125] Next, the backup generation designated deletion process 12000 in the computer system 1 according to the first embodiment will be explained.
[0126] 13 is a flowchart of the backup generation designated deletion process according to Example 1. The backup generation designated deletion process 12000 is a process for deleting one specific generation's worth of object data from the object data in the cloud storage 210 (generation deletion process).
[0127] The backup generation designated deletion process 12000 is executed by the backup generation management program of the SmartNIC 40 periodically or in response to an instruction from the administrator.
[0128] The backup generation management program 411 receives a deletion instruction for a specific backup generation (target backup generation) (S12001). For example, the storage management system 200 of the cloud system 20 may receive a deletion instruction for a specific backup generation from an administrator and transfer the received instruction to the backup generation management program 411 of the SmartNIC 40, and the backup generation management program 411 may then receive the transferred deletion instruction.
[0129] Furthermore, if there is a backup generation that periodically meets certain conditions, the backup generation management program 411 may be configured to accept a deletion instruction for that generation. For example, if the storage management system 200 is configured to retain seven generations of daily backups and five generations of weekly backups, the program may be configured to accept a deletion instruction to delete daily backup generations whose retention period is more than seven days, and a deletion instruction to delete weekly backup generations whose retention period is more than five weeks. In this case, the backup generation that is deleted is not necessarily the oldest generation.
[0130] Next, the backup generation management program 411 acquires management files for the target backup generation (G_x) (Nth generation) and the backup generation (G_y) (N+1th generation) that is one generation newer than the target backup generation (G_x) from the cloud storage 210 (S12002).
[0131] Next, the backup generation management program 411 calculates the capacity charge (A) that can be reduced when GabeColle is implemented and the transfer volume charge (B) + request charge (C) required for GabeColle based on the acquired management file and the storage billing table 500 (S12003). Here, the capacity charge (A) that can be reduced when GabeColle is implemented can be calculated by identifying the differential data volume for the target backup generation from the acquired management file and calculating the reduction in the capacity charge when this differential data volume is reduced based on the storage billing table 500. Also, the transfer volume charge (B) required for GabeColle can be calculated by calculating the charge amount that will be incurred according to the transfer volume that will be incurred when GabeColle is implemented. Also, the request charge (C) required for GabeColle can be calculated by identifying the number of requests that will be incurred when GabeColle is implemented and calculating the charge amount that will be incurred according to that number of requests.
[0132] Next, the backup generation management program 411 determines whether the capacity charge (A) that can be reduced when GabeColle is implemented is greater than the transfer amount charge (B) plus the request charge (C) required for GabeColle (S12004).
[0133] If the capacity charge (A) that can be reduced by implementing GabeColle is not greater than the transfer charge (B) + request charge (C) for GabeColle (S12004: No), this means that the total cost of cloud storage 210 will increase if GabeColle is implemented, so the backup generation management program 411 terminates the backup generation specified deletion process 12000.
[0134] On the other hand, if the capacity charge (A) that can be reduced by implementing GabeColle is greater than the transfer charge (B) for GabeColle plus the request charge (C) (S12004: Yes), the backup generation management program 411 performs a process (first process) to obtain differential objects of the target backup generation (G_x) (Nth generation) and the backup generation (G_y) (N+Mth generation) that is one generation newer than the target backup generation (G_x) (S12005).
[0135] Next, the backup generation management program 411 creates differential data by merging the differential data between the target backup generation (G_x) (Nth generation) and the backup generation (G_y) (N+Mth generation) that is one generation newer than it (S12006).
[0136] Next, the backup generation management program 411 executes processing (second processing) to overwrite the merged differential data onto the existing object of the target backup generation (G_x) (Nth generation) (S12007).
[0137] Next, the backup generation management program 411 executes a process (part of the fourth process) to delete the differential object of the generation (G_y) (N+Mth generation) that is one newer than the target backup generation from the cloud storage 210 (S12008).
[0138] Next, the backup generation management program 411 executes a process (third process) to create a management file that merges the management files of the target backup generation (G_x) (Nth generation) and the backup generation (G_y) (N+Mth generation) that is one generation newer than that (S12009). For example, if the management file manages a differential bitmap that indicates the presence or absence of differences with bits, the backup generation management program 411 merges the management files by performing an OR operation on the differential bitmap of the target backup generation (G_x) (Nth generation) and the differential bitmap of the backup generation (G_y) (N+Mth generation) that is one generation newer than that.
[0139] Next, the backup generation management program 411 overwrites the created management file onto the management file of the target backup generation (G_x) (Nth generation) (S12010).
[0140] Next, the backup generation management program 411 executes (12011) a process (part of the fourth process) to delete the management file of the backup generation (G_y) (N+Mth generation) that is one newer than the target backup generation, and terminates the backup generation specified deletion process 12000.
[0141] In the backup generation specified deletion process shown in Fig. 13, the number of generations to be deleted, M, is set to 1, and an example of processing for one backup generation is shown, but M may be set to 2 or more, and processing may be executed to delete multiple backup generations collectively. Also, the order of the steps in the backup generation specified deletion process 12000 shown in Fig. 13 is not limited to this, and steps that can be rearranged without causing any problems may be rearranged. For example, the processing of step S12008 may be executed collectively in step S12011. [Example]
[0142] Next, a computer system 1A according to a second embodiment will be described.
[0143] 14 is a configuration diagram of a computer system according to Example 2. Note that the same components as those in the computer system of Example 1 are denoted by the same reference numerals.
[0144] The second embodiment differs from the first embodiment in that, in the GabeColle processing, differential data to be overwritten on the oldest generation of an existing object is acquired from a snapshot of the local storage system 30. In the computer system 1A of the second embodiment, when the backup generation management program 411A of the SmartNIC 40 connected to the local storage system 30 deletes backup generations that exceed the upper limit value of the number of backup generations to be retained, the program acquires differential data from the second oldest generation (N+1th generation) to the (M+1)th oldest generation (N+Mth generation) from the snapshot of the local storage system 30. In addition, the local storage system 30 retains snapshots 31 for the generations backed up to the cloud storage 210.
[0145] The computer system 1A according to the second embodiment has a part of its processing (FIG. 14(2)) that is different from the processing (FIG. 1(2)) of the computer system 1 according to the first embodiment shown in FIG. 1. Specifically, the backup generation management program 411A of the SmartNIC 40 according to the second embodiment acquires the differential data of the second oldest generation from the snapshot 31 of the local storage system 30, and executes the processing. In this way, by acquiring the differential data of the second oldest generation (N+1th generation) from the local storage system 30, no transfer charge is incurred for that amount, and therefore the cost of the cloud system 20 can be reduced in the backup generation management processing in the cloud system 20.
[0146] Next, the backup generation management process 10000 in the computer system 1A according to the second embodiment will be explained.
[0147] 15 is a flowchart of a backup generation management process according to Example 2. A backup generation management process 10000 is a process for deleting the oldest M generations (M is an integer equal to or greater than 1) of object data from the cloud storage 210.
[0148] The backup generation management process 9000 is executed by the backup generation management program 411A of the SmartNIC 40 periodically or in response to an instruction from an administrator.
[0149] The processing in steps S10001 to S10005 is the same as the processing in steps S9001 to S9005 in FIG.
[0150] If the capacity charge (A) that can be reduced by implementing GabeColle is greater than the transfer charge (B) for GabeColle plus the request charge (C) (S10005: Yes), the backup generation management program 411A performs a process (first process) to obtain snapshots from the cloud storage 210 as differential data for M generations from the second oldest backup generation (N+1 generation) to the (M+1)th oldest backup generation (N+M generation) (S10006).
[0151] Next, the backup generation management program 411A determines whether aggregation of all of the one or more acquired snapshots (differential data) has been completed (S10007). As a result, if aggregation of all of M generations of differential data has been completed (S10007: Yes), the backup generation management program 411A proceeds to step S10010.
[0152] On the other hand, if aggregation of all M generations of differential data has not been completed (S10007: No), the backup generation management program 411A selects the next partial differential data from the acquired differential data for which processing has not been completed, and determines whether the partial differential data size is smaller than the minimum part size (S10008). Here, partial differential data is the data part of the differential data where a difference exists, and the minimum part size is the smallest part size that can be transferred using the multipart upload API of the cloud storage 210.
[0153] If the size of the partial differential data is not smaller than the minimum part size (S10008: No), the size is transferable using the multipart upload API, so the backup generation management program 411A proceeds to step S10007. On the other hand, if the size of the partial differential data is smaller than the minimum part size (S10008: Yes), the backup generation management program 411A acquires the data before and after the partial differential data from the snapshot of the oldest backup generation so that the data including the partial differential data has the minimum part size, and proceeds to step S10007 (S10009).
[0154] The processing in steps S10010 to S10012 is the same as the processing in steps S9010 to S9012 in FIG.
[0155] In the computer system 1A according to the embodiment described above, the snapshots backed up to the cloud storage 210 are left in the local storage system 30, but the snapshots in the local storage system 30 may be deleted at any time. For example, the backup generation management program 411A may delete the oldest generation snapshot from the local storage system 30 after the backup generation management process 10000 is completed. [Example]
[0156] Next, a computer system 1B according to a third embodiment will be described.
[0157] 16 is a configuration diagram of a computer system according to Example 3. Note that the same components as those in the computer system of Example 1 are denoted by the same reference numerals.
[0158] The third embodiment differs from the first and second embodiments in that the cloud system 20 performs backup generation management.
[0159] In the computer system 1B of the third embodiment, a backup generation management program 411B of the cloud compute system 220 of the cloud system 20 manages the generations of backups transferred to the cloud storage 210. The cloud compute system 220 is configured as a virtual machine, a container, or a serverless system. When the cloud compute system 220 is a virtual machine, for example, the virtual machine is started periodically to execute the backup generation management program 411B. When the cloud compute system 220 is a container, for example, the container is started periodically to execute the backup generation management program 411B. When the cloud compute system 220 is serverless, for example, the backup generation management program 411B is executed when an object is stored in the cloud storage 210 as a trigger.
[0160] The cloud system 20 of the computer system 1B includes a cloud compute system 220. The cloud compute system 220 stores a backup generation management program 411B and a cost-related table 412B. The cost-related table 412B has a similar configuration to the cost-related table 412. The backup generation management program 411B has some different functions from the backup generation management program 411. The following will focus on the different functions. The backup generation management program 411B confines backup generation management within the cloud system 20, so no transfer volume charges are incurred in the cloud system 20, but because the backup generation management program 411B is executed in the cloud compute system 220, compute charges are incurred.
[0161] Next, the backup generation management process 11000 in the computer system 1B according to the third embodiment will be explained.
[0162] 17 is a flowchart of a backup generation management process according to Example 3. A backup generation management process 11000 is a process for deleting the oldest M generations (M is an integer equal to or greater than 1) of object data from the cloud storage 210.
[0163] The backup generation management process 11000 is executed by the backup generation management program 411B of the cloud compute system 220 periodically or in response to an instruction from an administrator.
[0164] The processing in steps S11001 to S11003 is the same as the processing in steps S9001 to S9003 in FIG.
[0165] In step S11004, the backup generation management program 411B calculates the capacity charge (A) that can be reduced by implementing GabeColle and the request charge (C) plus the compute charge (D) required for GabeColle based on the acquired management file, the storage charging table 500, and the compute system charging table 600. The capacity charge (A) that can be reduced by implementing GabeColle can be calculated by identifying, from the acquired management file, the amount of differential data for backup generations that exceeds the upper limit of the number of generations retained, and calculating the reduction in the capacity charge when this amount of differential data is reduced based on the storage charging table 500. The request charge (C) required for GabeColle can be calculated by identifying the number of requests that will occur when GabeColle is implemented and calculating the charge amount that will be incurred according to that number of requests based on the storage charging table 500. The compute charge (D) required for GabeColle can be calculated by calculating the charge amount that will be incurred according to the compute that will be incurred when GabeColle is implemented based on the compute system charging table 600.
[0166] Next, the backup generation management program 411B determines whether the capacity charge (A) that can be reduced when GabeColle is implemented is greater than the request charge (C)+compute charge (D) required for GabeColle (S11005).
[0167] If the capacity charge (A) that can be reduced by implementing GabeColle is not greater than the request charge (C) + compute charge (D) required for GabeColle (S11005: No), this means that the total cost of cloud storage 210 will increase if GabeColle is implemented, so the backup generation management program 411B terminates the backup generation management process 11000.
[0168] On the other hand, if the capacity charge (A) that can be reduced by implementing GabeColle is greater than the request charge (C) + compute charge (D) for GabeColle (S11005: Yes), the backup generation management program 411B performs a process (first process) to obtain M generations of differential objects from the cloud storage 210, from the second oldest backup generation (N+1 generation) to the (M+1)th oldest backup generation (N+M generation) (S11006).
[0169] The subsequent steps S11007 to S11012 are the same as the processes in steps S9007 to S9012 in FIG. [Example]
[0170] Next, a computer system according to a fourth embodiment will be described.
[0171] In the computer systems according to the first to third embodiments, examples have been shown in which backup generations are deleted in order from the oldest, but if the condition that the capacity charge that can be reduced when GabeColle is implemented is greater than the charge for GabeColle processing is met, it is possible to obtain an effect even if a generation other than the oldest generation is deleted. Therefore, the computer system according to the fourth embodiment differs from the first to third embodiments in that the oldest generation is not necessarily deleted in order. In the computer system according to the fourth embodiment, for example, the backup generation management programs 411, 411A, and 411B delete any consecutive M generations.
[0172] Next, the backup generation management process 19000 in the computer system according to the fourth embodiment will be explained.
[0173] 18 is a flowchart of a backup generation management process according to Example 4. The backup generation management process 19000 is a process for deleting any M generations of object data (M is an integer equal to or greater than 1) from the object data in the cloud storage 210.
[0174] The backup generation management process 19000 is executed by the backup generation management program 411, 411A of the SmartNIC 40 or by the backup generation management program 411B of the cloud compute system 220 periodically or in response to an instruction from an administrator.
[0175] The processing in steps S19001 and S19002 is the same as the processing in steps S9001 and S9002 in FIG.
[0176] If the number of retained generations does not exceed the upper limit of the number of retained generations (S19002: No), there is no need to delete the backup generation, and the backup generation management program ends the backup generation management process 19000.
[0177] On the other hand, if the number of retained generations exceeds the upper limit (S19002: Yes), the backup generation management program determines whether or not it has completed checking whether the conditions of step S19006 are met for all patterns from the oldest generation to the latest generation (S19003).As a result, if it has completed checking up to the latest generation (S19003: Yes), the backup generation management program proceeds to step S19007.
[0178] On the other hand, if the check has not been completed up to the latest generation (S19003; No), the backup generation management program sets the number exceeding the upper limit of the number of generations retained to M, and acquires management files for M consecutive generations that have not yet been checked to see if the condition of step S19006 is met from cloud storage 210 (S19004). For example, if M=2, the first time step S19004 acquires management files for the second and third oldest generations, and the second time step S19004 acquires management files for the third and fourth oldest generations. The backup generation management program may store the acquired management files on the device (SmartNIC 40 or cloud compute system 220) that is executing the backup generation management program, and then acquire and use the stored management files.
[0179] Next, the backup generation management program calculates the capacity charge (A) that can be reduced by implementing GabeColle and the transfer volume charge (B) + request charge (C) for GabeColle based on the acquired management file and the storage billing table 500 (S19005). The capacity charge (A) that can be reduced by implementing GabeColle can be calculated by identifying the differential data volume for backup generations that exceed the upper limit of the number of generations retained from the acquired management file, and calculating the reduction in the capacity charge when this differential data volume is reduced based on the storage billing table 500. The transfer volume charge (B) for GabeColle can be calculated by calculating the charge amount that will be incurred according to the transfer volume that will be incurred when GabeColle is implemented. The request charge (C) for GabeColle can be calculated by identifying the number of requests that will be incurred when GabeColle is implemented and calculating the charge amount that will be incurred according to that number of requests.
[0180] If the capacity charge (A) that can be reduced by implementing GabeColle is greater than the transfer amount charge (B) for GabeColle plus the request charge (C) (S19006: Yes), the backup generation management program proceeds to step S19008.
[0181] On the other hand, if the capacity charge (A) that can be reduced by implementing GabeColle is not greater than the transfer volume charge (B) plus the request charge (C) required for GabeColle (S19006: No), the backup generation management program proceeds to step S19003.
[0182] In step S19007, the backup generation management program determines whether the minimum value of the transfer amount charge (B) + request charge (C) charged to GabeColle is smaller than the set upper limit processing cost for any consecutive M generations. Here, the upper limit processing cost may be set by the storage management system 200 from an administrator, and the storage management system 200 may reflect this set value in the backup generation management program.
[0183] As a result, if the minimum value of the transfer charge (B) + request charge (C) charged to GabeColle for any consecutive M generations is not smaller than the upper limit processing cost (S19007: No), the backup generation management program terminates the backup generation management process 19000.
[0184] On the other hand, if the minimum value of the transfer charge amount (B) + request charge amount (C) charged to GabeColle is smaller than the upper limit processing cost (S19007: Yes), the backup generation management program proceeds to step S19008. As a result, if it is smaller than the upper limit processing cost, M generations of management files and differential objects will be deleted.
[0185] The subsequent processing of steps S19008 to S19011 is the same as the processing of steps S9006 and S9010 to S9012 in Fig. 12. Note that the oldest generation and second oldest generation in steps S19008 to S19011 are generations within M consecutive generations that are to be deleted.
[0186] In the backup generation management process shown in FIG. 18, an example of deleting M consecutive generations is shown, but they do not necessarily have to be consecutive, and any M consecutive generations may be deleted. For example, M oldest generations among even (or odd) generation numbers may be selected and deleted, or M generations may be selected and deleted in order of the largest (or smallest) amount of differential data. In this case, if the selected M generations are not consecutive, differential data for each consecutive generation may be merged into the existing object of the next older generation. For example, if backups of generations 1, 2, . . . , 9, and 10 are performed in order from oldest to newest, and M=4, the second and third generations may be merged into the first generation, and the fifth and sixth generations may be merged into the fourth generation. [Example]
[0187] Next, a computer system according to a fifth embodiment will be described.
[0188] In the computer systems according to the first to fourth embodiments, an example was shown in which M generations, the number of backup generations of which exceeds the set upper limit of the number of generations to be retained, are deleted, but the computer system according to the fifth embodiment differs in that ML generations are deleted. Here, L is 0, 1, 2, . . . , M-1. If the condition is met that the capacity charge that can be reduced when GabeColle is implemented is greater than the charge for GabeColle processing, the ML generation may be deleted instead of the M generation, and even in this case, a cost reduction effect can be obtained.
[0189] Next, the backup generation management process 20000 in the computer system according to the fifth embodiment will be explained.
[0190] 19 is a flowchart of a backup generation management process according to Example 5. A backup generation management process 20000 is a process for deleting ML generations (M is an integer equal to or greater than 1) of object data from the cloud storage 210.
[0191] The backup generation management process 20000 is executed by the backup generation management program 411, 411A of the SmartNIC 40 or by the backup generation management program 411B of the cloud compute system 220 periodically or in response to an instruction from an administrator.
[0192] The processing in steps S20001 and S20002 is the same as the processing in steps S9001 and S9002 in FIG.
[0193] If the number of retained generations does not exceed the upper limit of the number retained (S20002: No), there is no need to delete the backup generation, so the backup generation management program ends the backup generation management process 19000.
[0194] On the other hand, if the number of generations to be retained exceeds the upper limit (S20002: Yes), the backup generation management program initializes (sets to 0) the variable L that determines the number of generations to be deleted (S20003).
[0195] Next, the backup generation management program sets the number exceeding the upper limit of the number of retained generations as M, and determines whether L is smaller than M (S20004). As a result, if L is not smaller than M (S20004: No), the backup generation management program proceeds to step S20009.
[0196] On the other hand, if L is smaller than M (S20004: Yes), the backup generation management program acquires management files for (ML) generations, from the second oldest generation to the (M-L+1)th oldest generation (S20005). For example, if M=3 and L=1, the backup generation management program acquires management files for the second oldest generation and the third oldest generation. The backup generation management program may store the acquired management files on the device (SmartNIC 40 or cloud compute system 220) that is running the backup generation management program, and then acquire and use the stored management files.
[0197] Next, the backup generation management program calculates the capacity charge (A) that can be reduced by implementing GabeColle and the transfer volume charge (B) + request charge (C) for GabeColle based on the acquired management file and the storage billing table 500 (S20006). The capacity charge (A) that can be reduced by implementing GabeColle can be calculated by identifying the differential data volume for (ML) generations from the acquired management file and calculating the reduction in the capacity charge when this differential data volume is reduced based on the storage billing table 500. The transfer volume charge (B) for GabeColle can be calculated by calculating the charge amount that will be incurred according to the transfer volume that will be incurred when GabeColle is implemented. The request charge (C) for GabeColle can be calculated by identifying the number of requests that will be incurred when GabeColle is implemented and calculating the charge amount that will be incurred according to that number of requests.
[0198] If the capacity charge (A) that can be reduced by implementing GabeColle is greater than the transfer amount charge (B) for GabeColle plus the request charge (C) (S20007: Yes), the backup generation management program proceeds to step S20010.
[0199] On the other hand, if the capacity charge (A) that can be reduced by implementing GabeColle is not greater than the transfer volume charge (B) + request charge (C) imposed by GabeColle (S20007: No), the backup generation management program increments the variable L (+1) (S20008) and proceeds to step S20004.
[0200] In step S20009, the backup generation management program determines whether the minimum value of the transfer amount charge (B) + request charge (C) for any (ML) generations (where L is 0 to M-1) imposed on GabeColle is smaller than the set upper limit processing cost. Here, the upper limit processing cost may be set by the storage management system 200, for example, and the storage management system 200 may reflect the set value in the backup generation management program.
[0201] As a result, if the minimum value of the transfer charge (B) + request charge (C) charged to GabeColle for any (ML) generations is not smaller than the upper limit processing cost (S20009: No), the backup generation management program terminates the backup generation management process 20000.
[0202] On the other hand, if the minimum value of the transfer amount charge (B) plus the request charge (C) charged to GabeColle is smaller than the upper limit processing cost (S20009: Yes), the backup generation management program proceeds to step S20010.
[0203] The subsequent processing of steps S20010 to S20016 is the same as the processing of steps S9006 to S9012 in Figure 12. Note that the oldest and second oldest generations in steps S20014 to S20016 are generations within the (ML) generation to be deleted. Note that while the processing of merging into the oldest generation with N=1 has been described here, N may be 2 or greater. In this case, the data of the Nth generation and the differential data for M generations are aggregated (sorted from the beginning by address and moved forward) and the data is overwritten onto the existing object of the Nth generation.
[0204] Although several embodiments have been described above, it goes without saying that the present invention is not limited to these embodiments and can be modified in various ways without departing from the spirit of the present invention. [Explanation of symbols]
[0205] 1, 1A, 1B... Computer system, 10... Terminal, 20... Cloud system, 30... Local storage system, 40... SmartNIC, 50... Host, 60... Network, 210... Cloud storage
Claims
1. A computer system comprising: a cloud system that provides cloud storage; and a local storage system that is connected to the cloud system via a network, a backup function unit that backs up snapshot data of the local storage system to the cloud storage as backup data; the cloud storage includes the backup data and a management file associated with each of the backup data; the computer system includes a management function unit that manages the backup data and the management file stored in the cloud storage for each generation; the management function unit compares the load cost required for the generation deletion process with the reduced cost achieved by the generation deletion process, and executes the generation deletion process if the reduced cost is greater than the load cost; the generation deletion process is a process for deleting backup data and management files for a predetermined M generations (M is an integer equal to or greater than 1), and includes a first process, a second process, a third process, and a fourth process; The first process is a process of acquiring differential data of M generations of backup data from an N+1 generation to an N+M generation, which are generations one generation newer than a predetermined Nth generation (N is an integer equal to or greater than 1), the second processing is processing in which, in the cloud storage, the differential data is stored in the cloud storage and overwritten onto N-generation backup data; the third process is a process of merging, in the cloud storage, the management file of the Nth generation linked to the backup data of the Nth generation to the management file of the N+Mth generation linked to the backup data of the Nth generation, and linking the management file to the backup data of the Nth generation, The fourth process is a process of deleting backup data and management files from the N+1 generation to the N+M generation in the cloud storage. Computer system.
2. 2. The computer system according to claim 1, The Nth generation is the oldest generation of the backup data in the cloud storage. Computer system.
3. 2. The computer system according to claim 1, The M is 1. Computer system.
4. 2. The computer system according to claim 1, The management function unit is provided in the local storage system. Computer system.
5. 2. The computer system according to claim 1, The management function unit is provided in the cloud system. Computer system.
6. 2. The computer system according to claim 1, In the first process, the management function unit acquires the differential data from the cloud storage. Computer system.
7. 2. The computer system according to claim 1, In the first process, the management function unit acquires the differential data from the local storage system. Computer system.
8. 2. The computer system according to claim 1, The load cost is a load charge related to reading and writing to the cloud storage, The reduced cost is a reduced charge amount related to the amount of data reduced from the cloud storage. Computer system.
9. 9. The computer system according to claim 8, The load charge is the sum of a transfer amount charge related to the amount of data read and written to the cloud storage related to the generation deletion process and a request charge related to a request to the cloud storage related to the generation deletion process. Computer system.
10. 5. The computer system according to claim 4, the backup data and the management file are managed by dividing them into a plurality of parts; the management file includes, for each of the plurality of parts, data indicating whether or not there is a difference between the backup data linked to the management file and backup data that is one generation older than the backup data; the cloud system includes a first function and a second function as functions for storing data in each of the parts of the backup data; the first function is a function of storing data acquired from outside the cloud storage in the part of the backup data; the second function is a function of copying data in the cloud storage and storing it in the part of the backup data; The management function unit In the second process, instructing the cloud system to execute the first function for a part of the management file that has a difference among the plurality of parts; instructing the cloud system to execute the second function for parts of the management file that do not have differences among the plurality of parts; Computer system.
11. 2. The computer system according to claim 1, The management function unit If the reduced cost is not greater than the load cost, increase the value of N to find a case where the reduced cost is greater than the load cost. Computer system.
12. 12. The computer system according to claim 11, An upper limit processing cost for the generation deletion process is set, The management function unit If the reduction cost does not exceed the load cost even when the value of N is increased, the generation deletion process is performed for N such that the load cost is smaller than the upper limit processing cost. Computer system.
13. 2. The computer system according to claim 1, The management function unit If the reduction cost is not greater than the load cost, the number of generations to be deleted in the generation deletion process is reduced, and a case is searched for where the reduction cost becomes greater than the load cost. Computer system.
14. 14. The computer system according to claim 13, An upper limit processing cost for the generation deletion process is set, The management function unit If the reduction cost does not exceed the load cost even when the number of generations to be deleted in the generation deletion process is reduced, the generation deletion process is performed for the number of generations that will make the load cost smaller than the upper limit processing cost. Computer system.
15. A backup management method for a computer system including a cloud system that provides cloud storage and a local storage system that is connected to the cloud system via a network, comprising: the computer system backs up snapshot data of the local storage system to the cloud storage as backup data; the cloud storage includes the backup data and a management file associated with each of the backup data; the computer system manages the backup data and the management file stored in the cloud storage for each generation; comparing the load cost required for the generation deletion process with the reduction cost achieved by the generation deletion process, and if the reduction cost is greater than the load cost, executing the generation deletion process; the generation deletion process is a process for deleting backup data and management files for a predetermined M generations (M is an integer equal to or greater than 1), and includes a first process, a second process, a third process, and a fourth process; The first process is a process of acquiring differential data of M generations of backup data from an N+1 generation to an N+M generation, which are generations one generation newer than a predetermined Nth generation (N is an integer equal to or greater than 1), the second processing is processing in which, in the cloud storage, the differential data is stored in the cloud storage and overwritten onto N-generation backup data; the third process is a process of merging, in the cloud storage, the management file of the Nth generation linked to the backup data of the Nth generation to the management file of the N+Mth generation linked to the backup data of the Nth generation, and linking the management file to the backup data of the Nth generation, The fourth process is a process of deleting backup data and management files from the N+1 generation to the N+M generation in the cloud storage. Backup management methods.
Citation Information
Patent Citations
Storage system and method for making storage cost appropriate
JP2020155071A