Device and method for data protection

By intercepting and aggregating IO at the production site and leveraging the cloud's replication object and snapshot capabilities, the problem of existing CDP systems requiring expensive computing resources is solved, and the creation of a multi-site CDP system is achieved without the need for compute nodes, reducing the Cost and improves system flexibility.

CN113906382BActive Publication Date: 2025-01-03HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202080017991.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-05-05
Publication Date
2025-01-03
Estimated Expiration
2040-05-05

AI Technical Summary

Technical Problem

Existing CDP systems require expensive computing resources and public IP connections, resulting in high costs, and replication sites require compute nodes to maintain snapshots of replicated volumes.

Method used

By intercepting and aggregating IO at the production site and storing it in object storage as objects, leveraging the cloud's replicated objects and snapshot capabilities, using compute nodes only during restore operations, reducing the demand for compute nodes.

Benefits of technology

It realizes the creation of a multi-site CDP system without the need for computing nodes, reducing the cost of computing resources and public IP connections, and improving the economic and flexibility of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113906382B_ABST
    Figure CN113906382B_ABST
Patent Text Reader

Abstract

The present disclosure relates to an apparatus and method for a production site. An entity is configured to intercept multiple IOs for writing to a volume of a storage entity at a production site. In addition, the entity is configured to aggregate multiple IOs. The entity is also configured to store the aggregated IOs as a first object in an object storage at the production site. In this way, a solution is provided that utilizes the ability of the cloud to replicate objects and snapshots. The present disclosure can reduce the need for configuration and can reduce prices.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of data protection, and more particularly to a continuous data protection (CDP) system. The present disclosure relates to utilizing the ability of cloud replication snapshots to create a multi-site CDP system. To this end, the present disclosure provides an entity for a production site. Background Art

[0002] CDP refers to backing up computer data by automatically saving a copy of every change made to the data, essentially capturing every version of the data saved by the user. Typically, a CDP system includes the following components: production volumes, splitters, local data movers, remote data movers, replication volumes, and logs, such as Figure 1 shown.

[0003] Production volume refers to the volume being protected and is located at the production site. Splitter refers to a driver in the data path that intercepts write input / output (IO) arriving at the production volume and sends the IO to the production volume and the local data mover. Local data mover refers to a device or microservice that receives splitter IO and sends it to the remote data mover. Remote data mover refers to a device that receives IO from the local data mover and writes them to the remote copy of the replicated volume and to the journal. Replica volume refers to a complete copy of the production volume and is located at the replica site. The system can maintain multiple snapshots of the replica volume at various points in time to allow recovery to multiple points in time. The journal contains log records of changes applied to the volume. Changes in the journal can also be applied to the replica volume.

[0004] A workflow can include a sequence of tasks that process IOs. This includes sending the IOs from the splitter to the local data mover, which compresses and packages the IOs and sends them to the remote data mover, which then writes the IOs to a log and applies them from the log to the replication volume.

[0005] Typically, conventional CDP systems require a public IP for the connection between the local data mover and the replica device. This is common to all known CDP systems. In addition, conventional CDP systems also require a data mover on the replica site. This requires computing resources on the replica site, which are expensive. Summary of the invention

[0006] In view of the above challenges, it is an object of embodiments of the present disclosure to provide an entity and method for production sites. Specifically, the object is to leverage the cloud's ability to replicate objects and snapshots so as to implement a multi-site CDP system without requiring any compute nodes. It is desirable to use compute nodes only during restore operations and only for a limited amount of time. One goal is to reduce the cost of compute nodes.

[0007] This object is achieved by the embodiments of the present disclosure as described in the attached independent claims. Advantageous implementations of the embodiments of the present disclosure are further defined in the dependent claims.

[0008] A first aspect of the present disclosure provides an entity for a production site, the entity being configured to: intercept multiple IOs for writing to a volume of a storage entity at the production site; aggregate the multiple IOs; and store the aggregated IOs as a first object in an object storage at the production site.

