Virtual Machines can experience guest OS crashes after being vMotioned to ESXi version 7.0U2 or newer
search cancel

Virtual Machines can experience guest OS crashes after being vMotioned to ESXi version 7.0U2 or newer

book

Article ID: 318517

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:
  1. vMotion of a Virtual Machine with Windows Server to ESXi 7.0U2 or newer version can result in:
  • The Windows Guest OS crashing into BSODs, and/or:
  • The Guest OS failing to boot, instead showing the message "OS failed to boot with no operating system found".
  • Windows Events ID 130 with source NTFS being logged in the guest OS
  1. Similar issues have been reported for Linux VMs as well
  2. A Storage vMotion of the same Virtual Machine does not result in the issue.
  3. A Clone of the problematic Virtual Machine does not hit the issue.


Environment

VMware vSphere ESXi 7.0.2
VMware vSphere ESXi 7.0.3

Cause

Under certain use cases the Virtual Machine File System (VMFS) uses address optimization logic to avoid disk reads, while resolving logical address to physical addresses.

Address optimization helps to improve read performance and is only used in certain cases, depending on how the virtual disk is allocated, on the alignment of the address allocation and the usage of large File Blocks (LFB)s for allocation.
Due to a fault in the address optimization logic pre ESXi 7.0 U3i, VMFS can return zeros during read, causing the issues outlined above.

Resolution

This issue has been fixed in vSphere 7.0 Update 3i


Workaround:

To workaround the issue, please follow the steps mentioned below:

  1. To prevent the issue from occurring, perform a Storage vMotion of the Virtual Machine to target hosts runnign ESXi 7.0U2 or newer
  2. To stop the issue from occurring, either update the ESXi to 7.0 Update 3i or disable “Parallel Transaction” by following the steps outlined below:
    1. Check if the the "Int Value" of the ESXi advanced Option VMFS3.DisableParallelTxns is set to 0 - this indicates that Parallel Transaction is currently enabled. To verify this, run the following command on the ESXi:
      # esxcli system settings advanced list -o /VMFS3/DisableParallelTxns
    2. Disable Parallel Transaction by running the following command:
      # esxcli system settings advanced set -o /VMFS3/DisableParallelTxns -i 1
    3. Reboot the ESXi
    4. After the host was rebooted, confirm that the advanced option is still set to 1:
      # esxcli system settings advanced list -o /VMFS3/DisableParallelTxns
    5. Perform vMotion.



Additional Information

Sample of host with Parallel Transaction enabled