0

Я установил open-iscsi и имею логин для нескольких целей. Устройство смонтировано и выполняет несколько операций ввода-вывода.
Но я хочу отключить tcp-соединение инициатора и цели, заставить iscsid запустить восстановление и снова подключиться.
Как это сделать?

Я использовал tcpkill, чтобы убить некоторое соединение tcp, и iscsid запустит восстановление и снова подключится к цели. Но я не знаю, какое соединение tcp принадлежит целевой. Поэтому, если я хочу повторно подключить target1, я могу убить tcp-соединение target2.
Как определить соединения 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