<chapter id="fmvcd"><title>Configuring Solaris iSCSI Targets and Initiators
(Tasks)</title><highlights><para>This chapter describes how to configure Solaris iSCSI targets, available
starting in the Solaris Express 8/06 release, and Solaris iSCSI initiators, available starting in theSolaris Express 2/05 release. For information on the
procedures associated with configuring iSCSI targets and initiators, see <olink targetptr="fncpi" remap="internal">Setting Up Solaris iSCSI Targets and Initiators (Task Map)</olink>.</para><para>For information about  Solaris iSCSI initiator features in the Solaris Express 3/06 release, see <olink targetptr="gdgtz" remap="internal">What's New in Disk Management?</olink></para><para>For information about the Solaris iSNS support in
the Solaris Express Developer Edition 1/08, see <olink targetptr="gfydr" remap="internal">Configuring
and Managing the Solaris Internet Storage Name Service (iSNS)</olink>.</para><para>For troubleshooting Solaris iSCSI configuration problems, see <olink targetptr="fpjwy" remap="internal">Troubleshooting iSCSI Configuration Problems</olink>.</para>
</highlights><sect1 id="fncoz"><title>The iSCSI Technology (Overview)</title><para>iSCSI is an acronym for Internet SCSI (Small Computer System Interface),
an Internet Protocol (IP)-based storage networking standard for linking data
storage subsystems. This networking standard was developed by the Internet
Engineering Task Force (IETF). For more information about the iSCSI technology,
see RFC 3720:</para><para><ulink url="http://www.ietf.org/rfc/rfc3720.txt" type="url">http://www.ietf.org/rfc/rfc3720.txt</ulink></para><para>By carrying SCSI commands over IP networks, the iSCSI protocol enables
you to access block devices from across the network as if they were connected
to the local system.</para><para>If you want to use storage devices in your existing TCP/IP network,
the following solutions are available:</para><itemizedlist><listitem><para>iSCSI block devices or tape &ndash; Translates SCSI commands
and data from the block level into IP packets. The advantage of using iSCSI
in your network is when you need to have block-level access between one system
and the target device, such as a tape device or a database. Access to a block-level
device is not locked so that you could not have multiple users or systems
accessing a block-level device such as an iSCSI target device.</para>
</listitem><listitem><para>NFS &ndash; Transfers file data over IP. The advantage of
using NFS in your network is that you can share file data across many systems.
Access to file data is locked appropriately when many users are accessing
data that is available in an NFS environment.</para>
</listitem>
</itemizedlist><para>Here are the benefits of using Solaris iSCSI targets and initiators:</para><itemizedlist><listitem><para>The iSCSI protocol runs across existing Ethernet networks.</para><itemizedlist><listitem><para>You can use any supported network interface card (NIC), Ethernet
hub or switch.</para>
</listitem><listitem><para>One IP port can handle multiple iSCSI target devices.</para>
</listitem><listitem><para>You can use existing infrastructure and management tools for
IP networks.</para>
</listitem>
</itemizedlist>
</listitem><listitem><para>You might have existing fibre-channel devices that can be
connected to clients without the cost of fibre-channel HBAs. In addition,
systems with dedicated arrays can now export replicated storage with ZFS or
UFS file systems.</para>
</listitem><listitem><para>There is no upper limit on the maximum number of configured
iSCSI target devices.</para>
</listitem><listitem><para>The protocol an be used to connect to Fibre Channel or iSCSI
Storage Area Network (SAN) environments with the appropriate hardware.</para>
</listitem>
</itemizedlist><para>Here are the current limitations or restrictions of using the Solaris
iSCSI initiator software:</para><itemizedlist><listitem><para>No support for iSCSI devices that use SLP is currently available.</para>
</listitem><listitem><para>No boot support for iSCSI devices is currently available.</para>
</listitem><listitem><para>Do not configure iSCSI targets as dump devices.</para>
</listitem><listitem><para>iSCSI supports multiple connections per session, but the current
Solaris implementation only supports a single connection per session.</para><para>For more information, see RFC 3720.</para>
</listitem><listitem><para>You should consider the impact of transferring large amounts
of data over your existing network.</para>
</listitem>
</itemizedlist><sect2 id="fncpb"><title>Solaris iSCSI Software and Hardware Requirements</title><itemizedlist><listitem><para>Solaris iSCSI software and devices</para>
</listitem><listitem><para>The  Solaris
Express 2/05 or later release for Solaris iSCSI initiator software</para>
</listitem><listitem><para>The  Solaris
Express 8/06 or later release for Solaris iSCSI target software</para>
</listitem><listitem><para>The following software packages:</para><itemizedlist><listitem><para><literal>SUNWiscsir</literal> &ndash; Sun iSCSI Device Driver
(<literal>root</literal>)</para>
</listitem><listitem><para><literal>SUNWiscsiu</literal> &ndash; Sun iSCSI Management
Utilities (<literal>usr</literal>)</para>
</listitem><listitem><para><literal>SUNWiscsitgtr</literal> &ndash; Sun iSCSI Target
Device Driver (<literal>root</literal>)</para>
</listitem><listitem><para><literal>SUNWiscsitgtu</literal> &ndash; Sun iSCSI Target
Management Utilities (<literal>usr</literal>)</para>
</listitem>
</itemizedlist>
</listitem><listitem><para>Any supported NIC</para>
</listitem>
</itemizedlist>
</sect2>
</sect1><sect1 id="fncpi"><title>Setting Up Solaris iSCSI Targets and Initiators (Task
Map)</title><informaltable frame="all"><tgroup cols="3" colsep="1" rowsep="1"><colspec colname="colspec0" colwidth="33*"/><colspec colname="colspec1" colwidth="33*"/><colspec colname="colspec2" colwidth="33*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry rowsep="1"><para>1. Identify the iSCSI software and hardware requirements.</para>
</entry><entry rowsep="1"><para>Identify the software and hardware requirements for setting up an iSCSI-based
storage network.</para>
</entry><entry rowsep="1"><para><olink targetptr="fncpb" remap="internal">Solaris iSCSI Software and Hardware Requirements</olink></para>
</entry>
</row><row><entry rowsep="0"><para>2. Set up your iSCSI target devices.</para>
</entry><entry rowsep="0"><para>Connect and set up your Solaris iSCSI target devices.</para><para>In addition, you can set up third-party target devices. See your vendor's
documentation for setup instructions.</para>
</entry><entry rowsep="0"><para><olink targetptr="gdall" remap="internal">Setting Up Your Solaris iSCSI Target Devices</olink></para>
</entry>
</row><row><entry rowsep="1">
</entry><entry rowsep="1"><para>Set up iSNS discovery on your Solaris ISCSI target, if an iSNS server
is available.</para>
</entry><entry rowsep="1"><para><olink targetptr="gfucm" remap="internal">How to Configure iSNS Discovery for the Solaris
iSCSI Target</olink></para>
</entry>
</row><row><entry><para>3. Prepare for your Solaris iSCSI configuration.</para>
</entry><entry><para>Make sure you have the correct software versions and hardware installed.</para>
</entry><entry><para><olink targetptr="fmvcc" remap="internal">How to Prepare for a Solaris iSCSI Configuration</olink></para>
</entry>
</row><row><entry rowsep="0"><para>4. (Optional) Set up authentication in your Solaris iSCSI configuration.</para>
</entry><entry rowsep="0"><para>Decide whether you want to use authentication in your Solaris iSCSI
configuration:</para>
</entry><entry rowsep="0"><para></para>
</entry>
</row><row><entry rowsep="0"><para></para>
</entry><entry rowsep="0"><para>Consider using unidirectional CHAP or bidirectional CHAP</para>
</entry><entry rowsep="0"><para><olink targetptr="fmvea" remap="internal">How to Configure CHAP Authentication for Your
iSCSI Initiator</olink></para>
</entry>
</row><row><entry rowsep="0">
</entry><entry rowsep="0">
</entry><entry rowsep="0"><para><olink targetptr="gdfuv" remap="internal">How to Configure CHAP Authentication for Your
iSCSI Target</olink></para>
</entry>
</row><row><entry rowsep="1">
</entry><entry rowsep="1"><para>Consider using a third-party RADIUS server to simplify CHAP management.</para>
</entry><entry rowsep="1"><para><olink targetptr="fsuma" remap="internal">How to Configure RADIUS for Your iSCSI Configuration</olink></para>
</entry>
</row><row><entry><para>5. Configure the iSCSI target discovery method.</para>
</entry><entry><para>Select the iSCSI target discovery method best suited for your environment.</para>
</entry><entry><para><olink targetptr="fqnlk" remap="internal">How to Configure iSCSI Target Discovery</olink></para>
</entry>
</row><row><entry><para>6. (Optional) Remove discovered iSCSI targets.</para>
</entry><entry><para>You might need to remove a discovered iSCSI target.</para>
</entry><entry><para><olink targetptr="fqnls" remap="internal">How to Remove Discovered iSCSI Targets</olink></para>
</entry>
</row><row><entry><para>7. Monitor your iSCSI configuration.</para>
</entry><entry><para>Monitor your iSCSI configuration with the <command>iscsiadm</command> command.</para>
</entry><entry><para><olink targetptr="fmvey" remap="internal">Monitoring Your iSCSI Configuration</olink></para>
</entry>
</row><row><entry><para>8. (Optional) Modify your iSCSI configuration.</para>
</entry><entry><para>You might want to change your iSCSI target settings such as the header
and data digest parameters.</para>
</entry><entry><para><olink targetptr="fmvem" remap="internal">How to Modify iSCSI Initiator and Target Parameters</olink></para>
</entry>
</row><row><entry rowsep="0"><para>9.
(Optional) Set up Solaris iSCSI multipathed devices.</para>
</entry><entry rowsep="0"><para>Determine
whether you want to set up Solaris iSCSI multipathed devices.</para>
</entry><entry rowsep="0"><para><olink targetptr="fncpc" remap="internal">Setting Up Solaris iSCSI Multipathed Devices</olink></para>
</entry>
</row><row><entry rowsep="0"><para></para>
</entry><entry rowsep="0"><para>Use this procedure to create multiple iSCSI sessions that connect to
a single target.</para>
</entry><entry rowsep="0"><para><olink targetptr="gcawf" remap="internal">How to Enable Multiple iSCSI Sessions for a
Target</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><sect2 id="fncpm"><title>Configuring Solaris iSCSI Targets and Initiators</title><para>Basically, configuring your Solaris iSCSI targets and initiators involves
the following steps:</para><itemizedlist><listitem><para>Identifying the hardware and software requirements</para>
</listitem><listitem><para>Configuring your IP network</para>
</listitem><listitem><para>Connecting and setting up your iSCSI target device</para>
</listitem><listitem><para>(Optional) Configure iSCSI authentication between the iSCSI
initiator and the iSCSI target, if necessary</para>
</listitem><listitem><para>Configuring the iSCSI target discovery method</para>
</listitem><listitem><para>Creating file systems on your iSCSI disks</para>
</listitem><listitem><para>Monitoring your iSCSI configuration</para>
</listitem>
</itemizedlist><para>The iSCSI configuration information is stored in the <literal>/etc/iscsi</literal> directory.
This information requires no administration.</para><sect3 id="fnkav"><title>iSCSI Terminology</title><para>Review the following terminology before configuring iSCSI targets and
initiators.</para><informaltable frame="topbot"><tgroup cols="2" colsep="0" rowsep="0"><colspec colwidth="34.99*"/><colspec colwidth="65.01*"/><thead><row rowsep="1"><entry><para>Term</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para>Initiator</para>
</entry><entry><para>The driver that initiates SCSI requests to the iSCSI target.</para>
</entry>
</row><row><entry><para>Target device</para>
</entry><entry><para>Represents the iSCSI storage component.</para>
</entry>
</row><row><entry><para>Discovery</para>
</entry><entry><para>Discovery is the process that presents the initiator with a list of
available targets.</para>
</entry>
</row><row><entry><para>Discovery method </para>
</entry><entry><para>Describes the way in which the iSCSI targets can be found. Three methods
are currently available:</para><itemizedlist><listitem><para>Internet Storage Name Service (iSNS)
- Potential targets are discovered by interacting with one or  more iSNS servers.</para>
</listitem><listitem><para>SendTargets &ndash; Potential targets are discovered by using
a <replaceable>discovery-address.</replaceable></para>
</listitem><listitem><para>Static &ndash; Static target address is configured.</para>
</listitem>
</itemizedlist>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect3><sect3 id="fncrx"><title>Configuring Dynamic or Static Target Discovery</title><para>Determine whether you want to configure one of the dynamic features
or use static iSCSI initiator targets to perform device discovery.</para><itemizedlist><listitem><para><emphasis role="strong">Dynamic device discovery</emphasis> &ndash;
If an iSCSI node exposes a large number of targets, such as an iSCSI to Fibre-Channel
bridge, you can supply the iSCSI node IP address/port combination and allow
the iSCSI initiator to use the SendTargets features to perform the device
discovery.</para><para>Two dynamic device discovery methods are available:
SendTargets and iSNS.</para><itemizedlist><listitem><para>SendTargets - If an iSCSI node exposes a large number of targets,
such as an iSCSI to Fibre-Channel bridge, you can supply the iSCSI node IP
address/port combination and allow the iSCSI initiator to use the SendTargets
features to perform the device discovery. </para>
</listitem><listitem><para>iSNS - iSNS (Internet Storage Name Service) allows the iSCSI
initiator to discover the targets to which it has access using as little configuration
as possible. It also provides state change notification functionality to notify
the iSCSI initiator when changes in operational state of storage nodes occur.
To use the iSNS discovery option, you can supply the iSNS server address/port
combination and allow the iSCSI initiator to query the iSNS servers that you
specified to perform the device discovery. The default port for iSNS server
is 3205. For more information about iSNS, see RFC 4171:</para><para><ulink url="http://www.ietf.org/rfc/rfc4171.txt" type="url">http://www.ietf.org/rfc/rfc4171.txt</ulink></para><para>The iSNS discovery service provides an administrative
model to discover all targets in a network.</para><para>For more information about setting up
the Solaris iSNS support, see <olink targetptr="gfydr" remap="internal">15 Configuring and
Managing the Solaris Internet Storage Name Service (iSNS)</olink>.</para>
</listitem>
</itemizedlist>
</listitem><listitem><para><emphasis role="strong">Static device discovery</emphasis> &ndash;
If an iSCSI node has a small number of targets or if you want to restrict
the targets that the initiator attempts to access, you can statically configure
the <replaceable>target-name</replaceable> by using the following static target
address naming convention:</para><para><replaceable>target</replaceable>,<replaceable>target-address</replaceable>[:<replaceable>port-number</replaceable>]</para><para>You can determine the static target address from the array's management
tool. </para>
</listitem>
</itemizedlist><note><para>Do not configure an iSCSI target to be discovered by both static
and dynamic device discovery methods.  The consequence of using redundant
discovery methods might be slow performance when communicating with the iSCSI
target device.</para>
</note>
</sect3>
</sect2><task id="fmvcc"><title>How to Prepare for a Solaris iSCSI Configuration</title><procedure><step><para>Become superuser.</para>
</step><step><para>Verify that the iSCSI software packages are installed.</para><screen># <userinput>pkginfo SUNWiscsiu SUNWiscsir</userinput>
system      SUNWiscsiu Sun iSCSI Device Driver (root)
system      SUNWiscsir Sun iSCSI Management Utilities (usr)</screen>
</step><step><para>Verify that you are running a  Solaris
Express 8/06 or later release.</para>
</step><step><para>Confirm that your TCP/IP network is setup.</para>
</step><step><para>Connect your iSCSI target devices and confirm that they are configured.</para><para>For example, determine if the iSCSI target device is reachable
by using the <command>telnet</command> command to connect to the iSCSI target
device using port 3260. If the connection is refused, see <olink targetptr="fpjwy" remap="internal">Troubleshooting iSCSI Configuration Problems</olink>.</para><para>For information about connecting your third-party iSCSI target devices,
see your hardware documentation.</para>
</step>
</procedure>
</task><sect2 id="gdall"><title>Setting Up Your Solaris iSCSI Target Devices</title><para>You can use the <command>iscsitadm</command> command to set up and manage
your Solaris iSCSI target devices, which can be disk or tape devices. For
the device that you select as your iSCSI target, you'll need to provide an
equivalently sized ZFS or UFS file system as the backing store for the iSCSI
daemon.</para><para>For information about setting up a Solaris iSCSI target device with
ZFS, see <olink targetdoc="zfsadmin" targetptr="gebwq" remap="external"><citetitle remap="section">ZFS and Solaris iSCSI Improvements</citetitle> in <citetitle remap="book">ZFS
Administration Guide</citetitle></olink>.</para><para>After the target device is set up, use the <command>iscsiadm</command> command
to identify your iSCSI targets, which will discover and use the iSCSI target
device.</para><para>For more information, see <olink targetdoc="refman1m" targetptr="iscsitadm-1m" remap="external"><citerefentry><refentrytitle>iscsitadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> and <olink targetdoc="refman1m" targetptr="iscsiadm-1m" remap="external"><citerefentry><refentrytitle>iscsiadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink>.</para><para>The basic process is as follows:</para><itemizedlist><listitem><para>Identify the backing store directory &ndash; For each target
and logical unit created, the iSCSI daemon needs to store some information.
By default, the backing store for this device is also located within the base
directory. So, if the host system has a large ZFS pool to use, it may be easiest
and desirable to allow the daemon to store everything in that location. It
the backing store needs to be spread out, it's possible during the creation
of each logical unit to specify the backing store location.</para>
</listitem><listitem><para>Create the iSCSI target &ndash; By default, the CLI assumes
the requested device type is an LBA of logical unit 0. If a pass through mode
is desired for character devices, the <option>raw</option> option must be
used. After the creation of the first LUN, other LUNs might be created for
the same iSCSI target by specifying <option>lun number</option>.</para><para>The
daemon starts a background task that initializes the LUN to zeros. If, during
that initialization, the underlying file system becomes 100% full, the daemon
removes the target. During this initialization, the LUN is marked as being
offline and can't be used by an initiator. It is possible during this time,
however, to have an initiator discover this LUN. The Solaris initiator waits
until it receives an <literal>Inventory Change</literal> notification and
then automatically brings the device online.</para>
</listitem>
</itemizedlist><task id="gdalt"><title>How to Create an iSCSI Target</title><procedure><step><para>Become superuser.</para>
</step><step><para>Identify the backing store directory.</para><para>For example:</para><screen># <userinput>iscsitadm modify admin -d /export/sandbox</userinput></screen>
</step><step><para>Create an iSCSI target.</para><para>For example:</para><screen># <userinput>iscsitadm create target --size 2g sandbox</userinput></screen>
</step><step><para>Display information about the iSCSI target.</para><para>For example:</para><screen># <userinput>iscsitadm list target -v sandbox</userinput></screen>
</step><step><para>Set up your iSCSI initiator to discover and use this target.</para><para>For more information, see <olink targetptr="fqnlk" remap="internal">How to Configure
iSCSI Target Discovery</olink>.</para>
</step>
</procedure>
</task><task id="gfucm"><title>How to Configure iSNS Discovery for the Solaris iSCSI
Target</title><tasksummary><para>If your network includes a third-party iSNS server or a Sun iSNS server,
you can set up iSNS target discovery on your Solaris iSCSI targets.</para>
</tasksummary><procedure><step><para>Become superuser.</para>
</step><step><para>Add the iSNS server information.</para><para>For example:</para><screen># iscsitadm modify admin --isns-server <replaceable>ip-address</replaceable> or <replaceable>hostname</replaceable>[:<replaceable>port</replaceable>]</screen><para>Identify the <replaceable>ip-address</replaceable> of the iSNS server
in your network.</para><para>This step adds the iSNS server information to
all of the Solaris iSCSI targets.</para>
</step><step><para>Enable iSNS server discovery.</para><para>For example:</para><screen># iscsitadm modify admin --isns-access enable</screen><para>This step enables iSNS discovery for all of the Solaris iSCSI targets.</para>
</step>
</procedure>
</task>
</sect2><sect2 id="fmvdu"><title>Configuring Authentication in Your iSCSI-Based Storage
Network</title><para>Setting up authentication for your iSCSI devices is optional.</para><para>In a secure environment, authentication is not required because only
trusted initiators can access the targets.</para><para>In a less secure environment, the target cannot determine if a connection
request is truly from a given host. In that case, the target can authenticate
an initiator by using the Challenge-Handshake Authentication Protocol (CHAP).</para><para>CHAP authentication uses the notion of a challenge and response, which
means that the target challenges the initiator to prove its identity.  For
the challenge/response method to work, the target must know the initiator's
secret key and the initiator must be set up to respond to a challenge.  Refer
to the array vendor's documentation for instructions on setting up the secret
key on the array.</para><para>iSCSI supports unidirectional and bidirectional authentication:</para><itemizedlist><listitem><para><emphasis>Unidirectional authentication</emphasis> enables
the target to authenticate the identity of the initiator.</para>
</listitem><listitem><para><emphasis>Bidirectional authentication</emphasis> adds a second
level of security by providing a means for the initiator to authenticate the
identity of the target.</para>
</listitem>
</itemizedlist><task id="fmvea"><title>How to Configure CHAP Authentication for Your iSCSI
Initiator</title><tasksummary><para>This procedure assumes that you are logged in to the local system where
you want to securely access the configured iSCSI target device.</para>
</tasksummary><procedure><step><para>Become superuser.</para>
</step><step><para>Determine whether you want to configure unidirectional or bidirectional
CHAP.</para><itemizedlist><listitem><para>Unidirectional authentication enables the target to validate
the initiator. This method is the default method. Complete steps 3&ndash;5
only.</para>
</listitem><listitem><para>Bidirectional authentication adds a second level of security
by providing a means for the initiator to authenticate the target. Complete
steps 3&ndash;9.</para>
</listitem>
</itemizedlist>
</step><step><para>Unidirectional CHAP &ndash; Set the secret key on the initiator.</para><para>For example, the following command initiates a dialogue to define the
CHAP secret key.</para><screen># <userinput>iscsiadm modify initiator-node --CHAP-secret</userinput></screen><note><para>The CHAP secret length must be a minimum of 12 characters and
a maximum of 16 characters.</para>
</note>
</step><step performance="optional"><para>Unidirectional CHAP &ndash; Set the CHAP
name on the initiator.</para><para>By default, the initiator's CHAP name is
set to the initiator node name.</para><para>You can use the following command
to change the initiator's CHAP name.</para><screen># <userinput>iscsiadm modify initiator-node --CHAP-name</userinput> <replaceable>new-CHAP-name</replaceable></screen>
</step><step><para>Unidirectional CHAP &ndash; Enable CHAP authentication on the
initiator after the secret has been set.</para><screen># <userinput>iscsiadm modify initiator-node --authentication CHAP</userinput></screen><para>CHAP requires that the initiator node have both a username and password. The
username is typically used by the target to lookup the secret for the given
username. In the Solaris environment, the CHAP name is always set to the initiator
node name by default. The CHAP name can be set to any length text that is
less than 512 bytes. The 512-byte length limit is a Solaris limitation. However,
if you do not set the CHAP name, it is set to the initiator node name upon
initialization.</para>
</step><step><para>Bidirectional CHAP &ndash; Enable bidirectional authentication
parameters on the target.</para><para>For example:</para><screen># <userinput>iscsiadm modify target-param -B enable eui.5000ABCD78945E2B</userinput></screen><para>Disable bidirectional CHAP.
For example:</para><screen># iscsiadm modify target-param -B disable eui.5000ABCD78945E2B</screen>
</step><step><para>Bidirectional CHAP &ndash; Set authentication method to CHAP on
the target.</para><para>For example:</para><screen># <userinput>iscsiadm modify target-param --authentication CHAP eui.5000ABCD78945E2B</userinput></screen>
</step><step><para>Bidirectional CHAP &ndash; Set the target device secret key on
the target.</para><para>For example, the following command initiates a dialogue
to define the CHAP secret key.</para><screen># <userinput>iscsiadm modify target-param --CHAP-secret eui.5000ABCD78945E2B</userinput></screen>
</step><step><para>Bidirectional CHAP - Set the CHAP name on the target.</para><para>By
default, the target's CHAP name is set to the target name.</para><para>You
can use the following command to change the target's CHAP name.</para><screen># <userinput>iscsiadm modify target-param --CHAP-name target-CHAP-name</userinput></screen>
</step>
</procedure>
</task><task id="gdfuv"><title>How to Configure CHAP Authentication for Your iSCSI
Target</title><procedure><step><para>Become superuser.</para>
</step><step><para>Set up the CHAP secret name for the target.</para><para>A common
convention is to use the host name for the secret name. For example:</para><screen># <userinput>iscsitadm modify admin -H</userinput> <replaceable>stormpike</replaceable></screen>
</step><step><para>Enter the CHAP secret.</para><para>The CHAP secret must be between
12 and 16 characters. For example:</para><screen># <userinput>iscsitadm modify admin -C</userinput>
Enter secret: xxxxxx
Re-enter secret: xxxxxx</screen>
</step><step><para>Create an initiator object that will be associated with one or
more targets.</para><para>This is done so that you can associate a friendly
name (normally the host name, in this case <literal>monster620</literal>)
 with the IQN value instead of typing it in every time. For example:</para><screen remap="wide"># <userinput>iscsitadm create initiator -n iqn.1986-03.com.sun: 01:00e081553307.4399f40e monster620</userinput></screen>
