Bug 2092752
Summary: | [RFE] RFE to allow enabling ZEROCOPY live migration through libvirt to be consumed by VDSM | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 9 | Reporter: | Nils Koenig <nkoenig> |
Component: | libvirt-python | Assignee: | Jiri Denemark <jdenemar> |
Status: | CLOSED ERRATA | QA Contact: | lcheng |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | 9.1 | CC: | berrange, dzheng, jdenemar, lmen, nkoenig, virt-maint, xuzhang |
Target Milestone: | rc | Keywords: | FutureFeature, Triaged |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | libvirt-python-8.5.0-1.el9 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2022-11-15 10:09:35 UTC | Type: | Feature Request |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | 8.5.0 |
Embargoed: | |||
Bug Depends On: | 1968509, 2089431 | ||
Bug Blocks: | 2092756 |
Comment 2
Jiri Denemark
2022-06-24 12:31:27 UTC
Changed the ITM as this bug was just in Modified yesterday and there are weekend followed, QE do not have enough time to work it out. So QE will handle it in next ITM (21). Dan Test with python3-libvirt-8.5.0-1.el9.x86_64, libvirt-8.5.0-2.el9.x86_64 and qemu-kvm-7.0.0-9.el9.x86_64. Scenario 1(negative): parallel + zerocopy + native_tls + p2p # python Python 3.9.13 (main, Jun 9 2022, 00:00:00) [GCC 11.3.1 20220421 (Red Hat 11.3.1-2)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import libvirt >>> src_conn = libvirt.open() >>> desturi = "qemu+tcp://dell-per740-43.lab.eng.pek2.redhat.com/system" >>> srcconn = libvirt.open() >>> destconn = libvirt.open("qemu+tcp://dell-per740-43.lab.eng.pek2.redhat.com/system") >>> dom = srcconn.lookupByName("avocado-vt-vm1") >>> flags = libvirt.VIR_MIGRATE_LIVE|libvirt.VIR_MIGRATE_AUTO_CONVERGE|libvirt.VIR_MIGRATE_POSTCOPY|libvirt.VIR_MIGRATE_ZEROCOPY|libvirt.VIR_MIGRATE_TLS|libvirt.VIR_MIGRATE_PARALLEL|libvirt.VIR_MIGRATE_PEER2PEER >>> dom.migrateToURI3(desturi, {'bandwidth': 100}, flags) libvirt: QEMU Driver error : operation failed: job 'migration out' failed: Requested Zero Copy feature is not available: Invalid argument Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python3.9/site-packages/libvirt.py", line 2157, in migrateToURI3 raise libvirtError('virDomainMigrateToURI3() failed') libvirt.libvirtError: operation failed: job 'migration out' failed: Requested Zero Copy feature is not available: Invalid argument >>> Scenario 2(negative): parallel + zerocopy + native_tls + non-p2p >>> flags = libvirt.VIR_MIGRATE_LIVE|libvirt.VIR_MIGRATE_AUTO_CONVERGE|libvirt.VIR_MIGRATE_POSTCOPY|libvirt.VIR_MIGRATE_ZEROCOPY|libvirt.VIR_MIGRATE_TLS|libvirt.VIR_MIGRATE_PARALLEL >>> dom.migrate3(destconn, {'bandwidth': 100}, flags) libvirt: QEMU Driver error : operation failed: job 'migration out' failed: Requested Zero Copy feature is not available: Invalid argument Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python3.9/site-packages/libvirt.py", line 1969, in migrate3 raise libvirtError('virDomainMigrate3() failed') libvirt.libvirtError: operation failed: job 'migration out' failed: Requested Zero Copy feature is not available: Invalid argument >>> >>> Scenario 3(negative): non_parallel + zerocopy + p2p >>> flags = libvirt.VIR_MIGRATE_LIVE|libvirt.VIR_MIGRATE_AUTO_CONVERGE|libvirt.VIR_MIGRATE_POSTCOPY|libvirt.VIR_MIGRATE_ZEROCOPY|libvirt.VIR_MIGRATE_PEER2PEER >>> dom.migrateToURI3(desturi, {'bandwidth': 100}, flags) libvirt: QEMU Driver error : Requested operation is not valid: zero-copy is only available for parallel migration Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python3.9/site-packages/libvirt.py", line 2157, in migrateToURI3 raise libvirtError('virDomainMigrateToURI3() failed') libvirt.libvirtError: Requested operation is not valid: zero-copy is only available for parallel migration Scenario 4(negative): non_parallel + zerocopy + non_p2p >>> flags = libvirt.VIR_MIGRATE_LIVE|libvirt.VIR_MIGRATE_AUTO_CONVERGE|libvirt.VIR_MIGRATE_POSTCOPY|libvirt.VIR_MIGRATE_ZEROCOPY >>> dom.migrate3(destconn, {'bandwidth': 100}, flags) libvirt: QEMU Driver error : Requested operation is not valid: zero-copy is only available for parallel migration Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python3.9/site-packages/libvirt.py", line 1969, in migrate3 raise libvirtError('virDomainMigrate3() failed') libvirt.libvirtError: Requested operation is not valid: zero-copy is only available for parallel migration Scenario 5: parallel + zerocopy + non_p2p >>> flags = libvirt.VIR_MIGRATE_LIVE|libvirt.VIR_MIGRATE_AUTO_CONVERGE|libvirt.VIR_MIGRATE_POSTCOPY|libvirt.VIR_MIGRATE_PARALLEL|libvirt.VIR_MIGRATE_ZEROCOPY >>> dom.migrate3(destconn, {'bandwidth': 10}, flags) <libvirt.virDomain object at 0x7f81309e0370> Scenario 6: parallel + zerocopy + p2p >>> srcconn = libvirt.open() >>> desturi = "qemu+tcp://dell-per740-43.lab.eng.pek2.redhat.com/system" >>> destconn = libvirt.open("qemu+tcp://dell-per740-43.lab.eng.pek2.redhat.com/system") >>> dom = srcconn.lookupByName("avocado-vt-vm1") >>> flags = libvirt.VIR_MIGRATE_LIVE|libvirt.VIR_MIGRATE_PEER2PEER|libvirt.VIR_MIGRATE_AUTO_CONVERGE|libvirt.VIR_MIGRATE_POSTCOPY|libvirt.VIR_MIGRATE_PARALLEL|libvirt.VIR_MIGRATE_ZEROCOPY >>> dom.migrateToURI3(desturi, {'bandwidth': 10}, flags) 0 >>> Scenario 7: parallel + zerocopy, abort migration, then migrate again. terminal 1: >>> srcconn = libvirt.open() >>> desturi = "qemu+tcp://dell-per740-43.lab.eng.pek2.redhat.com/system" >>> destconn = libvirt.open("qemu+tcp://dell-per740-43.lab.eng.pek2.redhat.com/system") >>> dom = srcconn.lookupByName("avocado-vt-vm1") >>> flags = libvirt.VIR_MIGRATE_LIVE|libvirt.VIR_MIGRATE_AUTO_CONVERGE|libvirt.VIR_MIGRATE_POSTCOPY|libvirt.VIR_MIGRATE_ZEROCOPY|libvirt.VIR_MIGRATE_PARALLEL >>> dom.migrate3(destconn, {'bandwidth': 100}, flags) libvirt: QEMU Driver error : operation aborted: job 'migration out' canceled by client Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python3.9/site-packages/libvirt.py", line 1969, in migrate3 raise libvirtError('virDomainMigrate3() failed') libvirt.libvirtError: operation aborted: job 'migration out' canceled by client >>> dom.migrate3(destconn, {'bandwidth': 100}, flags) <libvirt.virDomain object at 0x7f8132896970> >>> terminal 2: # virsh domjobabort avocado-vt-vm1 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (libvirt-python bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2022:8007 |