我已经安装了 open-iscsi,并登录了几个目标。设备已安装,并执行一些 IO。
但是我想断开initiator和target的tcp连接,强制iscsid运行recovery并重新连接。
这该怎么做?
我使用 tcpkill 杀死了一些 tcp 连接,iscsid 将运行恢复并重新连接到目标。但我不知道哪个 tcp 连接属于哪个目标。所以如果我想重新连接target1,我可能会终止target2的tcp连接。
如何识别与目标的 tcp 连接?
问问题
1867 次
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 回答