Computing devices, methods, and non-transitory machine-readable media for restoring backups from remote storage

CN117743024BActive Publication Date: 2026-10-20HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310737911.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2022-09-20
Filing Date
2023-06-21
Publication Date
2026-10-20
Estimated Expiration
2043-06-21

Smart Images

  • Figure CN117743024B_ABST
    Figure CN117743024B_ABST
Patent Text Reader

Abstract

The present disclosure relates to restoring backups from remote storage. Example embodiments relate to backup operations in storage systems. Examples include a medium having stored therein instructions to perform operations comprising: detecting a triggering event to initiate a backup restore of a data entity at a local storage system; determining a user's preference between speed-first and cost-first; selecting, based at least on the determined user preference, between: an indirect restore option in which a first portion of backup data stored on a remote storage system is combined with a second portion of backup data stored on a gateway device to restore the data entity at the local storage system; and a direct restore option in which backup data stored on the remote storage system is restored at the local storage system without combination with other backup data; and restoring the data entity at the local storage system using the selected first restore option.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to a computing device, a method for restoring a backup from a remote storage device, and a non-transitory machine-readable medium. Background Technology

[0002] Computer systems can store data on the computer system's local storage device. In some examples, data can also be stored on a remote data backup system that communicates with the computer system. In such examples, data can be retrieved from the data backup system, for instance, if the data is lost, corrupted, or otherwise becomes inaccessible on the computer system's local storage device. Summary of the Invention

[0003] According to one aspect of this disclosure, a computing device is provided, including a processor; a memory; and a machine-readable storage means storing instructions executable by the processor to perform the following operations: detecting a trigger event for initiating a backup recovery of a data entity at a local storage system, wherein the backup data of the data entity is stored on a remote storage system; in response to detecting the trigger event, determining a user preference for one of speed priority and cost priority, wherein speed priority includes higher importance of completion speed relative to financial cost, and wherein cost priority includes higher importance of financial cost relative to completion speed; and selecting between at least two based on the determined user preference: An indirect recovery option, wherein a first portion of backup data stored on a remote storage system is combined with a second portion of backup data stored on a gateway device, and the combined portion is used to restore the data entity at the local storage system, wherein the gateway device manages data transfer between the local storage system and the remote storage system, and wherein the data transfer between the local storage system and the remote storage system is transmitted via the gateway device; and a direct recovery option, wherein backup data stored on a remote storage system is restored at the local storage system without being combined with other backup data from the gateway device; and the data entity is restored at the local storage system using the selected recovery option.

[0004] According to another aspect of this disclosure, a method for restoring a backup from a remote storage device is provided, comprising: a storage controller of a local storage system detecting a trigger event for initiating a backup recovery of data entities stored on the remote storage system; in response to detecting the trigger event, the storage controller determining the size of a shared area stored on a gateway device of the local storage system, wherein the gateway device manages data transfer between the local storage system and the remote storage system, and wherein the data transfer between the local storage system and the remote storage system is transmitted via the gateway device; and the storage controller determining that a user's preference for cost priority takes precedence over a preference for speed priority, wherein cost priority includes higher importance of financial cost relative to completion speed, and wherein speed priority includes higher importance of completion speed relative to financial cost. This has higher importance; the storage controller selects an indirect recovery option from multiple recovery options based at least on the determined user's cost preference and the determined size of the shared area, wherein the indirect recovery option includes combining a first portion of backup data stored on a remote storage system with a second portion of backup data stored on a gateway device, and using the combined portion to restore the data entity at the local storage system, and wherein the indirect recovery option is associated with a different recovery cost compared to the direct recovery option among the multiple recovery options, the direct recovery option including restoring the backup data stored on the remote storage system at the local storage system without combining it with other backup data from the gateway device; and the storage controller uses the selected indirect recovery option to restore the data entity at the local storage system.

[0005] According to another aspect of this disclosure, a non-transitory machine-readable medium storing instructions is provided, which, when executed, cause a processor to: detect a trigger event for initiating a backup recovery of a data entity at a local storage system, wherein the backup data of the data entity is stored on a remote storage system; in response to detecting the trigger event, determine a user preference for one of speed priority and cost priority, wherein speed priority includes higher importance of completion speed relative to financial cost, and wherein cost priority includes higher importance of financial cost relative to completion speed; and, based at least on the determined user preference, select between: an indirect recovery option, wherein a first portion of the backup data stored on the remote storage system is combined with a second portion of the backup data stored on a gateway device, and the combined portion is used to recover the data entity at the local storage system, wherein the gateway device manages data transfer between the local storage system and the remote storage system, and wherein the data transfer between the local storage system and the remote storage system is transmitted via the gateway device; and a direct recovery option, wherein the backup data stored on the remote storage system is recovered at the local storage system without being combined with other backup data from the gateway device; and the data entity is recovered at the local storage system using the selected first recovery option. Attached Figure Description

[0006] Some implementation methods are described with reference to the following figures.

[0007] Figure 1 This is a schematic diagram of an example storage system according to some implementation methods.

[0008] Figure 2 This is a diagram illustrating an example process based on some implementation methods.

[0009] Figures 3A to 3B These are illustrations of example processes and systems based on some implementation methods.

[0010] Figures 4A to 4B These are illustrations of example processes and systems based on some implementation methods.

[0011] Figures 5A to 5B These are illustrations of example processes and systems based on some implementation methods.

[0012] Figure 6 This is a diagram illustrating an example process based on some implementation methods.

[0013] Figure 7 This is a schematic diagram of an example computing device according to some implementation methods.

[0014] Figure 8 This is a diagram illustrating an example process based on some implementation methods.

[0015] Figure 9 This is a diagram of an example machine-readable medium storing instructions according to some implementation methods.

[0016] Throughout the accompanying drawings, the same reference numerals denote similar but not necessarily identical elements. The drawings are not necessarily drawn to scale, and the dimensions of some parts may be enlarged to illustrate the examples more clearly. Furthermore, the drawings provide examples and / or embodiments consistent with the description; however, the description is not limited to the examples and / or embodiments provided in the drawings. Detailed Implementation

[0017] In this disclosure, unless the context clearly indicates otherwise, the terms “a,” “an,” or “the” are intended to include the plural form as well. Similarly, when used in this disclosure, the terms “includes / including / comprises / comprising” or “have / having” indicate the presence of the element but do not preclude the presence or addition of other elements.

[0018] In some examples, deduplication storage systems can deduplicate data to reduce the amount of space required to store the data. A deduplication storage system can perform a deduplication process that includes breaking down the data stream into discrete data units (or "chunks") and determining the "fingerprints" of these incoming data units (described below). Further, the deduplication storage system can compare the fingerprints of the incoming data units with the fingerprints of stored data units, and can thereby determine which incoming data units are copies of previously stored data units (e.g., when the comparison indicates a matching fingerprint). In the case of a data unit being a copy, the deduplication storage system can store a reference to the previously stored data unit instead of storing the duplicated incoming data unit.

