Cross-vCenter Hot and Cold VM migrations fails between Linked mode vCenter appliances
search cancel

Cross-vCenter Hot and Cold VM migrations fails between Linked mode vCenter appliances

book

Article ID: 391131

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

  • Cold migration fails with the error:

"Could not complete network copy for file /vmfs/volumes/Datastore_name/VM_name/VM.vmdk"

  • Provisioning is enabled on the vMotion vmkernel adapter and thereby the cold migration traffic passes through this adapter.
  • Hot migration fails with the error:

"VMotionStream [##:##] timed out while waiting for disk 1's queue count to drop below the maximum limit of #### blocks. This could indicate either network or storage problems preventing proper block transfer."

  • MTU 9000 is configured for vMotion vmkernel adapter, vSwitch and vmnic's as well.
  • vmkping's to destination Host's vMotion vmkernel adapter with MTU 9000 fails with 100% packet loss.

     vmkping -I vmk# dest_vmk_IP -d -s 8972            ---> where # is the source vMotion vmkernel adapter.

KB for reference: Testing VMkernel network connectivity with the vmkping command

  • Source Host **var/run/log/vpxa.log** 
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: [Originator@6876 sub=Default opID=####] [VpxLRO] -- ERROR task-### -- #### -- vmotionManager -- vim.host.VMotionManager.initiateSourceEx: :vim.fault.GenericVmConfigFault
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: --> Result:
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: --> (vim.fault.GenericVmConfigFault) {
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->    faultCause = (vmodl.MethodFault) null,
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->    faultMessage = (vmodl.LocalizableMessage) [
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->       (vmodl.LocalizableMessage) {
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          key = "msg.svmotion.fail.internal",
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          arg = <unset>,
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          message = "A fatal internal error occurred. See the virtual machine's log for more details."
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->       },
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->       (vmodl.LocalizableMessage) {
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          key = "msg.svmotion.disk.copyphase.failed",
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          arg = <unset>,
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          message = "Failed to copy one or more disks."
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->       },
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->       (vmodl.LocalizableMessage) {
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          key = "msg.mirror.disk.copyfailed",
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          arg = (vmodl.KeyAnyValue) [
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->             (vmodl.KeyAnyValue) {
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                key = "1",
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                value = "/vmfs/volumes/Datastore_name/VM_name/VM.vmdk"
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->             },
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->             (vmodl.KeyAnyValue) {
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                key = "2",
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                value = "/vmfs/volumes/Datastore_name/VM_name/VM.vmdk"
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->             },
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->             (vmodl.KeyAnyValue) {
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                key = "3",
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                value = "Timeout"
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->             }
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          ],
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          message = "Failed to copy source (/vmfs/volumes/Datastore_name/VM_name/VM.vmdk) to destination (/vmfs/volumes/Datastore_name/VM_name/VM.vmdk): Timeout. "
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->       },
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->       (vmodl.LocalizableMessage) {
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          key = "vob.vmotion.stream.check.block.mem.timed.out",
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          arg = (vmodl.KeyAnyValue) [
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->             (vmodl.KeyAnyValue) {
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                key = "1",
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                value = "####"
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->             (vmodl.KeyAnyValue) {
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                key = "2",
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                value = "####"
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->             },
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->             (vmodl.KeyAnyValue) {
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                key = "3",
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                value = "1"
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->             },
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->             (vmodl.KeyAnyValue) {
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                key = "4",
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->                value = "####"
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->             }
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          ],
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          message = "VMotionStream [##:##] timed out while waiting for disk 1's queue count to drop below the maximum limit of #### blocks. This could indicate either network or storage problems preventing proper block transfer."
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->       },
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->       (vmodl.LocalizableMessage) {
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          key = "faultTime",
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          arg = <unset>,
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->          message = "YYYY-MM-DD"
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->       }
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->    ],
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->    reason = "A fatal internal error occurred. See the virtual machine's log for more details."
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->    msg = "A fatal internal error occurred. See the virtual machine's log for more details."
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: --> }
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: --> Args:
YYYY-MM-DDTHH:MM:SSZ Er(###) Vpxa[####]: -->

 

Environment

VMware vSphere 8.0U3

Cause

MTU 9000 is not pingable from the backend networking infrastructure itself.

Resolution

Engage the internal Networking team to troubleshoot issues with MTU 9000 in the environment.

As per best practices, it's recommended to use Jumbo frames (MTU 9000) for best vMotion performance. Link for reference: Networking Best Practices for vSphere vMotion
Ensure that jumbo frames are enabled on all network devices that are on the vMotion path including physical NICs, physical switches, and virtual switches.