Not sure. Unfortunately my dev environment is currently being used for 4.10, so 
I don't have the resources to test prior releases at present.

It's hard to say at the moment when this was broken, but it does seem pretty 
important.

> On Mar 23, 2017, at 6:17 PM, Sergey Levitskiy <sergey.levits...@autodesk.com> 
> wrote:
> 
> Was it working before in 4.9?
> 
> On 3/23/17, 5:03 PM, "Tutkowski, Mike" <mike.tutkow...@netapp.com> wrote:
> 
>    I think I should open a blocker for this for 4.10. Perhaps one of our 
> VMware people can take a look. It sounds like it’s a critical issue.
> 
>    On 3/23/17, 4:48 PM, "Tutkowski, Mike" <mike.tutkow...@netapp.com> wrote:
> 
>        OK, yeah, it does.
> 
>        The source host has access to the source datastore and the destination 
> host has access to the destination datastore.
> 
>        The source host does not have access to the destination datastore nor 
> does the destination host have access to the source datastore.
> 
>        I've been focusing on doing this with a source and a host datastore 
> that are both either NFS or iSCSI (but I think you should be able to go NFS 
> to iSCSI or vice versa, as well).
> 
>> On Mar 23, 2017, at 4:09 PM, Sergey Levitskiy 
>> <sergey.levits...@autodesk.com> wrote:
>> 
>> It shouldn’t as long the destination host has access to the destination 
>> datastore.
>> 
>> On 3/23/17, 1:34 PM, "Tutkowski, Mike" <mike.tutkow...@netapp.com> wrote:
>> 
>>   So, in my case, both the source and target datastores are cluster-scoped 
>> primary storage in CloudStack (not zone wide). Would that matter? For 
>> XenServer, that cluster-scoped configuration (but using storage 
>> repositories, of course) works.
>> 
>>   On 3/23/17, 2:31 PM, "Sergey Levitskiy" <sergey.levits...@autodesk.com> 
>> wrote:
>> 
>>       It looks like a bug. For vmware, moving root volume with migrateVolume 
>> with livemigrate=true for zone-wide PS works just fine for us. In the 
>> background, it uses StoragevMotion. From another angle MigrateVirtualMachine 
>> works also perfectly fine. I know for a fact that vmware supports moving 
>> from host to host and storage to storage at the same time so it seems to be 
>> a bug in migrateVirtualMachineWithVolume implementation. vSphere standard 
>> license is enough for both regular and storage vMotion.
>> 
>>       On 3/23/17, 1:21 PM, "Tutkowski, Mike" <mike.tutkow...@netapp.com> 
>> wrote:
>> 
>>           Thanks, Simon
>> 
>>           I wonder if we support that in CloudStack.
>> 
>>           On 3/23/17, 2:18 PM, "Simon Weller" <swel...@ena.com> wrote:
>> 
>>               Mike,
>> 
>> 
>>               It is possible to do this on vcenter, but it requires a 
>> special license I believe.
>> 
>> 
>>               Here's the info on it :
>> 
>>               
>> https://pubs.vmware.com/vsphere-51/index.jsp#com.vmware.vsphere.vcenterhost.doc/GUID-A16BA123-403C-4D13-A581-DC4062E11165.html
>> 
>>               
>> https://pubs.vmware.com/vsphere-51/index.jsp#com.vmware.vsphere.vcenterhost.doc/GUID-561681D9-6511-44DF-B169-F20E6CA94944.html
>> 
>> 
>>               - Si
>>               ________________________________
>>               From: Tutkowski, Mike <mike.tutkow...@netapp.com>
>>               Sent: Thursday, March 23, 2017 3:09 PM
>>               To: dev@cloudstack.apache.org
>>               Subject: Re: Cannot migrate VMware VM with root disk to host 
>> in different cluster (CloudStack 4.10)
>> 
>>               This is interesting:
>> 
>>               If I shut the VM down and then migrate its root disk to 
>> storage in the other cluster, then start up the VM, the VM gets started up 
>> correctly (running on the new host using the other datastore).
>> 
>>               Perhaps you simply cannot live migrate a VM and its storage 
>> from one cluster to another with VMware? This works for XenServer and I 
>> probably just assumed it would work in VMware, but maybe it doesn’t?
>> 
>>               The reason I’m asking now is because I’m investigating the 
>> support of cross-cluster migration of a VM that uses managed storage. This 
>> works for XenServer as of 4.9 and I was looking to implement similar 
>> functionality for VMware.
>> 
>>               On 3/23/17, 2:01 PM, "Tutkowski, Mike" 
>> <mike.tutkow...@netapp.com> wrote:
>> 
>>                   Another piece of info:
>> 
>>                   I tried this same VM + storage migration using NFS for 
>> both datastores instead of iSCSI for both datastores and it failed with the 
>> same error message:
>> 
>>                   Required property datastore is missing from data object of 
>> type VirtualMachineRelocateSpecDiskLocator
>> 
>>                   while parsing serialized DataObject of type 
>> vim.vm.RelocateSpec.DiskLocator
>>                   at line 1, column 326
>> 
>>                   while parsing property "disk" of static type 
>> ArrayOfVirtualMachineRelocateSpecDiskLocator
>> 
>>                   while parsing serialized DataObject of type 
>> vim.vm.RelocateSpec
>>                   at line 1, column 187
>> 
>>                   while parsing call information for method RelocateVM_Task
>>                   at line 1, column 110
>> 
>>                   while parsing SOAP body
>>                   at line 1, column 102
>> 
>>                   while parsing SOAP envelope
>>                   at line 1, column 38
>> 
>>                   while parsing HTTP request for method relocate
>>                   on object of type vim.VirtualMachine
>>                   at line 1, column 0
>> 
>>                   On 3/23/17, 12:33 PM, "Tutkowski, Mike" 
>> <mike.tutkow...@netapp.com> wrote:
>> 
>>                       Slight typo:
>> 
>>                       Both ESXi hosts are version 5.5 and both clusters are 
>> within the same VMware datastore.
>> 
>>                       Should be (datastore changed to datacenter):
>> 
>>                       Both ESXi hosts are version 5.5 and both clusters are 
>> within the same VMware datacenter.
>> 
>>                       On 3/23/17, 12:31 PM, "Tutkowski, Mike" 
>> <mike.tutkow...@netapp.com> wrote:
>> 
>>                           A little update here:
>> 
>>                           In the debugger, I made sure we asked for the 
>> correct source datastore (I edited the UUID we were using for the source 
>> datastore).
>> 
>>                           When VirtualMachineMO.changeDatastore is later 
>> invoked having the proper source and target datastores, I now see this error 
>> message:
>> 
>>                           Virtual disk 'Hard disk 1' is not accessible on 
>> the host: Unable to access file [SIOC-1]
>> 
>>                           Both ESXi hosts are version 5.5 and both clusters 
>> are within the same VMware datastore.
>> 
>>                           The source datastore and the target datastore are 
>> both using iSCSI.
>> 
>>                           On 3/23/17, 11:53 AM, "Tutkowski, Mike" 
>> <mike.tutkow...@netapp.com> wrote:
>> 
>>                               Also, in case it matters, both datastores are 
>> iSCSI based.
>> 
>>> On Mar 23, 2017, at 11:52 AM, Tutkowski, Mike <mike.tutkow...@netapp.com> 
>>> wrote:
>>> 
>>> My version is 5.5 in both clusters.
>>> 
>>>> On Mar 23, 2017, at 9:48 AM, Sateesh Chodapuneedi 
>>>> <sateesh.chodapune...@accelerite.com> wrote:
>>>> 
>>>> 
>>>>>> On 23/03/17, 7:21 PM, "Tutkowski, Mike" <mike.tutkow...@netapp.com> 
>>>>>> wrote:
>>>> 
>>>>>> However, perhaps someone can clear this up for me:
>>>>>> With XenServer, we are able to migrate a VM and its volumes from a host 
>>>>>> using a shared SR in one cluster to a host using a shared SR in another 
>>>>>> cluster even though the source host can’t see the target SR.
>>>>>> Is the same thing possible with VMware or does the source host have to 
>>>>>> be able to see the target datastore? If so, does that mean the target 
>>>>>> datastore has to be zone-wide primary storage when using VMware to make 
>>>>>> this work?
>>>> Yes, Mike. But that’s the case with versions less than 5.1 only. In 
>>>> vSphere 5.1 and later, vMotion does not require environments with shared 
>>>> storage. This is useful for performing cross-cluster migrations, when the 
>>>> target cluster machines might not have access to the source cluster's 
>>>> storage.
>>>> BTW, what is the version of ESXi hosts in this setup?
>>>> 
>>>> Regards,
>>>> Sateesh,
>>>> CloudStack development,
>>>> Accelerite, CA-95054
>>>> 
>>>> On 3/23/17, 7:47 AM, "Tutkowski, Mike" <mike.tutkow...@netapp.com> wrote:
>>>> 
>>>>     This looks a little suspicious to me (in VmwareResource before we call 
>>>> VirtualMachineMO.changeDatastore):
>>>> 
>>>>                     morDsAtTarget = 
>>>> HypervisorHostHelper.findDatastoreWithBackwardsCompatibility(tgtHyperHost, 
>>>> filerTo.getUuid());
>>>>                     morDsAtSource = 
>>>> HypervisorHostHelper.findDatastoreWithBackwardsCompatibility(srcHyperHost, 
>>>> filerTo.getUuid());
>>>>                     if (morDsAtTarget == null) {
>>>>                         String msg = "Unable to find the target datastore: 
>>>> " + filerTo.getUuid() + " on target host: " + 
>>>> tgtHyperHost.getHyperHostName() + " to execute MigrateWithStorageCommand";
>>>>                         s_logger.error(msg);
>>>>                         throw new Exception(msg);
>>>>                     }
>>>> 
>>>>     We use filerTo.getUuid() when trying to get a pointer to both the 
>>>> target and source datastores. Since filerTo.getUuid() has the UUID for the 
>>>> target datastore, that works for morDsAtTarget, but morDsAtSource ends up 
>>>> being null.
>>>> 
>>>>     For some reason, we only check if morDsAtTarget is null (I’m not sure 
>>>> why we don’t check if morDsAtSource is null, too).
>>>> 
>>>>     On 3/23/17, 7:31 AM, "Tutkowski, Mike" <mike.tutkow...@netapp.com> 
>>>> wrote:
>>>> 
>>>>         Hi,
>>>> 
>>>>         The CloudStack API that the GUI is invoking is 
>>>> migrateVirtualMachineWithVolume (which is expected since I’m asking to 
>>>> migrate a VM from a host in one cluster to a host in another cluster).
>>>> 
>>>>         A MigrateWithStorageCommand is sent to VmwareResource, which 
>>>> eventually calls VirtualMachineMO.changeDatastore.
>>>> 
>>>>             public boolean changeDatastore(VirtualMachineRelocateSpec 
>>>> relocateSpec) throws Exception {
>>>>                 ManagedObjectReference morTask = 
>>>> _context.getVimClient().getService().relocateVMTask(_mor, relocateSpec, 
>>>> VirtualMachineMovePriority.DEFAULT_PRIORITY);
>>>>                 boolean result = 
>>>> _context.getVimClient().waitForTask(morTask);
>>>>                 if (result) {
>>>>                     _context.waitForTaskProgressDone(morTask);
>>>>                     return true;
>>>>                 } else {
>>>>                     s_logger.error("VMware RelocateVM_Task to change 
>>>> datastore failed due to " + TaskMO.getTaskFailureInfo(_context, morTask));
>>>>                 }
>>>>                 return false;
>>>>             }
>>>> 
>>>>         The parameter, VirtualMachineRelocateSpec, looks like this:
>>>> 
>>>>         http://imgur.com/a/vtKcq (datastore-66 is the target datastore)
>>>> 
>>>>         The following error message is returned:
>>>> 
>>>>         Required property datastore is missing from data object of type 
>>>> VirtualMachineRelocateSpecDiskLocator
>>>> 
>>>>         while parsing serialized DataObject of type 
>>>> vim.vm.RelocateSpec.DiskLocator
>>>>         at line 1, column 327
>>>> 
>>>>         while parsing property "disk" of static type 
>>>> ArrayOfVirtualMachineRelocateSpecDiskLocator
>>>> 
>>>>         while parsing serialized DataObject of type vim.vm.RelocateSpec
>>>>         at line 1, column 187
>>>> 
>>>>         while parsing call information for method RelocateVM_Task
>>>>         at line 1, column 110
>>>> 
>>>>         while parsing SOAP body
>>>>         at line 1, column 102
>>>> 
>>>>         while parsing SOAP envelope
>>>>         at line 1, column 38
>>>> 
>>>>         while parsing HTTP request for method relocate
>>>>         on object of type vim.VirtualMachine
>>>>         at line 1, column 0
>>>> 
>>>>         Thoughts?
>>>> 
>>>>         Thanks!
>>>>         Mike
>>>> 
>>>>         On 3/22/17, 11:50 PM, "Sergey Levitskiy" 
>>>> <sergey.levits...@autodesk.com> wrote:
>>>> 
>>>> 
>>>>             Can you trace which API call being used and what parameters 
>>>> were specified? migrateVirtualMachineWithVolumeAttempts vs 
>>>> migrateVirtualMachine
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 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