</step><step><para>Provide the same CHAP name that was used on the initiator.</para><para>This name can be different from the friendly name that was used for
the initiator object. For example:</para><screen># <userinput>iscsitadm modify initiator -H monster620 monster620</userinput></screen>
</step><step><para>Use the same CHAP secret that was used on the initiator.</para><para>For example:</para><screen># <userinput>iscsitadm modify initiator -C monster620</userinput>
Enter secret: xxxxxx
Re-enter secret: xxxxxx</screen>
</step><step><para>Associate the initiator object with one or more targets.</para><para>For example:</para><screen># <userinput>iscsitadm modify target -l monster620 sandbox</userinput></screen>
</step>
</procedure>
</task>
</sect2><sect2 id="fmveq"><title>Using a Third-Party Radius Server to Simplify CHAP
Management in Your iSCSI Configuration</title><para>You can use a third-party RADIUS server to simplify CHAP secret management.
A RADIUS server is a centralized authentication service. While you must still
specify the initiator's CHAP secret, you are no longer required to specify
each target's CHAP secret on each initiator when using bidirectional authentication
with a RADIUS server. </para><para>For more information, see:</para><itemizedlist><listitem><para>CHAP &ndash; <ulink url="http://www.ietf.org/rfc/rfc1994.txt" type="url">http://www.ietf.org/rfc/rfc1994.txt</ulink></para>
</listitem><listitem><para>RADIUS &ndash; <ulink url="http://www.ietf.org/rfc/rfc2865.txt" type="url">http://www.ietf.org/rfc/rfc2865.txt</ulink></para>
</listitem>
</itemizedlist><task id="fsuma"><title>How to Configure RADIUS for Your iSCSI Configuration</title><procedure><step><para>Become superuser.</para>
</step><step><para>Configure the initiator node with the IP address and port (the
default port is 1812) of the RADIUS server.</para><para>For example:</para><screen># <userinput>iscsiadm modify initiator-node --radius-server 10.0.0.72:1812</userinput></screen>
</step><step><para>Configure the initiator node with the shared secret of the RADIUS
server.</para><screen># <userinput>iscsiadm modify initiator-node --radius-shared-secret</userinput></screen><note><para>The Solaris iSCSI implementation requires that the RADIUS server
is configured with a shared secret before the Solaris iSCSI software can interact
with the RADIUS server.</para>
</note>
</step><step><para>Enable the RADIUS server.</para><screen># <userinput>iscsiadm modify initiator-node --radius-access enable</userinput></screen>
</step>
</procedure>
</task><sect3 id="fsulz"><title>Solaris iSCSI and RADIUS Server Error Messages</title><para>This section describes the messages that are related to a Solaris iSCSI
and RADIUS server configuration with potential solutions for recovery.</para><msgset><simplemsgentry><msgtext><para>empty RADIUS shared secret</para>
</msgtext><msgexplan role="cause"><para>The RADIUS server is enabled on the initiator
but the RADIUS shared secret is not set.</para>
</msgexplan><msgexplan role="solution"><para>Configure the initiator with RADIUS shared
secret. For more information, see <olink targetptr="fsuma" remap="internal">How to Configure
RADIUS for Your iSCSI Configuration</olink>.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>WARNING: RADIUS packet authentication
failed</para>
</msgtext><msgexplan role="cause"><para>The initiator failed to authenticate the RADIUS
data packet. This error can occur if the shared secret configured on the initiator-node
is different from the shared secret on the RADIUS server.</para>
</msgexplan><msgexplan role="solution"><para>Reconfigure the initiator with the correct
RADIUS shared secret. For more information, see <olink targetptr="fsuma" remap="internal">How
to Configure RADIUS for Your iSCSI Configuration</olink>.</para>
</msgexplan>
</simplemsgentry>
</msgset>
</sect3>
</sect2><task id="fqnlk"><title>How to Configure iSCSI Target Discovery</title><tasksummary><para>This procedure assumes that you are logged in to the local system where
you want to configure access to an iSCSI target device.</para>
</tasksummary><procedure><step><para>Become superuser.</para>
</step><step><para>Configure the target device to be discovered dynamically or statically:</para><itemizedlist><listitem><para>Configure the device dynamically discovered (SendTargets).</para><para>For example:</para><screen># <userinput>iscsiadm add discovery-address 10.0.0.1:3260</userinput></screen><para>The iSCSI connection is not initiated until the discovery method is
enabled. See the next step.</para>
</listitem><listitem><para>Configure the device dynamically discovered (iSNS).</para><para>For
example:</para><screen># <userinput>iscsiadm add iSNS-server 10.0.0.1:3205</userinput></screen><para>The iSCSI connection is not initiated until the discovery method is
enabled. See the next step.</para>
</listitem><listitem><para>Configure the device statically discovered.</para><para>For example:</para><screen># <userinput>iscsiadm add static-config eui.5000ABCD78945E2B,10.0.0.1</userinput></screen><para>The iSCSI connection is not initiated until the discovery method is
enabled. See the next step.</para>
</listitem>
</itemizedlist>
</step><step><para>Enable the iSCSI target discovery method using one of the following:</para><itemizedlist><listitem><para>If you have configured a dynamically discovered (SendTargets)
device, enable the SendTargets discovery method.</para><screen># <userinput>iscsiadm modify discovery --sendtargets enable</userinput></screen>
</listitem><listitem><para>If you have configured a dynamically discovered (iSNS) device,
enable the iSNS discovery method.</para><screen># <userinput>iscsiadm modify discovery --iSNS enable</userinput></screen>
</listitem><listitem><para>If you have configured static targets, enable the static target
discovery method.</para><screen># <userinput>iscsiadm modify discovery --static enable</userinput></screen>
</listitem>
</itemizedlist>
</step><step><para>Create the iSCSI device links for the local system.</para><screen># <userinput>devfsadm -i iscsi</userinput></screen>
</step>
</procedure>
</task><task id="fqnls"><title>How to Remove Discovered iSCSI Targets</title><tasksummary><para>This optional procedure assumes that you are logged in to the local
system where access to an iSCSI target device has already been configured.</para><para>After removing a discovery address, iSNS server, static-config, or disabling
a discovery method, the associated targets are logged out.  If these associated
targets are still in use, for example, have mounted file systems, the logout
of these devices will fail and they will remain on the active target list. </para>
</tasksummary><procedure><step><para>Become superuser.</para>
</step><step performance="optional"><para>Disable an iSCSI target discovery method
using one of the following:</para><itemizedlist><listitem><para>If you need to disable the SendTargets method of discovery,
use the following command:</para><screen># <userinput>iscsiadm modify discovery --sendtargets disable</userinput></screen>
</listitem><listitem><para>If you need to disable the iSNS method of discovery, use the
following command:</para><screen># <userinput>iscsiadm modify discovery --iSNS disable</userinput></screen>
</listitem><listitem><para>If you need to disable the static targets, use the following
command:</para><screen># <userinput>iscsiadm modify discovery --static disable</userinput></screen>
</listitem>
</itemizedlist>
</step><step><para>Remove an iSCSI device discovery entry:</para><itemizedlist><listitem><para>Remove an iSCSI SendTargets discovery entry.</para><para>For
example:</para><screen># <userinput>iscsiadm remove discovery-address 10.0.0.1:3260</userinput></screen>
</listitem><listitem><para>Remove an iSCSI iSNS discovery entry.</para><para>For example:</para><screen># <userinput>iscsiadm remove isns-server 10.0.0.1:3205</userinput></screen>
</listitem><listitem><para>Remove a static iSCSI initiator entry.</para><para>For example:</para><screen># <userinput>iscsiadm remove static-config eui.5000ABCD78945E2B,10.0.0.1</userinput></screen>
</listitem>
</itemizedlist><note><para>If you attempt to disable or remove discovery information that
has an associated logical unit in use, the disable or remove operation fails
with the following message:</para><screen>logical unit in use</screen><para>If this occurs, stop all associated I/O on the logical unit, unmount
the file systems, and so on.  Then, repeat the disable or remove operation.</para>
</note>
</step><step><para>Remove the iSCSI target device.</para><para>Remove a target by
specifying the logical unit number (LUN). If  you did not specify a LUN when
the target was created, a value of 0 was used. LUN  0 must be the last one
removed if there are multiple LUNs associated with a target. </para><para>For
example:</para><screen># <userinput>iscsitadm delete target --lun 0 sandbox</userinput></screen>
</step>
</procedure>
</task><sect2 id="fmven"><title>Accessing iSCSI Disks</title><para>If you want to make the iSCSI drive available on reboot, create the
file system, and add an entry to the <literal>/etc/vfstab</literal> file as
you would with a UFS file system on a SCSI device.</para><para>After the devices have been discovered by the Solaris iSCSI initiator,
the login negotiation occurs automatically. The Solaris iSCSI driver determines
the number of LUNs available and creates the device nodes. Then, the iSCSI
devices can be treated as any other SCSI device.</para><para>You can view the iSCSI disks on the local system with the <command>format</command> utility.</para><para>In the following <command>format</command> output, disks 2 and 3 are
iSCSI LUNs that are not under MPxIO control. Disks 21 and 22 are iSCSI LUNs
under MPxIO control.</para><screen># <userinput>format</userinput>
AVAILABLE DISK SELECTIONS:
       0. c0t1d0 &lt;SUN72G cyl 14087 alt 2 hd 24 sec 424>
          /pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w500000e010685cf1,0
       1. c0t2d0 &lt;SUN72G cyl 14087 alt 2 hd 24 sec 424>
          /pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w500000e0106e3ba1,0
       2. c3t0d0 &lt;ABCSTORAGE-100E-00-2.2 cyl 20813 alt 2 hd 16 sec 63>
          /iscsi/disk@0000iqn.2001-05.com.abcstorage%3A6-8a0900-477d70401-
           b0fff044352423a2-hostname-020000,0
       3. c3t1d0 &lt;ABCSTORAGE-100E-00-2.2 cyl 20813 alt 2 hd 16 sec 63>
           /iscsi/disk@0000iqn.2001-05.com.abcstorage%3A6-8a0900-3fcd70401 
           -085ff04434f423a2-hostname-010000,0
