apache / apache/cloudstack

attachVolume fails with HTTP 500 from vCenter datastore

Đang mở
#13,249 7 bình luận 0 reaction 1 người được giao Được @DaanHoogland nhận Xem trên GitHub
component:vmware
Ngôn ngữ chính
Java
Star
3.1k
Fork
1.4k
Merge trung bình
6 ngày 19 giờ
Pull request đã merge (30 ngày)
32

Mô tả

### 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

1. Create a volume on a PreSetup/DatastoreCluster-type primary storage pool
2. Migrate the volume (migrateVolume API) to BIGVOL (DatastoreCluster)
3. Volume lands correctly on ESXi host VMFS under i-XXXX-XX-VM/ folder
4. Attempt attachVolume to a Running VM on the same cluster

### What to do about it?

_No response_

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.