Error: The file specified is not a virtual disk when powering on VM on vVol datastore
search cancel

Error: The file specified is not a virtual disk when powering on VM on vVol datastore

book

Article ID: 389403

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

A virtual machine residing on a vVol datastore fails to power on due to a metadata inconsistency between the virtual disk descriptor (vmdk) file and the storage array.

  • A virtual machine (VM) residing on a vVol datastore fails to power on after a host update or a system-initiated migration task. 
  • The VM power-on task fails at approximately 72%.
  • Navigating to vSphere > Host > Monitor > Tasks shows following message in the vSphere client:



  • vmware.log reports the following error: The log shows that the descriptor file size is larger than the actual size of the disk.

/vmfs/volumes/vvol://Datastore UUID/rfc####.Object UUID/VM Name/vmware.log:

YYYY-MM-DDThh:mm:ss In(05) worker-### - DISKLIB-VMFS : VmfsExtentCommonOpen: possible extent truncation (?) realSize is ###, size in descriptor ###. 
YYYY-MM-DDThh:mm:ss In(05) worker-### - DISKLIB-VMFS : "vvol:Datastore UUID/rfc####.Object UUID" : failed to open (The file specified is not a virtual disk): Size of extent in descriptor file larger than real size. Type 3
YYYY-MM-DDThh:mm:ss Er(02) worker-### - DISKLIB-LINK : DiskLinkOpen: Failed to open '/vmfs/volumes/vvol:Datastore UUID/rfc####.Object UUID/VM Name.vmdk': : The file specified is not a virtual disk
YYYY-MM-DDThh:mm:ss In(05)+ vmx - Power on failure messages: The file specified is not a virtual disk
YYYY-MM-DDTHH:MM Wa(03) vmx - VMX has left the building: 0.

Environment

VMware vSphere ESXi

Cause

A discrepancy exists between the size defined in the .vmdk descriptor file and the real size reported by the storage array. This metadata inconsistency prevents the ESXi host from opening the virtual disk. To have a successful power-on, the reported disk size in the .vmdk and the storage array must be identical

Resolution

Ensure a valid backup of the virtual machine exists before proceeding.

  1. Follow the below workaround if the size discrepancy is not huge
    1. Connect to the ESXi host via SSH as the root user.
    2. Navigate to the virtual machine directory: cd /vmfs/volumes/vvol:Datastore UUID/rfc####.Object UUID/VM Name.
    3. Identify the realSize value from the vmware.log. (refer to the first line in the example logs above).
    4. Create a backup of the current descriptor file: cp <disk_name>.vmdk <disk_name>.vmdk.bak
    5. Edit the descriptor file using a text editor: vi <disk_name>.vmdk
    6. Locate the # Extent description section and update the capacity value to match the realSize identified in step 3. Example: RW #### VVOL "vvol:####/####/<disk_name>.vmdk"
    7. Save "wq!" and exit the editor.
    8. Get VMID: vim-cmd vmsvc/getallvms | grep -i
    9. Reload the virtual machine configuration: <VM_NAME> vim-cmd vmsvc/reload <VM_ID>
    10. Power on the virtual machine.
  2. If the size discrepancy is significantly large (e.g., several TBs), involve the storage vendor to investigate the discrepancy on the storage array.