matheusfontes opened a new issue, #12820:
URL: https://github.com/apache/cloudstack/issues/12820
### problem
Volume migration between Ceph RBD primary storages fails in CloudStack 4.22
because the destination is incorrectly treated as a local file path instead of
an RBD URI.
In CloudStack 4.22, migrating a volume from one Ceph RBD primary storage to
another fails during the qemu-img convert operation.
The system attempts a direct primary-to-primary migration (which is expected
behavior in newer versions), but the destination is incorrectly passed as a
local filesystem path instead of an RBD URI.
As a result, the migration fails with:
qemu-img: CEPH2_NVME/<uuid>.raw: error while converting raw:
Could not create 'CEPH2_NVME/<uuid>.raw': No such file or directory
From the agent logs:
qemu-img convert -O raw -U \
rbd:CEPH1_SATA/<source-volume>:mon_host=...:auth_supported=cephx:id=... \
CEPH2_NVME/<destination-volume>.raw
Expected behavior:
qemu-img convert -O raw \
rbd:CEPH1_SATA/<source-volume> \
rbd:CEPH2_NVME/<destination-volume>
The destination is missing the rbd: prefix and is incorrectly suffixed with
.raw, causing qemu-img to treat it as a local file path.
### versions
• Apache CloudStack: 4.22.0
• Hypervisor: KVM
• OS: Ubuntu 22.04 and 24.04
• qemu-img version: 6.2.0 (Debian 1:6.2+dfsg-2ubuntu6.27)
• Ceph version: Source: Octopus / Destination: Reef
### The steps to reproduce the bug
1. Configure two Ceph RBD primary storages in the same zone:
• Source: CEPH1
• Destination: CEPH2
2. Ensure both are accessible from KVM hosts.
3. Create a volume in CEPH1
4. Attempt to migrate the volume to CEPH2 using:
• CloudStack UI
select volume -> click on Migrate Volume -> Select CEPH2
storage pool
• cmk call
migrate volume storageid=CEPH2_ID
volumeid=VOLUME_ID_HOSTED_IN_CEPH1
5. Observe failure during migration.
### What to do about it?
• Ensure the destination is correctly formatted as an RBD URI
(rbd:pool/image)
• Validate logic in LibvirtStorageAdaptor (KVM) for RBD-to-RBD
migration path
• Possibly introduce fallback to secondary storage if direct
conversion fails
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]