Unable to perform Replication-assisted vMotion (RAV) or Bulk Migration of a VM due to lwd I/O filter enabled on its virtual disks.
search cancel

Unable to perform Replication-assisted vMotion (RAV) or Bulk Migration of a VM due to lwd I/O filter enabled on its virtual disks.

book

Article ID: 314160

calendar_today

Updated On:

Products

VMware HCX VMware Live Recovery VMware Cloud on AWS

Issue/Introduction

  • Unable to perform bulk migration in VMC on some machines because of an LWD I/O error.
  • Unable to perform Replication-assisted vMotions due to LWD I/O filter attached to VM.
  • When trying to use RAV or Bulk Migrate a VM protected by VCDR or other backup solution that leverages LWD snapshots the migration will fail its validation.
    HCX UI shows the error: Cannot migrate VM as it has LWD I/O filter enabled on its virtual disks

 

Environment

VMware HCX

Cause

HCX Bulk Migration and Replication-assisted vMotion are not compatible with LWD I/O filters.

Resolution

  • To perform Replication-assisted vMotions or Bulk migrations, ensure that the lwd I/O filter has been removed from each VM being migrated.
    Protection can be re-enabled on the VM at a later point.

  • For VMC on AWS environments:
    • Broadcom VMC on AWS Support can assist in removing the LWD I/O filter from the affected VM within a VMC SDDC.
    • Create a support ticket with Broadcom VMC on AWS Support to request assistance in having this resolved.

  • For On-premise (or self-managed) environments:
    • The attached script (lwd-cleanup-util.py) is a pyVmomi-based utility that allows users to first list LWD-protected virtual machines in the vCenter inventory, before then disabling LWD protection for selected virtual machines on a vSphere vCenter server where needed.
    • The script requires the VMware vSphere API Python bindings. In particular, it requires the below dependencies,  all of which are satisfied by the VMware vCenter Appliance:
      • pyVim (vm, folder, connect)
      • pyVmomi (with vim version of at least vim.version.v7_0_2_1)
      • six (a single-file opensource dependency used by pyVim and pyVmomi)

  • Move the script into the vCenter Appliance and SSH to it. 

  • For command line help:
    #python lwd-cleanup-util.py --help

  • Execution Steps
    1. Use one or more of the below list commands to confirm which VM's are LWD-protected:
      • List all LWD-protected VM(s) which are protected by any vendors (including VMs protected by a vendor without a vendor ID).
        #python ./lwd-cleanup-util.py -u 'administrator@vsphere.local' --list
        #python ./lwd-cleanup-util.py -u 'administrator@vsphere.local' --list --all-vendors

      • List all LWD-protected VM(s) which are protected by 'myVendor'.
        #python ./lwd-cleanup-util.py -u 'administrator@vsphere.local' --list -i myVendor

      • List all LWD-protected VM(s) which are protected but do not have an associated vendor ID.
        #python ./lwd-cleanup-util.py -u 'administrator@vsphere.local' --list -i ""

    1. Use the below commands to remove the I/O filter from the needed VM's:

      • Disable LWD protection provided by 'myVendor' if present on the specified VM.
        #python ./lwd-cleanup-util.py -u 'administrator@vsphere.local' -d -i myVendor -m <VM_ID>

      • Disable LWD protection provided by a vendor which didn't specify a vendor ID, if present on the specified VM.
        #python ./lwd-cleanup-util.py -u 'administrator@vsphere.local' -d -i "" -m <VM_ID>

      • Disable LWD protection provided by any vendor, if present on the specified VM.
        #python ./lwd-cleanup-util.py -u 'administrator@vsphere.local' -d --all-vendors -m <VM_ID>

      • Disable LWD protection provided by 'myVendor' if present on the specified VMs.
        #python ./lwd-cleanup-util.py -u 'administrator@vsphere.local' -d -i myVendor -m <VM_ID_1> -m <VM_ID_2> -m <VM_ID_3>

      • Disable LWD protection provided by 'myVendor' for all VMs.
        #python ./lwd-cleanup-util.py -u 'administrator@vsphere.local' -d -i 'myVendor' --all

  • To list LWD protected VM's under a remote vCenter and to remove the I/O filter from them, use the below commands:
    • Connect to a remote vCenter Server to list LWD protected VMs.
      #python ./lwd-cleanup-util.py -r <vCenter_IP_ADDRESS> -u 'administrator@vsphere.local' --skipCertCheck -l

    • Connect to a remote vCenter Server to disable LWD protection provided by 'myVendor' for all LWD-protected VMs.
      #python ./lwd-cleanup-util.py -r <vCenter_IP_ADDRESS> -u 'administrator@vsphere.local' -d -i myVendor -all

    • Use custom pyVpx library from 'pyVpx' subfolder to connect to a remote vCenter Server and disable LWD protection provided by 'myVendor' for all LWD-protected VMs.
      #python ./lwd-cleanup-util.py -r <vCenter_IP_ADDRESS> -u 'administrator@vsphere.local' -d -i myVendor --all --pyVpx pyVpx




Additional Information

Attachments

lwd-cleanup-util.py get_app