[0009] The embodiment of the present disclosure proposes to aggregate multiple IOs and write them, for example, as a group, ie, as an object, to the object storage. It is worth noting that the IOs are immediately written to the production volume upon arrival, and snapshots of the production volume can be created periodically.

[0010] In an implementation form of the first aspect, the entity is configured to: obtain a notification from a controller of the production site to start intercepting the multiple IOs in a first time period; intercept the multiple IOs in each first time period; continuously aggregate the multiple IOs in each first time period and store them as objects in the object storage; and associate each object with a previous object in the object storage and a previous snapshot of the volume, wherein the previous snapshot is a snapshot created before storing the object.

[0011] Optionally, incoming IOs are frozen in the entity periodically and stored in the object store, in particular as objects. In particular, the next object may point to the current object and the created snapshot.

[0012] In an implementation form of the first aspect, the entity is configured to: periodically receive an indication that a snapshot of the volume is to be created; maintain incoming IO; write the volume based on an object associated with a previous snapshot of the snapshot; and create the snapshot of the volume after writing the volume.

[0013] As can be seen, snapshots are created less frequently than objects in the object store. Therefore, each snapshot can have multiple objects attached to or associated with it. It is worth noting that new IOs may be paused before a snapshot is taken. Old IOs already stored in the object store, especially those associated with the previous snapshot, can be flushed to the volume. Afterwards, a new snapshot can be created.

[0014] In an implementation form of the first aspect, the entity is configured to associate a newly stored object with the snapshot after creating the snapshot.

[0015] It is worth noting that after the corresponding snapshot is created, new objects stored can point to that snapshot.

[0016] In an implementation form of the first aspect, the production site is located in a remote site, in particular in the cloud.

[0017] Optionally, the production site is in another location, that is, a location different from the snapshot storage location. For example, the production site can be in the cloud.

[0018] In an implementation form of the first aspect, the entity is configured to create a first snapshot of the volume using an application programming interface (API) of the cloud.

[0019] Typically, the cloud may have an API that allows the creation of snapshots. That is, if the production site is located in the cloud, the cloud's ability to take snapshots of volumes can be utilized.

[0020] In one implementation form of the first aspect, the entity is configured to: create a copy of the first snapshot and / or a copy of an object associated with the first snapshot using the API; and, copy the copy to another production site in the cloud and / or remote site using a cloud replication mechanism.

[0021] In addition, the API may also allow the creation of data copies, that is, if the production site is located in the cloud, objects and snapshots may be replicated using the cloud mechanism and replicated from the production site to other remote sites, in particular to other cloud sites.

[0022] In an implementation form of the first aspect, the entity is configured to: receive a copy of a snapshot and / or a copy of an object associated with the snapshot from the cloud and / or from another production site in the cloud through a cloud replication mechanism, wherein the snapshot is a snapshot of a volume of the storage entity at the other production site; and store the copy.

[0023] It should be understood that objects and snapshots from some other production sites may also be replicated by the cloud and may be stored in the production site.

[0024] In one implementation form of the first aspect, the entity is configured to: receive an indication that a second snapshot of the volume is to be created, wherein the first snapshot is the previous snapshot of the second snapshot; maintain new incoming IO; write the volume according to the object associated with the first snapshot; create the second snapshot of the volume after writing the volume; and, after creating the second snapshot, associate the newly stored object with the second snapshot.

[0025] It is worth noting that the first snapshot and the second snapshot may be continuous in time.

[0026] In an implementation form of the first aspect, the entity is configured to: obtain a request to restore the volume to a given point in time, wherein the given point in time is a point in time after creating the first snapshot and before creating the second snapshot; obtain an object associated with the first snapshot from the object storage; restore the first snapshot to a primary volume; and, write to the primary volume based on the object associated with the first snapshot until the primary volume is at the given point in time.

