У меня есть две машины Debian Wheezy, и я пытаюсь настроить хранилище для одной из них на диске другого с помощью iSCSI (у них нет синхронизированных пользователей, поэтому NFS не будет работать для этого приложения). Я установил ietd на сервере и open-iscsi на клиенте.
Моя конфигурация на сервере следующая:
ietd.conf
Target iqn.2015-02.uk.co.meridiandigital:email
Lun 0 Path=/storage/email/email_export.img,Type=fileio,IOMode=rw
IncomingUser myuser mypass
Alias LUN1
initiators.allow
ALL ALL
targets.allow
ALL ALL
На клиенте конфигурация:
iscsid.conf
iscsid.startup = /usr/sbin/iscsid
node.startup = automatic
node.leading_login = No
node.session.auth.authmethod = CHAP
node.session.auth.username = myuser
node.session.auth.password = mypass
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = myuser
discovery.sendtargets.auth.password = mypass
node.session.timeo.replacement_timeout = 120
node.conn[0].timeo.login_timeout = 15
node.conn[0].timeo.logout_timeout = 15
node.conn[0].timeo.noop_out_interval = 5
node.conn[0].timeo.noop_out_timeout = 5
node.session.err_timeo.abort_timeout = 15
node.session.err_timeo.lu_reset_timeout = 30
node.session.err_timeo.tgt_reset_timeout = 30
node.session.cmds_max = 128
node.session.queue_depth = 32
node.session.xmit_thread_priority = -20
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.conn[0].iscsi.MaxRecvDataSegmentLength = 262144
node.conn[0].iscsi.MaxXmitDataSegmentLength = 0
discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
node.session.iscsi.FastAbort = Yes
initiatorname.iscsi
GenerateName=no
InitiatorName=iqn.2015-02.net.meridiandigital:client
Когда я запускаю открытие с помощью iscsiadm -m discovery -t st -p athena
Я получаю следующее сообщение об ошибке:
iscsiadm: Cannot perform discovery. Invalid Initiatorname.
iscsiadm: Could not perform SendTargets discovery: invalid parameter
Что мне нужно сделать, чтобы обнаружение и вход в систему работали в этой системе?
Ключом к ответу на этот вопрос было включение регистрации ошибок в ietd
, который по какой-то причине не включен по умолчанию. Я остановил службу с помощью /etc/init.d/ietd stop
, и вручную запустил ietd -d 2
чтобы включить ведение журнала. Это дало мне (вместе с массой лишнего мусора) следующее сообщение об ошибке:
Feb 17 17:15:50 athena ietd: unable to create logical unit 0 in target 1: 22
Номер ошибки 22 - EINVAL
, значит, у меня где-то недопустимый параметр. Получается, что IOMode
параметр не может иметь значение «rw»: допустимые значения: «ro», «wb» и «wt».