Один iSCSI таргет и несколько инитиаторов

Status
Not open for further replies.

Alex18

Dabbler
Joined
Feb 20, 2018
Messages
10
Не могу найти однозначного ответа на этот вопрос ( не сколько FreeNAS, сколько iSCSI в целом).

Возможно ли использование одного iSCSI таргета одновременно несколькими клиентами?
Разумеется, речь идет по кейс, когда на презентованном raw устройстве используется соответствующая кластерная файловая система, например GFS2 или OCFS2.

Насколько я знаю, iSCSI протокол (изначально?) не предполагал доступа двух устройств к одному диску. Текущая имплементация CTL в FreeBSD также сыпет варнингами, когда один и тот же таргет используется двумя устройствами. Тем не менее это работает - на одном клиенте я делаю dd в iSCSI диск и на втором читаю. Но судя по алертам, это происходит за счет того, что второй клиент в момент доступа первого теряет связь, но быстро восстанавливает. Таким образом, вроде бы почти одновременно. Но при лаги обеспечены. Таким образом, вроде бы, подтверждается что протокол на такую работу не рассчитан. Однако на различных ресурсах с Linux + по слухам - некоторые iSCSI решения (с multi-path?) и коммерческие NAS все таки позволяют/предоставляют такую возможность.

Есть ли однозначный ответ - реализация FreeBSD это не поддерживает, или подобную возможность никто не поддерживает?

PS: о NFS, Samba и прочих DFS знаю, вопрос больше теоретический чисто по iSCSI.
Спасибо.
 

mav@

iXsystems
iXsystems
Joined
Sep 29, 2011
Messages
1,428
FreeBSD CTL iSCSI target поддерживет до 2048 инициаторов/соединений на target и сотни target'ов, и все они могут работать абсолютно одновременно. Более того, поддерживаются такие средства обеспечения одновременного доступа как SCSI reservation и атомарные операции. Потому весь вопрос исключительно в использовании кластерной файловой системы инициаторами. Пользователи VMware, например, могут рассказать как это работает.
 

Alex18

Dabbler
Joined
Feb 20, 2018
Messages
10
Тогда меня несколько смущают сообщения на сервере (FreeBSD) вида:

Code:
..
WARNING: 192.168.6.178 (iqn.1993-08.org.debian:01:21b039b08078): session reinstatement from different address 192.168.5.182
WARNING: 192.168.5.182 (iqn.1993-08.org.debian:01:21b039b08078): session reinstatement from different address 192.168.6.178
WARNING: 192.168.6.178 (iqn.1993-08.org.debian:01:21b039b08078): session reinstatement from different address 192.168.5.182
WARNING: 192.168.5.182 (iqn.1993-08.org.debian:01:21b039b08078): session reinstatement from different address 192.168.6.178
WARNING: 192.168.6.178 (iqn.1993-08.org.debian:01:21b039b08078): session reinstatement from different address 192.168.5.182
WARNING: 192.168.5.182 (iqn.1993-08.org.debian:01:21b039b08078): session reinstatement from different address 192.168.6.178
WARNING: 192.168.6.178 (iqn.1993-08.org.debian:01:21b039b08078): session reinstatement from different address 192.168.5.182
..


С конфигурацией /etc/ctl.conf:

Code:
portal-group pg0 {
	discovery-auth-group no-authentication
	listen 10.55.57.193
	listen [::]
}

target iqn.:target0 {
	auth-group no-authentication
	portal-group pg0

	lun 0 {
		path /dev/vtbd1
	}
}


которую пробуют подключить два линукса через:

iscsiadm -m discovery -t st -p 10.55.57.193
iscsiadm -m node --login

где 10.55.57.193 - IP сервера.

При этом клиенты также рвут соединения постоянно (и восстанавливают):

Code:
..
[ 1943.628436]  connection1:0: detected conn error (1020)
[ 1947.637364]  connection1:0: detected conn error (1020)
[ 1951.645313]  connection1:0: detected conn error (1020)
..


С виду - активно в один момент времени только на одном.

Я правильно понимаю, что FreeNAS в плане iSCSI имплементации аналогичен FreeBSD или есть дополнительные совершенствования?

PS: провел эксперемент, когда и таргет и инитиаторы - это FreeBSD, и там такое поведение не вижу ( iscsictl -A -p 10.55.57.193 -t iqn.:target0 + iscsictl показывает все ровно + нет session reinstatement при одновременным обращениям к /dev/da* ). Однако, в моем случае, компания планирует использовать FreeNAS как iSCSI target, но клиенты увы, будут выступать Linux, тк нужно использовать GFS2 ( GFS2 на фре вроде совсем отсутствует ).
 

mav@

iXsystems
iXsystems
Joined
Sep 29, 2011
Messages
1,428
Это проблема инициатора. Строка "iqn.1993-08.org.debian:01:21b039b08078" -- имя инициатора + ID сессии со стороны инициатора. Она должна быть разной для разных сессий и тем более инициаторов. Если она совпадает, то таргет считает что это попытка реконнекта и старая сессия уже должна быть мертва, и прибивает ее. Таким образом в данном случае и правда получется что они работают по очереди, но это косяк настройки инициаторов. Эти инициаторы не копровались с одного образа случаем?

FreeNAS идентичен FreeBSD в плане iSCSI. Коммерческий TrueNAS может больше.
 

Alex18

Dabbler
Joined
Feb 20, 2018
Messages
10
Это проблема инициатора. Эти инициаторы не копровались с одного образа случаем?

Да, я не обратил на это внимание, поэтому и родились неверные выводы. Второй инитиатор действительно был получен клонированием, это - ВМ. Спасибо Вам, большое за исчерпывающие ответы, да и вообще - за FreeBSD ;)
 
Status
Not open for further replies.
Top