Managing volume snapshots in the cloud
Systems, methods, and machine-readable media for creating, deleting, and restoring volume snapshots in a remote data store are disclosed. A storage volume and a storage operating system are implemented in a software container. Through a user interface, a user may create a snapshot of the volume to a cloud storage. A user may also delete individual snapshots from the cloud storage. Further, deletion of a most recent snapshot may occur by awaiting deletion (though marking as deleted to the user) until a next snapshot is received. Snapshots in the cloud storage are manipulatable even after destruction of the source volume (by destruction of the container, for example). A controller outside the container is used by implementing the same API as the controller in the container had. Full restores of snapshots in the cloud are also possible even when the original container and volume have been destroyed.
1 . A method comprising:
creating, by an orchestrator of a container system, a volume snapshot object, the volume snapshot object including an identifier unique to an individual volume snapshot for a selected volume in the container system, wherein the volume snapshot object is created before the individual volume snapshot is created;
creating, by a container of the container system, the individual volume snapshot for the selected volume in response to detecting the creation of the volume snapshot object;
determining, by the container of the container system, a relationship between the selected volume in the container and an object store remote from the container;
transferring, by the container of the container system, the created individual volume snapshot of the selected volume into the object store based on the relationship; and
updating, by the container of the container system, a status of the volume snapshot object when the created individual volume snapshot is stored into the object store.
2 . The method of claim 1 , wherein the volume snapshot object is created outside of the container, and the individual volume snapshot is created inside the container.
3 . The method of claim 1 , further comprising:
stamping, by a container monitoring module (CMM) of the container, the identifier unique to the individual volume snapshot onto the individual volume snapshot.
4 . The method of claim 1 , wherein the creating of the individual volume snapshot includes:
sending, by a container monitoring module (CMM) of the container, a payload that includes the identifier unique to the individual volume snapshot to a storage OS of the container;
creating, by the storage OS, one or more configurations for the object store based on the payload; and
creating, by the storage OS, one or more relationships between the selected volume and the object store.
5 . The method of claim 4 , further comprising:
sending, by the storage OS, a response message to the CMM indicating a failure occurred, the failure comprising at least one of a failure to create the one or more configurations, a failure to create the one or more relationships, or a failure to store the created individual volume snapshot; and
resending, by the CMM, the payload to the storage OS upon receiving the response message indicating the failure occurred.
6 . The method of claim 1 , further comprising:
sending, by a storage OS of the container, a response message to a container monitoring module (CMM) indicating a success of initiating the storing of the created individual volume snapshot into the object store; and
continuously updating, by the CMM, the status of the volume snapshot object with an indication of whether the storing is in progress or complete.
7 . The method of claim 1 , further comprising:
updating, by the container of the container system, the volume snapshot object such that the volume snapshot object further includes at least one an object store identifier to identify the object store for storing the created individual volume snapshot, a logical space required to restore a snapshot, a storing percent complete, or a snapshot create time.
8 . A non-transitory machine readable medium having stored thereon instructions for performing a method of volume snapshot creation in a container system, comprising machine executable code which when executed by at least one machine, causes the machine to:
create a volume snapshot object including an identifier unique to an individual volume snapshot for a selected volume in the container system, wherein the volume snapshot object is created before the individual volume snapshot is created;
create the individual volume snapshot in a container of the container system for the selected volume in response to detecting the creation of the volume snapshot object;
determine a relationship between the selected volume in the container and an object store remote from the container;
transfer the created individual volume snapshot of the selected volume into the object store based on the relationship;
update a status of the volume snapshot object when the transfer of the created individual volume snapshot is in progress; and
update the status of the volume snapshot object when the transfer of the created individual volume snapshot is complete.
9 . The non-transitory machine readable medium of claim 8 , further comprising machine executable code that causes the machine to:
receive a user selection to create the individual volume snapshot for the selected volume in the container system.
10 . The non-transitory machine readable medium of claim 8 , further comprising machine executable code that causes the machine to:
stamp the identifier unique to the individual volume snapshot onto the individual volume snapshot.
11 . The non-transitory machine readable medium of claim 8 , further comprising machine executable code that causes the machine to:
send a payload that includes the identifier unique to the individual volume snapshot to a storage operating system (OS) in the container system;
create one or more configurations for the object store based on the payload; and
create one or more relationships between the selected volume and the object store.
12 . The non-transitory machine readable medium of claim 11 , further comprising machine executable code that causes the machine to:
send a response message indicating a failure occurred, the failure includes a failure to create the one or more configurations, a failure to create the one or more relationships, or a failure to store the created individual volume snapshot; and
resend the payload to the storage OS upon receiving the response message indicating the failure occurred.
13 . The non-transitory machine readable medium of claim 8 , further comprising machine executable code that causes the machine to:
send a response message indicating a success of initiating the transfer of the created individual volume snapshot into the object store; and
continuously update the status of the volume snapshot object during the transfer of the created individual volume snapshot.
14 . The non-transitory machine readable medium of claim 8 , further comprising machine executable code that causes the machine to:
update the volume snapshot object such that the volume snapshot object further includes at least one of an object store identifier to identify the object store for storing the created individual volume snapshot, a logical space required to restore a snapshot, a transfer percent complete, or a snapshot create time.
15 . A computing device comprising:
a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of volume snapshot creation in a container system; and
a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:
receive a user request to create an individual volume snapshot for a selected volume in the container system;
create a volume snapshot object in response to the user request, the volume snapshot object having an identifier unique to the individual volume snapshot, wherein the volume snapshot object is created before the individual volume snapshot is created;
create the individual volume snapshot in a container of the container system for the selected volume in response to detecting the creation of the volume snapshot object;
determine a relationship between the selected volume in the container and an object store remote from the container;
transfer the created individual volume snapshot of the selected volume into the object store based on the relationship; and
update the volume snapshot object such that the volume snapshot object further includes at least one of an object store identifier to identify the object store for storing the created individual volume snapshot, a logical space required to restore a snapshot, a transfer percent complete, or a snapshot create time.
16 . The computing device of claim 15 , wherein the processor is further configured to:
update a status of the volume snapshot object when the transfer of the created individual volume snapshot is in progress; and
update the status of the volume snapshot object when the transfer of the created individual volume snapshot is complete.
17 . The computing device of claim 15 , wherein the processor is further configured to:
stamp the identifier unique to the individual volume snapshot onto the individual volume snapshot.
18 . The computing device of claim 15 , wherein the processor is further configured to:
send a payload that includes the identifier unique to the individual volume snapshot to a storage operating system (OS) in the container system;
create one or more configurations for the object store based on the payload; and
create one or more relationships between the selected volume and the object store.
19 . The computing device of claim 18 , wherein the processor is further configured to:
send a response message indicating a failure occurred, the failure includes a failure to create the one or more configurations, a failure to create the one or more relationships, or a failure to store the created individual volume snapshot; and
resend the payload to the storage OS upon receiving the response message indicating the failure occurred.
20 . The computing device of claim 15 , wherein the processor is further configured to:
send a response message indicating a success of initiating the transfer of the created individual volume snapshot into the object store; and
continuously update a status of the volume snapshot object with an indication of whether the transfer is in progress or complete.