Comment 1 for bug 1741364

Revision history for this message
Matt Riedemann (mriedem) wrote :

lyarwood has pointed this out before in IRC, but I wanted to mention it again here for clarity: the difference in those disks is one is an ephemeral disk based on the libvirt rbd imagebackend code in nova, and that one gets its values from nova.conf. The other is a volume and nova gets the config values from the cinder connection_info which gets refreshed during the live migration here:

https://github.com/openstack/nova/blob/74deea4d8f66a85e66ec79c72c9f257f562d5afd/nova/virt/libvirt/migration.py#L149

It appears we don't have something similar happening during live migration for ephemeral disk configuration with the rbd imagebackend.

During live migration from the source node, this is where we get the new xml for the guest to send to the destination node:

https://github.com/openstack/nova/blob/74deea4d8f66a85e66ec79c72c9f257f562d5afd/nova/virt/libvirt/driver.py#L6306

This code will get the ephemeral disk configuration:

https://github.com/openstack/nova/blob/74deea4d8f66a85e66ec79c72c9f257f562d5afd/nova/virt/libvirt/driver.py#L3603

And that's called from _get_guest_storage_config:

https://github.com/openstack/nova/blob/74deea4d8f66a85e66ec79c72c9f257f562d5afd/nova/virt/libvirt/driver.py#L3637

And we don't call either of those methods during a live migration so we don't get updated ephemeral disk config prior to starting the live migration.