.
.
.
      21. c4t60A98000686F694B2F59775733426B77d0 &lt;ABCSTORAGE-LUN-0.2 cyl  
          4606 alt 2 hd 16 sec 256>
          /scsi_vhci/ssd@g60a98000686f694b2f59775733426b77
      22. c4t60A98000686F694B2F59775733434C41d0 &lt;ABCSTORAGE-LUN-0.2 cyl  
          4606 alt 2 hd 16 sec 256>
          /scsi_vhci/ssd@g60a98000686f694b2f59775733434c41</screen>
</sect2><task id="fmvey"><title>Monitoring Your iSCSI Configuration</title><tasksummary><para>You can display information about the iSCSI initiator and target devices
by using the <command>iscsiadm list</command> command.</para>
</tasksummary><procedure><step><para>Become superuser.</para>
</step><step><para>Display information about the iSCSI initiator.</para><para>For
example:</para><screen># <userinput>iscsiadm list initiator-node</userinput>
Initiator node name: iqn.1986-03.com.sun:01:0003ba4d233b.425c293c
Initiator node alias: zzr1200
        Login Parameters (Default/Configured):
                Header Digest: NONE/-
                Data Digest: NONE/-
        Authentication Type: NONE
        RADIUS Server: NONE
        RADIUS access: unknown
        Configured Sessions: 1</screen>
