Anyway I've reproduced against devstack now and verified that the attached patch works for me:
I've created two bfv instances using the LVM/iSCSI c-vol backend that os-brick is presenting as raw /dev/sd* devices to Nova. b8acff7f-7430-40f8-b67f-5f51dcf07299 running on controller and 45302dcc-906f-4d47-b774-45165a867fca running on subnode.
Anyway I've reproduced against devstack now and verified that the attached patch works for me:
I've created two bfv instances using the LVM/iSCSI c-vol backend that os-brick is presenting as raw /dev/sd* devices to Nova. b8acff7f- 7430-40f8- b67f-5f51dcf072 99 running on controller and 45302dcc- 906f-4d47- b774-45165a867f ca running on subnode.
stack@controller $ sudo virsh domblklist b8acff7f- 7430-40f8- b67f-5f51dcf072 99 ------- ------
Target Source
-------
vda /dev/sdb
stack@subnode $ sudo virsh domblklist 45302dcc- 906f-4d47- b774-45165a867f ca ------- ------
Target Source
-------
vda /dev/sdb
stack@controller $ openstack server migrate --os-compute- api-version 2.30 --live-migration \ example. com 45302dcc- 906f-4d47- b774-45165a867f ca
--host controller.
stack@controller $ sudo virsh domblklist 45302dcc- 906f-4d47- b774-45165a867f ca ------- ------
Target Source
-------
vda /dev/sdc
stack@controller $ sudo virsh dumpxml 45302dcc- 906f-4d47- b774-45165a867f ca > original.xml 906f-4d47- b774-45165a867f ca 906f-4d47- b774-45165a867f ca > soft.xml 906f-4d47- b774-45165a867f ca ------- ------
stack@controller $ openstack server reboot --soft 45302dcc-
stack@controller $ sudo virsh dumpxml 45302dcc-
stack@controller $ sudo virsh domblklist 45302dcc-
Target Source
-------
vda /dev/sdb
stack@controller $ diff -u original.xml soft.xml
$ diff -u original.xml soft.xml instance- 00000004< /name> 45302dcc- 906f-4d47- b774-45165a867f ca</uuid> openstack. org/xmlns/ libvirt/ nova/1. 0"> test</nova: name> ime>2020- 08-06 15:29:32< /nova:creationT ime> 512</nova: memory> 1</nova: disk> 0</nova: swap> >0</nova: ephemeral> 1</nova: vcpus> 6cc45778d2eb636 42eb10d5" >admin< /nova:user> 49242ecad343e41 e6bf134f" >admin< /nova:project> test</nova: name> ime>2020- 08-06 15:29:32< /nova:creationT ime> 512</nova: memory> 1</nova: disk> 0</nova: swap> >0</nova: ephemeral> 1</nova: vcpus> 6cc45778d2eb636 42eb10d5" >admin< /nova:user> 49242ecad343e41 e6bf134f" >admin< /nova:project> >524288< /memory> >524288< /currentMemory> /usr/bin/ qemu-system- x86_64< /emulator>
<backingStore/ >
<serial> 878ba969- 13dc-4fc1- b6c3-48e2b05db2 56</serial> system_ u:system_ r:svirt_ t:s0:c459, c924</label> system_ u:object_ r:svirt_ image_t: s0:c459, c924</imagelabe l> system_ u:system_ r:svirt_ t:s0:c487, c991</label> system_ u:object_ r:svirt_ image_t: s0:c487, c991</imagelabe l> +107:+107< /label>
--- original.xml 2020-08-06 11:30:36.611368640 -0400
+++ soft.xml 2020-08-06 11:30:57.531787186 -0400
@@ -1,23 +1,23 @@
-<domain type='kvm' id='6'>
+<domain type='kvm' id='7'>
<name>
<uuid>
<metadata>
<nova:instance xmlns:nova="http://
- <nova:package version="21.1.0"/>
- <nova:name>
- <nova:creationT
- <nova:flavor name="m1.tiny">
- <nova:memory>
- <nova:disk>
- <nova:swap>
- <nova:ephemeral
- <nova:vcpus>
- </nova:flavor>
- <nova:owner>
- <nova:user uuid="c7bfad6fb
- <nova:project uuid="6b4564ddd
- </nova:owner>
- </nova:instance>
+ <nova:package version="21.1.0"/>
+ <nova:name>
+ <nova:creationT
+ <nova:flavor name="m1.tiny">
+ <nova:memory>
+ <nova:disk>
+ <nova:swap>
+ <nova:ephemeral
+ <nova:vcpus>
+ </nova:flavor>
+ <nova:owner>
+ <nova:user uuid="c7bfad6fb
+ <nova:project uuid="6b4564ddd
+ </nova:owner>
+ </nova:instance>
</metadata>
<memory unit='KiB'
<currentMemory unit='KiB'
@@ -59,7 +59,7 @@
<emulator>
<disk type='block' device='disk'>t
<driver name='qemu' type='raw' cache='none' io='native'/>
- <source dev='/dev/sdc'/>
+ <source dev='/dev/sdb'/>
<target dev='vda' bus='virtio'/>
@@ -117,8 +117,8 @@
</rng>
</devices>
<seclabel type='dynamic' model='selinux' relabel='yes'>
- <label>
- <imagelabel>
+ <label>
+ <imagelabel>
</seclabel>
<seclabel type='dynamic' model='dac' relabel='yes'>
<label>
stack@controller $ openstack server reboot --hard 45302dcc- 906f-4d47- b774-45165a867f ca 906f-4d47- b774-45165a867f ca ------- ------
stack@controller $ sudo virsh domblklist 45302dcc-
Target Source
-------
vda /dev/sdc
I ran through this again after patching n-cpu on both hosts using a new instance 46668d49- d9e7-4953- b88d-8e642ac436 0e and the XML persists correctly:
stack@controller $ git am ~/0001- libvirt- Provide- VIR_MIGRATE_ PARAM_PERSIST_ XML-during. patch
stack@controller $ sudo systemctl restart devstack@n-*
stack@subnode $ git am ~/0001- libvirt- Provide- VIR_MIGRATE_ PARAM_PERSIST_ XML-during. patch
stack@subnode $ sudo systemctl restart devstack@n-*
stack@controller $ openstack server migrate --os-compute- api-version 2.30 --live-migration --host controller. example. com 46668d49- d9e7-4953- b88d-8e642ac436 0e
stack@controller $ sudo virsh dumpxml 46668d49- d9e7-4953- b88d-8e642ac436 0e > original.xml d9e7-4953- b88d-8e642ac436 0e ------- ------
stack@controller $ sudo virsh domblklist 46668d49-
Target Source
-------
vda /dev/sdc
stack@controller $ openstack server reboot --soft 46668d49- d9e7-4953- b88d-8e642ac436 0e d9e7-4953- b88d-8e642ac436 0e > soft.xml d9e7-4953- b88d-8e642ac436 0e ------- ------ instance- 00000005< /name> 46668d49- d9e7-4953- b88d-8e642ac436 0e</uuid> openstack. org/xmlns/ libvirt/ nova/1. 0"> test</nova: name> ime>2020- 08-06 16:13:26< /nova:creationT ime> 512</nova: memory> 1</nova: disk> 0</nova: swap> >0</nova: ephemeral> 1</nova: vcpus> 6cc45778d2eb636 42eb10d5" >admin< /nova:user> 49242ecad343e41 e6bf134f" >admin< /nova:project> test</nova: name> ime>2020- 08-06 16:13:26< /nova:creationT ime> 512</nova: memory> 1</nova: disk> 0</nova: swap> >0</nova: ephemeral> 1</nova: vcpus> 6cc45778d2eb636 42eb10d5" >admin< /nova:user> 49242ecad343e41 e6bf134f" >admin< /nova:project> >524288< /memory> >524288< /currentMemory> system_ u:system_ r:svirt_ t:s0:c543, c672</label> system_ u:object_ r:svirt_ image_t: s0:c543, c672</imagelabe l> system_ u:system_ r:svirt_ t:s0:c40, c378</label> system_ u:object_ r:svirt_ image_t: s0:c40, c378</imagelabe l> +107:+107< /label>
stack@controller $ sudo virsh dumpxml 46668d49-
stack@controller $ sudo virsh domblklist 46668d49-
Target Source
-------
vda /dev/sdc
$ diff -u original.xml soft.xml
--- original.xml 2020-08-06 12:22:45.076125282 -0400
+++ soft.xml 2020-08-06 12:22:55.031329078 -0400
@@ -1,23 +1,23 @@
-<domain type='kvm' id='13'>
+<domain type='kvm' id='14'>
<name>
<uuid>
<metadata>
<nova:instance xmlns:nova="http://
- <nova:package version="21.1.0"/>
- <nova:name>
- <nova:creationT
- <nova:flavor name="m1.tiny">
- <nova:memory>
- <nova:disk>
- <nova:swap>
- <nova:ephemeral
- <nova:vcpus>
- </nova:flavor>
- <nova:owner>
- <nova:user uuid="c7bfad6fb
- <nova:project uuid="6b4564ddd
- </nova:owner>
- </nova:instance>
+ <nova:package version="21.1.0"/>
+ <nova:name>
+ <nova:creationT
+ <nova:flavor name="m1.tiny">
+ <nova:memory>
+ <nova:disk>
+ <nova:swap>
+ <nova:ephemeral
+ <nova:vcpus>
+ </nova:flavor>
+ <nova:owner>
+ <nova:user uuid="c7bfad6fb
+ <nova:project uuid="6b4564ddd
+ </nova:owner>
+ </nova:instance>
</metadata>
<memory unit='KiB'
<currentMemory unit='KiB'
@@ -117,8 +117,8 @@
</rng>
</devices>
<seclabel type='dynamic' model='selinux' relabel='yes'>
- <label>
- <imagelabel>
+ <label>
+ <imagelabel>
</seclabel>
<seclabel type='dynamic' model='dac' relabel='yes'>
<label>