[0019] As used herein, a "fingerprint" refers to the value obtained by applying a function to the contents of a data unit (where "contents" can include all or a subset of the contents of the data unit). Examples of functions that can be applied include hash functions that generate a hash value based on the contents of an input data unit. Examples of hash functions include cryptographic hash functions, such as Secure Hash Algorithm 2 (SHA-2) hash functions (e.g., SHA-224, SHA-256, SHA-384, etc.). In other examples, other types of hash functions or other types of fingerprint functions may be used.

[0020] A “storage system” may include storage devices or arrays of storage devices. A storage system may also include storage controllers that manage access to the storage devices(s). A “data unit” may refer to any portion of data in the storage system that can be individually identified. In some cases, a data unit may refer to a block, a collection of blocks, or any other portion of data. In some examples, the storage system may store data units in persistent storage devices. Persistent storage devices may be implemented using one or more persistent (e.g., non-volatile) storage devices (such as disk-based storage devices (e.g., hard disk drives (HDDs)), solid-state drives (SSDs) (such as flash storage devices), etc., or combinations thereof).

[0021] "Controller" can refer to hardware processing circuitry, which may include any or a combination of a microprocessor, a core of a multi-core microprocessor, a microcontroller, a programmable integrated circuit, a programmable gate array, a digital signal processor, or other hardware processing circuitry. Alternatively, "controller" can refer to a combination of hardware processing circuitry and machine-readable instructions (software and / or firmware) that can be executed on the hardware processing circuitry.

[0022] In some examples, a “local storage system” can mount or host one or more data storage volumes. Each volume can be a defined portion of storage (e.g., a physical storage drive, a virtual storage container, etc.) that can be accessed via a unique address or identifier. Furthermore, each volume can include smaller data objects (also referred to herein as “subvolume” objects). Such subvolume objects can include files, databases, virtual machines, etc. As used herein, the term “data entity” can refer to a volume, a subvolume object, or any combination thereof.

[0023] In some examples, duplicate versions of a data entity can be generated to serve as backup copies of the data entity. For instance, a local storage system can generate (e.g., in deduplicated form) a copy of all data blocks in a particular data entity, which may be referred to herein as a “full backup” of the data entity. Subsequently, the local storage system can generate another copy of the particular data entity, which includes only those data blocks that have changed since the last backup, which may be referred to herein as an “incremental backup” of the data entity. Furthermore, the local storage system can continue to generate additional incremental backups of the data entity at different points in time.

[0024] In some examples, the local storage system can recreate data entities that existed at a specific point in time based on a sequence of full and incremental backups. Specifically, the local storage system can recreate data from a full backup, and also from each subsequent incremental backup, until the incremental backup corresponding to the specific point in time is reached. In this way, changes made to the data entities can be accumulated sequentially until the state of the data entity that existed at the desired point in time is achieved.

[0025] In some examples, for disaster recovery purposes (such as when a failure results in data loss, whether partial or complete), or for recovery from other events (such as power loss or failure during write or storage operations), backup copies of data entities on the local storage system may be stored on a "remote storage system" located in a different physical location than the local storage system. For example, the remote storage system may be provided by a cloud storage service provider. In some examples, the remote storage system may store data entities at the volume level (i.e., as an entire volume). Furthermore, in some examples, the remote storage system may store data entities in a deduplicated form.

[0026] When it is necessary to recover all or part of a data entity stored in a remote storage system (e.g., recovery from a failure event), the required backup data can be transferred from the remote storage system to the local storage system, and can be used by the local storage system to recover the data entity. In some examples, there may be multiple alternative processes (referred to herein as "recovery options") for transferring and recovering backup data. Recovery options may differ in terms of the time required to complete the recovery and the amount of data transferred for the recovery. In some examples, data transfer from the remote storage system may incur financial charges based on the amount of data transferred. Therefore, the choice of a particular recovery option can affect the overall financial cost of the recovery.

[0027] According to some embodiments of this disclosure, the local storage system can select one of a plurality of recovery options to transfer and recover data from the remote storage system. See below for reference. Figures 1 to 9 Further discussion suggests that recovery options can be selected based on an evaluation of multiple input values. For example, in some implementations, input values ​​may include the type of data entity to be recovered (e.g., volume or subvolume), information about any portion or earlier copy of the desired data entity that can be stored on the local storage system, and values ​​indicating the user's preference between cost priority and speed priority (e.g., the relative importance of lower financial cost compared to faster completion). In some implementations, the local storage system can select recovery options that allow recovery to be performed at a relatively low cost and with an acceptable completion time. In this way, some implementations can improve the performance of the local storage system when recovering backup data from a remote storage system.

[0028] In some implementations, the recovery options may include at least one procedure for recovering data entities as volumes (referred to herein as "volume recovery"). Further, the recovery options may include at least one procedure for recovering data entities as subvolume objects (referred to herein as "subvolume recovery"). For example, the subvolume recovery option may be implemented using Element Recovery Technology (ERT) provided by Hewlett Packard Enterprise.

[0029] In some implementations, the recovery options may include at least one process (referred to herein as "full recovery") for restoring data entities stored on a remote storage system as a full backup. Further, the recovery options may include at least one process (referred to herein as "incremental recovery") for restoring data entities stored on a remote storage system as an incremental backup.

[0030] In some implementations, recovery options may include at least one recovery option involving transferring the entire backup data directly from the remote storage system to the local storage system (referred to herein as a "direct recovery" option). Further, recovery options may include at least one recovery option involving transferring a portion of the backup data from the remote storage system to a gateway device located between the target host device and the remote storage system, and combining the transferred backup portion with the remaining backup portion stored on the gateway device (referred to herein as an "indirect recovery" option). In some implementations, using the indirect recovery option may incur lower financial costs than using the direct recovery option.

[0031] Figure 1 - Sample Storage System Figure 1 An example implementation including a local storage system 100 and a remote storage system 110 is illustrated. In some implementations, the local storage system 100 may be coupled to the remote storage system 110 via a network connection. The remote storage system 110 may be a network-based storage facility or service (also referred to herein as a "cloud-based storage device"). In some examples, using the remote storage system 110 may incur financial costs based on the size and / or quantity of data transferred.

[0032] like Figure 1As shown, the local storage system 100 may include a host server 140, a main storage device 130, and a gateway 120. According to some embodiments, the host server 140 may include a storage controller 142, a memory 144, and a persistent storage device 146. The persistent storage device 146 may include a non-transitory storage medium, such as a hard disk drive (HDD), a solid-state drive (SSD), an optical disk, or a combination thereof. The memory 144 may be implemented using a semiconductor memory such as random access memory (RAM). In some examples, the storage controller 142 may be implemented via hardware (e.g., electronic circuitry) or a combination of hardware and programming (e.g., including at least one processor and instructions executable by said at least one processor and stored on at least one machine-readable storage medium).

