how to change emulator path during live migration

Jiatong Shen yshxxsjt715 at gmail.com
Wed Apr 27 09:04:43 UTC 2022


ah.. sorry for the mistake.

I find that on the source libvirt will also verify emulator binary, thus
emulator must
also exist on src. because in qemuMigrationBegin method, it will
call qemuDomainDefCopy
and eventually validates emulator exists...

best,

Jiatong Shen

On Wed, Apr 27, 2022 at 4:03 PM Peter Krempa <pkrempa at redhat.com> wrote:

> [re-adding libvirt-users list]
>
> Please always reply to the list so that the follow-up conversation is
> archived and delivered to all subscribers.
>
> On Wed, Apr 27, 2022 at 15:36:54 +0800, Jiatong Shen wrote:
> > Thank you for the feedback!
> >
> > Is it ok if the source node does not contain a emulator path used by the
> > dest node? for example, on src emulator path is /a/b/c, but
> > on dest it is /a/b/d, and /a/b/d does not exist on src.
>
> You can change the emulator path arbitrarily. The only limitation is
> that the emulator you pick (the binary, not the path) must be able to
> run the VM, but that will be validated during the migration.
>
>

-- 

Best Regards,

Jiatong Shen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20220427/a893e1ce/attachment-0001.htm>
-------------- next part --------------
(gdb) where
#0  virQEMUCapsNewForBinaryInternal (hostArch=VIR_ARCH_X86_64, binary=0x7fffe800d530 "/usr/bin/sjt-test", libDir=0x7fff94021dd0 "/var/lib/libvirt/qemu", runUid=0, runGid=0, microcodeVersion=1, 
    kernelVersion=0x7fff9400a7c0 "4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020", qmpOnly=false) at ../../src/qemu/qemu_capabilities.c:5262
#1  0x00007fffc3aacd95 in virQEMUCapsNewData (binary=<optimized out>, privData=<optimized out>) at ../../src/qemu/qemu_capabilities.c:5340
#2  0x00007ffff737a6e7 in virFileCacheNewData (name=0x7fffe800d530 "/usr/bin/sjt-test", cache=0x7fff940286d0) at ../../src/util/virfilecache.c:223
#3  virFileCacheValidate (cache=cache at entry=0x7fff940286d0, name=name at entry=0x7fffe800d530 "/usr/bin/sjt-test", data=data at entry=0x7ffff0b47410) at ../../src/util/virfilecache.c:294
#4  0x00007ffff737ab37 in virFileCacheLookup (cache=0x7fff940286d0, name=name at entry=0x7fffe800d530 "/usr/bin/sjt-test") at ../../src/util/virfilecache.c:327
#5  0x00007fffc3aad02e in virQEMUCapsCacheLookup (cache=<optimized out>, binary=0x7fffe800d530 "/usr/bin/sjt-test") at ../../src/qemu/qemu_capabilities.c:5477
#6  0x00007fffc3acc677 in qemuDomainPostParseDataAlloc (def=<optimized out>, caps=<optimized out>, parseFlags=<optimized out>, opaque=<optimized out>, parseOpaque=0x7ffff0b474b0) at ../../src/qemu/qemu_domain.c:4623
#7  0x00007ffff73a65a9 in virDomainDefPostParseInternal (def=def at entry=0x7fffe800cf20, caps=caps at entry=0x7fff94161560, parseFlags=parseFlags at entry=1026, xmlopt=xmlopt at entry=0x7fff94157830, 
    parseOpaque=parseOpaque at entry=0x0, bootHash=bootHash at entry=0x7fffe800d7e0) at ../../src/conf/domain_conf.c:5036
#8  0x00007ffff73bb6fd in virDomainDefParseXML (xml=xml at entry=0x7fffe800fcc0, root=root at entry=0x7fffe8003c40, ctxt=ctxt at entry=0x7fffe8006950, caps=caps at entry=0x7fff94161560, xmlopt=xmlopt at entry=0x7fff94157830, 
    parseOpaque=parseOpaque at entry=0x0, flags=1026) at ../../src/conf/domain_conf.c:19957
#9  0x00007ffff73bf11c in virDomainDefParseNode (xml=xml at entry=0x7fffe800fcc0, root=0x7fffe8003c40, caps=caps at entry=0x7fff94161560, xmlopt=xmlopt at entry=0x7fff94157830, parseOpaque=parseOpaque at entry=0x0, 
    flags=flags at entry=1026) at ../../src/conf/domain_conf.c:20144
#10 0x00007ffff73bf242 in virDomainDefParse (
    xmlStr=0x7fffe8010630 "<domain type='kvm'>\n  <name>sjt-test</name>\n  <uuid>c7a5fdbd-cdaf-9455-926a-d65c16db1809</uuid>\n  <memory unit='KiB'>220160</memory>\n  <currentMemory unit='KiB'>219200</currentMemory>\n  <vcpu placemen"..., filename=filename at entry=0x0, caps=caps at entry=0x7fff94161560, xmlopt=xmlopt at entry=0x7fff94157830, parseOpaque=parseOpaque at entry=0x0, flags=flags at entry=1026) at ../../src/conf/domain_conf.c:20088
#11 0x00007ffff73bf293 in virDomainDefParseString (xmlStr=<optimized out>, caps=caps at entry=0x7fff94161560, xmlopt=xmlopt at entry=0x7fff94157830, parseOpaque=parseOpaque at entry=0x0, flags=flags at entry=1026)
    at ../../src/conf/domain_conf.c:20104
#12 0x00007ffff73bf2f2 in virDomainDefCopy (src=src at entry=0x7fffe8010f20, caps=caps at entry=0x7fff94161560, xmlopt=0x7fff94157830, parseOpaque=parseOpaque at entry=0x0, migratable=<optimized out>)
    at ../../src/conf/domain_conf.c:27416
#13 0x00007fffc3ad7bca in qemuDomainDefFormatBufInternal (driver=driver at entry=0x7fff94034de0, def=def at entry=0x7fffe8010f20, origCPU=origCPU at entry=0x0, flags=flags at entry=9, buf=buf at entry=0x7ffff0b47870)
    at ../../src/qemu/qemu_domain.c:5246
#14 0x00007fffc3ad815a in qemuDomainDefFormatXMLInternal (driver=driver at entry=0x7fff94034de0, def=def at entry=0x7fffe8010f20, origCPU=origCPU at entry=0x0, flags=flags at entry=9) at ../../src/qemu/qemu_domain.c:5432
#15 0x00007fffc3ad8196 in qemuDomainDefFormatXML (driver=driver at entry=0x7fff94034de0, def=def at entry=0x7fffe8010f20, flags=flags at entry=9) at ../../src/qemu/qemu_domain.c:5444
#16 0x00007fffc3ad81bd in qemuDomainDefCopy (driver=driver at entry=0x7fff94034de0, src=src at entry=0x7fffe8010f20, flags=flags at entry=9) at ../../src/qemu/qemu_domain.c:5218
#17 0x00007fffc3ad8345 in qemuDomainCheckABIStability (driver=driver at entry=0x7fff94034de0, vm=vm at entry=0x7fff940ebbd0, dst=dst at entry=0x7fffe8010f20) at ../../src/qemu/qemu_domain.c:7098
#18 0x00007fffc3b09066 in qemuMigrationBeginPhase (driver=driver at entry=0x7fff94034de0, vm=<optimized out>, 
    xmlin=xmlin at entry=0x7fffe80059a0 "<domain type='kvm'>\n  <name>sjt-test</name>\n  <uuid>c7a5fdbd-cdaf-9455-926a-d65c16db1809</uuid>\n  <memory unit='KiB'>220160</memory>\n  <currentMemory unit='KiB'>219200</currentMemory>\n  <vcpu placemen"..., dname=dname at entry=0x0, cookieout=cookieout at entry=0x7ffff0b47ba8, cookieoutlen=cookieoutlen at entry=0x7ffff0b47b9c, nmigrate_disks=0, migrate_disks=0x0, flags=328)
    at ../../src/qemu/qemu_migration.c:2120
