我有几个运行xen的linux系统的问题。 他们充当虚拟机pipe理程序,并使用多path设置将它们连接到SAN,以向guest虚拟机提供存储。
时不时的两个path之一失败,但它可以通过运行快速恢复:
multipath multipath -ll
我需要深入了解问题的原因,并找出原因。 我注意到,当pipe理程序不太忙(networking和I / O明智)时,不会发生这种情况。 我也通过将所有服务移动到相同的新机箱来消除了可能的硬件问题。 我已经收集了几个系统日志,可能表明NIC模块问题或内核问题,多path失败可能只是这个结果! 以下是多path下降时总是显示的一些日志:
kernel: BUG: soft lockup - CPU#0 stuck for 60s! [swapper:0] kernel: BUG: soft lockup - CPU#2 stuck for 60s! [events/2:76]
在这篇文章的最后我会粘贴完整的日志,以便于阅读。 现在多一点关于我的设置:
服务器:
CentOS版本5.7(最终)2.6.18-274.18.1.el5xen
filename:/lib/modules/2.6.18-274.18.1.el5xen/kernel/drivers/net/igb/igb.ko
版本:3.0.6-k2-1
logging01
如果有人需要更多的细节,请联系。 任何帮助都感激不尽。
由于这似乎是一个iSCSI设置,有几个地方可以进行path故障转移。
多path设置对线路上的延迟非常敏感,iSCSI +以太网将比光纤通道环境更多。 一些扑动将是正常的。
由于这似乎发生在HVM忙时,这表明内核NICpath正在获取数据拥挤或饿死CPU(可能两者),这是触发多path故障切换。 对此你可以做的不多,但你可以缩小范围,这样你就可以更好地解释为什么它正在做什么。
服务器负载很容易,听起来像你已经做到了。
诊断拥塞是困难的。 如果您的networking端口带宽监视器没有显示大量的stream量,但是您发布的日志条目仍然发生,这是服务器内部堵塞的迹象。 如果在这些事件中的一个事件中,您实际上可以获取数据包捕获,则带有时间戳的数据包计数将告诉您是否真的在通过的stream量中看到10秒的间隔; 肯定的迹象表明服务器内部堵塞。
解决这个问题很可能是针对驱动程序的,可能会调整TCP / IP协议栈的可调参数。