Libvirt

是否可以在不重啟VM的情況下修改libvirt虛擬機網路相關配置?

  • April 22, 2021

假設我有一個名為test以下配置的虛擬機:

$ virsh dumpxml test
<domain type='kvm' id='42'>
 <name>test</name>
 <uuid>4b72f3be-41f5-41ec-8149-647ab73d92f7</uuid>
 /* output removed for brevity */
   <interface type='bridge'>
     <mac address='52:54:00:fb:3f:85'/>
     <source bridge='br1'/>
     <target dev='vnet23'/>
     <model type='virtio'/>
     <alias name='net1'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
   </interface>
   <interface type='bridge'>
     <mac address='52:54:00:94:7d:c8'/>
     <source bridge='br2'/>
     <target dev='vnet24'/>
     <model type='virtio'/>
     <alias name='net2'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
   </interface>
 /* output removed for brevity */
 </devices>
</domain>

$

現在我編輯配置virsh edit test並關聯vnet24withbr3而不是br2. 是否可以在不重新啟動虛擬機的情況下應用這些更改?顯然,一種選擇是使用ipbrctl實用程序手動設置它,但也許它也有可能virsh嗎?

如果您有文件 update.xml

<interface type='bridge'>
 <mac address='52:54:00:94:7d:c8'/>
 <source bridge='br3'/>
 <target dev='vnet24'/>
 <model type='virtio'/>
 <alias name='net2'/>
</interface>

你可以做

sudo virsh update-device test update.xml --persistent

請注意,我<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>從 update.xml 中省略了,因為如果由於某種原因不這樣做,我將無法添加 –persistent 標誌。–persistent 標誌等於 –live(應用於正在執行的域) –config(影響下一次啟動)

來源:https ://www.libvirt.org/manpages/virsh.html#update-device

還有一個有趣的 attach-interface 命令,它可以讓你動態添加一個新介面(https://www.libvirt.org/manpages/virsh.html#attach-interface

引用自:https://unix.stackexchange.com/questions/645233