#19 0x00007fffc3b09911 in qemuMigrationBegin (conn=0x7fffd4000d50, vm=<optimized out>, 
    xmlin=0x7fffe80059a0 "<domain type='kvm'>\n  <name>sjt-test</name>\n  <uuid>c7a5fdbd-cdaf-9455-926a-d65c16db1809</uuid>\n  <memory unit='KiB'>220160</memory>\n  <currentMemory unit='KiB'>219200</currentMemory>\n  <vcpu placemen"..., dname=0x0, cookieout=cookieout at entry=0x7ffff0b47ba8, cookieoutlen=cookieoutlen at entry=0x7ffff0b47b9c, nmigrate_disks=0, migrate_disks=0x0, flags=328) at ../../src/qemu/qemu_migration.c:2177
#20 0x00007fffc3b41280 in qemuDomainMigrateBegin3Params (domain=0x7fffe8001e60, params=<optimized out>, nparams=2, cookieout=0x7ffff0b47ba8, cookieoutlen=0x7ffff0b47b9c, flags=<optimized out>)
    at ../../src/qemu/qemu_driver.c:12389
#21 0x00007ffff741abe9 in virDomainMigrateBegin3Params (domain=domain at entry=0x7fffe8001e60, params=<optimized out>, nparams=2, cookieout=cookieout at entry=0x7ffff0b47ba8, cookieoutlen=cookieoutlen at entry=0x7ffff0b47b9c, 
    flags=328) at ../../src/libvirt-domain.c:4832
#22 0x000055555557cec8 in remoteDispatchDomainMigrateBegin3Params (server=0x55555581ef70, msg=0x5555558666b0, ret=0x7fffe8001a30, args=0x7fffe8006910, rerr=0x7ffff0b47ca0, client=<optimized out>)
    at ../../daemon/remote.c:5212
#23 remoteDispatchDomainMigrateBegin3ParamsHelper (server=0x55555581ef70, client=<optimized out>, msg=0x5555558666b0, rerr=0x7ffff0b47ca0, args=0x7fffe8006910, ret=0x7fffe8001a30) at ../../daemon/remote_dispatch.h:7421
#24 0x00007ffff748639c in virNetServerProgramDispatchCall (msg=0x5555558666b0, client=0x555555864260, server=0x55555581ef70, prog=0x55555583e7e0) at ../../src/rpc/virnetserverprogram.c:436
#25 virNetServerProgramDispatch (prog=0x55555583e7e0, server=server at entry=0x55555581ef70, client=0x555555864260, msg=0x5555558666b0) at ../../src/rpc/virnetserverprogram.c:307
---Type <return> to continue, or q <return> to quit---
#26 0x00005555555a8088 in virNetServerProcessMsg (msg=<optimized out>, prog=<optimized out>, client=<optimized out>, srv=0x55555581ef70) at ../../src/rpc/virnetserver.c:148
#27 virNetServerHandleJob (jobOpaque=<optimized out>, opaque=0x55555581ef70) at ../../src/rpc/virnetserver.c:169
#28 0x00007ffff736dba1 in virThreadPoolWorker (opaque=opaque at entry=0x55555580fbd0) at ../../src/util/virthreadpool.c:167
#29 0x00007ffff736cf18 in virThreadHelper (data=<optimized out>) at ../../src/util/virthread.c:206
#30 0x00007ffff6e4d6db in start_thread (arg=0x7ffff0b48700) at pthread_create.c:463
#31 0x00007ffff6b7661f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95


More information about the libvirt-users mailing list