Data replication is an important strategy – to keep valuable data safe and accomplish disaster recovery. Introduced in CloudStack 4.19, the “CloudStack Snapshot Copy” feature adds an important layer of data protection and application availability. It facilitates the replication of the Instance’s Volumes Snapshots across multiple CloudStack Zones, providing a defence against system failures, data corruption, and other disastrous events.
The “Snapshot Copy” feature utilises the Secondary Storage VM to provide data replication, which can be employed in Disaster Recovery scenarios. This functionality is complemented by a user interface that displays a list of zones where a Snapshot is present, as well as the status of the copy, similar to Template registration. With the Snapshot copied to the remote Zones, users can create new Volumes or Instances. This ensures that data can be recovered, and Instances can be swiftly reinstalled in the event of a disaster, enhancing business resilience and continuity.
Copying Snapshots to Multiple Zones
The process of copying Snapshots to multiple Zones is similar to that of copying Templates. this process is as follows:
• The CloudStack management server receives the copy command, which can be from a single Snapshot request from the User or from a Scheduled Snapshot policy.
• The CloudStack management server makes the necessary capacity checks on the target Zone(s) and the Account. It queries the source Zone for the Snapshot files (which are stored on the Secondary Storage).
• The CloudStack management server prepares the SSVM on the source Zone to act as a webserver hosting the Snapshot files.
• An SSVM at the target Zone(s) then performs a HTTP request, downloading the required snapshot files from the original zone via the Public Network.
• Finally, the CloudStack management server performs the necessary updates in the database and the Snapshot copy is ready for Volume or Template creation in the target Zone(s).
API Changes
To facilitate the “copy volume snapshot” action, a new API “copySnapshot” has been introduced which takes the following parameters:
Parameter | Description |
id | The ID of the Snapshot |
sourcezoneid | Optional parameter to specify the ID of the source Zone for the copy process |
destzoneid | The Remote Zone ID which the Snapshot is to be copied to |
destzoneids | A comma-separated list of IDs of the zones that the snapshot needs to be copied to. This parameter can be specified when the snapshot to be copied to multiple zones in one single API call. Only one of the destzoneid or destzoneids parameter must be specified at a time. |
UI Changes
• In the CloudStack UI, Snapshot Copy is similar to the existing Template copy. A new “Zones” tab has been added to view where the Snapshot is available that can be used to copy it to other Zones.
• Users can also backup their Volume Snapshots to multiple Zones during creation. To facilitate this, the parameter zoneids has been added to the createSnapshot and the createSnapshotPolicy APIs. These parameters can be used to specify a list of Zones to which the Snapshot should be copied. Both create volume Snapshot and create Snapshot policy forms provide the option to select the Zones for this purpose. The snapshot is always backed-up firstly in the Zone where the Volume is currently present. Once the Snapshot process in the source Zone is complete, it is then copied to the other selected Zones.
UI form to Take Snapshot with option to specify multiple zones
UI form to schedule Recurring Snapshots with option to specify multiple zones
The Snapshot Copy Feature is designed to improve data security by allowing Users to replicate their data across multiple CloudStack Zones, protecting them from potential threats or losses. This feature is especially valuable for organizations seeking a solution for Disaster Recovery as a Service (DRaaS) for their Users. By incorporating some scripts and automation, Users can effectively utilize this feature to provide a comprehensive Disaster Recovery solution. This Feature was highlighted during the CloudStack Collaboration Conference 2023 (https://www.youtube.com/watch?v=fVgKUM-mWMA), where DRaaS using the Snapshot Copy and target selection was displayed.
As is common with the introduction of new features, there may be untested scenarios or areas that require more refinement. Users are encouraged to contribute feedback and report any issues they encounter in the community’s GitHub repository (https://github.com/apache/cloudstack/). Such contributions are crucial to identifying and addressing potential improvements, ensuring future versions of the feature are more robust and efficient.
The “Snapshot Copy” feature is introduced in CloudStack 4.19 LTS.
Abhishek Kumar is a software engineer by profession. His personal interests and hobbies are technology, politics and sports. Abhishek is experienced in development and management of a variety of desktop and mobile applications. He has a particular interest in mobile application development, designing and developing highly interactive and intuitive mobile, desktop applications GUI.
Abhishek became part of ShapeBlue in 2019 and is currently an active Apache CloudStack Committer.
You can learn more about Abhishek and his background by reading his Meet The Team blog.