</step><step><para>Display information about which discovery methods are in use.</para><para>For
example:</para><screen># <userinput>iscsiadm list discovery</userinput>
Discovery:
	Static: enabled
	Send Targets: enabled
	iSNS: enabled</screen>
</step>
</procedure><example id="fquwb"><title>Listing iSCSI Target Information</title><para>The following example shows how to list the parameter settings for a
specific iSCSI target.</para><screen># <userinput>iscsiadm list target-param iqn.1992-08.com.abcstorage:sn.33592219</userinput>
        Target: iqn.1992-08.com.abcstorage:sn.33592219</screen><para>The <command>iscsiadm list target-param -v</command> command displays
the following information:</para><itemizedlist><listitem><para>The authentication settings for the target</para>
</listitem><listitem><para>The default settings for the target login parameters</para>
</listitem><listitem><para>The configured value for each login parameter</para>
</listitem>
</itemizedlist><para>The <command>iscsiadm list target-param -v</command> command displays
the default parameter value before the <filename>/</filename> designator and
the configured parameter value after the <filename>/</filename> designator.
 If you have not configured any parameters, the configured parameter value
displays as a hyphen (<filename>-</filename>). For more information, see the
following examples.</para><screen># <userinput>iscsiadm list target-param -v eui.50060e8004275511 Target: eui.50060e8004275511</userinput>
        Alias: -
        Bi-directional Authentication: disabled
        Authentication Type: NONE
        Login Parameters (Default/Configured):
                Data Sequence In Order: yes/-
                Data PDU In Order: yes/-
                Default Time To Retain: 20/-
                Default Time To Wait: 2/-
                Error Recovery Level: 0/-
                First Burst Length: 65536/-
                Immediate Data: yes/-
                Initial Ready To Transfer (R2T): yes/-
                Max Burst Length: 262144/-
                Max Outstanding R2T: 1/-
                Max Receive Data Segment Length: 65536/-
                Max Connections: 1/-
                Header Digest: NONE/-
                Data Digest: NONE/-
        Configured Sessions: 1</screen><para>The following example <command>iscsiadm list target-param -v</command> output
