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据说已经解决了这个问题