Provided by: iscsitarget_1.4.20.3+svn502-2ubuntu4.5_amd64 bug

NAME

       /etc/ietd.conf - configuration for iSCSI Enterprise Target Daemon

SYNOPSIS

       /etc/ietd.conf

DESCRIPTION

       /etc/ietd.conf  contains configuration information for the ietd (8) command. This is the place, where you
       configure your iSCSI targets and daemon defaults.

       Only lines starting with `#' are ignored. Putting '#' in the middle of a line is disallowed. A  line  may
       be extended across multiple lines by making the last character a backslash.

       The "Yes" and "No" for parameter values are case sensitive. The parameter names are case insensitive.

       The  file  consists of a global part and zero or more "Target" stanzas. Everything until the first target
       definition belongs to the global configuration.

       Here is an example:

       IncomingUser joe secret
       OutgoingUser jack secret2

       Target iqn.2001-04.com.example:storage.disk2.sys1.xyz
           IncomingUser jim othersecret
           OutgoingUser james yetanothersecret
           Lun 0 Path=/dev/sdc,Type=fileio
           Lun 1 Blocks=10000,BlockSize=4096,Type=nullio
           Alias Test
           HeaderDigest None
           DataDigest None
           MaxConnections 1
           MaxSessions 0
           InitialR2T Yes
           ImmediateData No
           MaxRecvDataSegmentLength 8192
           MaxXmitDataSegmentLength 8192
           MaxBurstLength 262144
           FirstBurstLength 65536
           DefaultTime2Wait 2
           DefaultTime2Retain 0
           MaxOutstandingR2T 8
           NOPInterval 0
           NOPTimeout 0
           DataPDUInOrder Yes
           DataSequenceInOrder Yes
           ErrorRecoveryLevel 0

       Stanzas start with the word "Target" and the target name. This name must be a globally  unique  name,  as
       defined by the iSCSI standard : the "iSCSI Qualified Name". The daemon brings the targets up in the order
       listed.

GLOBAL OPTIONS

       Global Options are case sensitive.

       [IncomingUser <username> <password>]
              The  <username>  and  <password>  used during discovery sessions to authenticate iSCSI initiators.
              Several of those can be specified for discovery. If no IncomingUser is specified, any initiator is
              allowed to open a discovery session.
              HINT: RFC 3720 requires <password> to  be  12  characters  long.  This  is  enforced  e.g.  by  MS
              Initiator.

       [OutgoingUser <username> <password>]
              The  <username>  and  <password>  used  during  discovery  sessions  to authenticate the target to
              initiators. Only one outgoing <username>/<password> combination may be specified.
              HINT: RFC 3720 requires <password> to  be  12  characters  long.  This  is  enforced  e.g.  by  MS
              Initiator.

       Target iqn.<yyyy-mm>.<tld.domain.some.host>[:<identifier>]
              A  target  definition  and the target name. The targets name (the iSCSI Qualified Name ) must be a
              globally unique name (as defined by the iSCSI standard) and has to start with iqn  followed  by  a
              single dot. The EUI-64 form is not supported.  <yyyy-mm> is the date (year and month) at which the
              domain  is  valid.  This  has  to  be  followed by a single dot and the reversed domain name.  The
              optional <identifier> - which is freely selectable - has to be separated by a  single  colon.  For
              further details please check the iSCSI spec.

              Here is an example:

              Target iqn.2004-07.com.example.host:storage.disk2.sys1.xyz

TARGET OPTIONS

       Target options are also case sensitive.

       [IncomingUser <username> <password>]
              The  <username> and <password> used to authenticate the iSCSI initiators to this target. It may be
              different from the username and password in section GLOBAL OPTIONS, which is used  for  discovery.
              If  you omit the IncomingUser Option, connections are allowed without authentication. A <password>
              has to be provided, if there is a <username>  given.  Specifying  several  different  IncomingUser
              accounts is supported.

       [OutgoingUser <username> <password>]
              The  <username>  and  <password>  used  to  authenticate this iSCSI target to initiators. Only one
              OutgoingUser per target is supported. It may be  different  from  the  username  and  password  in
              section  GLOBAL OPTIONS, which is used for discovery. A <password> has to be provided, if there is
              a <username> given.

       Lun <lun> Type=(fileio|blockio),Path=<device>[,ScsiId=<scsi_id>][,ScsiSN=<scsi_sn>][,IOMode=(wb|ro|wt)][,BlockSize=<size>]

       Lun <lun> Type=nullio[,Blocks=<count>][,BlockSize=<size>]
              Parameters after <lun> should not contain any blank space characters except the first blank  space
              after <lun> is needed.

              The value of <lun> can be from 0 to 16384. The first <lun> defined MUST be 0.

              In  fileio  mode (default), it defines a mapping between a "Logical Unit Number" <lun> and a given
              device <device> , which can be any block device (including regular block devices like hdX and  sdX
              and virtual block devices like LVM and Software RAID devices) or regular files.

              In  blockio  mode,  it  defines  a mapping between a "Logical Unit Number" <lun> and a given block
              device <device>.  This mode will perform direct block i/o with the  device,  bypassing  page-cache
              for   all  operations.  This  allows  for  efficient  handling  of  non-aligned  sector  transfers
              (virtualized environments) and large block transfers (media servers). This mode works ideally with
              high-end storage HBAs and for applications that either do not need caching between application and
              disk or need the large block throughput.

              A ScsiId can be specified to assign a unique SCSI ID (VPD 0x83) to an iSCSI volume. This  is  used
              by  initiator  hosts  to  uniquely  identify a SCSI volume. This is necessary with multipath-aware
              hosts accessing the same <device> through multiple iSCSI sessions. The <scsi_id> must  not  exceed
              16 characters.

              Also  a  ScsiSN  can  be specified to assign a unique serial number (VPD 0x80) to an iSCSI volume.
              This is used by certain initiator hosts (e.g. VMware ESX) to uniquely identify a SCSI volume. This
              is essential when used in conjunction with VMware ESX hosts accessing the  same  <device>  through
              multiple iSCSI sessions. The <scsi_sn> must not exceed 16 characters.

              By default LUNs are writable, employing write-through caching. By setting IOMode to "ro" a LUN can
              be  set to read only mode. Setting IOMode to "wb" will enable write-back caching of a LUN. Setting
              IOMode to "wt" is only symbolic as that is the default behavior.

              NOTE: IOMode "wb" is ignored when employing blockio as it performs no caching.

              WARNING: IOMode=wb could lead to serious data loss from an unexpected system failure (power  loss,
              system crash). Use at your own risk!

              You  can  specify  a logical BlockSize for an iSCSI volume. This <size> must be one of (512, 1024,
              2048, 4096). If BlockSize isn't specified the default is 512 bytes for  fileio,  and  the  logical
              block size of the lower level device for blockio (which typically is 512 bytes).

              NOTE: For blockio, you CANNOT specify a BlockSize less than the lower level device's logical block
              size  which  is the minimum size the device can handle. An error will be reported and the LUN will
              fail to attach if you try. You CAN use fileio though to export a LUN with a  BlockSize  less  than
              the lower level device's logical block size.

              WARNING:  Once  your data is written at a given BlockSize you cannot change this BlockSize without
              risking corruption of your existing data.

              In nullio mode, it defines a mapping between a "Logical Unit Number" <lun> and an unnamed  virtual
              device  with  a  specified number of Blocks of BlockSize bytes. If Blocks is not specified then it
              will default to 64GB's worth given the curent BlockSize which defaults to 512 bytes. This is  ONLY
              useful  for  performance measurement purposes. All writes to this virtual device will be discarded
              and all reads will return random data.

              WARNING: By sending random kernel memory over the IP network you can potentially expose  sensitive
              information.

       [Alias <aliasname>]
              This assigns an optional <aliasname> to the target.

       [HeaderDigest <CRC32C|None>]
              Optional.  If  set  to  "CRC32C"  and the initiator is configured accordingly, the integrity of an
              iSCSI PDU's header segments will be protected by a CRC32C checksum. The default  is  "None".  Note
              that header digests are not supported during discovery sessions.

       [DataDigest <CRC32C|None>]
              Optional.  If  set  to  "CRC32C"  and the initiator is configured accordingly, the integrity of an
              iSCSI PDU's data segment will be protected by a CRC32C checksum. The default is "None". Note  that
              data digests are not supported during discovery sessions.

       [MaxConnections <value>]
              Optional.  The number of connections within a session. Has to be set to "1" (in words: one), which
              is also the default since MC/S is not supported.

       [MaxSessions <value>]
              Optional. The maximum number of sessions for this target. If  this  is  set  to  0  (wich  is  the
              default) there is no explicit session limit.

       [InitialR2T <Yes|No>]
              Optional. If set to "Yes" (default), the initiator has to wait for the target to solicit SCSI data
              before  sending  it.  Setting  it to "No" allows the initiator to send a burst of FirstBurstLength
              bytes unsolicited right after and/or (depending on the setting of ImmediateData  )  together  with
              the command. Thus setting it to "No" may improve performance.

       [ImmediateData <Yes|No>]
              Optional.  This  allows  the  initiator to append unsolicited data to a command. To achieve better
              performance, this should be set to "Yes". The default is "No".

       [MaxRecvDataSegmentLength <value>]
              Optional. Sets the maximum data segment length that can be received. The <value> should be set  to
              multiples  of  PAGE_SIZE.  Currently the maximum supported value is 64 * PAGE_SIZE, e.g. 262144 if
              PAGE_SIZE is 4kB. Configuring too large values may lead to problems allocating sufficient  memory,
              which  in  turn  may  lead to SCSI commands timing out at the initiator host. The default value is
              8192.

       [MaxXmitDataSegmentLength <value>]
              Optional. Sets the maximum data segment length that can be sent. The <value> actually used is  the
              minimum  of  MaxXmitDataSegmentLength and the MaxRecvDataSegmentLength announced by the initiator.
              The <value> should be set to multiples of PAGE_SIZE. Currently the maximum supported value is 64 *
              PAGE_SIZE, e.g. 262144 if PAGE_SIZE is 4kB. Configuring too large  values  may  lead  to  problems
              allocating  sufficient memory, which in turn may lead to SCSI commands timing out at the initiator
              host. The default value is 8192.

       [MaxBurstLength <value>]
              Optional. Sets the maximum amount of either unsolicited or solicited data the initiator  may  send
              in  a  single  burst.  Any amount of data exceeding this value must be explicitly solicited by the
              target. The <value> should be set to multiples of PAGE_SIZE. Configuring too large values may lead
              to problems allocating sufficient memory, which in turn may lead to SCSI commands  timing  out  at
              the initiator host. The default value is 262144.

       [FirstBurstLength <value>]
              Optional.  Sets  the amount of unsolicited data the initiator may transmit in the first burst of a
              transfer either with and/or right after the command, depending on the settings of  InitialR2T  and
              ImmediateData  <value>  should  be set to multiples of PAGE_SIZE. Configuring too large values may
              lead to problems allocating sufficient memory, which in turn may lead to SCSI commands timing  out
              at the initiator host. The default value is 65536.

       [DefaultTime2Wait <value>]
              Currently  not implemented, but can be used to set how long initiators wait before logging back in
              after a connection is logged out or dropped.

       [DefaultTime2Retain <value>]
              Currently we only support 0 which means sessions are not retained after  the  last  connection  is
              logged out or dropped.

       [MaxOutstandingR2T <value>]
              Optional. Controls the maximum number of data transfers the target may request at once, each of up
              to MaxBurstLength bytes. The default is 1.

       [DataPDUInOrder <Yes|No>]
              Optional. Has to be set to "Yes" - which is also the default.

       [DataSequenceInOrder <Yes|No>]
              Optional. Has to be set to "Yes" - which is also the default.

       [ErrorRecoveryLevel <value>]
              Optional. Has to be set to "0" (in words: zero), which is also the default.

       [NOPInterval <value>]
              Optional.  If  value is non-zero, the initiator will be "ping"ed during phases of inactivity (i.e.
              no data transfers) every value seconds to verify the connection is still alive. If  the  initiator
              fails to respond within NOPTimeout seconds, the connection will be closed.

       [NOPTimeout <value>]
              Optional.  If a non-zero NOPInterval is used to periodically "ping" the initiator during phases of
              inactivity (i.e. no data transfers), the initiator must respond within  value  seconds,  otherwise
              the  connection  will be closed. If value is set to zero or if it exceeds NOPInterval , it will be
              set to NOPInterval.

       [Wthreads <value>]
              Optional. The iSCSI target employs several threads to perform the actual block I/O to the  device.
              Depending  on  your  hardware  and  your  (expected)  workload, the number of these threads may be
              carefully adjusted. The default value of 8 should be sufficient for most purposes.

       [QueuedCommands <value>]
              Optional. This parameter defines a window of commands an initiator  may  send  and  that  will  be
              buffered  by the target. Depending on your hardware and your (expected) workload, the value may be
              carefully adjusted. The default value of 32 should be sufficient for most purposes.

KNOWN BUGS/LIMITATIONS

       Currently (as of 0.4.11) not all iSCSI target parameters are  used.  Header  and  data  digests  are  not
       supported during discovery sessions.

SEE ALSO

       ietd (8)

       You should have a look at
              RFC 3720 for all the glory details.

A. Lehmann, M. Zhang and A. Redlich               27 July 2005                                      IETD.CONF(5)