displays the parameters that were negotiated between the target and the initiator.</para><screen># <userinput>iscsiadm list target -v eui.50060e8004275511</userinput>
Target: eui.50060e8004275511
        TPGT: 1
        ISID: 4000002a0000
        Connections: 1
                CID: 0
                  IP address (Local): 172.90.101.71:32813
                  IP address (Peer): 172.90.101.40:3260
                  Discovery Method: Static
                  Login Parameters (Negotiated):
                        Data Sequence In Order: yes
                        Data PDU In Order: yes
                        Default Time To Retain: 0
                        Default Time To Wait: 3
                        Error Recovery Level: 0
                        First Burst Length: 65536
                        Immediate Data: yes
                        Initial Ready To Transfer (R2T): yes
                        Max Burst Length: 262144
                        Max Outstanding R2T: 1
                        Max Receive Data Segment Length: 65536
                        Max Connections: 1
                        Header Digest: NONE
                        Data Digest: NONE</screen>
</example>
</task><sect2 id="fqnln"><title>Modifying iSCSI Initiator and Target Parameters</title><para>You can modify parameters on both the iSCSI initiator and the iSCSI
target device. However, the only parameters that can be modified on the iSCSI
initiator are the following:</para><itemizedlist><listitem><para>iSCSI initiator node name - You can change the initiator node
name to a different name. If you change the initiator node name, the targets
that were discovered by iSNS might be removed from the initiator's target
list, depending on the discovery domain configuration on the iSNS server at
the time when the name was changed. For more information, see <olink targetptr="fmvem" remap="internal">How to Modify iSCSI Initiator and Target Parameters</olink>.</para>
</listitem><listitem><para>Header digest &ndash; The value can be none, the default value,
or CRC32.</para>
</listitem><listitem><para>Data digest &ndash; The value can be none, the default value,
or CRC32.</para>
</listitem><listitem><para>Authentication and CHAP secret &ndash; For more information
about setting up authentication, see <olink targetptr="fmvea" remap="internal">How to Configure
CHAP Authentication for Your iSCSI Initiator</olink>.</para>
</listitem><listitem><para>Configured sessions &ndash; For more information about configuring
multiple sessions, see <olink targetptr="gcawf" remap="internal">How to Enable Multiple iSCSI
Sessions for a Target</olink>.</para>
</listitem>
</itemizedlist><para>The iSCSI driver provides default values for the iSCSI initiator and
iSCSI target device parameters. If you modify the parameters of the iSCSI
initiator, the modified parameters are inherited by the iSCSI target device,
unless the iSCSI target device is already set to a different value.</para><caution><para>Ensure that the target software supports the parameter to be
modified. Otherwise, you might be unable to log in to the iSCSI target device.
See your array documentation for a list of supported parameters.</para>
</caution><para>Modifying iSCSI parameters should be done when I/O between the initiator
and the target is complete. The iSCSI driver reconnects the session after
the changes are made with the <command>iscsiadm modify</command> command.</para><task id="fmvem"><title>How to Modify iSCSI Initiator and Target Parameters</title><tasksummary><para>The first part of this procedure illustrates how modifying parameters
of the iSCSI initiator are inherited by the iSCSI target device. The second
part of this procedure shows how to actually modify parameters on the iSCSI
target device.</para>
</tasksummary><procedure><step><para>Become superuser.</para>
</step><step><para>List the current parameters of the iSCSI initiator and target
device.</para><substeps><step><para>List the current parameters of the iSCSI initiator. For example:</para><screen># <userinput>iscsiadm list initiator-node</userinput>
Initiator node name: iqn.1986-03.com.sun:01:0003ba4d233b.425c293c
Initiator node alias: zzr1200
        Login Parameters (Default/Configured):
                Header Digest: NONE/-
                Data Digest: NONE/-
        Authentication Type: NONE
        RADIUS Server: NONE
        RADIUS access: unknown
        Configured Sessions: 1</screen>
</step><step><para>List the current parameters of the iSCSI target device. For example:</para><screen># <userinput>iscsiadm list target-param -v iqn.1992-08.com.abcstorage:sn.84186266</userinput>
Target: iqn.1992-08.com.abcstorage:sn.84186266
        Alias: -
        Bi-directional Authentication: disabled
        Authentication Type: NONE
        Login Parameters (Default/Configured):
                Data Sequence In Order: yes/-
                Data PDU In Order: yes/-
                Default Time To Retain: 20/-
                Default Time To Wait: 2/-
                Error Recovery Level: 0/-
                First Burst Length: 65536/-
                Immediate Data: yes/-
                Initial Ready To Transfer (R2T): yes/-
                Max Burst Length: 262144/-
                Max Outstanding R2T: 1/-
                Max Receive Data Segment Length: 65536/-
                Max Connections: 1/-
                Header Digest: NONE/-
                Data Digest: NONE/-
         Configured Sessions: 1</screen><para>Note that both header digest and data digest parameters are currently
set to NONE for both the iSCSI initiator and the iSCSI target device.</para><para>To review the default parameters of the iSCSI target device, see the <command>iscsiadm list target-param</command> output in <olink targetptr="fquwb" remap="internal">Example&nbsp;14&ndash;1</olink>.</para>
</step>
</substeps>
</step><step><para>Modify the parameter of the iSCSI initiator.</para><para>For example,
set header digest to CRC32.</para><screen># <userinput>iscsiadm modify initiator-node -h CRC32</userinput></screen><para>If you change the initiator node name, the targets that were discovered
by iSNS might be logged out and removed from the initiator's target list,
if the new name does not belong to the same discovery domain as that of the
targets. If, however, the targets are in use and busy, they are not removed.
 For example, if a file is opened or a file system is mounted on these targets.</para><para>You may also see new targets after the name change if these targets
