On 9/26/22 15:06, 陈新隆 wrote:
<
https://stackoverflow.com/posts/73854544/timeline>
I'm using Kubevirt to manage my virtual machine instances. When I using
Kubevirt to create a vm(with two GPUs), kubevirt will generate a libvirt
guest domain xml for this vm which includes two GPUs, the domain xml as
follow :
|<hostdev mode='subsystem' type='pci' managed='no'>
<driver
name='vfio'/> <source> <address domain='0x0000'
bus='0x83' slot='0x00'
function='0x0'/> </source> <alias name='ua-gpu-gpu0'/>
<address
type='pci' domain='0x0000' bus='0x06' slot='0x00'
function='0x0'/>
</hostdev> <hostdev mode='subsystem' type='pci'
managed='no'> <driver
name='vfio'/> <source> <address domain='0x0000'
bus='0x84' slot='0x00'
function='0x0'/> </source> <alias name='ua-gpu-gpu1'/>
<address
type='pci' domain='0x0000' bus='0x07' slot='0x00'
function='0x0'/>
</hostdev> |
No one ever edit this domain xml, but these two |hostdev| element
disappeared in the domain xml. During this time, I've run
the |gpu_burn| command to do a stress test for these two GPUs.
My question is :
* when will libvirtd change the guest domain xml ?
* why libvirtd delete these two |hostdev| from domain xml ?
Libvirt does not remove anything from domain XML (except for the
elements it does not understand, but this is not the case). My suspicion
is that you're looking at live XML instead of inactive XML or vice
versa. Libvirt allows guests to be defined (i.e. libvirt manages their
inactive definition). However, a guest can be started with wildly
different configuration (e.g. without those two <hostdev/>-s). OR, they
might have been hot-unplugged.
This article can explain more details:
https://wiki.libvirt.org/page/VM_lifecycle
Michal