iSCSI,故障转移和XenServer

我有一个iSCSI故障转移实施设置,所以如果我的一个存储单元失败,另一个立即接pipe(它也运行NFS共享)。 发生故障转移时,将导出卷,将IP切换到另一台机器,并重新configuration目标。 存储系统本身的故障恢复正常。 我使用NexentaStor作为我的文件pipe理器。

当我做一个testing(手动)对我的存储进行故障切换时,会发生以下情况:

注意:我在iSCSI上运行NFS和基于客户的虚拟机上的pipe理虚拟机

  1. 所有基于NFS的虚拟机都保持正常运行,并通过故障转移完成
  2. 所有在iSCSI上运行的虚拟机最终报告如下:
    • 关于无法写入特定块的错误
    • 关于日记的错误不起作用
    • 然后文件系统转到RO

为了让虚拟机再次工作,我必须做到以下几点:

  1. 强制closures“破碎的”虚拟机。
  2. 分离iSCSI SR
  3. 重新连接iSCSI SR
  4. 在不同的服务器上启动虚拟机(我的池中有5个)如果我不在另一台服务器上启动,我得到这个错误"Internal error: Failure("The VDI <uuid&gt; is already attached in RW mode; it can't be attached in RO mode!")"我发现修复这个错误的唯一方法是重启之前运行的整个服务器,这显然是一个巨大的痛苦。

目前多path没有启用(但可以和同样的事情仍然发生)。 我编辑了很多/etc/iscsid.conf文件来处理超时设置,但无济于事。

总之,我的存储故障转移正常,但XenServer不保持连接活着。 作为一个想法,上面#4中显示的错误可能是最终的原因和解决办法,将解决一切?

任何帮助,将不胜感激,比你知道的。

我有一个与iSCSI故障切换非常类似的问题。 这个问题已经解决了。 你可以看到我自己发现的我接受的解决scheme,了解我如何解决这个问题。

基本上涉及设置

 node.conn[0].timeo.noop_out_interval = 0 node.conn[0].timeo.noop_out_timeout = 0 node.session.timeo.replacement_timeout = 86400 

这样iSCSI会话就有足够的时间来恢复,然后再将错误报告给内核。

xe-toolstack-restart为我解决了这个问题。