Networking
有沒有辦法確定哪個虛擬介面屬於 kvm 主機中的虛擬機?
我正在使用帶有橋接網路的 qemu/kvm。在主機中有幾個沒有 IP 的“vnetX”網路介面。我正在尋找一種方法來知道哪個 vnetX 屬於虛擬機。
我嘗試將這些介面上的 MAC 地址值與虛擬機上的 MAC(或定義它們的 XML)匹配,但不匹配。
有 brctl show 顯示屬於網橋的 vnet 介面,但這不是有用的資訊。
有沒有辦法知道這種關係?謝謝!!
這個怎麼樣(例如
vnet13
):$ VNET=vnet13; for vm in $(virsh list | grep running | awk '{print $2}'); do virsh dumpxml $vm|grep -q "$VNET" && echo $vm; done
這裡我們
virsh dumpxml
用來顯示有關 VM 的動態屬性,這些屬性在 /etc/libvirt/qemu/foo.xml 中的 VM 的靜態 XML 定義中不可用。哪個vnetX
介面連接到哪個虛擬機就是這樣一個動態屬性。虛擬機的 MAC 地址也是如此。
試試
virsh dumpxml $domain
,你會看到類似的東西:<interface type='network'> <mac address='52:54:00:9d:9d:10'/> <source network='default'/> <target dev='vnet1'/> <model type='e1000'/> <alias name='net1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/>
這
alias name
是在 qemu-kvm 命令行中使用的,所以如果你ps -ef |grep qemu|grep net1
從我的例子中執行,你會看到這個介面使用的實際命令語法。