[0027] To restore a site to a given point in time, the most recent snapshot before that time can be restored first. In this case, the first snapshot is restored. In addition, the relevant objects from the object store can be read and the IOs in these objects can be applied until the volume is at the requested point in time.

[0028] In an implementation form of the first aspect, the request comes from another production site in the cloud.

[0029] Optionally, a particular site among the plurality of cloud sites having the snapshot and the replica of the object may request to restore the volume.

[0030] In an implementation form of the first aspect, the object in the object store includes a list of multiple IOs and corresponding timestamps when the multiple IOs occurred.

[0031] The timestamp of the IO allows the volume to be restored to a given point in time.

[0032] In an implementation form of the first aspect, the entity is configured to generate a restored volume by writing IOs having corresponding timestamps before the given time point into the primary volume.

[0033] In an implementation form of the first aspect, the entity is configured to: restore the first snapshot to the primary volume using the API of the cloud service provider.

[0034] Optionally, the restore machine can restore the snapshot to the primary volume using standard cloud APIs.

[0035] In an implementation form of the first aspect, the entity is configured to: scan a snapshot using the API of the cloud service provider.

[0036] In an implementation form of the first aspect, the entity is configured to: restore the volume of the storage device at the other production site.

[0037] A second aspect of the present disclosure provides a method, comprising: intercepting multiple IOs for writing to a volume of a storage entity at a production site; aggregating the multiple IOs; storing the aggregated IOs as a first object in an object storage at the production site, and writing them to the volume immediately when they arrive. The IOs are only kept when a snapshot is created.

[0038] In an implementation form of the second aspect, the method further includes: obtaining a notification from a controller of the production site to start intercepting the multiple IOs in a first time period; intercepting the multiple IOs in each first time period; continuously aggregating the multiple IOs in each first time period and storing them as objects in the object storage; and associating each object with a previous object in the object storage and a previous snapshot of the volume, wherein the previous snapshot is a snapshot created before storing the object.

[0039] In an implementation form of the second aspect, the method further includes: periodically receiving an indication that a snapshot of the volume will be created; maintaining incoming IO; writing the volume based on an object associated with a previous snapshot of the snapshot; and creating the snapshot of the volume after writing the volume.

[0040] In an implementation form of the second aspect, the method further includes associating the newly stored object with the snapshot after creating the snapshot.

[0041] In an implementation form of the second aspect, the production site is located in a remote site, in particular in the cloud.

[0042] In an implementation form of the second aspect, the method further includes creating a first snapshot of the volume using an API of the cloud.

[0043] In an implementation form of the second aspect, the method further includes: using the API to create a copy of the first snapshot and / or a copy of an object associated with the first snapshot; and using a cloud replication mechanism to replicate the copy to another production site in the cloud and / or remote site.

[0044] In an implementation form of the second aspect, the method further includes: receiving, through a cloud replication mechanism, a copy of the snapshot and / or a copy of an object associated with the snapshot from the cloud and / or from another production site in the cloud, wherein the snapshot is a snapshot of a volume of a storage entity of the other production site; and storing the copy.

[0045] In an implementation form of the second aspect, the method further includes: receiving an indication that a second snapshot of the volume is to be created, wherein the first snapshot is the previous snapshot of the second snapshot; maintaining new incoming IO; writing the volume according to an object associated with the first snapshot; creating the second snapshot of the volume after writing the volume; and, after creating the second snapshot, associating a newly stored object with the second snapshot.

[0046] In an implementation form of the second aspect, the method further includes: obtaining a request to restore the volume to a given point in time, wherein the given point in time is a point in time after creating the first snapshot and before creating the second snapshot; obtaining an object associated with the first snapshot from the object storage; restoring the first snapshot to the primary volume; and, writing the primary volume based on the object associated with the first snapshot until the primary volume is at the given point in time.

[0047] In an implementation form of the second aspect, the request comes from another production site in the cloud.

