Friday, January 08, 2010

ISCSI Enterprise Target on RHEL

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 Sectors=10000,Type=nullio Alias Test HeaderDigest None DataDigest None MaxConnections 1 InitialR2T Yes ImmediateData No MaxRecvDataSegmentLength 8192 MaxXmitDataSegmentLength 8192 MaxBurstLength 262144 FirstBurstLength 65536 DefaultTime2Wait 2 DefaultTime2Retain 20 MaxOutstandingR2T 8 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 ] The and 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 to be 12 characters long. This is enforced e.g. by MS Initiator. [OutgoingUser ] The and used during discovery sessions to authenticate the target to initiators. Only one outgoing / combination may be specified. HINT: RFC 3720 requires to be 12 characters long. This is enforced e.g. by MS Initiator. Target iqn..[:] 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. 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 - 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 ] The and 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 has to be provided, if there is a given. Specifying several different IncomingUser accounts is supported. [OutgoingUser ] The and 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 has to be provided, if there is a given. Lun Path=,Type=(fileio|blockio)[,ScsiId=][,ScsiSN=][,IOMode=(wb|ro)] | Sectors=,Type=nullio Parameters after should not contain any blank space character except the first blank space after is needed. This line must occur at least once. The value of can be between 0 and 2^14-1. In fileio mode (default), it defines a mapping between a "Logical Unit Number" and a given 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" and a given block 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. Optionally a can be specified to assign a unique ID to the iSCSI volume. This is useful e.g. in conjunction with a multipath-aware initiator host accessing the same through several targets. The must not exceed 16 characters and controls the content of VPD 0x83. The must not exceed 16 characters and controls the content VPD 0x80. By default, LUNs are writable, employing write-through caching. By setting IOMode to "ro" a LUN can only be accessed read only. Setting IOMode to "wb" will enable write-back caching. Please note that this could lead to data loss e.g. in case of power outages, so it is strongly recommended to use an UPS when enabling write-back caching. NOTE: IOMode "wb" is ignored when employing blockio. In nullio mode, it defines a mapping between a "Logical Unit Number" and an unnamed virtual device with sectors. This is ONLY useful for performance measurement purposes. All writes to this virtual device will be discarded and reads will return random data. [Alias ] This assigns an optional to the target. [HeaderDigest ] 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 ] 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 ] Optional. Has to be set to "1" (in words: one), which is also the default. [InitialR2T ] 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 ] 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 ] Optional. Sets the maximum data segment length that can be received. The 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 ] Optional. Sets the maximum data segment length that can be sent. The actually used is the minimum of MaxXmitDataSegmentLength and the MaxRecvDataSegmentLength announced by the initiator. The 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 ] 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 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 ] 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 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 ] Currently not supported. [DefaultTime2Retain ] Currently not supported. [MaxOutstandingR2T ] 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 ] Optional. Has to be set to "Yes" - which is also the default. [DataSequenceInOrder ] Optional. Has to be set to "Yes" - which is also the default. [ErrorRecoveryLevel ] Optional. Has to be set to "0" (in words: zero), which is also the default. [Wthreads ] 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 ] 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.



Show IET ISCSI target information
# cat /proc/net/iet/volume

Show IET ISCSI connected session information
# cat /proc/net/iet/session

No comments: