problem
AttachVolume fails with HTTP 500 from vCenter datastore browser when
attaching a detached volume on a PreSetup (DatastoreCluster) storage pool
to a Running VMware VM.
ERROR: Failed to attach volume!
java.io.IOException: Server returned HTTP response code: 500 for URL:
https://vcenter.../folder/i-2422-79-VM%2Fcaa1f96c...vmdk?dcPath=XXXXX&dsName=OShit-BigVol
CloudStack calls VirtualMachineMO.attachDisk() → getVmdkFileInfo() which
does an HTTP GET via vCenter datastore browser. vCenter routes this to a
non-owner ESXi host which cannot serve the locked file of the running VM.
EXPECTED RESULT:
Volume attaches successfully. CloudStack should use the vSphere API
(ReconfigVM_Task with VirtualDiskSpec) directly instead of going through
the vCenter HTTP datastore browser to validate the VMDK.
WORKAROUND:
Power off the VM, attach the volume, power it back on.
Reference: Related issue #10626
versions
COMPONENT NAME: Storage / VMware
CLOUDSTACK VERSION: 4.22.0
The steps to reproduce the bug
- Create a volume on a PreSetup/DatastoreCluster-type primary storage pool
- Migrate the volume (migrateVolume API) to BIGVOL (DatastoreCluster)
- Volume lands correctly on ESXi host VMFS under i-XXXX-XX-VM/ folder
- Attempt attachVolume to a Running VM on the same cluster
What to do about it?
No response
problem
AttachVolume fails with HTTP 500 from vCenter datastore browser when
attaching a detached volume on a PreSetup (DatastoreCluster) storage pool
to a Running VMware VM.
ERROR: Failed to attach volume!
java.io.IOException: Server returned HTTP response code: 500 for URL:
https://vcenter.../folder/i-2422-79-VM%2Fcaa1f96c...vmdk?dcPath=XXXXX&dsName=OShit-BigVol
CloudStack calls VirtualMachineMO.attachDisk() → getVmdkFileInfo() which
does an HTTP GET via vCenter datastore browser. vCenter routes this to a
non-owner ESXi host which cannot serve the locked file of the running VM.
EXPECTED RESULT:
Volume attaches successfully. CloudStack should use the vSphere API
(ReconfigVM_Task with VirtualDiskSpec) directly instead of going through
the vCenter HTTP datastore browser to validate the VMDK.
WORKAROUND:
Power off the VM, attach the volume, power it back on.
Reference: Related issue #10626
versions
COMPONENT NAME: Storage / VMware
CLOUDSTACK VERSION: 4.22.0
The steps to reproduce the bug
What to do about it?
No response