[0048] In an implementation form of the second aspect, the object in the object store includes a list of multiple IOs and corresponding timestamps when the multiple IOs occurred.

[0049] In an implementation form of the second aspect, the method further includes: generating a restoration volume by writing IOs having corresponding timestamps before the given time point into the primary volume.

[0050] In an implementation form of the second aspect, the method further includes: restoring the first snapshot to the primary volume using the API of the cloud service provider.

[0051] In an implementation form of the second aspect, the method further includes: scanning a snapshot using the API of the cloud service provider.

[0052] In an implementation form of the second aspect, the method further includes: restoring the volume of the storage device at the other production site.

[0053] A third aspect of the present disclosure provides a computer program, comprising a program code, and when the program code is executed on a processor, is used to execute the method according to the second aspect or any implementation form thereof.

[0054] It must be noted that all devices, elements, units and means described in this application can be implemented in software or hardware elements or any kind of combination thereof. All steps performed by various entities described in this application and functions described as being performed by various entities are intended to mean that the corresponding entities are suitable or configured to perform the corresponding steps and functions. Even if in the following description of a specific embodiment, a specific function or step to be performed by an external entity is not reflected in the description of the specific detailed elements of the entity performing the specific step or function, it should be clear to those skilled in the art that these methods and functions can be implemented in corresponding software or hardware elements, or in any kind of combination thereof. BRIEF DESCRIPTION OF THE DRAWINGS

[0055] The above aspects and implementation forms will be explained in the following description of specific embodiments in conjunction with the accompanying drawings, wherein

[0056] Figure 1 A conventional CDP system is shown;

[0057] Figure 2 An entity according to an embodiment of the present disclosure is shown;

[0058] Figure 3 A CDP system according to an embodiment of the present disclosure is shown;

[0059] Figure 4 A system including two production sites according to an embodiment of the present disclosure is shown; and

[0060] Figure 5 A method according to an embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0061] Illustrative embodiments of methods, devices, and program products for efficient packet transmission in a communication system are described with reference to the accompanying drawings. Although this specification provides detailed examples of possible implementations, it should be noted that these details are intended to be exemplary and in no way limit the scope of the present application.

[0062] In addition, embodiments / examples may refer to other embodiments / examples. For example, any description including but not limited to terms, elements, processes, instructions and / or technical advantages mentioned in one embodiment / example is applicable to other embodiments / examples.

[0063] Figure 2An entity 200 according to an embodiment of the present disclosure is shown. The entity 200 may include a processing circuit (not shown) configured to perform, guide or start various operations of the entity 200 described herein. The processing circuit may include hardware and software. The hardware may include analog circuits or digital circuits, or analog and digital circuits. The digital circuit may include components such as application-specific integrated circuits (ASICs), field-programmable arrays (FPGAs), digital signal processors (DSPs), or multi-function processors. The entity 200 may also include a memory circuit that stores one or more instructions that can be executed by a processor or by a processing circuit, especially under the control of software. For example, the memory circuit may include a non-transitory storage medium storing executable software code, which, when executed by a processor or a processing circuit, enables various operations of the entity 200 to be performed. In one embodiment, the processing circuit includes one or more processors and a non-transitory memory connected to the one or more processors. The non-transitory memory may carry an executable program code, which, when executed by one or more processors, enables the entity 200 to perform, guide or start the operations or methods described herein.

[0064] In particular, if Figure 2 As shown, the entity 200 is suitable for the production site 10. The production site may include the storage entity 200 and the object storage 400. In particular, the entity 200 is configured to intercept multiple IOs 201 for writing to the volume 301 of the storage entity 300 at the production site 10. The entity 200 is also configured to aggregate the multiple IOs 201. Then, the entity 200 is configured to store the aggregated IOs 201 as the first object 401 in the object storage 400 at the production site 10. In addition, the entity 200 is configured to write to the volume 301 according to the first object 401.

