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