Xen DomU的瞬态networking丢失

我们有一个CentOS服务器运行一个虚拟集群。 偶尔集群的内部networking出现一分钟左右……然后回来。 这个问题在某种程度上与实际的networkingstream量有关,但这不是一个简单的负载问题。 (系统一般轻载,无论实际负载如何都会出现问题。)

设置:

  • Dom0上的CentOS 5.6,DomU上的各种CentOS
  • 硬件 – 具有BroadCom NextXpress 2网卡(叹息)的Dell R710
    • 使用BroadCom最新的NIC驱动程序
  • Xenconfiguration为使用网桥和vif桥
  • 一些iptable的调整将一个不相关的端口路由到一个虚拟。

系统有一个外部可见的IP地址,而Dom0运行一个configuration了许多虚拟主机的Apache httpd,每个虚拟主机反向代理运行在虚拟机上的Web服务器。 (这些虚拟机必须是NAT的,主要是因为我们没有足够的公共IP地址。)

症状:

  • 大部分时间都能正常工作。
  • 当有人试图将一个大file upload到一个虚拟机时,内部networking就会退出…对于所有的虚拟机:
    • Dom0 httpd看到在虚拟上与后端服务器对话的networking超时,并报告502。
    • 以前build立的从Dom0到任何DomU冻结的ssh连接。
    • 我们的监测显示虚拟之间的stream量的ping失败。
    • DomU的Xen控制台不会冻结。
    • 没有任何日志文件,我可以看到,在Dom0或DomU的…除了Dom0的httpd日志。
    • 一分钟左右后,问题自行消失。

这是100%可重复的。

我们已经尝试过了:

  • 在Dom0上下载,构build并安装最新的BNX2驱动程序
  • closures网卡上的MSI – 将“options bnx2 disable_msi = 1”添加到/etc/modprobe.conf
  • closurestcp分段卸载 – “ethtool -K eth0 tso off”。
  • 在午夜牺牲一只黑公鸡。

我已经用尽了所有的select,除了切换到KVM …或屠杀更多的公鸡。

有什么build议么?

我们最终确实发现了这个问题。 事实certificate,这是由我们的虚拟networkingconfiguration中的问题引起的。 出于某种原因,我再也不能记住了,特定下载的networkingstream量正在通过虚拟networking进行额外的循环。 当一个用户试图上传一个大文件时,下载就是把所有可用的内核networkingcachingclosures。 这导致整个networking冻结…直到超时,这一切都没有受到伤害。

对不起,这有些含糊,但是可能会为遇到类似问题的人提供一些提示。

也许有一些networking线程连接虚拟主机,上传大文件最终占用他们所有的人,其余的都失去了信号。 我没有其他的猜测。 抱歉。

您可以看看内存过度使用和/或交换configuration。 如果两者中的任何一个都“被调整”,那么大型file upload可能是pipe理这些资源的触发器 – 导致在pipe理完成之前不可用。

你确定你没有MAC地址冲突吗?

这只是一个疯狂的猜测,但是如果一个人复制Xen domUconfiguration文件,却很容易发生,但忘记在每个domU和接口中将MAC更改为唯一的。 我已经看到这个奇怪的networking问题,偶尔所有连接丢失了60秒。