[0065] It is worth noting that cloud infrastructure can allow taking snapshots of virtual machines, replicating the snapshots to multiple availability zones, and the same can be done for objects. A user can configure replication for his object storage and specify on which availability zones he needs the objects. The objects can be replicated to other availability zones asynchronously.

[0066] Therefore, embodiments of the present disclosure propose a solution that can leverage the cloud's ability to replicate objects and snapshots in order to create a multi-site CDP without requiring any typically very expensive compute nodes, which may only be needed during a restore operation and only for a limited amount of time.

[0067] Figure 3 FIG. 4 shows a CDP system according to an embodiment of the present disclosure. In particular, the system includes a virtual machine (VM) VM1, a volume vol1 301, an object storage 400, and a disaster recovery (DR) controller 500. In particular, the volume vol1 may be a volume 301 of a storage entity 300, such as Figure 2 As shown, the object storage 400 may be as follows Figure 2 Object store 400 is shown.

[0068] For each replicated VM, a separator driver may be installed in the kernel and user space modules. It may receive writes, i.e., IOs, from the separator, group them and write them as objects to the object store (this group of writes is a log entry). According to an embodiment of the present disclosure, entity 200 may include a VM, a separator, and a separator driver.

[0069] The DR controller 500 controls the disaster recovery mechanism and tells each component what to do. The DR controller 500 can periodically notify the separator to keep the IO. The DR controller 500 can also take a snapshot of the VM's volume and release the IO. The separator can know that writing this new object belongs to a different snapshot.

[0070] like Figure 3 As shown, the entity 200 may be configured to obtain a notification 501 from the DR controller 500 at the production site 10 to start intercepting a plurality of IOs 201 in a first time period. That is, the incoming IOs may be periodically frozen in the entity 200. Optionally, the entity 200 may be configured to continuously aggregate the plurality of IOs 201 in each first time period and store them as objects in the object storage 400. In particular, each object may be associated with a previous object in the object storage 400 and a previous snapshot of the volume, wherein the previous snapshot is a snapshot created before the object is stored.

[0071] Each object written by the userspace separator can have an ID that indicates which object is the previous object and which snapshot the object refers to. Each object can also include a list of IOs with timestamps of when the IO occurred. After each snapshot is taken, new objects can include the new snapshot ID, but may not have the previous object.

[0072] The DR controller may also be configured for replication of related objects and related snapshots in object store 400. Notably, having copies of snapshots and objects (which also include the metadata, such as timestamps) may allow each site to be restored to any point in time.

[0073] Optionally, entity 200 may be configured to periodically receive an indication that a snapshot of a volume is to be created. It can be seen that snapshots are created less frequently than objects are created in object storage 400. For example, a snapshot may be created for a volume every day. Thus, each snapshot may have multiple objects attached to or associated with the snapshot.

[0074] It is worth noting that new IOs may be paused before taking a snapshot. The system may wait for an IO that has started a write process to the main memory to end. Old IOs stored in the volume (especially IOs associated with a previous snapshot) can be flushed to the object storage. In particular, old IOs stored in the host's memory cache (IOs held by the separator memory) can be transferred to permanent storage, i.e., the object storage. Afterwards, a new snapshot can be created. Therefore, entity 200 can be further configured to hold incoming IOs and can write to the volume based on the objects associated with the previous snapshot of the snapshot. Then, entity 200 can be configured to create a snapshot of the volume after writing to the volume.

[0075] It is worth noting that new objects stored after the corresponding snapshot is created can point to the snapshot. That is, the entity 200 can be further configured to associate the newly stored objects with the snapshot after the snapshot is created.

[0076] The present disclosure is intended to leverage the cloud's ability to replicate objects and snapshots in order to create a multi-site CDP without requiring any typically very expensive compute nodes. Optionally, the production site 10 may be located at a remote site, i.e., a location different from the snapshot storage location. For example, the production site 10 may be in the cloud.

