是否可以在不重新启动VM的情况下修改libvirt虚拟机网络相关配置?

是否可以在不重新启动VM的情况下修改libvirt虚拟机网络相关配置?

假设我有一个名为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关联而不是。是否可以在不重新启动虚拟机的情况下应用这些更改?显然,一种选择是使用或实用程序手动设置它,但也许也可以使用?vnet24br3br2ipbrctlvirsh

答案1

如果您有 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

还有一个有趣的附加接口命令,它可以让您动态添加新接口(https://www.libvirt.org/manpages/virsh.html#attach-interface

相关内容