0

我已经安装了 open-iscsi,并登录了几个目标。设备已安装,并执行一些 IO。
但是我想断开initiator和target的tcp连接,强制iscsid运行recovery并重新连接。
这该怎么做?

我使用 tcpkill 杀死了一些 tcp 连接,iscsid 将运行恢复并重新连接到目标。但我不知道哪个 tcp 连接属于哪个目标。所以如果我想重新连接target1,我可能会终止target2的tcp连接。
如何识别与目标的 tcp 连接?

4

1 回答 1

1

如果您的目标有不同的 IP 地址,您可以使用 netstat 和 grep 端口 3260 (iscsi)。

$ netstat -nap | grep 3260
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 172.16.10.16:48471          172.16.10.201:3260          ESTABLISHED -    

然后在本地端口和目标 IP 上使用 tcpkill:

$ sudo tcpkill -9 -i eth1 "port 48471 and host 172.16.10.201"

如果您的目标没有不同的 IP 地址,最好的方法是将 iscsid 的日志记录级别提高到2,这样您就可以看到在建立连接时记录的这条消息。

 log_debug(1, "connected local port %s to %s:%s",
           lserv, conn->host, serv);

似乎没有其他方法可以将启动器端端口从 iscsid 中​​取出。

于 2013-08-21T15:11:23.467 回答