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:
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/ 74deea4d8f66a85 e66ec79c72c9f25 7f562d5afd/ 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/ 74deea4d8f66a85 e66ec79c72c9f25 7f562d5afd/ nova/virt/ libvirt/ driver. py#L6306
This code will get the ephemeral disk configuration:
https:/ /github. com/openstack/ nova/blob/ 74deea4d8f66a85 e66ec79c72c9f25 7f562d5afd/ nova/virt/ libvirt/ driver. py#L3603
And that's called from _get_guest_ storage_ config:
https:/ /github. com/openstack/ nova/blob/ 74deea4d8f66a85 e66ec79c72c9f25 7f562d5afd/ 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.