iSCSI、故障转移和 XenServer

iSCSI、故障转移和 XenServer

我有一个 iSCSI 故障转移实施设置,因此如果我的一个存储单元发生故障,另一个存储单元会立即接管(它还运行 NFS 共享)。发生故障转移时,会导出卷,将 IP 切换到另一台机器,并重新配置目标。存储系统本身的故障转移工作正常。我将 NexentaStor 用于我的文件管理器。

当我对存储进行测试(手动)故障转移时,发生以下情况:

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

  1. 所有基于 NFS 的虚拟机在故障转移期间和之后均保持正常运行
  2. 在 iSCSI 上运行的所有 VM 最终都会报告以下内容:
    • 无法写入特定块的错误
    • 关于日志无法正常工作的错误
    • 然后文件系统进入RO

为了使虚拟机再次运行,我必须执行以下操作:

  1. 强制关闭“损坏的”虚拟机。
  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!")"我发现修复该错误的唯一方法是重新启动之前运行它的整个服务器,这显然非常麻烦。

目前多路径尚未启用(但可以启用,但仍然会发生相同的情况)。我已编辑了 /etc/iscsid.conf 文件的大部分内容以配合超时设置,但无济于事。

简而言之,我的存储可以正常故障转移,但 XenServer 无法保持连接。我想,上面第 4 点显示的错误可能是最终原因,修复该错误是否可以解决所有问题?

任何帮助都会得到感激。

答案1

我在 iSCSI 故障转移方面遇到了非常类似的问题。这个问题。您可以查看我自己发现的可接受的解决方案,以了解我如何解决这个问题。

基本上它涉及设置

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

以便 iSCSI 会话在向内核报告错误之前有足够的时间进行恢复。

答案2

xe-toolstack-restart帮我修好了。

相关内容