I'm still curious how multiple VM snapshot strategies are resolved? What
happens if two vendors write a VM strategy and the VM you're taking a
snapshot of has disks provided by multiple vendors.

Chris had some ideas on this.

I'll be interested to see where this goes.


On Thu, Oct 10, 2013 at 12:38 PM, Edison Su <edison...@citrix.com> wrote:

> Personally, I am +1 on the coarse grain interface, and totally agree with
> your points.
> As long as we separate vmsnasphotmanager and vmsnapshotstrategy, and
> provide enough helper functions(such as quiesce / un-quiesce vm) for
> vendors, then write a new vmsnapshotStrategy should be easy.
>
> > -----Original Message-----
> > From: Darren Shepherd [mailto:darren.s.sheph...@gmail.com]
> > Sent: Wednesday, October 09, 2013 9:13 PM
> > To: dev@cloudstack.apache.org
> > Subject: Re: [DISCUSS] Pluggable VM snapshot related operations?
> >
> > Edison,
> >
> > I would lean toward doing the coarse grain interface only.  I'm having a
> hard
> > time seeing how the whole flow is generic and makes sense for everyone.
> > With starting with the coarse grain you have the advantage in that you
> avoid
> > possible upfront over engineering/over design that could wreak havoc down
> > the line.  If you implement the VMSnapshotStrategy and find that it
> really is
> > useful to other implementations, you can then implement the fine grain
> > interface later to allow others to benefit from it.
> >
> > Darren
> >
> > On Wed, Oct 9, 2013 at 8:54 PM, Mike Tutkowski
> > <mike.tutkow...@solidfire.com> wrote:
> > > Hey guys,
> > >
> > > I haven't been giving this thread much attention, but am reviewing it
> > > somewhat now.
> > >
> > > I'm not really clear how this would work if, say, a VM has two data
> > > disks and they are not being provided by the same vendor.
> > >
> > > Can someone clarify that for me?
> > >
> > > My understanding for how this works today is that it doesn't matter.
> > > For XenServer, a VDI is on an SR, which could be supported by storage
> > vendor X.
> > > Another VDI could be on another SR, supported by storage vendor Y.
> > >
> > > In this case, a new VDI appears on each SR after a hypervisor snapshot.
> > >
> > > Same idea for VMware.
> > >
> > > I don't really know how (or if) this works for KVM.
> > >
> > > I'm not clear how this multi-vendor situation would play out in this
> > > pluggable approach.
> > >
> > > Thanks!
> > >
> > >
> > > On Tue, Oct 8, 2013 at 4:43 PM, Edison Su <edison...@citrix.com>
> wrote:
> > >
> > >>
> > >>
> > >> > -----Original Message-----
> > >> > From: Darren Shepherd [mailto:darren.s.sheph...@gmail.com]
> > >> > Sent: Tuesday, October 08, 2013 2:54 PM
> > >> > To: dev@cloudstack.apache.org
> > >> > Subject: Re: [DISCUSS] Pluggable VM snapshot related operations?
> > >> >
> > >> > A hypervisor snapshot will snapshot memory also.  So determining
> > >> > whether
> > >> The memory is optional for hypervisor vm snapshot, a.k.a, the
> > >> "Disk-only
> > >> snapshots":
> > >> http://support.citrix.com/proddocs/topic/xencenter-61/xs-xc-vms-snaps
> > >> hots-about.html It's supported by both xenserver/kvm/vmware.
> > >>
> > >> > do to the hypervisor snapshot from the quiesce option does not seem
> > >> > proper.
> > >> >
> > >> > Sorry, for all the questions, I'm trying to get to the point of
> > >> understand if this
> > >> > functionality makes sense at this point of code or if maybe their
> > >> > is a
> > >> different
> > >> > approach.  This is what I'm seeing, what if we state it this way
> > >> >
> > >> > 1) VM snapshot, AFAIK, are not backed up today and exist solely on
> > >> primary.
> > >> > What if we added a backup phase to VM snapshots that can be
> > >> > optionally supported by the storage providers to possibly backup
> > >> > the VM snapshot volumes.
> > >> It's not about backup vm snapshot, it's about how to take vm snapshot.
> > >> Usually, take/revert vm snapshot is handled by hypervisor itself, but
> > >> in NetApp(or other storage vendor) case, They want to change the
> > >> default behavior of hypervisor-base vm snapshot.
> > >>
> > >> Some examples:
> > >> 1. take hypervisor based vm snapshots, on primary storage, hypervisor
> > >> will maintain the snapshot chain.
> > >> 2. take vm snapshot through NetApp:
> > >>      a. first, quiesce VM if user specified. There is no separate API
> > >> to quiesce VM on the hypervisor, so here we will take a VM snapshot
> > >> through hypervisor API call, hypervisor will take volume snapshot  on
> > >> each volume of the VM. Let's say, on the primary storage, the disk
> > >> chain looks like:
> > >>            base-image
> > >>                     |
> > >>                     V
> > >>                 Parent disk
> > >>             /                         \
> > >>           V                            V
> > >>         Current disk        snapshot-a
> > >>      b. from snapshot-a, find out its parent disk, then take snapshot
> > >> through NetApp
> > >>      c. un- quiesce VM, here, go to hypervisor, delete snapshot
> > >> "snapshot-a", hypervisor should be able to consolidate current disk
> > >> and "parent disk" into one disk, thus from hypervisor point of view ,
> > >> there is always, at most, only one snapshot for the VM.
> > >>     For revert VM snapshot, as long as the VM is stopped, NetApp can
> > >> revert the snapshot created on NetApp storage easily, and efficiently.
> > >>    The benefit of this whole process, as Chris pointed out, if the
> > >> snapshot chain is quite long, hypervisor based VM snapshot will get
> > >> performance hit.
> > >>
> > >> >
> > >> > 2) Additionally you want to be able to backup multiple disks at
> > >> > once, regardless of VM snapshot.  Why don't we add the ability to
> > >> > put
> > >> volumeIds in
> > >> > snapshot cmd that if the storage provider supports it will get a
> > >> > batch of volumeIds.
> > >> >
> > >> > Now I know we talked about 2 and there was some concerns about it
> > >> > (mostly from me), but I think we could work through those concerns
> > >> > (forgot what they were...).  Right now I just get the feeling we
> > >> > are shoehorning some functionality into VM snapshot that isn't
> > >> > quite the right fit.  The "no
> > >> quiesce"
> > >> > flow just doesn't seem to make sense to me.
> > >>
> > >>
> > >> Not sure above NetApp proposed work flow makes sense to you or to
> > >> other body or not. If this work flow is only specific to NetApp, then
> > >> we don't need to enforce the whole process for everybody.
> > >>
> > >> >
> > >> > Darren
> > >> >
> > >> > On Tue, Oct 8, 2013 at 2:05 PM, SuichII, Christopher
> > >> > <chris.su...@netapp.com> wrote:
> > >> > > Whether the hypervisor snapshot happens depends on whether the
> > >> > 'quiesce' option is specified with the snapshot request. If a user
> > >> doesn't care
> > >> > about the consistency of their backup, then the hypervisor
> > >> snapshot/quiesce
> > >> > step can be skipped altogether. This of course is not the case if
> > >> > the
> > >> default
> > >> > provider is being used, in which case a hypervisor snapshot is the
> > >> > only
> > >> way of
> > >> > creating a backup since it can't be offloaded to the storage driver.
> > >> > >
> > >> > > --
> > >> > > Chris Suich
> > >> > > chris.su...@netapp.com
> > >> > > NetApp Software Engineer
> > >> > > Data Center Platforms - Cloud Solutions Citrix, Cisco & Red Hat
> > >> > >
> > >> > > On Oct 8, 2013, at 4:57 PM, Darren Shepherd
> > >> > > <darren.s.sheph...@gmail.com>
> > >> > >  wrote:
> > >> > >
> > >> > >> Who is going to decide whether the hypervisor snapshot should
> > >> > >> actually happen or not? Or how?
> > >> > >>
> > >> > >> Darren
> > >> > >>
> > >> > >> On Tue, Oct 8, 2013 at 12:38 PM, SuichII, Christopher
> > >> > >> <chris.su...@netapp.com> wrote:
> > >> > >>>
> > >> > >>> --
> > >> > >>> Chris Suich
> > >> > >>> chris.su...@netapp.com
> > >> > >>> NetApp Software Engineer
> > >> > >>> Data Center Platforms - Cloud Solutions Citrix, Cisco & Red Hat
> > >> > >>>
> > >> > >>> On Oct 8, 2013, at 2:24 PM, Darren Shepherd
> > >> > <darren.s.sheph...@gmail.com> wrote:
> > >> > >>>
> > >> > >>>> So in the implementation, when we say "quiesce" is that
> > >> > >>>> actually being implemented as a VM snapshot (memory and disk).
> > >> > >>>> And then when you say "unquiesce" you are talking about
> > >> > >>>> deleting the VM
> > >> > snapshot?
> > >> > >>>
> > >> > >>> If the VM snapshot is not going to the hypervisor, then yes, it
> > >> > >>> will
> > >> > actually be a hypervisor snapshot. Just to be clear, the unquiesce
> > >> > is
> > >> not quite
> > >> > a delete - it is a collapse of the VM snapshot and the active VM
> > >> > back
> > >> into one
> > >> > file.
> > >> > >>>
> > >> > >>>>
> > >> > >>>> In NetApp, what are you snapshotting?  The whole netapp volume
> > >> > >>>> (I don't know the correct term), a file on NFS, an iscsi
> > >> > >>>> volume?  I don't know a whole heck of a lot about the netapp
> > >> > >>>> snapshot
> > >> > capabilities.
> > >> > >>>
> > >> > >>> Essentially we are using internal APIs to create file level
> > >> > >>> backups
> > >> - don't
> > >> > worry too much about the terminology.
> > >> > >>>
> > >> > >>>>
> > >> > >>>> I know storage solutions can snapshot better and faster than
> > >> > >>>> hypervisors can with COW files.  I've personally just been
> > >> > >>>> always perplexed on whats the best way to implement it.  For
> > >> > >>>> storage solutions that are block based, its really easy to
> > >> > >>>> have the storage doing the snapshot.  For shared file systems,
> > >> > >>>> like NFS, its seems way more complicated as you don't want to
> > >> > >>>> snapshot the entire filesystem in order to snapshot one file.
> > >> > >>>
> > >> > >>> With filesystems like NFS, things are certainly more
> > >> > >>> complicated,
> > >> but that
> > >> > is taken care of by our controller's operating system, Data ONTAP,
> > >> > and we simply use APIs to communicate with it.
> > >> > >>>
> > >> > >>>>
> > >> > >>>> Darren
> > >> > >>>>
> > >> > >>>> On Tue, Oct 8, 2013 at 11:10 AM, SuichII, Christopher
> > >> > >>>> <chris.su...@netapp.com> wrote:
> > >> > >>>>> I can comment on the second half.
> > >> > >>>>>
> > >> > >>>>> Through storage operations, storage providers can create
> > >> > >>>>> backups
> > >> > much faster than hypervisors and over time, their snapshots are
> > >> > more efficient than the snapshot chains that hypervisors create. It
> > >> > is true
> > >> that a VM
> > >> > snapshot taken at the storage level is slightly different as it
> > >> > would be
> > >> psuedo-
> > >> > quiesced, not have it's memory snapshotted. This is accomplished
> > >> > through hypervisor snapshots:
> > >> > >>>>>
> > >> > >>>>> 1) VM snapshot request (lets say VM 'A'
> > >> > >>>>> 2) Create hypervisor snapshot (optional) -VM 'A' is
> > >> > >>>>> snapshotted, creating active VM 'A*'
> > >> > >>>>> -All disk traffic now goes to VM 'A*' and A is a snapshot of
> 'A*'
> > >> > >>>>> 3) Storage driver(s) take snapshots of each volume
> > >> > >>>>> 4) Undo hypervisor snapshot (optional) -VM snapshot 'A' is
> > >> > >>>>> rolled back into VM 'A*' so the hypervisor snapshot no longer
> > >> > >>>>> exists
> > >> > >>>>>
> > >> > >>>>> Now, a couple notes:
> > >> > >>>>> -The reason this is optional is that not all users
> > >> > >>>>> necessarily
> > >> care about
> > >> > the memory or disk consistency of their VMs and would prefer faster
> > >> > snapshots to consistency.
> > >> > >>>>> -Preemptively, yes, we are actually taking hypervisor
> > >> > >>>>> snapshots
> > >> which
> > >> > means there isn't actually a performance of taking storage
> > >> > snapshots when quiescing the VM. However, the performance gain will
> > >> > come both during restoring the VM and during normal operations as
> > described above.
> > >> > >>>>>
> > >> > >>>>> Although you can think of it as a poor man's VM snapshot, I
> > >> > >>>>> would
> > >> > think of it more as a consistent multi-volume snapshot. Again, the
> > >> difference
> > >> > being that this snapshot was not truly quiesced like a hypervisor
> > >> snapshot
> > >> > would be.
> > >> > >>>>>
> > >> > >>>>> --
> > >> > >>>>> Chris Suich
> > >> > >>>>> chris.su...@netapp.com
> > >> > >>>>> NetApp Software Engineer
> > >> > >>>>> Data Center Platforms - Cloud Solutions Citrix, Cisco & Red
> > >> > >>>>> Hat
> > >> > >>>>>
> > >> > >>>>> On Oct 8, 2013, at 1:47 PM, Darren Shepherd
> > >> > <darren.s.sheph...@gmail.com> wrote:
> > >> > >>>>>
> > >> > >>>>>> My only comment is that having the return type as boolean
> > >> > >>>>>> and using to that indicate quiesce behaviour seems obscure
> > >> > >>>>>> and will probably lead to a problem later.  Your basically
> > >> > >>>>>> saying the result of the takeVMSnapshot will only ever need
> > >> > >>>>>> to communicate back whether unquiesce needs to happen.
> > >> > >>>>>> Maybe some result
> > >> > object
> > >> > >>>>>> would be more extensible.
> > >> > >>>>>>
> > >> > >>>>>> Actually, I think I have more comments.  This seems a bit
> > >> > >>>>>> odd to
> > >> me.
> > >> > >>>>>> Why would a storage driver in ACS implement a VM snapshot
> > >> > >>>>>> functionality?  VM snapshot is a really a hypervisor
> > >> > >>>>>> orchestrated operation.  So it seems like were trying to
> > >> > >>>>>> implement a poor mans VM snapshot.  Maybe if I understood
> > >> > >>>>>> what NetApp was trying to do it would make more sense, but
> > >> > >>>>>> its all odd.  To do a proper VM snapshot you need to
> > >> > >>>>>> snapshot memory and disk at the exact same time.  How are we
> > >> > >>>>>> going to do that if ACS is orchestrating the VM snapshot and
> > >> > >>>>>> delegating to storage providers.  Its not like you are going
> to
> > pause the VM.... or are you?
> > >> > >>>>>>
> > >> > >>>>>> Darren
> > >> > >>>>>>
> > >> > >>>>>> On Mon, Oct 7, 2013 at 11:59 AM, Edison Su
> > >> > >>>>>> <edison...@citrix.com>
> > >> > wrote:
> > >> > >>>>>>> I created a design document page at
> > >> >
> > https://cwiki.apache.org/confluence/display/CLOUDSTACK/Pluggable+VM
> > >> > +s
> > >> > napshot+related+operations, feel free to add items on it.
> > >> > >>>>>>> And a new branch "pluggable_vm_snapshot" is created.
> > >> > >>>>>>>
> > >> > >>>>>>>> -----Original Message-----
> > >> > >>>>>>>> From: SuichII, Christopher [mailto:chris.su...@netapp.com]
> > >> > >>>>>>>> Sent: Monday, October 07, 2013 10:02 AM
> > >> > >>>>>>>> To: <dev@cloudstack.apache.org>
> > >> > >>>>>>>> Subject: Re: [DISCUSS] Pluggable VM snapshot related
> > operations?
> > >> > >>>>>>>>
> > >> > >>>>>>>> I'm a fan of option 2 - this gives us the most flexibility
> > >> > >>>>>>>> (as you stated). The option is given to completely
> > >> > >>>>>>>> override the way VM snapshots work AND storage providers
> > >> > >>>>>>>> are given to opportunity to work within the default VM
> > snapshot workflow.
> > >> > >>>>>>>>
> > >> > >>>>>>>> I believe this option should satisfy your concern, Mike.
> > >> > >>>>>>>> The snapshot and quiesce strategy would be in charge of
> > >> > communicating with the hypervisor.
> > >> > >>>>>>>> Storage providers should be able to leverage the default
> > >> > >>>>>>>> strategies and simply perform the storage operations.
> > >> > >>>>>>>>
> > >> > >>>>>>>> I don't think it should be much of an issue that new
> > >> > >>>>>>>> method to the storage driver interface may not apply to
> > >> > >>>>>>>> everyone. In fact,
> > >> > that is already the case.
> > >> > >>>>>>>> Some methods such as un/maintain(), attachToXXX() and
> > >> > >>>>>>>> takeSnapshot() are already not implemented by every driver
> > >> > >>>>>>>> - they just return false when asked if they can handle the
> > >> operation.
> > >> > >>>>>>>>
> > >> > >>>>>>>> --
> > >> > >>>>>>>> Chris Suich
> > >> > >>>>>>>> chris.su...@netapp.com
> > >> > >>>>>>>> NetApp Software Engineer
> > >> > >>>>>>>> Data Center Platforms - Cloud Solutions Citrix, Cisco &
> > >> > >>>>>>>> Red Hat
> > >> > >>>>>>>>
> > >> > >>>>>>>> On Oct 5, 2013, at 12:11 AM, Mike Tutkowski
> > >> > >>>>>>>> <mike.tutkow...@solidfire.com>
> > >> > >>>>>>>> wrote:
> > >> > >>>>>>>>
> > >> > >>>>>>>>> Well, my first thought on this is that the storage driver
> > >> > >>>>>>>>> should not be telling the hypervisor to do anything. It
> > >> > >>>>>>>>> should be responsible for creating/deleting volumes,
> > snapshots, etc.
> > >> on
> > >> > its storage system only.
> > >> > >>>>>>>>>
> > >> > >>>>>>>>>
> > >> > >>>>>>>>> On Fri, Oct 4, 2013 at 5:57 PM, Edison Su <
> > >> edison...@citrix.com>
> > >> > wrote:
> > >> > >>>>>>>>>
> > >> > >>>>>>>>>> In 4.2, we added VM snapshot for Vmware/Xenserver.
> > The
> > >> > >>>>>>>>>> current workflow will be like the following:
> > >> > >>>>>>>>>> createVMSnapshot api -> VMSnapshotManagerImpl:
> > >> > >>>>>>>>>> creatVMSnapshot -> send CreateVMSnapshotCommand
> > to
> > >> > hypervisor to create vm snapshot.
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>> If anybody wants to change the workflow, then need to
> > >> > >>>>>>>>>> either change VMSnapshotManagerImpl directly or
> > subclass
> > >> > VMSnapshotManagerImpl.
> > >> > >>>>>>>>>> Both are not the ideal choice, as
> > VMSnapshotManagerImpl
> > >> > >>>>>>>>>> should be able to handle different ways to take vm
> > >> > >>>>>>>>>> snapshot,
> > >> > instead of hard code.
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>> The requirements for the pluggable VM snapshot coming
> > from:
> > >> > >>>>>>>>>> Storage vendor may have their optimization, such as
> > NetApp.
> > >> > >>>>>>>>>> VM snapshot can be implemented in a totally different
> > >> > >>>>>>>>>> way(For example, I could just send a command to guest
> > >> > >>>>>>>>>> VM, to tell my application to flush disk and hold disk
> > >> > >>>>>>>>>> write, then come to hypervisor to
> > >> > >>>>>>>> take a volume snapshot).
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>> If we agree on enable pluggable VM snapshot, then we
> > can
> > >> > move
> > >> > >>>>>>>>>> on discuss how to implement it.
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>> The possible options:
> > >> > >>>>>>>>>> 1. coarse grained interface. Add a VMSnapshotStrategy
> > >> > >>>>>>>>>> interface, which has the following interfaces:
> > >> > >>>>>>>>>> VMSnapshot takeVMSnapshot(VMSnapshot vmSnapshot);
> > >> > Boolean
> > >> > >>>>>>>>>> revertVMSnapshot(VMSnapshot vmSnapshot); Boolean
> > >> > >>>>>>>>>> DeleteVMSnapshot(VMSnapshot vmSnapshot);
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>> The work flow will be: createVMSnapshot api ->
> > >> > >>>>>>>> VMSnapshotManagerImpl:
> > >> > >>>>>>>>>> creatVMSnapshot -> VMSnapshotStrategy:
> > takeVMSnapshot
> > >> > >>>>>>>>>> VMSnapshotManagerImpl will manage VM state, do the
> > >> > >>>>>>>>>> sanity check, then will handle over to
> > VMSnapshotStrategy.
> > >> > >>>>>>>>>> In VMSnapshotStrategy implementation, it may just send
> > a
> > >> > >>>>>>>>>> Create/revert/delete VMSnapshotCommand to
> > hypervisor
> > >> > host, or
> > >> > >>>>>>>>>> do anything special operations.
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>> 2. fine-grained interface. Not only add a
> > >> > >>>>>>>>>> VMSnapshotStrategy interface, but also add certain
> > methods on the storage driver.
> > >> > >>>>>>>>>> The VMSnapshotStrategy interface will be the same as
> > option 1.
> > >> > >>>>>>>>>> Will add the following methods on storage driver:
> > >> > >>>>>>>>>> /* volumesBelongToVM  is the list of volumes of the VM
> > >> > >>>>>>>>>> that created on this storage, storage vendor can either
> > >> > >>>>>>>>>> take one snapshot for this volumes in one shot, or take
> > >> > >>>>>>>>>> snapshot for
> > >> > each volume separately
> > >> > >>>>>>>>>>    The pre-condition: vm is unquiesced.
> > >> > >>>>>>>>>>    It will return a Boolean to indicate, do need
> > >> > >>>>>>>>>> unquiesce vm
> > >> or
> > >> > not.
> > >> > >>>>>>>>>>    In the default storage driver, it will return false.
> > >> > >>>>>>>>>> */
> > >> > >>>>>>>>>> boolean takeVMSnapshot(List<VolumeInfo>
> > >> > volumesBelongToVM,
> > >> > >>>>>>>>>> VMSnapshot vmSnapshot); Boolean
> > >> > >>>>>>>>>> revertVMSnapshot(List<VolumeInfo>
> > volumesBelongToVM,
> > >> > >>>>>>>>>> VMSnapshot vmSnapshot); Boolean
> > >> > >>>>>>>>>> deleteVMSnapshot(List<VolumeInfo>
> > volumesBelongToVM,
> > >> > >>>>>>>>>> VMSnapshot vmSNapshot);
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>> The work flow will be: createVMSnapshot api ->
> > >> > >>>>>>>> VMSnapshotManagerImpl:
> > >> > >>>>>>>>>> creatVMSnapshot -> VMSnapshotStrategy:
> > takeVMSnapshot ->
> > >> > >>>>>>>>>> storage driver:takeVMSnapshot In the implementation of
> > >> > >>>>>>>>>> VMSnapshotStrategy's takeVMSnapshot, the pseudo
> > code
> > >> > looks like:
> > >> > >>>>>>>>>>    HypervisorHelper.quiesceVM(vm);
> > >> > >>>>>>>>>>    val volumes = vm.getVolumes();
> > >> > >>>>>>>>>>    val maps = new Map[driver, list[VolumeInfo]]();
> > >> > >>>>>>>>>>    Volumes.foreach(volume => maps.put(volume.getDriver,
> > >> > volume ::
> > >> > >>>>>>>>>> maps.get(volume.getdriver())))
> > >> > >>>>>>>>>>    val needUnquiesce = true;
> > >> > >>>>>>>>>>     maps.foreach((driver, volumes) => needUnquiesce  =
> > >> > >>>>>>>>>> needUnquiesce && driver.takeVMSnapshot(volumes))
> > >> > >>>>>>>>>>   if (needUnquiesce ) {
> > >> > >>>>>>>>>>    HypervisorHelper.unquiesce(vm); }
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>> By default, the quiesceVM in HypervisorHelper will
> > >> > >>>>>>>>>> actually take vm snapshot through hypervisor.
> > >> > >>>>>>>>>> Does above logic makes senesce?
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>> The pros of option 1 is that: it's simple, no need to
> > >> > >>>>>>>>>> change storage driver interfaces. The cons is that each
> > >> > >>>>>>>>>> storage vendor need to implement a strategy, maybe they
> > >> > >>>>>>>>>> will do the
> > >> > same thing.
> > >> > >>>>>>>>>> The pros of option 2 is that, storage driver won't need
> > >> > >>>>>>>>>> to worry about how to quiesce/unquiesce vm. The cons is
> > >> > >>>>>>>>>> that, it will add these methods on each storage drivers,
> > >> > >>>>>>>>>> so it assumes that this work flow will work for
> everybody.
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>> So which option we should take? Or if you have other
> > >> > >>>>>>>>>> options, please let's know.
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>>
> > >> > >>>>>>>>>
> > >> > >>>>>>>>>
> > >> > >>>>>>>>> --
> > >> > >>>>>>>>> *Mike Tutkowski*
> > >> > >>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.*
> > >> > >>>>>>>>> e: mike.tutkow...@solidfire.com
> > >> > >>>>>>>>> o: 303.746.7302
> > >> > >>>>>>>>> Advancing the way the world uses the
> > >> > >>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play>
> > >> > >>>>>>>>> *(tm)*
> > >> > >>>>>>>
> > >> > >>>>>
> > >> > >>>
> > >> > >
> > >>
> > >
> > >
> > >
> > > --
> > > *Mike Tutkowski*
> > > *Senior CloudStack Developer, SolidFire Inc.*
> > > e: mike.tutkow...@solidfire.com
> > > o: 303.746.7302
> > > Advancing the way the world uses the
> > > cloud<http://solidfire.com/solution/overview/?video=play>
> > > *(tm)*
>



-- 
*Mike Tutkowski*
*Senior CloudStack Developer, SolidFire Inc.*
e: mike.tutkow...@solidfire.com
o: 303.746.7302
Advancing the way the world uses the
cloud<http://solidfire.com/solution/overview/?video=play>
*™*

Reply via email to