[0033] In some embodiments, gateway 120 may be a device that provides management and / or acceleration of data transfer between local storage system 100 and remote storage system 110. In some embodiments, gateway 120 may be implemented as a hardware device including various components (e.g., controllers, memory, persistent storage devices) similar to those included in host server 140. However, in other embodiments, gateway 120 may be implemented as software (e.g., as a virtual machine) executed by a processor (e.g., storage controller 142, another processor included in remote storage system 110, another processor included in another external computing device, etc.).

[0034] In some implementations, storage controller 142 can determine whether it is currently necessary to restore data entities from a backup copy on remote storage system 110. For example, storage controller 142 can detect failure events (e.g., power failure, equipment failure, etc.) in local storage system 100 that result in the loss of all or part of a database (e.g., an inventory database) required for business operations. When it is determined that data entities need to be restored, storage controller 142 can select one of several recovery options to transfer and restore the data entities from remote storage system 110. The following references... Figures 3A to 5B Examples of discussion on recovery options.

[0035] In some implementations, storage controller 142 may evaluate multiple input values ​​to select specific recovery options for the desired recovery. For example, a first input value may indicate the type of data entity to be recovered (e.g., volume type or subvolume type). A second input value may indicate the user's preference between cost priority and speed priority (e.g., the relative importance of lower financial cost compared to faster completion). Further, other input values ​​may include information about any portion or earlier copy of the desired data entity that can be stored in local storage system 100 (e.g., in host server 140, primary storage device 130, gateway 120, etc.). Additionally, different input values ​​may be used in some implementations.

[0036] In some implementations, the storage controller 142 may select a recovery option based on an evaluation of multiple input values. For example, the storage controller 142 may evaluate the input values ​​to determine that the current user prioritizes cost over speed, and therefore may assign a higher priority to reducing financial costs (rather than speed) when selecting a recovery option. References below Figures 3A to 5B This section discusses an example procedure for selecting recovery options.

[0037] Figure 2 - Example procedure for selecting recovery options Figure 2 An example process 200 for selecting a recovery option, according to some embodiments, is illustrated. Process 200 can be implemented in hardware or a combination of hardware and programming (e.g., machine-readable instructions executable by (multiple) processors). The machine-readable instructions can be stored in a non-transitory computer-readable medium such as an optical storage device, a semiconductor storage device, or a magnetic storage device. The machine-readable instructions can be executed by a single processor, multiple processors, a single processing engine, multiple processing engines, etc. For illustrative purposes, the following may refer to the example embodiments shown. Figure 1 The details of process 200 will be described below. However, other implementations are also possible.

[0038] refer to Figure 2 Box 210 may include initiating the recovery of a data entity from a remote storage system. Determination box 220 may include determining whether the data entity to be recovered is a volume. For example, refer to... Figure 1 Storage controller 142 detects a failure event in local storage system 100 that results in the loss of all or part of a data entity, and in response, initiates recovery of the data entity from remote storage system 110. In another example, storage controller 142 receives a backup recovery request (e.g., from a user, application, or any other entity) for a data entity stored on a remote storage system. Further, storage controller 142 determines whether the data entity is a volume or a subvolume object.

[0039] Refer again Figure 2 If it is determined at decision box 220 that the data entity to be recovered is not a volume (“No”), process 200 can continue at box 250, which includes selecting a subvolume recovery option. In some implementations, the subvolume recovery option can be used to recover subvolume objects (i.e., data entities included in a volume that can be stored in a backup). For example, the subvolume recovery option can be executed to recover file systems, files, databases, virtual machines, etc. Figure 5A (The following discussion) illustrates an example procedure for selecting subvolume options.

[0040] However, if it is determined at decision box 220 that the data entity to be recovered is a volume (“Yes”), then process 200 can continue at decision box 225, which includes determining whether incremental recovery can be performed for the data entity. If yes (“Yes”), then process 200 can continue at box 230, which includes selecting the incremental recovery option. Figure 3A (The following discussion) illustrates an example procedure for selecting incremental recovery options.

[0041] In some implementations, if an earlier full backup of the data entity is stored in the local storage system, it can be determined that incremental recovery can be performed. For example, refer to... Figure 1 Storage controller 142 determines that the data entity to be restored is a volume that existed at the time of its most recent backup. Further, storage controller 142 determines that the most recent backup of the volume is stored as an incremental backup on remote storage system 110, and that an earlier full backup (i.e., a complete copy of the volume that existed before the most recent backup) is stored on local storage system (e.g., in host server 140, primary storage device 130, gateway 120, etc.). Therefore, in this example, it is determined that incremental recovery can be performed by combining incremental and full backups, such that the data blocks changed in the incremental backup replace the corresponding (i.e., original) data blocks in the full backup.

[0042] Refer again Figure 2 If it is determined at decision box 225 that incremental recovery cannot be performed for the data entity (“No”), process 200 may continue at box 240, which includes selecting the full recovery option. In some implementations, the full recovery option can be used to recover data entities stored on a remote storage system as a full backup. Figure 4A (The following discussion) illustrates an example procedure for selecting the full recovery option.

