Linux

同時 KVM 實例:控制台和網路干擾

  • July 8, 2011

我在同時執行 KVM 實例時遇到了問題,我真的只能將其描述為乾擾。當我單獨執行一台虛擬機時,無論是通過提供的 sdl 控制台還是通過 ssh,我都可以毫無困難地與之互動。但是,一旦我執行了兩個虛擬機,我就無法:

  • 在 sdl 控制台登錄;正確的使用者名/密碼在第一次嘗試時被宣佈為無效,並進一步嘗試回顯我沒有輸入的文本,例如“r^]o^]o^]t^]”
  • 完成 ssh 連接到受影響的實例

我的客戶端機器是 Debian Squeeze,我的主機是 Arch Linux 2.6.39-ARCH 和 qemu-kvm 0.14.1。以下是我執行兩個乾擾虛擬機的方式:

#!/bin/sh

for f in puppet loadbalance # app0 db_master0 db_slave0 jenkins
do
   qemu-kvm -drive file=$f.qcow2,if=virtio -boot c -netdev type=vde,id=tiny \
       -device virtio-net-pci,netdev=tiny -name $f &
done

如果我使用該-nographic標誌執行機器,我可以完成 ssh 登錄,但最終(在 5 分鐘內)除了一個 ssh 控制台外,其他所有控制台都會遇到非常高的延遲。一旦“集中”,該虛擬機立即響應,而其他虛擬機則變得高延遲。虛擬網路周圍的 ping 失敗,在“集中”機器和所有其他機器之間以及來自我的主機。這裡發生了什麼?

檢查所有實例是否都有唯一的 MAC 地址。聽起來好像存在 MAC 地址衝突問題。

-netdev tap,fd=21,id=hostnet0,vhost=on,vhostfd=23 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:87:ec:d3,bus=pci.0,addr=0x3

這就是我用於網路的東西。當橋接效果很好時,不明白為什麼要使用 vde。特別是,因為無論如何都不推薦用於 QEMU:

VDE VDE 網路後端使用虛擬分佈式乙太網基礎設施來聯網來賓。除非您明確知道要使用 VDE,否則它可能不是最好的後端。

證明連結: http ://wiki.qemu.org/Documentation/Networking#VDE

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