On Sun, Feb 04, 2024 at 20:31:33 +1100, Julian Calaby wrote: > Hi, > > I have a fancy new Ceph cluster and have configured a storage pool > using it in libvirt. I have a bunch of disk images in a "filesystem > directory" storage pool. I want to migrate those disk images into the > RBD pool. > > What is the process for doing this? [...] > 2. virsh blockcopy This is the proper way to do it for any running VM as it's the only approach which preserves data consistency from VM writes, as well as updates XMLs. > No idea how to actually achieve what I want here as it doesn't seem > capable of copying to a non-file destination. 'virsh blockcopy' does in fact support non-file destinations by passing the XML description identical to the <disk> element via the --xml argument. The XML for ceph/rbd should look like: <disk type='network'> <driver name="qemu" type="raw"/> <source protocol="rbd" name="image_name2"> <host name="hostname" port="7000"/> <auth username='myuser'> <secret type='ceph' usage='mypassid'/> </auth> </source> </disk> To run the blockcopy operation and then subsequently switch to the new image after it finishes additional arguments will be needed: virsh blockcopy --domain $VMNAME --path $SOURCEDISKTARGET --xml /path/to/xml --transient-job --verbose --pivot I don't recall now whether you might need to pre-create the properly-sized rbd volume in ceph or qemu can do that for you. For a non-running VM I suggest you either start it, or start it with paused CPUs (if you don't want to run the guest OS) for the duration of the copy. > 3. virsh vol-download and virsh vol-upload > > # mkfifo tmp > # virsh vol-create --pool ceph volume.xml > Vol volume created from volume.xml > > root@multimedia:~# virsh vol-list ceph > Name Path > ------------------------------------------ > torrentbucket VM_images/volume > > root@multimedia:~# virsh vol-download --pool default volume.qcow2 tmp & > [1] 2483977 > root@multimedia:~# virsh vol-upload --pool ceph volume tmp > error: cannot upload to volume volume > error: this function is not supported by the connection driver: > storage pool doesn't support volume upload This won't work, as nobody yet volunteered to implement the data operations for the native RBD/ceph libvirt pool type. You'd need to make the rbd volumes available in the host OS as files to be able to use storage driver APIs _______________________________________________ Users mailing list -- users@xxxxxxxxxxxxxxxxx To unsubscribe send an email to users-leave@xxxxxxxxxxxxxxxxx