Libvirt

為什麼我不能用 virsh 保存網路更改?

  • September 1, 2017

我正在嘗試將固定地址添加到特定的虛擬主機,因此我關閉了虛擬機並使用了sudo virsh net-edit somenet. 添加線後

<host mac='52:54:00:26:61:22' name='virt.example.com' ip='192.168.111.111' />

我保存並退出。然後我用相同的命令再次檢查並恢復了以前的狀態,我的更改消失了。

同時,當我查看時/etc/libvirt/qemu/networks/somenet.xml,我的更改被應用。

如果我再次啟動我的虛擬機,它會從 DHCP 池 ( 192.168.111.170) 中獲取 IP,但不是我上面定義的地址。

當我在更改後重新啟動 libvirt-service 時,情況似乎相同:在配置文件中是我的更改,virsh我看到 vanilla 狀態和虛擬機獲取錯誤的 IP。

這裡有什麼問題?

編輯。在此處添加完整的 XML。這是我在下面看到的conf /etc

<network>
 <name>somenet</name>
 <uuid>80d85710-23bb-1ab6-79e6-cd65c6739714</uuid>
 <bridge name='virbr1' stp='on' delay='0' />
 <mac address='52:54:00:90:75:1A'/>
 <domain name='example.com'/>
 <ip address='192.168.111.1' netmask='255.255.255.0'>
   <dhcp>
     <range start='192.168.111.100' end='192.168.111.254' />
     <host mac='52:54:00:26:61:22' name='virt.example.com' ip='192.168.111.111' />
   </dhcp>
 </ip>
</network>

這是我看到的conf virsh

<network>
 <name>somenet</name>
 <uuid>80d85710-23bb-1ab6-79e6-cd65c6739714</uuid>
 <bridge name='virbr1' stp='on' delay='0' />
 <mac address='52:54:00:90:75:1A'/>
 <ip address='192.168.111.1' netmask='255.255.255.0'>
   <dhcp>
     <range start='192.168.111.128' end='192.168.111.254' />
   </dhcp>
 </ip>
</network>

對網路所做的更改會在下次啟動網路時發生。您需要執行這一系列操作。

virsh net-edit somenet
virsh net-destroy somenet
virsh net-start somenet

要確認這一點,請參閱virsh net-edit 的功能

請注意,像這樣重新啟動網路將終止使用該網路的任何 VM 的網路連接。當您再次啟動網路時,它們不會重新連接;您必須重新啟動域或使用brctl手動將虛擬機介面移動到新網橋 。

編輯:libvirt wiki描述了這種情況,還指向了一個用於重新建立網路連接的腳本。

引用自:https://serverfault.com/questions/571795