Maintaining an active-active cloud across different types of cloud storage services
First Claim
1. A method for maintaining an active-active cloud computing environment comprising:
- providing, at a first cloud computer system of a first cloud provider, a first abstraction layer, the first abstraction layer being between a first instance of an application at the first cloud and a first plurality of different storage types, the first plurality of different storage types being made available as storage services to customer tenants of the first cloud provider;
providing, at a second cloud computer system of a second cloud provider, different from the first cloud provider, and, remote from the first cloud, a second abstraction layer, the second abstraction layer being between a second instance of the same application at the second cloud and a second plurality of different storage types, the first and second clouds being connected by a network, the second plurality of different storage types being made available as storage services to customer tenants of the second cloud provider;
providing a replication protection appliance (RPA), coupled between the first and second abstraction layers, and comprising a synchronous write mode;
intercepting, at the first abstraction layer, a write command from the first instance of the application to storage of a particular type among the first plurality of different storage types; and
sending, by the first abstraction layer, a copy of the write command to the RPA, wherein the RPA replicates the write command to the second abstraction layer for the second abstraction layer to send to corresponding storage of the same particular type among the second plurality of different storage types, wherein the synchronous write mode comprises;
waiting, by the first abstraction layer, for an acknowledgement from the RPA that the write command was received by the second abstraction layer before passing the write command to the storage of the particular type at the first cloud;
receiving, at the RPA, an acknowledgment from the second abstraction layer indicating that the write command was received by the second abstraction layer; and
after receipt of the acknowledgement from the second abstraction layer, sending, by the RPA, the acknowledgement to the first abstraction layer indicating that the write command was received by the second abstraction layer, thereby allowing the first abstraction layer to pass the write command to the storage of the particular type at the first cloud.
7 Assignments
0 Petitions
Accused Products
Abstract
A first cloud is provided with a first abstraction layer between a first instance of an application and a first set of different storage types. A second cloud, remote from the first cloud, is provided with a second abstraction layer between a second instance of the application and a second set of different storage types. A replication protection appliance (RPA) is connected between the first and second abstraction layers. The first abstraction layer intercepts a write command from the first instance of the application to storage of a particular type among the first set of different storage types. The first abstraction layer sends a copy of the write command to the RPA. The RPA replicates the write command to the second abstraction layer for the second abstraction layer to send to corresponding storage of the particular type among the second set of different storage types.
16 Citations
14 Claims
-
1. A method for maintaining an active-active cloud computing environment comprising:
-
providing, at a first cloud computer system of a first cloud provider, a first abstraction layer, the first abstraction layer being between a first instance of an application at the first cloud and a first plurality of different storage types, the first plurality of different storage types being made available as storage services to customer tenants of the first cloud provider; providing, at a second cloud computer system of a second cloud provider, different from the first cloud provider, and, remote from the first cloud, a second abstraction layer, the second abstraction layer being between a second instance of the same application at the second cloud and a second plurality of different storage types, the first and second clouds being connected by a network, the second plurality of different storage types being made available as storage services to customer tenants of the second cloud provider; providing a replication protection appliance (RPA), coupled between the first and second abstraction layers, and comprising a synchronous write mode; intercepting, at the first abstraction layer, a write command from the first instance of the application to storage of a particular type among the first plurality of different storage types; and sending, by the first abstraction layer, a copy of the write command to the RPA, wherein the RPA replicates the write command to the second abstraction layer for the second abstraction layer to send to corresponding storage of the same particular type among the second plurality of different storage types, wherein the synchronous write mode comprises; waiting, by the first abstraction layer, for an acknowledgement from the RPA that the write command was received by the second abstraction layer before passing the write command to the storage of the particular type at the first cloud; receiving, at the RPA, an acknowledgment from the second abstraction layer indicating that the write command was received by the second abstraction layer; and after receipt of the acknowledgement from the second abstraction layer, sending, by the RPA, the acknowledgement to the first abstraction layer indicating that the write command was received by the second abstraction layer, thereby allowing the first abstraction layer to pass the write command to the storage of the particular type at the first cloud.
-
-
2. The method of claim 1 wherein the first plurality of different storage types comprises a first file store, a first database, and a first object store,
the second plurality of different storage types comprises a second file store, a second database, and a second object store, and wherein the RPA maintains data consistency between the first and second file stores, the first and second databases, and the first and second object stores.
-
3. The method of claim 1 wherein the RPA comprises an asynchronous write mode, wherein the asynchronous write mode comprises:
upon receiving the copy of the write command from the first abstraction layer, sending, by the RPA, an acknowledgement to first abstraction layer, thereby allowing the first abstraction layer to pass the write command to the storage of the particular type before receiving an acknowledgement from the second abstraction layer that the write command was received.
-
4. The method of claim 1 wherein the write command is a first write command for a first storage type of the first plurality of different storage types, and the method comprises:
intercepting, at the first abstraction layer, a second write command from the first instance of the application to a second storage type of the first plurality of different storage types, the second storage type being different from the first storage type.
-
5. The method of claim 1 comprising:
-
intercepting, at the second abstraction layer, a second write command from the second instance of the application to storage of the particular type among the second plurality of different storage types; and sending, by the second abstraction layer, a copy of the second write command to the RPA, wherein the RPA replicates the second write command to the first abstraction layer for the first abstraction layer to send to corresponding storage of the particular type among the first plurality of different storage types.
-
-
6. The method of claim 1 wherein the first plurality of different storage types comprises a particular type of file store, a particular type of database, and a particular type of object store,
wherein the second plurality of different storage types comprises the same particular type of file store, the same particular type of database, and the same particular type of object store, wherein when a first write command to a first file store of the particular type of file store is intercepted at the first abstraction layer, a copy of the first write command is sent by the first abstraction layer to the RPA to be replicated and sent by the second abstraction layer to a second file store of the same particular type of file store, wherein when a second write command to a first database of the particular type of database is intercepted at the first abstraction layer, a copy of the second write command is sent by the first abstraction layer to the RPA to be replicated and sent by the second abstraction layer to a second database of the same particular type of database, and wherein when a third write command to a first object store of the particular type of object store is intercepted at the first abstraction layer, a copy of the third write command is sent by the first abstraction layer to the RPA to be replicated and sent by the second abstraction layer to a second object store of the same particular type of object store.
-
7. A system for maintaining an active-active cloud computing environment, the system comprising:
-
a processor-based system executed on a computer system and configured to; provide, at a first cloud computer system of a first cloud provider, a first abstraction layer, the first abstraction layer being between a first instance of an application at the first cloud and a first plurality of different storage types, the first plurality of different storage types being made available as storage services to customer tenants of the first cloud provider; provide, at a second cloud computer system of a second cloud provider, different from the first cloud provider, and, remote from the first cloud, a second abstraction layer, the second abstraction layer being between a second instance of the same application at the second cloud and a second plurality of different storage types, the first and second clouds being connected by a network, the second plurality of different storage types being made available as storage services to customer tenants of the second cloud provider; provide a replication protection appliance (RPA), coupled between the first and second abstraction layers, and comprising an asynchronous write mode; intercept, at the first abstraction layer, a write command from the first instance of the application to storage of a particular type among the first plurality of different storage types; and send, by the first abstraction layer, a copy of the write command to the RPA, wherein the RPA replicates the write command to the second abstraction layer for the second abstraction layer to send to corresponding storage of the same particular type among the second plurality of different storage types, wherein the first plurality of different storage types comprises a particular type of file store, a particular type of database, and a particular type of object store, wherein the second plurality of different storage types comprises the same particular type of file store, the same particular type of database, and the same particular type of object store, wherein when a first write command to a first file store of the particular type of file store is intercepted at the first abstraction layer, a copy of the first write command is sent by the first abstraction layer to the RPA to be replicated and sent by the second abstraction layer to a second file store of the same particular type of file store, wherein when a second write command to a first database of the particular type of database is intercepted at the first abstraction layer, a copy of the second write command is sent by the first abstraction layer to the RPA to be replicated and sent by the second abstraction layer to a second database of the same particular type of database, and wherein when a third write command to a first object store of the particular type of object store is intercepted at the first abstraction layer, a copy of the third write command is sent by the first abstraction layer to the RPA to be replicated and sent by the second abstraction layer to a second object store of the same particular type of object store, and wherein in the asynchronous write mode, the RPA sends an acknowledgment of the write command to the first abstraction layer upon receipt of the copy of the write command from the first abstraction layer, thereby allowing the first abstraction layer to pass the write command to the storage of the particular type at the first cloud before receiving an acknowledgement from the second abstraction layer at the second cloud that the write command was received.
-
-
8. The system of claim 7 wherein the RPA comprises a synchronous write mode, wherein in the synchronous write mode,
the first abstraction layer waits for an acknowledgement from the RPA that the write command was received by the second abstraction layer before passing the write command to the storage of the particular type at the first cloud, the RPA receives an acknowledgement from the second abstraction layer indicating that the write command was received by the second abstraction layer, and after receipt of the acknowledgement from the second abstraction layer, the RPA sends the acknowledgement to the first abstraction layer indicating that the write command was received by the second abstraction layer, thereby allowing the first abstraction layer to pass write command to the storage of the particular type at the first cloud.
-
9. The system of claim 7 wherein the write command is a fourth write command for a first storage type of the first plurality of different storage types, and the processor-based system is configured to:
intercept, at the first abstraction layer, a fifth write command from the first instance of the application to a second storage type of the first plurality of different storage types, the second storage type being different from the first storage type.
-
10. The system of claim 7 wherein the processor-based system is configured to:
-
intercept, at the second abstraction layer, a fourth write command from the second instance of the application to storage of the particular type among the second plurality of different storage types; and send, by the second abstraction layer, a copy of the fourth write command to the RPA, wherein the RPA replicates the fourth write command to the first abstraction layer for the first abstraction layer to send to corresponding storage of the particular type among the first plurality of different storage types.
-
-
11. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method comprising:
-
providing, at a first cloud computer system of a first cloud provider, a first abstraction layer, the first abstraction layer being between a first instance of an application at the first cloud and a first plurality of different storage types, the first plurality of different storage types being made available as storage services to customer tenants of the first cloud provider; providing, at a second cloud computer system of a second cloud provider, different from the first cloud provider, and, remote from the first cloud, a second abstraction layer, the second abstraction layer being between a second instance of the same application at the second cloud and a second plurality of different storage types, the first and second clouds being connected by a network, the second plurality of different storage types being made available as storage services to customer tenants of the second cloud provider; providing a replication protection appliance (RPA), coupled between the first and second abstraction layers, and comprising a synchronous write mode, and an asynchronous write mode; intercepting, at the first abstraction layer, a write command from the first instance of the application to storage of a particular type among the first plurality of different storage types; and sending, by the first abstraction layer, a copy of the write command to the RPA, wherein the RPA replicates the write command to the second abstraction layer for the second abstraction layer to send to corresponding storage of the same particular type among the second plurality of different storage types, wherein the first plurality of different storage types comprises a particular type of database, wherein the second plurality of different storage types comprises the same particular type of database, and wherein when a first write command to a first database of the particular type of database is intercepted at the first abstraction layer, a copy of the first write command is sent to the RPA to be replicated to the second abstraction layer and sent by the second abstraction layer to a second database of the same particular type of database, wherein the synchronous write mode comprises; waiting, by the first abstraction layer, for an acknowledgement from the RPA that the write command was received by the second abstraction layer before passing the write command to the storage of the particular type at the first cloud, receiving, at the RPA, an acknowledgement from the second abstraction layer indicating that the write command was received by the second abstraction layer, and after receipt of the acknowledgement from the second acknowledgement layer, sending, by the RPA, the acknowledgement to the first abstraction layer indicating that the write command was received by the second abstraction layer, thereby allowing the first abstraction layer to pass the write command to the storage of the particular type at the first cloud, and wherein the asynchronous write mode comprises; upon receiving the copy of the write command from the first abstraction layer, sending, by the RPA, an acknowledgement to the first abstraction layer, thereby allowing the first abstraction layer to pass the write command to the storage of the particular type at the first cloud before receiving an acknowledgment from the second abstraction layer that the write command was received.
-
-
12. The computer program product of claim 11 wherein the first plurality of different storage types comprises a first file store, the first database, and a first object store,
the second plurality of different storage types comprises a second file store, the second database, and a second object store, and wherein the RPA maintains data consistency between the first and second file stores, the first and second databases, and the first and second object stores.
-
13. The computer program product of claim 11 wherein the write command is a second write command for a first storage type of the first plurality of different storage types, and the method comprises:
intercepting, at the first abstraction layer, a third write command from the first instance of the application to a second storage type of the first plurality of different storage types, the second storage type being different from the first storage type.
-
14. The computer program product of claim 11 wherein the method comprises:
-
intercepting, at the second abstraction layer, a second write command from the second instance of the application to storage of the particular type among the second plurality of different storage types; and sending, by the second abstraction layer, a copy of the second write command to the RPA, wherein the RPA replicates the second write command to the first abstraction layer for the first abstraction layer to send to corresponding storage of the particular type among the first plurality of different storage types.
-
Specification