我有两台 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
发起者.允许
ALL ALL
目标.允许
ALL ALL
在客户端上的配置是:
iscsid配置文件
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
启动器名称.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
我需要做什么才能使此系统的发现和登录正常工作?
答案1
回答这个问题的关键是启用 中的错误日志记录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”。