[0077] Optionally, entity 200 can be configured to create a first snapshot of volume 301 using a cloud API. Generally speaking, the cloud usually has an API that allows snapshots to be created and replicated to multiple availability zones in the cloud. This can also apply to objects. That is, if the production site is located in the cloud, the cloud's ability to take snapshots of volumes can be utilized.

[0078] Furthermore, the entity 200 may be configured to: create a copy of the first snapshot and / or a copy of an object associated with the first snapshot using an API; and replicate the copy to another production site 20 in the cloud and / or a remote site using a cloud replication mechanism.

[0079] It is worth noting that the entity 200 can send instructions or messages to the cloud to command or instruct the cloud to obtain a snapshot of the virtual machine at the production site, or to copy the snapshot to other replication sites in the cloud. According to an embodiment of the present disclosure, although the actions of creating a snapshot and copying a snapshot are performed by the cloud, they can actually be started or triggered by signaling from the entity 200.

[0080] In this way, a cloud user can configure replication for his object storage and specify on which availability zones he needs these objects. Objects can be replicated to other availability zones asynchronously.

[0081] Optionally, the entity 200 may be further configured to receive a copy of the snapshot and / or a copy of the object associated with the snapshot from the cloud. In particular, the snapshot is a snapshot of a volume of the storage entity at the further production site 20. Possibly, the entity 200 may also be configured to receive such a copy from the further production site 20 in the cloud via a cloud replication mechanism. Thus, a copy of the snapshot and / or a copy of the object will be stored in the entity 200.

[0082] It should be understood that objects and snapshots from some other production sites 20 may also be replicated by the cloud and stored in the production site 10 .

[0083] Another aspect of the present disclosure is about restore operations. In particular, according to an embodiment of the present disclosure, a restore operation can work as follows. A user contacts DR controller 500 and requests a restore to a specific point in time in a specific area. DR controller 500 knows which copy of the snapshot to select because it can scan available snapshots using a cloud API. DR controller 500 can instantiate a restore machine. The restore machine can restore the selected snapshot to the primary volume, particularly using a standard cloud API. It can then look for related objects to find changes (i.e., IO), and can apply all required changes by reading the change objects and applying them to volume 301. Once volume 301 is ready, the restore machine can create a VM from volume 301 and destroy itself. That is, volume 301 is attached to the newly created VM, and the VM can start running.

[0084] Figure 4 2 shows how the process works. According to an embodiment of the present disclosure, the splitter writes the changes to the log entries. The DR controller 500 coordinates the creation of snapshots and the replication of snapshots and log entries. It is worth noting that the entity 200 may further include a DR controller 500.

[0085] The value of the present disclosure is that all communications between regions (i.e., production sites) can be done by the cloud infrastructure. This reduces the need for configuration and can reduce prices. No computing is required except for the DR controller 500, which is just a management unit without a data path, so a large number of VMs can be controlled with very little computing power.

[0086] In addition, according to an embodiment of the present disclosure, the replication controller can configure snapshots and object storage to have replicas in other sites. The replication controller can be a DR controller 500, such as Figure 3 or Figure 4 as shown in .

[0087] The following describes in detail an embodiment of the present disclosure. In particular, the steps of the CDP system may include the following steps:

[0088] 1. Install the splitter on the production VM.

[0089] 2. The splitter intercepts the IOs written to the production volume, the splitter replicates the IOs, and forwards them to the production volume.

[0090] 3. The splitter aggregates a set of IOs and writes them to the object store as objects, each of which points to the previous object or to a snapshot of the production volume.

[0091] 4. Periodically freeze IO in the separator, refresh IO in the storage, and create a snapshot of the production volume. The next object will point to the created snapshot. (This step is created by the replication controller).

[0092] The following steps are the same as above, with periodic snapshots stopping the splitter from writing to create a consistent snapshot. After taking the snapshot, it will return to step 2, and new IO will be written to the change set of the new snapshot.

