在我们的QEMU/KVM虚拟化环境中,当所有的虚拟机启动时需要自动添加一个ivshmem设备,用于虚拟机与宿主机之间通信。为了添加该设备,我们需要在调用QEMU时,添加上ivshmem设备的相关参数,例如:
1 | -device ivshmem,shm=fg_i3,size=8m,bus=pci.0,addr=0x1f |
Libvirt使用XML文件来定义虚拟机配置,并根据XML文件来生成QEMU命令行参数,进而执行QEMU程序来启动虚拟机实例。我们可以在所有虚拟机的XML文件的<devices>节点中添加上<shmem>配置,如:
1 | <shmem name="fg_i3"> |
这样,libvirt启用QEMU实例时,则会添加如下参数:
1 | -device ivshmem,id=shmem0,size=8m,shm=fg_i3,bus=pci.0,addr=0x1f |
Guest启动后,登录查看PCI设备,可以看到相应的ivshmem设备: