Thanks Wido. So we will not include KVM in the scope for now.

Can someone confirm the support for Xenserver?

-Thanks
Sangeetha


-----Original Message-----
From: Wido den Hollander [mailto:w...@widodh.nl]
Sent: Wednesday, February 13, 2013 5:35 AM
To: cloudstack-dev@incubator.apache.org
Subject: Re: [MERGE] Support VM Snapshot

On 02/13/2013 01:44 AM, Sangeetha Hariharan wrote:
> I am planning on testing this feature and wanted to know the list of 
> hypervisors that support this feature.
>
> When I refer to the design document - 
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Snapshots  , I see 
> the support being extended for Vmware, Xenserver and KVM.
>
>  From the discussions in the email thread , I see that KVM implementation has 
> dependencies on libvirt-java and for Xenserver there is dependency on volume 
> snapshot design being improved.
>

For KVM that is correct. The patches are in upstream libvirt-java, but no 
release is out there with the patches in it.

Wido

> Could you please confirm?
>
> -Thanks
> Sangeetha
>
> -----Original Message-----
> From: Wido den Hollander [mailto:w...@widodh.nl]
> Sent: Monday, February 04, 2013 3:39 AM
> To: cloudstack-dev@incubator.apache.org
> Subject: Re: [MERGE] Support VM Snapshot
>
> On 02/03/2013 03:09 AM, Mice Xia wrote:
>> So...it seems there are still some consensus to be reached and the codes 
>> were not merged before 4.1 feature freeze. This will not be in 4.1 release.
>>
>
> That would also give the libvirt guys time to catch up and we can have
> full support through libvirt-java for 4.2
>
> See these commits:
>
> *
> http://libvirt.org/git/?p=libvirt-java.git;a=commit;h=cd00a4b8f25944f6
> fe2ce3ecb2ac00cbcad8db8d
> *
> http://libvirt.org/git/?p=libvirt-java.git;a=commit;h=23a7750e4470ebce
> 1c5b63b64a26be90057a79ae
>
> Wido
>
>> -Mice
>>
>> -----Original Message-----
>> From: Mice Xia [mailto:mice_...@tcloudcomputing.com]
>> Sent: Saturday, February 02, 2013 11:26 AM
>> To: Alex Huang; Anthony Xu; cloudstack-dev@incubator.apache.org
>> Subject: RE: [MERGE] Support VM Snapshot
>>
>> For now, Volume snapshot and VM snapshot cannot be taken at the same time, 
>> i.e, it will check if there are active volume snapshots tasks when taking a 
>> VM snapshot, and vice versa.
>>
>>
>>
>> Another way to clear any potential impacts is, making volume snapshot and VM 
>> snapshot totally mutually exclusive, i.e. cannot take one VM snapshot if 
>> there are existing volume snapshots, and vice versa.
>>
>>
>>
>> Regards
>>
>> Mice
>>
>> From: Alex Huang [mailto:alex.hu...@citrix.com]
>> Sent: Saturday, February 02, 2013 10:57 AM
>> To: Anthony Xu; Mice Xia; cloudstack-dev@incubator.apache.org
>> Subject: RE: [MERGE] Support VM Snapshot
>>
>>
>>
>> Perhaps we should just say XenServer is not supported for VM Snapshot until 
>> the volume snapshot design is fixed?  I don’t think KVM and VmWare have this 
>> problem given that it’s full snapshots each time.  Although it might have 
>> the same scheduling/locking race condition problems that you’re pointing out.
>>
>>
>>
>> --Alex
>>
>>
>>
>> From: Anthony Xu
>> Sent: Friday, February 01, 2013 5:44 PM
>> To: 'Mice Xia'; cloudstack-dev@incubator.apache.org; Alex Huang; Mice
>> Xia
>> Subject: RE: [MERGE] Support VM Snapshot
>>
>>
>>
>> I see, snapshot manager detected the change in primary storage, and create a 
>> full snapshot instead, which is supposed to be a delta snapshot.
>>
>> It doesn’t break volume snapshot function, but this degrades the volume 
>> snapshot performance.
>>
>>
>>
>> This is just a simple test, it cannot prove there is no impact to volume 
>> snapshot.
>>
>> I’m not sure what will happen if execute these two commands at the same 
>> time, is there any mechanism to sync/serialize these two operation?
>>
>> I’m not sure if revert VM has impact to volume snapshot.
>>
>>
>>
>> For now, it is better to have a global configuration to only choose one.
>>
>> later, we may support both of them in one setup.
>>
>>
>>
>>
>>
>> Anthony
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> From: Mice Xia [mailto:mice_...@tcloudcomputing.com]
>> Sent: Friday, February 01, 2013 5:30 PM
>> To: cloudstack-dev@incubator.apache.org; Alex Huang; Mice Xia;
>> Anthony Xu
>> Subject: 答复: [MERGE] Support VM Snapshot
>>
>>
>>
>> Anthony,
>>
>> Thanks for your comments.
>>
>> Tested on a datadisk with steps you provide on xenserver, all the files 
>> (test1, test2, test3) are present, the function is not affected.
>> But as i have replied, volume snapshot (s2) is not a delta snapshot, it is a 
>> full one. Users need to be aware of this if they want to use both snapshots 
>> simultaneously.
>>
>> Regards
>> Mice
>>
>>
>> -----Original Message-----
>> From: Anthony Xu [mailto:xuefei...@citrix.com]
>> Sent: 2013-2-2 (星期六) 4:05
>> To: Alex Huang; Mice Xia; cloudstack-dev@incubator.apache.org
>> Subject: RE: [MERGE] Support VM Snapshot
>>
>> CS uses XenServer delta snapshot, snapshot manager records a VHD chain in 
>> snapshot DB for each volume. VM snapshot creation/revert also operate on 
>> volume snapshot, if snapshot manager doesn't know the VM snapshot , volume 
>> snapshot might be broken.
>>
>>
>> You can try following test,
>>
>> 1. create a VM.
>> 2. create empty file test1 inside this VM.
>> 3. create a volume snapshot(s1)
>> 4. create empty file test2 inside this VM 5. create a VM snapshot (vm1) 6. 
>> create empty file test3 inside this VM 7. create a volume snapshot (s2) 8. 
>> create a volume from snapshot (s2) 9. attach this volume to a VM 10. if one 
>> of test1, test2, test3 is missing in this volume, might mean volume snapshot 
>> is broken.
>>
>>
>> It might be difficult to support both VM snapshot and volume snapshot in the 
>> same time for hypervisor which supports delta snapshot.
>> Maybe we need to provide a zone level configuration for it, only one is 
>> supported in a zone, volume snapshot or vm snapshot.
>>
>>
>>
>> Anthony
>>
>>
>>
>>
>>
>>> -----Original Message-----
>>> From: Alex Huang
>>> Sent: Friday, February 01, 2013 10:54 AM
>>> To: Mice Xia; cloudstack-dev@incubator.apache.org
>>> Cc: Anthony Xu
>>> Subject: RE: [MERGE] Support VM Snapshot
>>>
>>> Mice,
>>>
>>> Thanks!
>>>
>>> Anthony,
>>>
>>> Can you comment on whether VM Snapshot breaks volume snapshot?
>>>
>>> --Alex
>>>
>>>> -----Original Message-----
>>>> From: Mice Xia [mailto:weiran.x...@gmail.com]
>>>> Sent: Friday, February 01, 2013 8:53 AM
>>>> To: cloudstack-dev@incubator.apache.org; Alex Huang
>>>> Subject: Re: [MERGE] Support VM Snapshot
>>>>
>>>> as Alex suggested
>>>> updated vm-snapshot branch, commit ebca6890fd
>>>>
>>>> 1. remove snapshotting/revertting state from VM state machine
>>>> 2  prevent VM state change if there are active vm snapshot tasks
>>>> 3  change VMSnapshotService interface, except for
>>>> ListVMSnapshotCmd, need some time to replace it in QueryService,
>>>> maybe after merging to master
>>>> 4  remove unused methods and fix some typos
>>>>
>>>> Regards
>>>> Mice
>>>>
>>>> 2013/2/1 Mice Xia <mice_...@tcloudcomputing.com>:
>>>>> Hi, Alex,
>>>>>
>>>>> Thanks for your feedbacks, please see my comments inline.
>>>>>
>>>>> - VM states is designed for VM lifecycle.  Snapshot is not part of
>>> VM life
>>>> cycle so therefore the state should not be there.  I think it make
>>> sense to add
>>>> attributes to VM that says "Do Not Change State" and  who changed
>>>> the
>>> VM
>>>> to that state.  Then virtualmachinemanager must obey that until the
>>> external
>>>> caller changes the attribute to now you can change state.  The
>>>> would
>>> make
>>>> more sense and decouples snapshotting from vm lifecycle management.
>>>> Snapshotting then has it's own state (which I see it does already).
>>> If we want
>>>> to reflect that a vm snapshot is being taken of a VM, that's a
>>> function of the
>>>> apiresponse module that gathers up everything about a vm but it
>>> shouldn't
>>>> be changed in the vm states.
>>>>>
>>>>> [mice] the reason that I added snapshotting/reverting state is
>>>>> that
>>> VM
>>>> could be in suspend/pause state during snapshoting/reverting, which
>>> is
>>>> difficult to be categorized into existing states; and during the
>>> process, VM
>>>> should not be allowed to take any operations; and by adding new
>>> states to
>>>> VM, the implementation seems more 'natural' and only minimum codes
>>> are
>>>> changed to virtualmachinemanager.
>>>>> Of course there are some other ways to prevent operations, such as
>>> check
>>>> if associated snapshots are in snapshotting/reverting states either
>>> in each
>>>> method (start/stop/migrate/delete...) or hook stateTransitTo(), but
>>> in this
>>>> way, it does not reflect VM's real state in hypervisor and more
>>> existing codes
>>>> will be touched.
>>>>>
>>>>> -  Does VM Revert operation work in the following way: Stop VM,
>>> restore
>>>> to snapshot, and run VM?  Shouldn't this be orchestration inside
>>> snapshot
>>>> manager?
>>>>>
>>>>> [mice] if a running VM is reverted to a memory enabled snapshot,
>>> current
>>>> implementation is running--> reverting-->running
>>>>> If a stopped VM is reverted to memory disabled snapshot: stopped--
>>>>> reverting->stopped
>>>>> If a running VM is reverted to a memory disabled snapshot:
>>>>> running-
>>> -(Stop
>>>> VM)-->stopped-->reverting--> stopped
>>>>> If a stopped VM is reverted to a memory enabled snapshot:
>>>>> stopped--
>>>> (Start VM)-->running->reverting-->running
>>>>>
>>>>> These logics are implemented in snapshot manager.
>>>>>
>>>>> - Does VM snapshot interfere with volume snapshot?  Volume
>>>>> snapshot
>>>> today makes the assumption that it is the only code that's making
>>> snapshots
>>>> and can break if there are additional snapshots in between.  This
>>>> is
>>> bad
>>>> design in volume snapshot but unfortunately that's how it's design.
>>>>>
>>>>> [mice] about volume snapshot, for xensever, if parent VHD cannot
>>>>> be
>>>> found, it will take a full volume snapshot (this indeed break
>>>> current semantics but it still works)
>>>>> For vmware, the volume snapshot is always a full one.
>>>>>
>>>>> - VMSnapshotService follows the other services in passing the cmds
>>> to the
>>>> service.  That's really a bad practice that we should stop.  Cmds
>>>> are
>>> really
>>>> translations between over-the-wire api and java interface.  They
>>> shouldn't
>>>> have been passed to down to the java interface.
>>>>> [
>>>>> mice] I'll change it
>>>>>
>>>>> A small note: Would it be better to call it VM restore than VM
>>> revert?
>>>> Revert really should be RevertTo which I think is in the code but
>>>> is
>>> not
>>>> consistent.  Some places it's just REVERT (for example, the event
>>>> is
>>> just
>>>> revert).
>>>>>
>>>>> [mice] there is already RESTORE, which is restoring a destroyed VM
>>> to
>>>> stopped. RevertTo is fine with me.
>>>>>
>>>>> -Mice
>>>>>
>>>>>
>>>>> -----Original Message-----
>>>>> From: Alex Huang [mailto:alex.hu...@citrix.com]
>>>>> Sent: Friday, February 01, 2013 9:24 AM
>>>>> To: CloudStack DeveloperList
>>>>> Cc: Mice Xia
>>>>> Subject: RE: [MERGE] Support VM Snapshot
>>>>>
>>>>> Hi Mice,
>>>>>
>>>>> Sorry it took so long to review this.  Wanted to as soon as I saw
>>> it on the list
>>>> but was sick and didn't get a chance.  In general, I think the code
>>> is excellent.
>>>> I'm impressed how much Cloudstack internal code in touch and how
>>>> comfortable the changes look.  Nicely done!
>>>>>
>>>>> I have a few comments:
>>>>> - VM states is designed for VM lifecycle.  Snapshot is not part of
>>> VM life
>>>> cycle so therefore the state should not be there.  I think it make
>>> sense to add
>>>> attributes to VM that says "Do Not Change State" and  who changed
>>>> the
>>> VM
>>>> to that state.  Then virtualmachinemanager must obey that until the
>>> external
>>>> caller changes the attribute to now you can change state.  The
>>>> would
>>> make
>>>> more sense and decouples snapshotting from vm lifecycle management.
>>>> Snapshotting then has it's own state (which I see it does already).
>>> If we want
>>>> to reflect that a vm snapshot is being taken of a VM, that's a
>>> function of the
>>>> apiresponse module that gathers up everything about a vm but it
>>> shouldn't
>>>> be changed in the vm states.
>>>>> -  Does VM Revert operation work in the following way: Stop VM,
>>> restore
>>>> to snapshot, and run VM?  Shouldn't this be orchestration inside
>>> snapshot
>>>> manager?
>>>>> - Does VM snapshot interfere with volume snapshot?  Volume
>>>>> snapshot
>>>> today makes the assumption that it is the only code that's making
>>> snapshots
>>>> and can break if there are additional snapshots in between.  This
>>>> is
>>> bad
>>>> design in volume snapshot but unfortunately that's how it's design.
>>>>> - VMSnapshotService follows the other services in passing the cmds
>>> to the
>>>> service.  That's really a bad practice that we should stop.  Cmds
>>>> are
>>> really
>>>> translations between over-the-wire api and java interface.  They
>>> shouldn't
>>>> have been passed to down to the java interface.
>>>>>
>>>>> A small note: Would it be better to call it VM restore than VM
>>> revert?
>>>> Revert really should be RevertTo which I think is in the code but
>>>> is
>>> not
>>>> consistent.  Some places it's just REVERT (for example, the event
>>>> is
>>> just
>>>> revert).
>>>>>
>>>>> --Alex
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Chiradeep Vittal
>>>>>> Sent: Wednesday, January 30, 2013 4:44 PM
>>>>>> To: CloudStack DeveloperList
>>>>>> Cc: Alex Huang
>>>>>> Subject: Re: [MERGE] Support VM Snapshot
>>>>>>
>>>>>> Can we get Alex to review this? He is the designer of the state
>>> machine.
>>>>>>
>>>>>> On 1/30/13 5:26 AM, "Murali Reddy" <murali.re...@citrix.com> wrote:
>>>>>>
>>>>>>> On 30/01/13 2:24 PM, "Mice Xia" <mice_...@tcloudcomputing.com>
>>>> wrote:
>>>>>>>
>>>>>>>> Agreed.
>>>>>>>> Adding VM states are likely to have some side-effects, but for
>>>>>>>> moveVMToUser case, does it explicitly reject other transient
>>> states
>>>>>>>> such as stating/stopping/migrating?
>>>>>>>>
>>>>>>>> -Mice
>>>>>>>
>>>>>>> No, it just accepts any state other than 'Running' (though it
>>> should
>>>>>>> have checked for the valid states in which VM can move to other
>>> user).
>>>>>>>
>>>>>>> I am just saying, there could such VM state based assumptions,
>>> you
>>>>>>> might want to check.
>>>>>>>
>>>>>
>>
>

Reply via email to