Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Bug Reference

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyCLOUDSTACK-9278
The Jira issue associated with this design spec

Branch

master

Introduction

Purpose

The objective of this API is to enable storage vendor side snapshots of virtual disk when using managed hardware as Primary Storage. When using the Primary storage plugins such as SolidFire vendor,  each virtual disks is a LUN are LUNs on the storage array. Using the storage array snapshot capability benefits for performance and features sets feature set supported by the storage vendor.

StorageSnapshot does not fit in the VolumeSnapshot API because it would not perform the same tasks, a Volume Snapshot use uses the hypervisor capability to create a volume snapshot then extract it and archive it into the secondary storage. The intent of a StorageSnapshot is to perform a snapshot at the hardware vendor level, and keep it there for rollback purposes and disk cloning. StorageSnapshot is more aligned with the VMsnapshot API capability but is intent to be per virtual disk basis.

. References

  • relevant links

Document History

Glossary

Feature Specifications

  • The initial scope of work is to define the API and enable it for infrastructure specific: SolidFire storage plugin with XenServer 6.5, but also create the API skeleton for other deployment scenario.
  • When using VDI-per-LUN (storage plugin for vendor specific)
    • Create storage snapshots of a volume;
      • support multiple snapshots of the same volume.
      • keep track of snapshot inventory/hierarchy in cloudstack database.
    • Revert volume from a snapshot
    • Create new volume from a snapshot   "clone".
    • Scheduling auto snapshot ?
  • UI would support the feature in the snapshot  drop down,  as "StorageSnapshot"
  • Usage report should be track per volume or snapshots and tracked secondary storage usage, TBD

Use cases

When using VDI-per-LUN with  XenServer 6.5 + SolidFire storage array, all VirtualDisk VirtualDisks are unique LUN LUNs on the storage array so it leverage leverages snapshot capabilities of the storage vendor for volumes.

One On XenServer as hypervisor constraint is that each VDI run resides on a dedicated SR which occupies the whole LUN, as and the LUN is presented as a an iSCSI-LVM SR dedicated for a single VDI. 

The StorageSnapshot API will be reuse by the VolumeSnapshot API when using storage plugin so the VolumeSnapshot would perform following task:

...

to Xenserver. Storage snapshots would allow the creation of volumes more efficiently by creating a clone on the backend instead of doing a hypervisor copy.



Architecture and Design description

  • The API skeleton should allow other storage vendors to implement their own methods

Web Services APIs

 
New APIparamsDescription
createStorageSnapshot  
StorageSnapshotRevert  
id: volume IDCreate storage-snapshot of a volume
createVolumeFromStorageSnapshot

id: StorageSnapshot ID

Create a volume from a storage snapshot by cloning it on the device
deleteStorageSnapshotid: StorageSnapshot IDDelete a single storage-snapshot
listStorageSnapshot

volumeID: volume ID

storageID: storage array ID (admin)?

List storage-snapshot of a volumeStorageSnapshotDelete 

 

UI flow

  • either demonstrate it visually here or link to relevant mockupsStorageSnapshots would be listed in the Storage section under the StorageSnapshot dropdown.

IP Clearance

  • what dependencies will you be adding to the project?
  • are you expecting to include any code developed outside the Apache CloudStack project?

Usage Impact

  • Are there any entities being created that require usage reporting for billing purposes? 

  • Does this change any existing entities for which usage is being tracked already?

Appendix

Appendix A:

Appendix B: