0

我已經安裝了open-iscsi,並登錄了多個目標。該設備已安裝,並執行一些IO。
但我想斷開啓動器和目標的tcp連接,強制iscsid運行恢復並重新連接。
如何做到這一點?

我已經使用tcpkill來殺死一些tcp連接,並且iscsid將運行恢復並重新連接到目標。但我不知道哪個tcp連接屬於哪個目標。所以如果我想重新連接target1,我可能會終止target2的tcp連接。
如何識別到目標的tcp連接?如何強制iscsid重新連接目標?

回答

0

如果您的目標具有不同的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 -  

然後使用tcpkill上的本地端口和目的IP:

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

如果你的目標沒有不同的IP地址,它看起來像最好的辦法是增加iscsid的日誌記錄級別到,以便您可以看到此消息在建立連接時記錄下來。

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

似乎沒有其他方法可以將啓動器端口從iscsid中取出。

+0

最後我在iscsiadm中添加了一個命令來獲取某個連接的src ip和src端口。 – pengdu