and the new initiator node name belong to the same discovery domain.</para>
</step><step><para>Verify that the parameter was modified.</para><substeps><step><para>Display the updated parameter information for the iSCSI initiator.
For example:</para><screen># <userinput>iscsiadm list initiator-node</userinput>
Initiator node name: iqn.1986-03.com.sun:01:0003ba4d233b.425c293c
Initiator node alias: zzr1200
        Login Parameters (Default/Configured):
                Header Digest: NONE/CRC32
                Data Digest: NONE/-
        Authentication Type: NONE
        RADIUS Server: NONE
        RADIUS access: unknown
        Configured Sessions: 1</screen><para>Note that the header digest is now set to CRC32.</para>
</step><step><para>Display the updated parameter information for the iSCSI target
device. For example:</para><screen># iscsiadm list target-param -v iqn.1992-08.com.abcstorage:sn.84186266
Target: iqn.1992-08.com.abcstorage:sn.84186266
        Alias: -
        Bi-directional Authentication: disabled
        Authentication Type: NONE
        Login Parameters (Default/Configured):
                Data Sequence In Order: yes/-
                Data PDU In Order: yes/-
                Default Time To Retain: 20/-
                Default Time To Wait: 2/-
                Error Recovery Level: 0/-
                First Burst Length: 65536/-
                Immediate Data: yes/-
                Initial Ready To Transfer (R2T): yes/-
                Max Burst Length: 262144/-
                Max Outstanding R2T: 1/-
                Max Receive Data Segment Length: 65536/-
                Max Connections: 1/-
                Header Digest: CRC32/-
                Data Digest: NONE/-
        Configured Sessions: 1</screen><para>Note that the header digest is now set to CRC32.</para>
</step>
</substeps>
</step><step><para>Verify that the iSCSI initiator has reconnected to the iSCSI target.
For example:</para><screen># <userinput>iscsiadm list target -v iqn.1992-08.com.abcstorage:sn.84186266</userinput>
Target: iqn.1992-08.com.abcstorage:sn.84186266
        TPGT: 2
        ISID: 4000002a0000
        Connections: 1
                CID: 0
                  IP address (Local): nnn.nn.nn.nnn:64369
                  IP address (Peer): nnn.nn.nn.nnn:3260
                  Discovery Method: SendTargets
                  Login Parameters (Negotiated):
                        .
                        .
                        .
                        Header Digest: CRC32
                        Data Digest: NONE </screen>
</step><step><para>Unset an iSCSI initiator parameter or an iSCSI target device parameter.</para><para>You can unset a parameter by setting it back to it's default
setting with the <command>iscsiadm modify</command> command. Or, you can use
the <command>iscsiadm remove</command> command to reset all target properties
to the default settings.</para><para>The <command>iscsiadm modify target-param</command> command
changes only the parameters that are specified on the command line.</para><para>The
following example shows how to reset the header digest to none:</para><screen># <userinput>iscsiadm modify target-param -h none iqn.1992-08.com.abcstorage:sn...</userinput></screen><para>For information about using the <command>iscsiadm remove target-param</command> command,
see <olink targetdoc="refman1m" targetptr="iscsiadm-1m" remap="external"><citerefentry><refentrytitle>iscsiadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink>.</para>
</step>
</procedure>
</task>
</sect2><sect2 id="fncpc"><title>Setting
Up Solaris iSCSI Multipathed Devices</title><para>Keep the following guidelines in mind when you consider using Solaris
iSCSI multipathed (MPxIO) devices:</para><itemizedlist><listitem><para><emphasis role="strong">Solaris iSCSI and MPXIO</emphasis>:
MPxIO supports target port aggregation and availability in Solaris iSCSI configurations
that configure multiple sessions per target (MS/T) on the iSCSI initiator.</para><itemizedlist><listitem><para>IPMP should be used for aggregation and failover of two or
more NICs.</para>
</listitem><listitem><para>A basic configuration for an iSCSI host would be a server
with two NICs that are dedicated to iSCSI traffic. The NICs should be configured
by using IPMP. Additional NICs should be provided for non-iSCSI traffic to
optimize performance.</para>
</listitem><listitem><para>Active multipathing can only be achieved by using the Solaris
iSCSI MS/T feature or the TPGT feature (?) and the failover and redundancy
of an IPMP configuration:</para><itemizedlist><listitem><para>If one NIC fails in an IPMP configuration, IPMP handles the
failover. The MPxIO driver does not notice the failure. In a non-IPMP configuration,
the MPxIO driver fails and offlines the path.</para>
</listitem><listitem><para>If one target port fails in an IPMP configuration, the MPxIO
driver notices the failure and provides the failover. In a non-IPMP configuration,
the MPXIO driver notices the failure and provides the failover.</para><para>For
more information about using the Solaris iSCSI MS/T feature with IPMP and
multipathing, see SunSolve Infodoc 88246, <citetitle>Understanding an iSCSI
MS/T multi-path configuration</citetitle>.</para>
</listitem>
</itemizedlist>
</listitem><listitem><para>For information about configuring multiple sessions per target,
see <olink targetptr="gcawf" remap="internal">How to Enable Multiple iSCSI Sessions for a Target</olink>.
For information about configuring IPMP, see <olink targetdoc="group-sa" targetptr="ipmptm-1" remap="external">Part&nbsp;IV, <citetitle remap="chapter">IPMP,</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink>.</para>
</listitem>
</itemizedlist>
</listitem><listitem><para><emphasis role="strong">Solaris iSCSI and FC and MPXIO</emphasis>:
The MPxIO driver provides the following behavior in more complex iSCSI/FC
configurations:</para><itemizedlist><listitem><para>If you have dual iSCSI to FC bridges in a FC SAN, iSCSI presents
target paths to MPxIO and MPxIO matches the unique SCSI per LUN identifier,
and if they are identical, presents one path to the iSCSI driver.</para>
</listitem><listitem><para>If you have a configuration that connects a target by using
both iSCSI and FC, the MPxIO driver can provide different transports to the
same device. In this configuration, MPxIO utilizes both paths.</para>
</listitem><listitem><para>If you are using iSCSI and FC in combination with MPxIO, make
sure that the MPxIO settings in the <filename>/kernel/drv/fp.conf</filename> file
and the <filename>/kernel/drv/iscsi.conf</filename> match the MPxIO configuration
that you want supported. For example, in the <filename>fp.conf</filename>,
you can determine whether MPxIO is enabled globally on the HBA or on a per-port
basis.</para>
</listitem>
</itemizedlist>
</listitem><listitem><para><emphasis role="strong">Third-Party Hardware Considerations</emphasis>:
Find out if your third-party HBA is qualified to work with Solaris iSCSI and
MPxIO.</para>
</listitem><listitem><para>If you are using a third-party HBA, you might need to ask
your third-party HBA vendor for the symmetric-option information for the <filename>/kernel/drv/scsi_vhci.conf</filename> file.</para>
</listitem>
</itemizedlist>
</sect2><task id="gcawf"><title>How to Enable Multiple iSCSI Sessions for a Target</title><tasksummary><para>This procedure can be used to create multiple iSCSI sessions that connect
to a single target. This scenario is useful with iSCSI target devices that
support login redirection or have multiple target portals in the same target
portal group.  iSCSI multiple sessions per target support should be used in
combination with Solaris SCSI Multipathing (MPxIO). You can also get higher
bandwidth if you utilize multiple NICs on the host side to connect to multiple
portals on the same target.</para><para>The MS/T feature creates two or more sessions on the target by varying
the initiator's session ID (ISID). Enabling this feature creates two SCSI
layer paths on the network so that multiple targets are exposed up through
the iSCSI layer to the Solaris I/O layer. The MPxIO driver handles the reservations
across these paths.</para><para>Review the following items before configuring multiple sessions for
an iSCSI target:</para><itemizedlist><listitem><para>A typical MS/T configuration has 2 or more configured-sessions.</para><para>However, if your storage supports multiple TPGTs and if you are
using SendTarget discovery on your host system, then the number of configured
sessions can be set to 1. SendTarget discovery automatically knows the existence
of multiple paths and multiple  target sessions are created.</para>
</listitem><listitem><para>Confirm that the <literal>mxpio</literal> configuration parameter
is enabled in the <filename>/kernel/drv/iscsi.conf</filename> file.</para><screen># cd /kernel/drive
# grep mpxio iscsi.conf
iscsi.conf:mpxio-disable="no";</screen>
</listitem><listitem><para>Confirm that the multiple network connections are configured
by using IPMP.</para>
</listitem><listitem><para>Confirm that the multiple network connections are available</para><screen># ifconfig -a</screen>
</listitem>
</itemizedlist><para>For more information about how iSCSI interacts with MPxIO paths, see <olink targetptr="fncpc" remap="internal">Setting Up Solaris iSCSI Multipathed Devices</olink></para>
</tasksummary><procedure><step><para>Become superuser.</para>
</step><step><para>List the current parameters for the iSCSI initiator and target.</para><substeps><step><para>List the current parameters for the iSCSI initiator. For example:</para><screen># <userinput>iscsiadm list initiator-node</userinput>
Initiator node name: iqn.1986-03.com.sun:01:0003ba4d233b.425c293c
Initiator node alias: zzr1200
        .
        .
        .
        Configured Sessions: 1</screen>
