LINUX.ORG.RU
ФорумAdmin

FreeBSD iscsi timeout

 ,


0

3

Всем привет!

Имеется ISCSI таргет поднятый на Windows 2012 R2, имеется FreeBSD 10.1-STABLE r277756 к котороая выступает в качестве инициатора. Подключил таргет без проблем, создал там ZFS пул, скорость отличная. Решил сделать имитацию пропадания связи между таргетом и инициатором (под виндой задисейблил сетевое подключение через которое подключается инициатор). После этого, на фре, любая команда которая обращается к /dev/da0 зависает. Даже выполнения reboot не срабатывает и продолжает висеть. Но при этом сервер живой, можно подключиться по ssh. Ничего кроме хард ресета не помогает.

Следующие команды не срабатывают, продолжаюи висеть в консоли в неубивабельном состоянии:

umount -f /iscsi/fl1
zpool iostat 1
zfs umount /iscsi/fl1/
zpool offline fl1 da0p1
reboot

Настройки: cat /etc/iscsi.conf:

fl1 {
	TargetAddress   = 172.16.27.109:3260
	TargetName      = iqn.1991-05.com.microsoft:qnss008-fl1-target
	InitiatorName	= fl1
	AuthMethod      = CHAP
	chapIName       = fl
	chapSecret      = ***********
}

dmesg:

da0 at iscsi0 bus 0 scbus8 target 0 lun 0
da0: <MSFT Virtual HD 6.3> Fixed Direct Access SCSI-5 device 
da0: Serial Number EFA47AB1-0935-4067-88E8-8CCD9D1585B0
da0: 8912648MB (18253103104 512 byte sectors: 255H 63S/T 1136203C)

Через пол часа или час имитации пропадания связи, в dmesg появилось:

(da0:iscsi0:0:0:0): WRITE(10). CDB: 2a 00 00 2e dc 48 00 00 08 00 
(da0:iscsi0:0:0:0): CAM status: CCB request completed with an error
(da0:iscsi0:0:0:0): Retrying command
da0 at iscsi0 bus 0 scbus8 target 0 lun 0
da0: <MSFT Virtual HD 6.3> s/n EFA47AB1-0935-4067-88E8-8CCD9D1585B0 detached
/dev/da0 пропал и я смог перезагрузить сервер. Но сервак так и не перезагрузился. Скорее всего завис на этапе размонтирования.

Собственно 2 вопроса:

1. как размонтировать/перемонтировать/оживить сервер без хард ресета и ситуациях когда пропадает связь с таргетом?

2. как вообще разруливать ситуации когда виндовый сервер нужно перезагрузить? Отключать таргеты на всех серверах не вариант. Пускай даже подключенный таргет будет висеть пока сервак перезагружается. Но как сделать чтоб инициатор восстанавливал соединие когда таргет стал доступен и продолжал I/O операции?

Заранее благодарен за ответы!

★★★★★

iscsi multipath

резервные сетевые подключения + резервные свитчы + резервные тагерты

axelroot
()

сервер нужно перезагрузить? Отключать таргеты на всех серверах не вариант.

с двух серверов отдаешь блочные устройства по сети, ну а во фре используя zfs объединяешь их диски в зеркало.

axelroot
()
Ответ на: комментарий от axelroot

iscsi multipath

резервные сетевые подключения + резервные свитчы + резервные тагерты

Спасибо, почитаю.

с двух серверов отдаешь блочные устройства по сети, ну а во фре используя zfs объединяешь их диски в зеркало.

Во-первых, петобайты зеркалировать слишком накладно. Во-вторых, даже если сделать zfs зеркало с нескольких таргетов, все равно прийдется ждать пока таргет отвалится по таймауту и переподключать его вручную.

Неужели у iscsi на уровне протокола не предусмотрено рекаведи после возобновления коннекта?

iron ★★★★★
() автор топика
Ответ на: комментарий от iron

Неужели у iscsi на уровне протокола не предусмотрено рекаведи после возобновления коннекта?

Айсказе в этом плане вообще пофиг. Тут всё зависит от того, как устроен инициатор.

У меня давно пашет кластер по iscsi через 10гбит, где таргет - ящик с линухом, а инициаторы - vmware esxi. Так вот там никаких проблем с реконнектами нет - io просто зависает на какое-то время если все пути до таргета умерли. Но такого, конечно, допускать не надо (дублируем всё).

Так что тут какие-то фряшные «особенности», но тут «лор», а не «фор», поэтому спецов по бсде мало.

blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

на какое-то время если все пути до таргета умерли

Вопрос как раз - на какое. Когда автору ждать отвиса.

zgen ★★★★★
()
Ответ на: комментарий от zgen

Вопрос как раз - на какое. Когда автору ждать отвиса.

Вот это уже я хрен знает - написал, что зависит от инициатора. Фрю последний раз видел лет 8 назад :D В линухе достаточно быстро, насколько я помню, отваливается диск. И это настраиваемо, вроде, в недрах sysfs.

blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

off: linux надо с примонтированной smbfs тестить с потерей сети. Последний раз когда приходилось - подвисал намертво весь io на неопределенное время.

zgen ★★★★★
()
Ответ на: комментарий от zgen

off: linux надо с примонтированной smbfs тестить с потерей сети. Последний раз когда приходилось - подвисал намертво весь io на неопределенное время.

Незнаю как там в Линуксах, но во FreeBSD 10.1 примонтированная шара через mount_smbfs возобновляет подключения после перезагрузки Win 2012 R2. Заслуга ли это винды или реализации smbfs во фре - неизвестно.

В общем, все пляски с бубном над iscsi не увенчались успехом. Остановился на NFS, который отвечает всем моим требованиям к скорости и надежности. Благо Win 2012 R2 поддерживает NFS client & server искаропки.

Что касается iscsi... Да, там есть multipath и можно сделать зеркало с двух одинаковых таргетов. Но multipath не спасет от перезагрузки сервера который является таргетом. А зеркалировать теробайты, а порой и петобайты, никто не будет.

Я допускаю, что FreeBSD-шная реализация инициатора не поддерживает корректный автореконнект к таргету. Возможно как-то на досуге попробую ту же процедуру с линуксовым инициатором.

Всем большое спасибо. Хоть проблему не решил, но зато разобрался с iscsi.

iron ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.