[0043] Figures 3A to 3B - Example procedure for selecting incremental recovery options Figure 3AAn example procedure 300 for selecting incremental recovery options according to some implementations is shown. Procedure 300 can illustrate block 230 (e.g. Figure 2 The example extension is shown below. For illustration purposes, the following may refer to the example system 390 shown. Figure 3B The details of process 300 will be described below. However, other implementations are also possible. Process 300 can be implemented in hardware or a combination of hardware and programming (e.g., machine-readable instructions executable by (multiple) processors). The machine-readable instructions can be stored in a non-transitory computer-readable medium such as an optical storage device, a semiconductor storage device, or a magnetic storage device. The machine-readable instructions can be generated by a single processor, multiple processors, a single processing engine, multiple processing engines, etc. (e.g., such as...) Figure 1 The storage controller 142 shown is used to execute this.

[0044] Now for reference Figure 3A Box 310 may include determining the size SZ1 of the difference between a local full backup and a remote incremental backup. Box 320 may include determining the size S1 of any shared area stored in the gateway device. For example, refer to Figure 3B The earlier full backup 396 is stored in the primary storage device 130 of the local storage system 100, and the later incremental backup 395 is stored in the remote storage system 110. The storage controller 142 determines which data units (if any) in the incremental backup 395 differ from the data units in the full backup 396 (referred to herein as "Δ" between backups), and determines the total size SZ1 of this Δ between the full backup and the incremental backup. Further, the storage controller 142 determines which data units (if any) included in the Δ are also stored in the storage device of the gateway 120 (referred to herein as "shared area"), and determines the total size S1 of this shared area stored in the gateway 120.

[0045] Refer again Figure 3A Decision box 330 may include determining whether the user prefers cost-first over speed-first (i.e., lower financial cost is more important than faster completion). If not (“No”), process 300 may continue at box 340, which includes calculating the approximate time T1 for completing the direct incremental recovery. For example, refer to Figure 3BStorage controller 142 determines the network throughput TH1 (e.g., maximum bandwidth) of link 394 between gateway 120 and primary storage device 130. Further, storage controller 142 determines the network throughput TH2 of link 392 between remote storage system 110 and local storage system 100. In some embodiments, network throughput TH2 may represent the maximum bandwidth for data transfer from remote storage system 110 to one or more components of local storage system 100 (e.g., gateway 120, primary storage device 130, and / or host server 140).

[0046] Storage controller 142 uses the formula T1 = SZ1 / TH2 (i.e., the total size SZ1 of the Δ between the full backup and the incremental backup divided by the network throughput TH2 of link 392) to estimate the time T1 for completing a direct incremental recovery. In other words, the time T1 for completing a direct incremental recovery can be estimated as the time required to transfer the Δ from the remote storage system 110 to the primary storage device 130 of the local storage system 100 (i.e., without processing through gateway 120).

[0047] Refer again Figure 3A Box 350 may include the approximate time T2 for calculating the indirect incremental recovery. For example, referencing Figure 3B The storage controller 142 uses the formula D1 = SZ1-S1 (that is, the size of the Δ between the full backup and the incremental backup, SZ1, minus the size of the shared area stored in the gateway 120) to determine the size D1 of the backup portion to be transferred from the remote storage system 110 to the gateway 120.

[0048] Storage controller 142 uses the formula T2a = D1 / TH2 (that is, the size of the backup part to be transferred, D1, divided by the network throughput of link 392, TH2) to estimate the time T2a for transferring the backup part from remote storage system 110 to gateway 120.

[0049] Furthermore, the storage controller 142 uses the formula T2b = SZ1 / TH1 (that is, the total size of Δ SZ1 divided by the network throughput TH1 of link 394) to estimate the time T2b for transmitting Δ from gateway 120 to main storage device 130.

[0050] In addition, the storage controller 142 uses the formula T2 = T2a + T2b (that is, the sum of the time T2a for transferring the backup portion from the remote storage system 110 to the gateway 120 and the time T2b for transferring Δ from the gateway 120 to the main storage device 130) to calculate the approximate time T2 for completing the indirect incremental recovery.

[0051] Refer again Figure 3ADecision box 360 may include determining whether time T2 (i.e., the time to complete indirect incremental recovery) is greater than time T1 (i.e., the time to complete direct incremental recovery). If it is greater ("Yes"), then process 300 may continue at box 370, which includes performing direct incremental recovery. Otherwise, if time T2 is not greater than time T1 ("No"), then process 300 may continue at box 380, which includes performing indirect incremental recovery. After box 370 or box 380, process 300 may complete. For example, see reference... Figure 3B If the time T2 for completing indirect incremental recovery is greater than the time T1 for completing direct incremental recovery, then the storage controller 142 selects to execute the direct incremental recovery option to recover the data entity. Otherwise (i.e., if T2 is not greater than T1), the storage controller 142 selects to execute the indirect incremental recovery option to recover the data entity.

[0052] Refer again Figure 3A If, at decision box 330, it is determined that the user prefers cost priority over speed priority (“Yes”), then process 300 may continue at decision box 385, which includes determining whether the size S1 of any shared area stored in the gateway device is greater than zero. If it is not greater than zero (“No”), then process 300 may continue at box 370, which includes performing a direct incremental recovery. Otherwise, if the size S1 of the shared area is greater than zero (“Yes”), then process 300 may continue at box 380, which includes performing an indirect incremental recovery. For example, refer to... Figure 3B The storage controller 142 determines whether the gateway 120 stores the shared region (i.e., also includes data units in the Δ between a full backup and an incremental backup). If the gateway 120 does not store the shared region, the storage controller 142 performs a direct incremental recovery, while if the gateway 120 does store the shared region, it performs an indirect incremental recovery.

[0053] Figures 4A to 4B - Example procedure for selecting the full recovery option Figure 4A An example procedure 400 for selecting a full recovery option, according to some implementations, is shown. Procedure 400 can be illustrated by block 240 (e.g., Figure 2 Example extensions (as shown). For illustration purposes, the following may refer to the example system 490 shown. Figure 4B The details of process 400 will be described below. However, other implementations are also possible. Process 400 can be implemented in hardware or a combination of hardware and programming (e.g., machine-readable instructions executable by (multiple) processors). The machine-readable instructions can be stored in a non-transitory computer-readable medium such as an optical storage device, a semiconductor storage device, or a magnetic storage device. The machine-readable instructions can be executed by a single processor, multiple processors, a single processing engine, multiple processing engines, etc. (e.g., such as...) Figure 1The storage controller 142 shown is used to execute this.

[0054] Now for reference Figure 4A Box 410 may include determining the size S2 of the shared area between the remote backup and the gateway backup. Box 420 may include determining the size SZ2 of the remote backup. For example, refer to... Figure 4B A full backup 495 is stored in remote storage system 110 and is a complete backup copy in the state required to restore the data entity. Further, a gateway backup 496 is stored in gateway 120 and may include a portion (or exclude) of the data units required to restore the data entity. Storage controller 142 determines whether any data units (referred to herein as a "shared area") are included in both full backup 495 and gateway backup 496, and determines the total size S2 of this shared area. Further, storage controller 142 determines the total size SZ2 of the full backup 495 stored in remote storage system 110. The total size SZ2 includes only the portion of full backup 495 that needs to be transferred from remote storage system 110 to local storage system 100.

[0055] Refer again Figure 4A Decision box 430 may include determining whether the user prefers cost priority over speed priority. If not ("No"), process 400 may continue at box 440, which includes calculating the approximate time T3 for completing direct full recovery. For example, refer to Figure 4B Storage controller 142 determines the network throughput TH1 of link 394 between gateway 120 and primary storage device 130. Further, storage controller 142 determines the network throughput TH2 of link 392 between remote storage system 110 and local storage system 100. Storage controller 142 uses the formula T3 = SZ2 / TH2 (i.e., the total size SZ2 of the full backup 495 divided by the network throughput TH2 of link 392) to estimate the time T3 for completing a direct full recovery. In other words, the time T3 for completing a direct full recovery can be estimated as the time required to transfer the full backup 495 (of size SZ2) from remote storage system 110 to primary storage device 130 of local storage system 100 (i.e., without processing through gateway 120).

[0056] Refer again Figure 4A Box 450 may include the approximate time T4 for calculating the indirect full recovery. For example, referencing Figure 4B The storage controller 142 uses the formula D2 = SZ2-S2 (that is, the size of the full backup 495 SZ2 minus the size of the shared area of ​​the full backup 495 and the gateway backup 496) to determine the size D2 of the backup portion to be transferred from the remote storage system 110 to the gateway 120.

[0057] Storage controller 142 uses the formula T4a = D2 / TH2 (that is, the size of the backup portion to be transferred, D2, divided by the network throughput of link 392, TH2) to estimate the time T4a for transferring the backup portion from remote storage system 110 to gateway 120.

[0058] Furthermore, the storage controller 142 uses the formula T4b = SZ2 / TH1 (that is, the size of the full backup 495 SZ2 divided by the network throughput TH1 of the link 394) to estimate the time T4b for transferring the full backup from the gateway 120 to the main storage device 130.

[0059] In addition, the storage controller 142 uses the formula T4 = T4a + T4b (that is, the sum of the time T4a for transferring the backup portion from the remote storage system 110 to the gateway 120 and the time T4b for transferring the full backup 495 from the gateway 120 to the main storage device 130) to calculate the approximate time T4 for completing the indirect full recovery.

[0060] Refer again Figure 4A Decision box 460 may include determining whether time T4 (i.e., the time to complete the indirect full recovery) is greater than time T3 (i.e., the time to complete the direct full recovery). If it is greater ("Yes"), then process 400 may continue at box 470, which includes performing the direct full recovery. Otherwise, if time T4 is not greater than time T3 ("No"), then process 400 may continue at box 480, which includes performing the indirect full recovery. After box 470 or box 480, process 400 may complete. For example, see reference... Figure 4B If the time T4 for completing the indirect full recovery is greater than the time T3 for completing the direct full recovery, then the storage controller 142 selects to execute the direct full recovery option to recover the data entity. Otherwise (i.e., if T4 is not greater than T3), the storage controller 142 selects to execute the indirect full recovery option to recover the data entity.

[0061] Refer again Figure 4A If, at decision box 430, it is determined that the user prefers cost priority over speed priority (“Yes”), then process 400 can continue at decision box 485, which includes determining whether the size S2 of any shared area between the full backup and the gateway backup is greater than zero. If it is not greater than zero (“No”), then process 400 can continue at box 470, which includes performing a direct full recovery. Otherwise, if the size S2 of any shared area is greater than zero (“Yes”), then process 400 can continue at box 480, which includes performing an indirect full recovery. For example, refer to... Figure 4BStorage controller 142 determines whether any shared area exists between full backup 495 and gateway backup 496 (i.e., whether any data units exist in both full backup 495 and gateway backup 496). If any shared area exists, storage controller 142 performs an indirect full recovery, and if no shared area exists, it performs a direct full recovery.

[0062] Figures 5A to 5B - Example procedure for selecting subvolume recovery options Figure 5A An example procedure 500 for selecting subvolume recovery options is shown according to some implementations. Procedure 500 can be illustrated by box 250 (e.g. Figure 2 The example extension is shown below. For illustrative purposes, the following may refer to the example system 590 shown. Figure 5B The details of process 500 are described below. However, other implementations are also possible. Process 500 can be implemented in hardware or a combination of hardware and programming (e.g., machine-readable instructions executable by (multiple) processors). The machine-readable instructions can be stored in a non-transitory computer-readable medium such as an optical storage device, a semiconductor storage device, or a magnetic storage device. The machine-readable instructions can be generated by a single processor, multiple processors, a single processing engine, multiple processing engines, etc. (e.g., such as...) Figure 1 The storage controller 142 shown is used to execute this.

[0063] Now for reference Figure 5A Box 510 may include determining the size S3 of the shared area between the subvolume data entity and the remote backup. Box 520 may include determining the size SZ3 of the subvolume data entity. For example, refer to... Figure 5B Volume backup 595 is stored in remote storage system 110 and includes subvolume object 597. Subvolume object 597 is a complete copy of the target data entity (i.e., the subvolume data entity to be restored). Further, gateway backup 496 is stored in gateway 120 and may include a portion (or exclude) of the data units required to restore the target data entity. Storage controller 142 determines a shared area including any data units that can be shared by subvolume object 597 and gateway backup 496, and determines the total size S3 of this shared area. Further, storage controller 142 determines the total size SZ3 of the subvolume object 597 included in volume backup 595.

[0064] Refer again Figure 5A Decision box 530 may include determining whether the user prefers cost priority over speed priority. If not ("No"), process 500 may continue at box 540, which includes calculating the approximate time T5 for completing direct subvolume recovery. For example, refer to Figure 5BStorage controller 142 determines the network throughput TH2 of link 392 between remote storage system 110 and local storage system 100. Further, storage controller 142 determines the network throughput TH3 of link 594 between gateway 120 and host server 140. Storage controller 142 uses the formula T5 = SZ3 / TH2 (i.e., the total size SZ3 of subvolume object 597 divided by the network throughput TH2 of link 392) to estimate the time T5 for completing direct subvolume recovery. In other words, the time T5 for completing direct subvolume recovery can be estimated as the time required to transfer subvolume object 597 from remote storage system 110 to primary storage device 130 of local storage system 100 (i.e., without processing through gateway 120).

[0065] Refer again Figure 5A Box 550 may include calculating the approximate time T6 for completing the indirect subvolume recovery. For example, referencing Figure 5B The storage controller 142 uses the formula D3 = SZ3-S3 (that is, the size SZ3 of the subvolume object 597 minus the size S3 of the shared area of ​​the subvolume object 597 and the gateway backup 496) to determine the size D3 of the backup portion to be transferred from the remote storage system 110 to the gateway 120.

[0066] Storage controller 142 uses the formula T5a = D3 / TH2 (that is, the size of the backup part to be transferred, D3, divided by the network throughput TH2 of link 392) to estimate the time T5a for transferring the backup part from remote storage system 110 to gateway 120.

[0067] Furthermore, the storage controller 142 uses the formula T5b = SZ3 / TH3 (that is, the size SZ3 of the subvolume object 597 divided by the network throughput TH3 of the link 594 between the gateway 120 and the host server 140) to estimate the time T5b for transferring the subvolume object from the gateway 120 to the main storage device 130.

[0068] In addition, storage controller 142 uses the formula T5 = T5a + T5b (that is, the sum of the time T5a for transferring the backup portion from remote storage system 110 to gateway 120 and the time T5b for transferring subvolume object 597 from gateway 120 to host server 140) to calculate the approximate time T5 for completing indirect subvolume recovery.

[0069] Refer again Figure 5ADecision box 560 may include determining whether time T6 (i.e., the time to complete indirect subvolume recovery) is greater than time T5 (i.e., the time to complete direct subvolume recovery). If it is greater ("Yes"), process 500 may continue at box 570, which includes performing direct subvolume recovery. Otherwise, if time T6 is not greater than time T5 ("No"), process 500 may continue at box 580, which includes performing indirect subvolume recovery. After box 570 or box 580, process 500 may complete. For example, see reference... Figure 5B If the time T6 for completing the indirect subvolume recovery is greater than the time T5 for completing the direct subvolume recovery, then the storage controller 142 selects to execute the direct subvolume recovery option to recover the target data entity. Otherwise (i.e., if T6 is not greater than T5), then the storage controller 142 selects to execute the indirect subvolume recovery option to recover the target data entity.

[0070] Refer again Figure 5A If, at decision box 530, it is determined that the user prefers cost priority over speed priority (“Yes”), then process 500 can continue at decision box 585, which includes determining whether the size S3 of the shared area between the subvolume object and the gateway backup is greater than zero. If it is not greater than zero (“No”), then process 500 can continue at box 570, which includes performing a direct subvolume recovery. Otherwise, if the size S3 of the shared area is greater than zero (“Yes”), then process 500 can continue at box 580, which includes performing an indirect subvolume recovery. For example, refer to... Figure 5B Storage controller 142 determines whether any shared area exists between subvolume object 597 and gateway backup 496 (i.e., whether any data units exist in both subvolume object 597 and gateway backup 496). If any shared area exists, storage controller 142 performs indirect subvolume recovery, and if no shared area exists, it performs direct subvolume recovery. In some implementations, performing indirect or direct subvolume recovery may allow host server 140 to access the recovered subvolume object as emulated volume 598. For example, emulated volume 598 may be a simulated or “virtual” volume mounted on host server 140’s file system and including the data content of the recovered subvolume (e.g., files, databases, etc.).

[0071] Figure 6 - Example process for backup and recovery Figure 6An example process 600 for backup and recovery according to some embodiments is illustrated. Process 600 can be implemented in hardware or a combination of hardware and programming (e.g., machine-readable instructions executable by (multiple) processors). The machine-readable instructions can be stored in a non-transitory computer-readable medium such as an optical storage device, a semiconductor storage device, or a magnetic storage device. The machine-readable instructions can be executed by a single processor, multiple processors, a single processing engine, multiple processing engines, etc. For illustrative purposes, the following may refer to the example embodiments shown. Figure 1 The details of process 600 will be described below. However, other implementations are also possible.

[0072] refer to Figure 6 Box 610 may include receiving a value indicating a preference for speed priority. For example, refer to Figure 1 The storage controller 142 reads or otherwise determines a first configuration setting that specifies the user's preference for speed priority (i.e., prioritizing faster recovery completion time over lower financial costs of performing recovery).

[0073] Refer again Figure 6 Box 620 may include receiving a cost threshold value indicating a priority change. Box 630 may include performing a backup recovery based on priority preferences. In some implementations, box 630 may include selecting a new recovery option at the initial time of the backup recovery (e.g., when the backup recovery is initiated) or when a change in priority preferences is detected (e.g., as described below with reference to box 660). For example, refer to... Figure 1 The storage controller 142 reads or otherwise determines a second configuration setting that specifies a threshold level of accumulated financial costs during recovery from a remote storage system. In some implementations, the cost threshold may specify the level of accumulated financial costs at which the recovery process will switch from using speed priority to using cost priority. The storage controller 142 selects the initial recovery option based at least on the user's preference for speed priority (e.g., based on the value received at block 610). For example, the storage controller 142 may use the above references Figures 2 to 5B The discussion outlines a selection process for choosing an initial recovery option. The storage controller 142 then uses the selected initial recovery option to initiate and execute a backup recovery.

[0074] Refer again Figure 6Box 640 may include determining the cumulative cost of the backup recovery. Box 650 may include whether the cumulative cost exceeds a cost threshold. If the cumulative cost does not exceed the cost threshold (“No”), then process 600 may continue at box 670 (as described below). Otherwise, if the cumulative cost exceeds the cost threshold (“Yes”), then process 600 may continue at box 660, which includes changing the priority preference from speed priority to cost priority. In some implementations, if the priority preference is already set to cost priority, box 660 is not executed. Then, process 600 may continue at box 670, which includes determining whether the backup recovery has been completed. If the backup recovery has been completed (“Yes”), then process 600 completes. Otherwise, if the backup recovery has not been completed (“No”), then process 600 may return to box 630 (i.e., continue performing the backup recovery based on the current priority preference).

[0075] For example, refer to Figure 1 At least some backup data is transferred from remote storage system 110 to local storage system 100. These data transfers from remote storage system 110 incur financial costs based on the amount of data transferred. Storage controller 142 accumulates the financial costs of data transfers from remote storage system 110 performed during backup recovery. If the accumulated costs exceed a cost threshold, storage controller 142 changes its priority preference from speed priority to cost priority. Storage controller 142 then selects a new recovery option, at least based on the changed preference for cost priority, and uses this new recovery option to continue backup recovery. In this way, some implementations allow users to limit or reduce the financial costs associated with restoring backup data from a remote storage system.

[0076] Figure 7 - Example computing device Figure 7 A schematic diagram of an example computing device 700 is shown. In some examples, computing device 700 may substantially correspond to that included in storage system 100 (such as...). Figure 1 The host server 140 (shown) or another computing device. As shown, the computing device 700 may include a hardware processor 702, a memory 704, and a machine-readable storage device 705 including instructions 710-740. The machine-readable storage device 705 may be a non-transitory medium. Instructions 710-740 may be executed by the hardware processor 702 or by a processing engine included in the hardware processor 702.

[0077] Instruction 710 can be executed to detect a triggering event for initiating backup recovery of a data entity at the local storage system, wherein the backup data of the data entity is stored on a remote storage system. Instruction 720 can be executed to determine a user's preference between speed priority and cost priority in response to the detection of the triggering event. Instruction 730 can be executed to select, based at least on the determined user preference, between: an indirect recovery option, wherein a first portion of the backup data stored on the remote storage system is combined with a second portion of the backup data stored on the gateway device, and the combined portion is used to recover the data entity at the local storage system; and a direct recovery option, wherein the backup data stored on the remote storage system is recovered at the local storage system without being combined with other backup data from the gateway device. Instruction 740 can be executed to recover the data entity at the local storage system using the selected recovery option.

[0078] For example, refer to Figures 1 to 3B Storage controller 142 detects a failure event in local storage system 100 that results in the loss of all or part of a data entity, and in response, initiates recovery of the data entity from remote storage system 110. In another example, storage controller 142 receives a backup recovery request for a data entity stored on a remote storage system. In response to determining that a user's preference for speed takes precedence over preference for cost, storage controller 142 calculates the estimated time to complete a direct recovery option, calculates the estimated time to complete an indirect recovery option, selects the recovery option with the shorter completion time, and uses the selected option to perform recovery of the data entity. In some implementations, the direct recovery option may be selected from direct incremental recovery, direct full recovery, and direct subvolume recovery. Further, the indirect recovery option may be selected from indirect incremental recovery, indirect full recovery, and indirect subvolume recovery.

[0079] Figure 8 Example Process Now for reference Figure 8 An example process 800 according to some implementations is shown. In some examples, a storage controller 110 ( Figure 1 Process 800 is executed as shown. Process 800 can be implemented in hardware or a combination of hardware and programming (e.g., machine-readable instructions executable by (multiple) processors). The machine-readable instructions can be stored in a non-transitory computer-readable medium such as an optical storage device, a semiconductor storage device, or a magnetic storage device. The machine-readable instructions can be executed by a single processor, multiple processors, a single processing engine, multiple processing engines, etc. For illustrative purposes, the following may refer to examples illustrating some implementations. Figure 1 The details of process 800 are described in Figure 3. However, other implementations are also possible.

[0080] Box 810 may include the storage controller of the local storage system detecting a trigger event for initiating a backup recovery of data entities stored on a remote storage system. Box 820 may include, in response to the detection of the trigger event, the storage controller determining the size of a shared area stored on a gateway device of the local storage system. Box 830 may include the storage controller determining that a user's preference for cost priority takes precedence over a preference for speed priority. Box 840 may include the storage controller selecting an indirect recovery option from a plurality of recovery options based at least on the determined user's preference for cost priority and the determined size of the shared area, wherein the indirect recovery option is associated with a different recovery cost compared to a direct recovery option among the plurality of recovery options. Box 850 may include the storage controller using the selected indirect recovery option to recover the data entities from the remote storage system. After box 850, process 800 may be completed.

[0081] For example, refer to Figures 1 to 3B Storage controller 142 detects a failure event in local storage system 100 that results in the loss of all or part of a data entity, and in response, initiates recovery of the data entity from remote storage system 110. In another example, storage controller 142 receives a backup recovery request for a data entity stored on a remote storage system. In response to determining that a user's preference for cost priority takes precedence over a preference for speed priority, storage controller 142 determines whether the size of a shared area stored in the gateway device is greater than zero. If the size of the shared area is not greater than zero, storage controller 142 selects the direct recovery option, or if the size of the shared area is greater than zero, it selects the indirect recovery option. Storage controller 142 then uses the selected option to perform recovery of the data entity. In some implementations, the direct recovery option may be selected from direct incremental recovery, direct full recovery, and direct subvolume recovery. Further, the indirect recovery option may be selected from indirect incremental recovery, indirect full recovery, and indirect subvolume recovery.

[0082] Figure 9 - Example machine-readable medium Figure 9 A machine-readable medium 900 storing instructions 910-940 according to some embodiments is shown. Instructions 910-940 can be executed by a single processor, multiple processors, a single processing engine, multiple processing engines, etc. The machine-readable medium 900 can be a non-transitory storage medium, such as an optical storage medium, a semiconductor storage medium, or a magnetic storage medium.

[0083] Instruction 910 can be executed to detect a triggering event for initiating a backup recovery of a data entity at a local storage system, wherein the backup data of the data entity is stored on a remote storage system. Instruction 920 can be executed to determine a user preference between speed priority and cost priority in response to the detection of the triggering event. Instruction 930 can be executed to select, based at least on the determined user preference, between: an indirect recovery option, wherein a first portion of the backup data stored on the remote storage system is combined with a second portion of the backup data stored on the gateway device, and the combined portion is used to recover the data entity at the local storage system; and a direct recovery option, wherein the backup data stored on the remote storage system is recovered at the local storage system without being combined with other backup data from the gateway device. Instruction 940 can be executed to recover the data entity at the local storage system using the selected recovery option. In some embodiments, the gateway device may be included in (or otherwise associated with) the local storage system.

[0084] According to the implementation described herein, a local storage system can select one of several recovery options to transfer and recover data from a remote storage system. The recovery option can be selected based on an evaluation of several input values, such as the type of data entity to be recovered, information about any portion or earlier copy of the desired data entity that can be stored in the local storage system, and the user's preference between cost priority and speed priority. In some implementations, the local storage system can select a recovery option that allows recovery to be performed at a relatively low cost and with an acceptable completion time. In this way, some implementations can improve the performance of the local storage system when recovering backup data from a remote storage system.

[0085] Note that, although Figures 1 to 9 Various examples are shown, but the implementation methods are not limited in this respect. For example, see references... Figure 1 It is conceivable that storage system 100 may include additional devices and / or components, fewer components, different components, different arrangements, etc. In another example, it is conceivable that the functionality of the aforementioned storage controller 142 may be included in any other engine or software of storage system 100. Other combinations and / or variations are also possible.

[0086] Data and instructions are stored in a corresponding storage device implemented as one or more computer-readable or machine-readable storage media. Storage media include various forms of non-transitory memory, including: semiconductor memory devices such as dynamic random access memory or static random access memory (DRAM or SRAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory; magnetic disks such as fixed floppy disks and removable disks; other magnetic media, including magnetic tape; optical media such as optical discs (CDs) or digital video discs (DVDs); or other types of storage devices.

[0087] Note that the instructions discussed above may be provided on a single computer-readable or machine-readable storage medium, or alternatively, on multiple computer-readable or machine-readable storage media distributed across a large system with potentially multiple nodes. Such one or more computer-readable or machine-readable storage media are considered part of an article (or article of manufacture). An article or article of manufacture may refer to any single or multiple manufactured components. The one or more storage media may be located in a machine that executes the machine-readable instructions, or at a remote site from which the machine-readable instructions can be downloaded for execution via a network.

[0088] In the foregoing description, numerous details have been set forth to facilitate understanding of the subject matter disclosed herein. However, embodiments may be practiced without some of these details. Other embodiments may include modifications and variations of the details discussed above. The appended claims are intended to cover such modifications and variations.

Claims

1. A computing device, comprising: processor; Memory; as well as A machine-readable storage device storing instructions that can be executed by the processor to perform the following operations: The detection is used to initiate a backup and recovery event of a data entity at a local storage system, wherein the backup data of the data entity is stored on a remote storage system; In response to detecting the triggering event, a user preference for either speed priority or cost priority is determined, wherein speed priority includes having a higher importance for completion speed relative to financial cost, and wherein cost priority includes having a higher importance for financial cost relative to completion speed; Based at least on the determined user preferences, choose between the following two: An indirect recovery option, wherein a first portion of the backup data stored on the remote storage system is combined with a second portion of the backup data stored on a gateway device, and the combined portion is used to recover the data entity at the local storage system, wherein the gateway device manages data transfer between the local storage system and the remote storage system, and wherein the data transfer between the local storage system and the remote storage system is transmitted via the gateway device; and A direct recovery option, wherein the backup data stored on the remote storage system is restored at the local storage system without being combined with other backup data from the gateway device; and Restore the data entity on the local storage system using the selected recovery option.

2. The computing device of claim 1, further comprising instructions executable by the processor to perform the following operations: In response to determining that the data entity is a volume, it is determined whether incremental recovery can be performed for the data entity; and In response to determining that incremental recovery can be performed for the data entity, a first incremental recovery option is selected as the chosen recovery option.

3. The computing device of claim 2, further comprising instructions executable by the processor to perform the following operations in response to determining a user's preference for speed priority: Calculate the first time T1 after the direct incremental recovery is completed; Calculate the second time T2 after the indirect incremental recovery is completed; and In response to determining that the second time T2 is greater than the first time T1, the direct incremental recovery option is selected as the chosen recovery option.

4. The computing device of claim 3, further comprising instructions executable by the processor to perform the following operations: In response to determining that the second time T2 is not greater than the first time T1, the indirect incremental recovery option is selected as the chosen recovery option.

5. The computing device of claim 2, further comprising instructions executable by the processor to perform the following operations: In response to the determination that incremental recovery cannot be performed for the data entity, the first full recovery option is selected as the chosen recovery option.

6. The computing device of claim 5, further comprising instructions executable by the processor to perform the following operations in response to determining a user's preference for speed priority: Calculate the third time T3 after the direct full recovery is completed; The fourth time T4 after the indirect complete recovery is calculated; and In response to determining that the fourth time T4 is greater than the third time T3, the direct full recovery option is selected as the chosen recovery option.

7. The computing device of claim 6, further comprising instructions executable by the processor to perform the following operations: In response to determining that the fourth time T4 is not greater than the third time T3, the indirect full recovery option is selected as the chosen recovery option.

8. The computing device of claim 1, further comprising instructions executable by the processor to perform the following operations: In response to determining that the data entity is not a volume, the first subvolume recovery option is selected as the chosen recovery option.

9. The computing device of claim 8, further comprising instructions executable by the processor to perform the following operations in response to determining a user's preference for speed priority: Calculate the fifth time T5 after the direct subvolume recovery is completed; Calculate the sixth time T6 after the indirect subvolume recovery is completed; and In response to determining that the sixth time T6 is greater than the fifth time T5, the direct subvolume recovery option is selected as the chosen recovery option.

10. The computing device of claim 9, further comprising instructions executable by the processor to perform the following operations: In response to determining that the sixth time T6 is not greater than the fifth time T5, the indirect subvolume recovery option is selected as the chosen recovery option.

11. A method for restoring a backup from a remote storage device, comprising: The storage controller of the local storage system detects trigger events used to initiate backup and recovery of data entities stored on the remote storage system; In response to the detection of the triggering event, the storage controller determines the size of the shared area stored on the gateway device of the local storage system. in, The gateway device manages data transmission between the local storage system and the remote storage system, wherein the data transmission between the local storage system and the remote storage system is transmitted via the gateway device; The storage controller determines that the user's preference for cost priority takes precedence over the preference for speed priority, wherein cost priority includes that financial cost is of higher importance than completion speed, and wherein speed priority includes that completion speed is of higher importance than financial cost. The storage controller selects an indirect recovery option from a plurality of recovery options based at least on a determined user preference for cost priorities and a determined size of the shared area. The indirect recovery option includes combining a first portion of backup data stored on the remote storage system with a second portion of backup data stored on the gateway device, and using the combined portion to recover the data entity at the local storage system. The indirect recovery option is associated with a different recovery cost compared to a direct recovery option among the plurality of recovery options, the direct recovery option including recovering the backup data stored on the remote storage system at the local storage system without combining it with other backup data from the gateway device. The storage controller uses the selected indirect recovery option to recover the data entity on the local storage system.

12. The method of claim 11, further comprising: Determine whether the data entity is a volume; as well as In response to determining that the data entity is a volume, it is determined whether incremental recovery can be performed for the data entity.

13. The method of claim 12, further comprising: In response to determining that incremental recovery can be performed for the data entity, a first group of data units in the incremental backup is identified that are different from the multiple data units in the full backup; A first size S1 is determined for a first shared area stored in the gateway device, wherein the first shared area includes data units contained in the first group of data units and also stored in the gateway device; Determine whether the first size S1 is greater than zero; In response to determining that the first size S1 is not greater than zero, the direct incremental recovery option is selected; and In response to determining that the first size S1 is greater than zero, the indirect incremental recovery option is selected.

14. The method of claim 12, further comprising: In response to determining that incremental recovery cannot be performed for the data entity, a second size S2 is determined for a second shared region comprising data units contained in both the full backup and the gateway backup, wherein the full backup is stored in the remote storage system and the gateway backup is stored in the gateway device; Determine whether the second size S2 is greater than zero; In response to determining that the second size S2 is not greater than zero, the direct full recovery option is selected; and In response to determining that the second size S2 is greater than zero, the indirect full recovery option is selected.

15. The method of claim 12, further comprising: In response to determining that the data entity is not a volume, a third size S3 is determined for a third shared region comprising data units contained in both the sub-volume object and the gateway backup, wherein the sub-volume object is contained in a volume backup stored in the remote storage system, and wherein the gateway backup is stored in the gateway device; Determine whether the third size S3 is greater than zero; In response to determining that the third size S3 is not greater than zero, the direct subvolume recovery option is selected; and In response to determining that the third size S3 is greater than zero, the indirect subvolume recovery option is selected.

16. A non-transitory machine-readable medium storing instructions that, when executed, cause a processor to perform the following operations: The detection is used to initiate a backup and recovery of data entities on the local storage system, wherein... The backup data of the data entity is stored on a remote storage system; In response to detecting the triggering event, a user preference for either speed priority or cost priority is determined, wherein speed priority includes having a higher importance for completion speed relative to financial cost, and wherein cost priority includes having a higher importance for financial cost relative to completion speed; Based at least on the determined user preferences, choose between the following two: An indirect recovery option, wherein a first portion of the backup data stored on the remote storage system is combined with a second portion of the backup data stored on a gateway device, and the combined portion is used to recover the data entity at the local storage system, wherein the gateway device manages data transfer between the local storage system and the remote storage system, and wherein the data transfer between the local storage system and the remote storage system is transmitted via the gateway device; and A direct recovery option, wherein the backup data stored on the remote storage system is restored at the local storage system without being combined with other backup data from the gateway device; and Restore the data entity at the local storage system using the selected first recovery option.

17. The non-transitory machine-readable medium of claim 16, comprising instructions that, when executed, cause the processor to perform the following operations: In response to determining that the data entity is a volume, it is determined whether incremental recovery can be performed for the data entity; and In response to determining that incremental recovery can be performed for the data entity, a first incremental recovery option is selected, wherein, The first incremental recovery option is the first recovery option selected.

18. The non-transitory machine-readable medium of claim 17, comprising instructions that, when executed, cause the processor to perform the following operations: In response to the determination that incremental recovery cannot be performed for the data entity, the first full recovery option is selected, wherein, The first full recovery option is the first recovery option selected.

19. The non-transitory machine-readable medium of claim 16, comprising instructions that, when executed, cause the processor to perform the following operations: In response to determining that the data entity is not a volume, the first subvolume recovery option is selected, wherein, The first subvolume recovery option is the first recovery option selected.

20. The non-transitory machine-readable medium of claim 16, comprising instructions that, when executed, cause the processor to perform the following operations: While restoring the data entity using the first recovery option, determine the cumulative cost of the transfer from the remote storage system; In response to determining that the accumulated cost exceeds a cost threshold, a second recovery option is selected to replace the first recovery option; and Use the selected second recovery option to recover the data entity.

Citation Information

Patent Citations

  • System and method for backup and recovery of magnetic disc mirroring of computer system data

    CN101201767A

  • Data backup and recovery method suitable for HBase

    CN114546728A