Hi,

I have checked both the PRs. My observations are-

Nathan, As per your implementation,
- When the parameter “snapshot.backup.rightafter” is set to false, when the 
snapshot is created on primary, the state transitions are faked from 
CreatedOnPrimary -> BackingUp and BackingUp -> Backup.
- For both values (true and false) of the parameter 
“snapshot.backup.rightafter”, the Snapshot state is backed up, which is 
confusing.
- User doesn’t know which snapshot is backed up and physically available in 
secondary.
- The create template or create volume (whichever is the first) is slow for the 
snapshot created when “snapshot.backup.rightafter” is false. The actual backup 
process is delayed and would be done on demand.
- When snapshot on primary is backed up on demand, the state of the primary 
storage and the snapshot on it, is unpredictable.

My proposal moves the global parameter to API level so that user can separate 
the backup at snapshot creation time. The snapshot backup will be triggered 
immediately after creation of the snapshot on primary and will be decoupled 
from the API async job. This unblocks the VM queue after snapshot creation on 
primary and enables the user to perform other allowed VM operations when 
snapshot is backing up in the background (which can be tracked using the 
snapshot state/status). Also, the snapshot state transitions will be in the 
proper order.


Syed,
- User does not choose the location where the snapshot has to be stored for 
unmanaged storage. In case of unmanaged storage, the snapshot should be backed 
up to the secondary. So locationType would be always SECONDARY for unmanaged 
storage, no point in using this parameter for unmanaged storage.
-My proposal separates the snapshot backup for unmanaged storage only.

Please let me know your comments.

Thanks,
Harika.



From: Syed Ahmed [mailto:sah...@cloudops.com]
Sent: Thursday, May 11, 2017 1:08 AM
To: dev@cloudstack.apache.org
Cc: Harika Punna <harika.pu...@accelerite.com>
Subject: Re: [PROPOSAL] Separate creation and backup operations for a volume 
snapshot

Oops I meant Harika, I know that Nathan you were working on something like this 
a while back with Ceph so I assumed you where the one who proposed this. 
Anyways, Harika, look at the locationType parameter in the CreateSnaphsot API 
command. This is what you are looking to implement. Note that this currently 
only works for Managed storage (SolidFire) so you'd have to work it into the 
standard non-managed storage.
Let me know if you have any questions.
Thanks,
-Syed


On Wed, May 10, 2017 at 3:24 PM, Syed Ahmed 
<sah...@cloudops.com<mailto:sah...@cloudops.com>> wrote:
Hi Nathan,
This option to choose between primary and secondary was added by me a while 
back. You want to look at

https://github.com/apache/cloudstack/pull/1600

On Tue, May 9, 2017 at 10:09 AM, Nathan Johnson 
<njohn...@ena.com<mailto:njohn...@ena.com>> wrote:
Harika Punna <harika.pu...@accelerite.com<mailto:harika.pu...@accelerite.com>> 
wrote:
>
> Currently, Volume Snapshots in Cloudstack take considerable amount of
> time to complete as snapshot involves creation on primary and backup on
> secondary. I would like to introduce an optional parameter in
> CreateSnapshotCmd API to separate these operations.
>
>
> More details in the FS:
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/Separate+creation+and+backup+operations+for+a+volume+snapshot
>
>
> Thanks,
> Harika.

Hello Harika.  There was a related discussion around a global configuration
parameter snapshot.backup.rightafter

See the thread here:
https://issues.apache.org/jira/browse/CLOUDSTACK-4858

And here is the PR where this was merged into 4.9:

https://github.com/apache/cloudstack/pull/1697

This is distinct from what you propose, and I like the idea of being able
to specify whether or not to back up at snapshot creation time, versus only
having a global configuration parameter.

Also one remaining issue with the current implementation of snapshots and
backups is that if the snapshot.backup.rightafter parameter is set to
false, on doing certain operations with snapshots (create template from
snapshot iirc, perhaps some others) it will then need to take the backup to
secondary at that time, and it will be very slow.  I think at some point
you have to take that hit, so maybe there is no way around this.

But that brings me to a followup point: since the PR was merged above, ACS
will backup on-demand any snapshots that need to be on secondary that only
exist on primary. it would be nice to also have an optional cleanup thread
and an expiration of backups to secondary.  Or maybe API endpoints that
would allow some external management of backups.

What do you think?


Nathan Johnson
R&D Engineer
Education Networks of America





DISCLAIMER
==========
This e-mail may contain privileged and confidential information which is the 
property of Accelerite, a Persistent Systems business. It is intended only for 
the use of the individual or entity to which it is addressed. If you are not 
the intended recipient, you are not authorized to read, retain, copy, print, 
distribute or use this message. If you have received this communication in 
error, please notify the sender and delete all copies of this message. 
Accelerite, a Persistent Systems business does not accept any liability for 
virus infected mails.

Reply via email to