重负载下,kvm 网络中断的问题

Ubuntu 12.04 LTS环境下,安装KVM虚拟机。当系统的网络负载高的时候,会出现网络突然中断的问题,现象是:

  • 突然之间,网络完全中断,无法从网络访问虚拟机
  • 用vnc或者console登录虚拟机,发现虚拟机还在正常工作,没有奔溃
  • 使用 ifdown eth0; ifup eth0,可以立即恢复网络
  • 网络负载越大,故障出现的频率越高。一天会出现几次,经常一两个小时就网络崩溃一次。轻网络负载的机器,没有出现故障
  • 只有virtio网络驱动会出现这个问题,e1000没有问题

搜索了一下,发现ubuntu 12.04和centos 6.2都会出现这样的问题:

https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/997978

http://bugs.centos.org/view.php?id=5526

几个解决办法:

1、使用 e1000替代virtio

2、使用 vhost_net 模块

echo vhost_net > /etc/modules

modprobe vhost_net

然后重新启动虚拟机,libvirtd就会自动使用 vhost_net

3、等待正式的补丁

目前ubuntu已经出了ppa,有人使用了一周多,一直正常。

centos 6.3据说已经解决了这个问题

此条目发表在DEVOPS, OpenStack分类目录,贴了标签。将固定链接加入收藏夹。