Cinder Backend Activity Attributes

Cinder Backend Activity Attributes
A Cinder Backend Activity is some process, thread, job or state machine which is launched by a Cinder Volume Driver on another machine that is not directly under Compute's control. For Cinder this would typically be an iSCSI target or an NFS server.

Volume Drivers have a great deal of flexibility on how to perform specific functions, which typically involves replicating the content of a volume or snapshot to somewhere. The different possible activities, and how their implementations can very is discussed in Cinder_Backend_Activities.

These attributes would be published as read-only attributes. Non-publication of a given attribute implies a default action. A python dictionary that would be an attribute of the Volume Driver is suggested as the implementation.

These attributes would include:

Stateless Activities: list of methods which the Volume Driver can perform without needing to modify the Volume state. If an method to be invoked is not in this list then the taskflow should ensure that the Volume is quiesced before invoking the method.

Snapshot Replication: Snapshots can be replicated from one target to another within the same Volume Driver family. If this method is not supported the taskflow should clone an anonymous volume from the snapshot, migrate said volume to the destination, take a snapshot there and then delete both volumes.

Backup Compression Techniques: list of compression algorithms that the Volume Driver can apply when taking a Backup. The taskflow may chose to do directly control performing the compression work itself if not satisfied with an available option.

Handle Scope: What is the scope of a backend activity handle? * Connection-specific: the activity cannot be accessed on another connection. Once this connection is broken the activity will eventually terminate, but there is no way to reference it. * Source-specific: Connection can be re-opened, but only from the same host. * User specific: connection can be re-opened on a different machine, but only by the same user. * Unrestricted: connection can be re-opened on any machine by any user.