linux – Xen DomU根文件系统在iSCSI虚拟IP故障转移时变为只读

我的Xen服务器是openSUSE 11.1,带有open-iscsi到我们的iSCSI SAN集群. SAN模块位于启动器连接到的虚拟IP后面的IP故障转移组中.

如果主SAN服务器出现故障,则辅助服务器将扮演目标角色.这一切都由LeftHand SAN / iQ软件处理,在大多数情况下都能很好地工作.

我遇到的问题是偶尔我的一些Xen DomU会在IP故障转移后将其根文件系统设置为只读.它不一致,每次发生故障转移时都会发生在不同的子集上.他们都运行相同的openSUSE 11.1软件映像.

每个DomU的根文件系统由Dom0中的open-iscsi安装,然后Xen使用标准块设备驱动程序将其暴露给DomU.

确切的症状是作为运行触摸/测试的根返回错误“只读文件系统”.但是,mount的输出显示它是以读写方式挂载的.当然,domU上的所有其他I / O也在此时失败,因此机器很难用完.只需使用Dom0中的xm重新启动它,甚至无需重新连接iSCSI会话,一切都可以正常工作.

在Dom0端,故障转移期间的系统日志消息如下所示:

kernel: connection1:0: iscsi: detected conn error (1011)
iscsid: Kernel reported iSCSI connection 1:0 error (1011) state (3)
iscsid: connection1:0 is operational after recovery (1 attempts)

我很难搞清楚在哪个层调试这个问题,它是在DomU内核中的东西吗?或者在Dom0或Xen级别?我认为可能有某些参数需要调整以增加某种超时,但我不知道在哪里看.

我不认为这是open-iscsi的一个问题,因为连接的块设备仍然可以从Dom0读取和写入.

解决方法

我最终通过使用open-iscsi文档中的以下建议和设置解决了这个问题:
8.2 iSCSI settings for iSCSI root
---------------------------------

When accessing the root parition directly through a iSCSI disk,the
iSCSI timers should be set so that iSCSI layer has several chances to try to
re-establish a session and so that commands are not quickly requeued to
the SCSI layer. Basically you want the opposite of when using dm-multipath.

For this setup,you can turn off iSCSI pings by setting:

node.conn[0].timeo.noop_out_interval = 0
node.conn[0].timeo.noop_out_timeout = 0

And you can turn the replacement_timer to a very long value:

node.session.timeo.replacement_timeout = 86400

如上所述,在设置与每个LUN的连接后,即使需要几分钟的时间,故障转移也会像魅力一样工作.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...