[0093] In the embodiment of the present disclosure, specifically, the steps of the recovery process are described in detail as follows:

[0094] 1. The user selects the time point and site to be restored.

[0095] 2. The replication controller restores the most recent snapshot before the time requested by the user at the requested site.

[0096] 3. The replication controller configures the restore VM, attaches the restored volume to it, and reads the relevant objects from the object store and applies the IOs from the object store until the volume is at the requested point in time.

[0097] 4. The volume is attached to the newly created VM and the VM starts running.

[0098] According to the foregoing embodiments of the present disclosure, entity 200 is proposed in order to save computing costs, and also to save costs for public IPs. Therefore, the cloud's ability to replicate objects and snapshots can be utilized in order to create a multi-site CDP without requiring any computing nodes. As is well known, computing nodes are usually very expensive. According to embodiments of the present disclosure, computing nodes will only be required during the restore operation, and only for a limited amount of time.

[0099] Figure 5 600 according to an embodiment of the present disclosure. In a specific embodiment of the present disclosure, the method 600 is composed of Figure 2The entity 200 shown executes the method 600, which includes: step 601, intercepting multiple IOs 201 for writing to the volume 301 of the storage entity 300 at the production site 10; step 602, aggregating the multiple IOs 201; and step 603, storing the aggregated IOs 201 as the first object 401 in the object storage 400 of the production site 10.

[0100] It is worth noting that the method 600 may also include actions as described in the aforementioned embodiment of the entity 200 .

[0101] The present disclosure has been described in conjunction with various embodiments as examples and implementations. However, other variations may be understood and implemented by those skilled in the art from a study of the drawings, the present disclosure and the independent claims, and practice the disclosure claimed. In the claims and in the specification, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. A single element or other unit may fulfil the functions of several entities or items described in the claims. The fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used for advantageous implementations.

[0102] In addition, any method according to an embodiment of the present disclosure can be implemented in a computer program having a code device, which, when executed by a processing device, causes the processing device to perform the steps of the method. The computer program is included in a computer-readable medium of a computer program product. The computer-readable medium can basically include any memory, such as a read-only memory (ROM), a programmable read-only memory (PROM), an erasable PROM (EPROM), a flash memory, an electrically erasable PROM (EEPROM), or a hard disk drive.

[0103] Furthermore, those skilled in the art recognize that embodiments of the entity 200 include necessary communication capabilities in the form of functions, devices, units, elements, etc., for performing the described solutions. Examples of other such devices, units, elements, and functions are: processors, memories, buffers, control logic, encoders, decoders, rate matchers, de-rate matchers, mapping units, multipliers, decision units, selection units, switches, interleavers, de-interleavers, modulators, demodulators, inputs, outputs, antennas, amplifiers, receiver units, transmitter units, DSPs, trellis-coded modulation (TCM) encoders, TCM decoders, power supply units, feeds, communication interfaces, communication protocols, etc. They are appropriately arranged together for performing the described solutions.

[0104] In particular, the processor of the entity 200 may include, for example, one or more instances of a central processing unit (CPU), a processing unit, a processing circuit, a processor, an application specific integrated circuit (ASIC), a microprocessor, or other processing logic that can interpret and execute instructions. Therefore, the expression "processor" may refer to a processing circuit including multiple processing circuits, such as, for example, any one, some or all of the above. The processing circuit may further perform data processing functions for input, output and processing of data, including data buffering and device control functions, such as call processing control, user interface control, etc.

Claims

1. An entity (200) for a production site (10), the entity (200) being configured as: intercepting a plurality of input / output IOs (201) for writing to a volume (301) of a storage entity (300) at the production site (10); Aggregating the plurality of IOs (201); storing the aggregated IO (201) as a first object (401) in an object storage (400) of the production site (10); The entity (200) is further configured as: Obtaining a notification (501) from a controller (500) at the production site (10) to start intercepting the plurality of IOs in a first time period; Intercepting the plurality of IOs in each first time period (201); Aggregating the plurality of IOs (201) continuously in each first time period and storing them as objects in the object storage (400); Each object is associated with a previous object in the object store (400) and a previous snapshot of the volume (301), wherein the previous snapshot is a snapshot created before the object was stored.

