open-iscsi をインストールし、複数のターゲットにログインしています。デバイスがマウントされ、IO が実行されます。
しかし、イニシエータとターゲットの tcp 接続を切断し、強制的に iscsid でリカバリを実行して再接続したいと考えています。
これを行う方法?
tcpkill を使用して一部の tcp 接続を強制終了しました。iscsid はリカバリを実行し、ターゲットに再接続します。しかし、どの tcp 接続がどのターゲットに属しているかはわかりません。したがって、target1 に再接続したい場合は、target2 の tcp 接続を切断できます。
ターゲットへの tcp 接続を識別する方法は?
1867 次
1 に答える
1
ターゲットの IP アドレスが異なる場合は、ポート 3260 (iscsi) に対して netstat と grep を使用できます。
$ 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 に答える