</step><step><para>List the current parameters of the iSCSI target device. For example:</para><screen># <userinput>iscsiadm list target-param -v iqn.1992-08.com.abcstorage:sn.84186266</userinput>
Target: iqn.1992-08.com.abcstorage:sn.84186266
        Alias: -
        .
        .
        .
        Configured Sessions: 1</screen><para>The configured sessions value is the number of configured iSCSI sessions
that will be created for each target name in a target portal group.</para>
</step>
</substeps>
</step><step><para>Select one of the following to modify the number of configured
sessions at either the initiator node, to apply to all targets, at a target
level, or to apply to a specific target.</para><para>The number of sessions
for a target must be between 1 and 4.</para><itemizedlist><listitem><para>Apply the parameter to the iSCSI initiator node.</para><para>For
example:</para><screen># <userinput>iscsiadm modify initiator-node -c 2</userinput></screen>
</listitem><listitem><para>Apply the parameter to the iSCSI target.</para><para>For example:</para><screen># <userinput>iscsiadm modify target-param -c 2  iqn.1992-08.com.abcstorage:sn.84186266</userinput></screen>
</listitem>
</itemizedlist><para>Configured sessions can also be bound to a specific local IP address.
Using this method, one or more local IP addresses are supplied in a comma-separated
list.  Each IP address represents an iSCSI session. This method can also be
done at the initiator-node or target-param level. For example:</para><screen># <userinput>iscsiadm modify initiator-node -c 10.0.0.1,10.0.0.2</userinput></screen><note><para>If the specified IP address is not routable, the address is ignored
and the default Solaris route and IP address is used for this session.</para>
</note>
</step><step><para>Verify that the parameter was modified.</para><substeps><step><para>Display the updated information for the initiator node. For example:</para><screen># <userinput>iscsiadm list initiator-node</userinput>
Initiator node name: iqn.1986-03.com.sun:01:0003ba4d233b.425c293c
Initiator node alias: zzr1200
        .
        .
        .
        Configured Sessions: 2</screen>
</step><step><para>Display the updated information for the target node. For example:</para><screen># <userinput>iscsiadm list target-param -v iqn.1992-08.com.abcstorage:sn.84186266</userinput>
Target: iqn.1992-08.com.abcstorage:sn.84186266
        Alias: -
        .
        .
        .
        Configured Sessions: 2</screen>
</step>
</substeps>
</step><step><para>List the multiple paths with the <command>mpathadm list lu</command> command
to confirm that the OS device name matches the <command>iscsiadm list</command> output
and that the path count is 2 or more.</para>
</step>
</procedure>
</task>
</sect1><sect1 id="fpjwy"><title>Troubleshooting iSCSI Configuration Problems</title><para>The following tools are available to troubleshoot general iSCSI configuration
problems:</para><itemizedlist><listitem><para><command>snoop</command> &ndash; This tool has been updated
to support iSCSI packets.</para>
</listitem><listitem><para><command>ethereal</command> &ndash; This freeware product
is available from <ulink url="http://www.ethereal.com" type="url">http://www.ethereal.com</ulink>.</para>
</listitem>
</itemizedlist><para>Both tools can filter iSCSI packets on port 3260.</para><para>The following sections describe various iSCSI troubleshooting and error
message resolution scenarios.</para><sect2 id="fsuly"><title>No Connections to the iSCSI Target From the Local
System</title><task id="fsume"><title>How to Troubleshoot iSCSI Connection Problems</title><procedure><step><para>Become superuser.</para>
</step><step><para>List your iSCSI target information.</para><para>For example:</para><screen># <userinput>iscsiadm list target</userinput>
Target: iqn.2001-05.com.abcstorage:6-8a0900-37ad70401-bcfff02df8a421df-zzr1200-01
        TPGT: default
        ISID: 4000002a0000
        Connections: 0</screen>
</step><step><para>If no connections are listed in the <command>iscsiadm list target</command> output,
check the <filename>/var/adm/messages</filename> file for possible reasons
why the connection failed.</para><para>You can also verify whether the connection
is accessible by using the <command>ping</command> command or by connecting
to the storage device's iSCSI port with the <command>telnet</command> command
to ensure the iSCSI service is available. The default port is 3260.</para><para>In
addition, check the storage device's log file for errors.</para>
</step><step><para>If your target is not listed in the <command>iscsiadm list target</command> output,
check the <filename>/var/adm/messages</filename> file for possible causes.</para><para>If you are using SendTargets as the discovery method, try listing the <replaceable>discovery-address</replaceable> using the <option>v</option> option to ensure
that the expected targets are visible to the host. For example:</para><screen># <userinput>iscsiadm list discovery-address -v 10.0.0.1</userinput>
Discovery Address: 10.0.0.1:3260
	Target name: eui.210000203787dfc0
		Target address:        10.0.0.1:11824
	Target name: eui.210000203787e07b
		Target address:        10.0.0.1:11824</screen><para>If you are using iSNS as the discovery method, try enabling the iSNS
discovery mode and listing the <replaceable>isns-server</replaceable> using
the <option>v</option> option to ensure that the expected targets are visible
to the host. For example:</para><screen># <userinput>iscsiadm list isns-server -v</userinput>
iSNS Server IP Address: 10.20.56.56:3205
        Target name: iqn.1992-08.com.xyz:sn.1234566
                Target address:   10.20.57.161:3260, 1
        Target name: iqn.2003-10.com.abc:group-0:154:abc-65-01
                Target address:   10.20.56.206:3260, 1
        Target name: iqn.2003-10.com.abc:group-0:154:abc-65-02
                Target address:   10.20.56.206:3260, 1
.
.
.</screen>
</step>
</procedure>
</task>
</sect2><sect2 id="fsumb"><title>iSCSI Device or Disk Is Not Available on the Local
System</title><task id="fsumd"><title>How to Troubleshoot iSCSI Device or Disk Unavailability</title><procedure><step><para>Become superuser.</para>
</step><step><para>Identify the LUNs that were discovered on this target during enumeration.</para><para>For example:</para><screen># <userinput>iscsiadm list target -S</userinput>
Target: iqn.2001-05.com.abcstorage:6-8a0900-37ad70401-bcfff02df8a421df-zzr1200-01
        TPGT: default
        ISID: 4000002a0000
        Connections: 1
        LUN: 0
            Vendor:  ABCSTOR
            Product: 0010 
            OS Device Name: /dev/rdsk/c3t34d0s2</screen><para>The <option>S</option> option shows which LUNs where discovered on this
