libvirt 的網路設定檔應該保存在哪裡?

libvirt 的網路設定檔應該保存在哪裡?

我在 libvirt 上玩得很開心。我刪除了預設的 NAT 網絡,並嘗試為虛擬機器添加橋接器。根據 libvirt 的 wiki 和網路XML格式|使用現有的主橋,我有以下內容:

<network>
    <name>host-bridge</name>
    <forward mode="bridge"/>
    <bridge name="br0"/>
</network>

我將文件另存為host-bridge.xml。我把它複製到兩個/etc/libvirt//usr/share/libvirt/schemas。然而,無論我嘗試什麼,我總是得到:

$ sudo virsh net-create host-bridge
error: Failed to open file 'host-bridge': No such file or directory
$ sudo virsh net-create host-bridge.xml
error: Failed to open file 'host-bridge.xml': No such file or directory

該計算機正在執行 Ubuntu Server 14.03 LTS。根據brctl, 橋br0確實存在,而且它的使用eth1

libvirt 的網路設定檔應該保存在哪裡?

答案1

在我的基於(CentOS)的系統上,它們位於/var/lib/libvirt/network(這對於libvirt.org維基百科的答案)但是烏班圖維基建議/etc/libvirt/qemu(在 libvirt guest 配置部分)

答案2

為了添加@davidgo的答案......我執行了:

sudo mv /opt/libvirt/host-bridge.xml /etc/libvirt/qemu/networks

一旦網路檔案位於您想要的位置:

$ sudo cat /etc/libvirt/qemu/networks/host-bridge.xml 
<network>
  <name>host-bridge</name>
  <uuid>88c0529e-4813-43fa-af27-01af164249ed</uuid>
  <forward mode='bridge'/>
  <bridge name='br0'/>
</network>

您仍然需要 (1) 定義它或 (2) 創建它實際上在虛擬機器中使用它。如果您希望它是持久的,那麼您需要定義它,因為它是永久的(創建是暫時的):

virsh net-define /etc/libvirt/qemu/networks/host-bridge.xml

定義網路後,將新增 UUID,然後您可以在虛擬機器的 XML 檔案中引用它:

sudo grep -R "host-bridge" /etc/libvirt/
/etc/libvirt/qemu/Debian_7_x86.xml:      <source network='host-bridge'/>
/etc/libvirt/qemu/Debian_7_x64.xml:      <source network='host-bridge'/>
/etc/libvirt/qemu/Debian_8_x86.xml:      <source network='host-bridge'/>
/etc/libvirt/qemu/Debian_8_x32.xml:      <source network='host-bridge'/>
/etc/libvirt/qemu/Debian_8_x64.xml:      <source network='host-bridge'/>
...

它也將出現在networks/autostart資料夾:

sudo grep -R "host-bridge" /etc/libvirt/
...
/etc/libvirt/qemu/networks/autostart/host-bridge.xml:  <name>host-bridge</name>

最後,您應該會看到類似以下內容:

$ virsh net-list --all
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 host-bridge          inactive   yes           yes

另請參閱 libvirt 的網路定義(永恆的),網路創建(瞬態)和網路自動啟動

答案3

對我有用的只是將它放在我運行sudo virsh net-create host-bridge的同一目錄中。

相關內容