Updating Monitor List (rbd section) using Virsh with no downtime

mriu-fc

New Member
Nov 17, 2025
1
0
1
Hello,

is there a way to update a monitor list of the rbd section in a virtual machine? We need to add or modify the following entries.

<source protocol='rbd' name='cinder/volume-343766ad-0086-4f8c-a557-bc60ba2210f4' index='1'>
<host name='172.16.65.164' port='6789'/>
<host name='172.16.65.165' port='6789'/>
<host name='172.16.65.166' port='6789'/>
</source>

We want to replace the Monitor network and this means that we have to update every virtual machine with the new Ceph monitor IPs.

The only way to replace them is with a live migration (then the live ceph configuration with the new IPs will be applied), but we would like to know if there is a faster way (because we have approximately 200-300 VMs) and some of them are so big that a live migration is impossible (only an offline migration could be done, resulting in a downtime). Another way to refresh the list is detaching the volume, but this only works for non-bootable volumes.

We tried modifying the virsh XML directly (virsh edit ...) and creating a separate XML file and applying it with "virsh define newfile.xml", but the list will not be updated.

Many thanks in advance!
 
Last edited:
You can update the running QEMU process’ RBD backend (the monitor list) via QMP, then update the persistent libvirt XML so the change survives reboots. That lets you avoid a full offline migration for many guests. (If your QEMU/libvirt versions are too old you’ll need to fall back to stop/start or migration.)