target during enumeration. If you think a LUN should be listed but it is not,
review the <filename>/var/adm/messages</filename> file to see if an error
was reported. Check the storage device's log files for errors. Also, ensure
that any storage device LUN masking is properly configured.</para>
</step>
</procedure>
</task>
</sect2><sect2 id="gbsct"><title>Use LUN Masking When Using the iSNS Discovery Method</title><para>Avoid using iSNS discovery domain as the means to control storage authorization
to specific initiators. Use LUN masking instead if you want to make sure that
only authorized initiators can access a LUN. </para><para>If you remove a target from a discovery domain while the target is in
use, the iSCSI initiator does not log out from this target. If you do not
want this initiator to access this target (and the associated LUNs), you will
have to use LUN masking. Simply removing the target from the discovery domain
is not sufficient.</para>
</sect2><sect2 id="fsumc"><title>General iSCSI Error Messages</title><para>This section describes the iSCSI messages that might be found in the <filename>/var/adm/messages</filename> file and potential solutions for recovery.</para><para>The message format is as follows:</para><screen>iscsi <replaceable>TYPE</replaceable> (<replaceable>OID</replaceable>) <replaceable>STRING</replaceable> (<replaceable>STATUS-CLASS#</replaceable>/<replaceable>STATUS-DETAIL#</replaceable>)</screen><variablelist><varlistentry><term><replaceable>TYPE</replaceable></term><listitem><para>Is either connection or session.</para>
</listitem>
</varlistentry><varlistentry><term><replaceable>OID</replaceable></term><listitem><para>Is the object ID of the connection or session. This ID is
unique for an OS instance.</para>
</listitem>
</varlistentry><varlistentry><term><replaceable>STRING</replaceable></term><listitem><para>Is a description of the condition.</para>
</listitem>
</varlistentry><varlistentry><term><replaceable>&lt;STATUS-CLASS#>/&lt;STATUS-DETAIL#></replaceable></term><listitem><para>These values are returned in an iSCSI login response as defined
by RFC 3720.</para>
</listitem>
</varlistentry>
</variablelist><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - Miscellaneous iSCSI initiator errors.</para>
</msgtext><msgexplan role="cause"><para>The device login failed due to some form of
initiator error.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - Initiator could not be successfully authenticated.</para>
</msgtext><msgexplan role="cause"><para>The device could not successfully authenticate
the initiator.</para>
</msgexplan><msgexplan role="solution"><para>If applicable, verify that the settings for
CHAP names, CHAP passwords or RADIUS are correct.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - Initiator is not allowed access to the given target.</para>
</msgtext><msgexplan role="cause"><para>The device will not allow the initiator access
to the iSCSI target device.</para>
</msgexplan><msgexplan role="solution"><para>Verify your initiator name and confirm that
it is properly masked or provisioned by the storage device.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - Requested ITN does not exist at this address.</para>
</msgtext><msgexplan role="cause"><para>The device does not provide access to the iSCSI
target name (ITN) that you are requesting.</para>
</msgexplan><msgexplan role="solution"><para>Verify the initiator discovery information
is entered properly and that the storage 	device is configured properly.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - Requested ITN has been removed and no forwarding address is
provided.</para>
</msgtext><msgexplan role="cause"><para>The device can no longer provide access to the
iSCSI target name (ITN) that you are requesting.</para>
</msgexplan><msgexplan role="solution"><para>Verify that the initiator discovery information
has been specified properly and the storage device has been configured properly.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - Requested iSCSI version range is not supported by the target.</para>
</msgtext><msgexplan role="cause"><para>The initiator's iSCSI version is not supported
 by the storage device.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - No more connections can be accepted on this Session ID (SSID).</para>
</msgtext><msgexplan role="cause"><para>The storage device cannot accept another connection
for this initiator node to the iSCSI target device.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - Missing parameters (e.g., iSCSI initiator and/or target name).</para>
</msgtext><msgexplan role="cause"><para>The storage device is reporting that the initiator
or target	name has not been properly specified.</para>
</msgexplan><msgexplan role="solution"><para>Properly specify the iSCSI initiator or target
name.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - Target hardware or software error.</para>
</msgtext><msgexplan role="cause"><para>The storage device encountered a hardware or
software error.</para>
</msgexplan><msgexplan role="solution"><para>Consult the storage documentation or contact
the storage vendor for further	assistance.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - iSCSI service or target is not currently operational.</para>
</msgtext><msgexplan role="cause"><para>The storage device is currently not 	operational.</para>
</msgexplan><msgexplan role="solution"><para>Consult the storage documentation or contact
the storage vendor for further assistance.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - Target has insufficient session, connection or other resources.</para>
</msgtext><msgexplan role="cause"><para>The storage device has insufficient resources.</para>
</msgexplan><msgexplan role="solution"><para>Consult the storage documentation or contact
the storage vendor for further assistance.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - unable to initialize authentication</para><para>iscsi connection(<replaceable>OID</replaceable>) login failed - unable
to set authentication</para><para>iscsi connection(<replaceable>OID</replaceable>) login failed - unable
to set username</para><para>iscsi connection(<replaceable>OID</replaceable>) login failed - unable
to set password</para><para>iscsi connection(<replaceable>OID</replaceable>) login failed - unable
to set ipsec</para><para>iscsi connection(<replaceable>OID</replaceable>) login failed - unable
to set remote authentication</para>
</msgtext><msgexplan role="cause"><para>The initiator was unable to initialize or set
authentication properly.</para>
</msgexplan><msgexplan role="solution"><para>Verify that your initiator settings for authentication
are properly configured.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - unable to make login pdu</para>
</msgtext><msgexplan role="cause"><para>The initiator was unable to make a login payload
data unit (PDU) based on the initiator or storage device settings.</para>
</msgexplan><msgexplan role="solution"><para>Try resetting any target login parameters
or other nondefault settings.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - failed to transfer login</para><para>iscsi connection(<replaceable>OID</replaceable>) login failed - failed
to receive login response</para>
</msgtext><msgexplan role="cause"><para>The initiator failed to transfer or receive
a login payload data unit (PDU) across the network connection.</para>
</msgexplan><msgexplan role="solution"><para>Verify that the network connection is reachable.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - received invalid login response (<replaceable>OP CODE</replaceable>)</para>
</msgtext><msgexplan role="cause"><para>The storage device has responded to a login
with 	an unexpected response.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - login failed to authenticate with target</para>
</msgtext><msgexplan role="cause"><para>The initiator was unable to authenticate the
storage device.</para>
</msgexplan><msgexplan role="solution"><para>Verify that your initiator settings for authentication
are properly configured.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - initiator name is required</para>
</msgtext><msgexplan role="cause"><para>An initiator name must be configured to perform
all actions.</para>
</msgexplan><msgexplan role="solution"><para>Verify that the initiator name is configured.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - authentication receive failed</para><para>iscsi connection(<replaceable>OID</replaceable>) login failed - authentication
transmit failed</para>
</msgtext><msgexplan role="cause"><para>The initiator was unable to transmit or receive
authentication information.</para>
</msgexplan><msgexplan role="solution"><para>Verify the network connectivity with storage
device or the RADIUS server as applicable.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - login redirection invalid</para>
</msgtext><msgexplan role="cause"><para>The storage device attempted to redirect the
initiator to an invalid destination.</para>
</msgexplan><msgexplan role="solution"><para>Consult the storage documentation or contact
the storage vendor for further assistance.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - target protocol group tag mismatch, expected &lt;TPGT>, received
&lt;TPGT></para>
</msgtext><msgexplan role="cause"><para>The initiator and target had a TPGT (target
portal group tag) mismatch.</para>
</msgexplan><msgexplan role="solution"><para>Verify your TPGT discovery settings on the
initiator or the storage device.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - can't accept <replaceable>PARAMETER</replaceable> in security
stage</para>
</msgtext><msgexplan role="cause"><para>The device responded with an unsupported login
parameter during the security phase of login.</para>
</msgexplan><msgexplan role="solution"><para>The parameter name is noted for reference.
Consult the storage documentation or contact the storage vendor for further
assistance.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - HeaderDigest=CRC32 is required, can't accept <replaceable>VALUE</replaceable></para><para>iscsi connection(<replaceable>OID</replaceable>) login failed - DataDigest=CRC32
is required, can't accept <replaceable>VALUE</replaceable></para>
</msgtext><msgexplan role="cause"><para>The initiator is only configured to accept <literal>HeaderDigest</literal> or <literal>DataDigest</literal> that is set to CRC32
for this target. The device returned the value of <replaceable>VALUE</replaceable>.</para>
</msgexplan><msgexplan role="solution"><para>Verify that the initiator and device digest
settings are compatible.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - HeaderDigest=None is required, can't accept <replaceable>VALUE</replaceable></para><para>iscsi connection(<replaceable>OID</replaceable>) login failed - DataDigest=None
is required, can't accept <replaceable>VALUE</replaceable></para>
</msgtext><msgexplan role="cause"><para>The initiator is only configured to accept <literal>HeaderDigest</literal> or <literal>DataDigest</literal> that is set to none
for this target. The device returned the value of <replaceable>VALUE</replaceable>.</para>
</msgexplan><msgexplan role="solution"><para>Verify that the initiator and device digest
settings are compatible.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - can't accept <replaceable>PARAMETER</replaceable></para>
</msgtext><msgexplan role="cause"><para>The initiator does not support this parameter.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - can't accept MaxOutstandingR2T <replaceable>VALUE</replaceable></para>
</msgtext><msgexplan role="cause"><para>The initiator does not accept <literal>MaxOutstandingR2T</literal> of the noted <replaceable>VALUE</replaceable>.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - can't accept MaxConnections <replaceable>VALUE</replaceable></para>
</msgtext><msgexplan role="cause"><para>The initiator does not accept the maximum connections
of the noted <replaceable>VALUE</replaceable>.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
login failed - can't accept ErrorRecoveryLevel <replaceable>VALUE</replaceable></para>
</msgtext><msgexplan role="cause"><para>The initiator does not accept an error recovery
level of the noted <replaceable>VALUE</replaceable>.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi session(<replaceable>OID</replaceable>) <replaceable>NAME</replaceable> offline</para>
</msgtext><msgexplan role="cause"><para>All connections for this target <replaceable>NAME</replaceable> have
been removed or failed.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
failure - unable to schedule enumeration</para>
</msgtext><msgexplan role="cause"><para>The initiator was unable to enumerate the LUNs
on this target.</para>
</msgexplan><msgexplan role="solution"><para>You can force LUN enumeration by running
the <command>devfsadm -i iscsi</command> command. For more information, see <olink targetdoc="refman1m" targetptr="devfsadm-1m" remap="external"><citerefentry><refentrytitle>devfsadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink>.</para>
</msgexplan>
</simplemsgentry>
</msgset><msgset><simplemsgentry><msgtext><para>iscsi connection(<replaceable>OID</replaceable>)
unable to connect to target <replaceable>NAME</replaceable> (errno:<replaceable>ERRNO</replaceable>)</para>
</msgtext><msgexplan role="cause"><para>The initiator failed to establish a network
connection.</para>
</msgexplan><msgexplan role="solution"><para>For information about the specific <replaceable>ERRNO</replaceable> on the connection failure, see the <filename>/usr/include/sys/errno.h</filename> file.</para>
</msgexplan>
</simplemsgentry>
</msgset>
</sect2>
</sect1>
</chapter>