2. The entity (200) according to claim 1, configured to: Periodically receiving an indication that a snapshot of the volume (301) is to be created; Keep incoming IO; writing to the volume according to objects associated with a previous snapshot of the snapshot (301); and The snapshot of the volume (301) is created after writing to the volume (301).

3. The entity (200) according to claim 2, configured to: After creating the snapshot, the newly stored object is associated with the snapshot.

4. The entity (200) according to claim 2, wherein: The production site (10) is located in a remote site.

5. The entity (200) according to claim 2 or 3, wherein: The production site (10) is located in the cloud.

6. The entity (200) according to claim 4, configured to: A first snapshot of the volume (301) is created using the cloud application programming interface API.

7. The entity (200) according to claim 6, configured to: creating a copy of the first snapshot and / or a copy of an object associated with the first snapshot using the API; and The replica is replicated to another production site in the cloud and / or a remote site using a cloud replication mechanism (20).

8. The entity (200) according to claim 7, configured to: Receiving a copy of a snapshot and / or a copy of an object associated with the snapshot from the cloud and / or from the further production site (20) in the cloud via a cloud replication mechanism, the snapshot being a snapshot of a volume of a storage entity at the further production site (20); and The copy is stored.

9. The entity (200) according to claim 7, configured to: receiving an indication that a second snapshot of the volume (301) is to be created, wherein: The first snapshot is the previous snapshot of the second snapshot; Keep new incoming IO; Writing the volume according to an object associated with the first snapshot (301); creating the second snapshot of the volume (301) after writing the volume (301); as well as After creating the second snapshot, the newly stored object is associated with the second snapshot.

10. The entity (200) according to claim 9, configured to: A request is obtained to restore the volume (301) to a given point in time, wherein: The given time point is a time point after the first snapshot is created and before the second snapshot is created; Obtaining an object associated with the first snapshot from the object store (400); Restoring the first snapshot to the primary volume; as well as The primary volume is written according to the object associated with the first snapshot until the primary volume is at a given point in time.

11. The entity (200) according to claim 10, wherein: The request comes from another production site (20) in the cloud.

12. The entity (200) according to claim 10, wherein: The objects in the object store (400) include a list of a plurality of IOs and corresponding timestamps at which the plurality of IOs occurred.

13. The entity (200) according to claim 10, configured to: The restoration volume is generated by writing IOs having corresponding timestamps before the given time point into the primary volume.

14. The entity (200) according to claim 10, configured to: The first snapshot is restored to the primary volume using the API of the cloud service provider.

15. The entity (200) according to claim 6, configured to: The snapshot is scanned using the API of the cloud service provider.

16. The entity (200) according to any one of claims 10 to 15, configured to: The volume of the storage device is restored at the other production site (20).

17. A method (600) for data protection, comprising: intercepting (601) a plurality of input / output IOs (201) for writing to a volume (301) of a storage entity (300) at a production site (10); Aggregating (602) the plurality of IOs (201); storing (603) the aggregated IO (201) as a first object (401) in an object storage (400) of the production site (10); Obtaining a notification (501) from a controller (500) at the production site (10) to start intercepting the plurality of IOs in a first time period; Intercepting the plurality of IOs in each first time period (201); Aggregating the plurality of IOs (201) continuously in each first time period and storing them as objects in the object storage (400); Each object is associated with a previous object in the object store (400) and a previous snapshot of the volume (301), wherein the previous snapshot is a snapshot created before the object was stored.

18. A computer program product comprising program code for executing the method according to claim 17 when implemented on a processor.