无法使用 KVM 运行具有三个以上网络接口的虚拟机

无法使用 KVM 运行具有三个以上网络接口的虚拟机

我在 Ubuntu 10.10 Server 上运行 KVM

我可以正常创建 VM(虚拟机)和网络接口,但似乎无法添加超过三个网络接口。一旦我拥有一个具有四个网络接口的 VM,它就会在启动时卡在 SeaBIOS 的起始页面上,并显示以下消息:

Starting SeaBIOS (version pre-0.6.1-20100702_143500-palmer)

到目前为止,我已经使用两台虚拟机、一台 Ubuntu 10.10 桌面和一台 Vyatta 路由器验证了这一点。我分配给虚拟机的特定网络硬件似乎并不重要。我试图使用 Vyatta 在它们之间路由一个桥接接口和三个私有网络。

有人知道为什么我不能运行具有三个以上网络接口的虚拟机吗?

编辑:此外,负责特定 VM 的 KVM 线程挂起,使用 ~100% CPU(即一个核心)。以下是挂起进程的命令:

/usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name vyatta -uuid 6dff7c94-6810-423e-5fea-fec10da0e9b7 -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/vyatta.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=utc -boot c -drive file=/home/rams/virtual-machines/vyatta.img,if=none,id=drive-ide0-0-0,boot=on,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -device rtl8139,vlan=0,id=net0,mac=00:54:00:be:cc:4b,bus=pci.0,addr=0x3 -net tap,fd=97,vlan=0,name=hostnet0 -device rtl8139,vlan=1,id=net1,mac=52:54:00:da:59:ed,bus=pci.0,addr=0x5 -net tap,fd=98,vlan=1,name=hostnet1 -device rtl8139,vlan=2,id=net2,mac=52:54:00:ce:22:b6,bus=pci.0,addr=0x6 -net tap,fd=99,vlan=2,name=hostnet2 -device rtl8139,vlan=3,id=net3,mac=52:54:00:1e:bc:46,bus=pci.0,addr=0x7 -net tap,fd=101,vlan=3,name=hostnet3 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -vnc 127.0.0.1:0 -k en-us -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4

编辑:我还在 dmesg 中发现了一个可能相关的错误(在详细模式下运行 virtd 时也会显示):

14:47:24.399: warning : qemudParsePCIDeviceStrs:1422 : Unexpected exit status '1', qemu probably failed

我也尝试过禁用应用程序保护,但似乎没有什么区别。

答案1

奇怪,我刚刚在 Fedora 14 上启动了一个虚拟机,并且连接了 4 个 NIC。

答案2

我不认为这是 NIC 数量的问题——您是否使用 libvirt 创建客户机?看起来它正在使用 RealTek (rtl8139) qemu 驱动程序,这些驱动程序有时会在 KVM 下导致冻结或其他问题。我会尝试将它们切换到 e1000 或 virtio。

virsh dumpxml vm1 > vm1definition.xml
virsh destroy vm1

编辑 xml 文件并rtl8139在每个 NIC 定义中替换为virtioe1000

virsh create vm1definition.xml

相关内容