如果两条路径同时获得写入请求,则使用具有两个 DRBD 主节点的 iSCSI是个坏主意。但我正在考虑将这个想法用作 ESXi 5.5U2 主机的后端存储。
我已经使用主要/次要配置和经典的故障转移集群对此进行了测试。
ESXi 在这一点上所做的是它检测到多路径并且仅主动使用一个路径。所以在这个星座中,并发写入 io 问题似乎没有出现。
现在这两种情况(主要/次要或主要/主要)的问题是:如何关闭与 iSCSI 客户端(iSCSI 术语中的 iSCSI 发起程序)具有活动打开连接的 iSCSI 服务器(iSCSI 术语中的 iSCSI 目标提供程序)?
我目前在目标服务器上使用 CentOS 5。
CO5 使用 tgtd 来提供目标。令我惊讶的是,如果有连接的客户端,正常的停止方法会失败。相反,在这种情况下,强制停止似乎是我需要的。
我想彻底关闭一台服务器(我必须停止对目标的访问,这样我才能将 drbd 切换到辅助服务器),然后另一台服务器应该自动变为活动状态(恕我直言,在这个星座中无事可做)。
在这种情况下的问题:以下是否可以,或者我错过了什么?
- 强制停止 tgtd(将首先使目标脱机)
- 将 IP 拆除到启动器的方向(与用于 drbd-replication 的线路不同)
- 关闭 drbd (首先使其成为次要)
- 重新启动或关闭服务器
是的,我确实错过了一些东西。问题仍然是底层协议(SCSI)是一个有状态的协议。因此,即使我设法关闭目标(例如强制停止),它也会使活动启动器处于“挂起”状态。
但是:在我的用例中,有一个解决问题的方法。
所以我的问题的正确答案似乎是:
短:没有正确的方法。您的客户将挂起。
龙:视情况而定。如果您有一个层能够首先正确地使 iSCSI 流量静音/终止,您可以在之后终止目标(即使目标服务器仍然认为有连接的启动器客户端)。