Back to Contents Page

iSCSI Protocol: Broadcom NetXtreme II™ Network Adapter User Guide

iSCSI Boot

iSCSI Crash Dump

iSCSI Offload


iSCSI Boot

Broadcom NetXtreme II Gigabit Ethernet adapters support iSCSI boot to enable network boot of operating systems to diskless systems. The iSCSI boot allows a Windows or Linux operating system boot from an iSCSI target machine located remotely over a standard IP network.

For both Windows and Linux operating systems, iSCSI boot can be configured to boot with two distinctive paths: non-offload (also known as Microsoft initiator) and offload (Broadcom's offload iSCSI driver or HBA). Configuration of the path is set with the HBA Boot Mode option located on the General Parameters screen of the iSCSI Configuration utility. See Table 1 for more information on all General Parameters screen configuration options.

Supported Operating Systems for iSCSI Boot

The Broadcom NetXtreme II Gigabit Ethernet adapters support iSCSI boot on the following operating systems:

iSCSI Boot Setup

The iSCSI boot setup consists of:

Configuring the iSCSI Target

Configuring the iSCSI target varies by target vendors. For information on configuring the iSCSI target, refer to the documentation provided by the vendor. The general steps include:

  1. Create an iSCSI target.
  2. Create a virtual disk.
  3. Map the virtual disk to the iSCSI target created in step 1.
  4. Associate an iSCSI initiator with the iSCSI target.
  5. Record the iSCSI target name, TCP port number, iSCSI Logical Unit Number (LUN), initiator Internet Qualified Name (IQN), and CHAP authentication details.
  6. After configuring the iSCSI target, obtain the following:
  7. Target IQN
  8. Target IP address
  9. Target TCP port number
  10. Target LUN
  11. Initiator IQN
  12. CHAP ID and secret
Configuring iSCSI Boot Parameters

Configure the Broadcom iSCSI boot software for either static or dynamic configuration. Refer to Table 1 for configuration options available from the General Parameters screen.

Table 1 lists parameters for both IPv4 and IPv6. Parameters specific to either IPv4 or IPv6 are noted.

NOTE: Availability of IPv6 iSCSI boot is platform/device dependent.

Table 1: Configuration Options
Option
Description
TCP/IP parameters via DHCP
This option is specific to IPv4. Controls whether the iSCSI boot host software acquires the IP address information using DHCP (Enabled) or use a static IP configuration (Disabled).
IP Autoconfiguration
This option is specific to IPv6. Controls whether the iSCSI boot host software will configure a stateless link-local address and/or stateful address if DHCPv6 is present and used (Enabled). Router Solicit packets are sent out up to three times with 4 second intervals in between each retry. Or use a static IP configuration (Disabled).
iSCSI parameters via DHCP
Controls whether the iSCSI boot host software acquires its iSCSI target parameters using DHCP (Enabled) or through a static configuration (Disabled). The static information is entered through the iSCSI Initiator Parameters Configuration screen.
CHAP Authentication
Controls whether the iSCSI boot host software uses CHAP authentication when connecting to the iSCSI target. If CHAP Authentication is enabled, the CHAP ID and CHAP Secret are entered through the iSCSI Initiator Parameters Configuration screen.
Boot to iSCSI target
Controls whether the iSCSI boot host software attempts to boot from the iSCSI target after successfully connecting to it. When the option is enabled, the iSCSI boot host software immediately attempts to boot form the iSCSI target. If set to disabled, the iSCSI boot host software does not attempt to boot from the iSCSI target and control returns to the system BIOS so that the next boot device may be used. The One Time Disabled option is used when you want to do a remote install of the OS to an iSCSI target. As the option is named, it is set to disable on the first boot, then changes to enabled on subsequent reboots to indicate that iSCSI boots from the iSCSI target.
DHCP Vendor ID
Controls how the iSCSI boot host software interprets the Vendor Class ID field used during DHCP. If the Vendor Class ID field in the DHCP Offer packet matches the value in the field, the iSCSI boot host software looks into the DHCP Option 43 fields for the required iSCSI boot extensions. If DHCP is disabled, this value does not need to be set.
Link Up Delay Time
Controls how long the iSCSI boot host software waits, in seconds, after an Ethernet link is established before sending any data over the network. The valid values are 0 to 255. As an example, a user may need to set a value for this option if a network protocol, such as Spanning Tree, is enabled on the switch interface to the client system.
Use TCP Timestamp
Controls if the TCP Timestamp option is enabled or disabled.
Target as First HDD
Allows specifying that the iSCSI target drive will appear as the first hard drive in the system.
LUN Busy Retry Count
Controls the number of connection retries the iSCSI Boot initiator will attempt if the iSCSI target LUN is busy.
IP Version
This option specific to IPv6. Toggles between the IPv4 or IPv6 protocol. All IP settings will be lost when switching from one protocol version to another.
HBA Boot Mode
Set to disable when the host OS is configured for software initiator mode and to enable for HBA mode. This option is available on NetXtreme II adapters.

MBA Boot Protocol Configuration

To configure the boot protocol

  1. Restart your system.
  2. From the PXE banner, select CTRL+S. The MBA Configuration Menu appears (see Broadcom Boot Agent).
  3. From the MBA Configuration Menu, use the UP ARROW or DOWN ARROW to move to the Boot Protocol option. Use the LEFT ARROW or RIGHT ARROW to change the Boot Protocol option to iSCSI.
  4. Select iSCSI Boot Configuration from Main Menu.
  5. NOTE: If iSCSI boot firmware is not programmed in the NetXtreme II network adapter, selecting iSCSI Boot Configuration will not have any effect.

iSCSI Boot Configuration

Static iSCSI Boot Configuration

In a static configuration, you must enter data for the system's IP address, the system's initiator IQN, and the target parameters obtained in Configuring the iSCSI Target. For information on configuration options, see Table 1.

To configure the iSCSI boot parameters using static configuration

  1. From the General Parameters Menu screen, set the following:
    • TCP/IP parameters via DHCP: Disabled. (For IPv4.)
    • IP Autoconfiguration: Disabled. (For IPv6, non-offload.)
    • iSCSI parameters via DHCP: Disabled
    • CHAP Authentication: Disabled
    • Boot to iSCSI target: Disabled
    • DHCP Vendor ID: BRCM ISAN
    • Link Up Delay Time: 0
    • Use TCP Timestamp: Enabled
    • Target as First HDD: Disabled
    • LUN Busy Retry Count: 0
    • IP Version: IPv6. (For IPv6, non-offload.)
    • HBA Boot Mode: Disabled
  2. Select ESC to return to the Main menu.
  3. From the Main menu, select Initiator Parameters.
  4. From the Initiator Parameters screen, type values for the following:
    • IP Address (unspecified IPv4 and IPv6 addresses should be "0.0.0.0" and "::", respectively)
    • Subnet Mask Prefix
    • Default Gateway
    • Primary DNS
    • Secondary DNS
    • iSCSI Name (corresponds to the iSCSI initiator name to be used by the client system)
    • NOTE: Carefully enter the IP address. There is no error-checking performed against the IP address to check for duplicates or incorrect segment/network assignment.

  5. Select ESC to return to the Main menu.
  6. From the Main menu, select 1st Target Parameters.
  7. From the 1st Target Parameters screen, enable Connect to connect to the iSCSI target. Type values for the following using the values used when configuring the iSCSI target:
    • IP Address
    • TCP Port
    • Boot LUN
    • iSCSI Name
  8. Select ESC to return to the Main menu.
  9. A second iSCSI boot adapter can be configured for redundancy in the event the primary adapter fails to boot. To configure the secondary device parameters, select Secondary Device Parameters from the Main menu (see Configure Parameters for a Secondary Adapter). Otherwise, go to step 10.
  10. Select ESC and select Exit and Save Configuration.
  11. Select F4 to save your MBA configuration.
  12. If necessary, return to the iSCSI Boot Configuration Utility to configure a second iSCSI target.

Dynamic iSCSI Boot Configuration

In a dynamic configuration, you only need to specify that the system's IP address and target/initiator information are provided by a DHCP server (see IPv4 and IPv6 configurations in Configuring the DHCP Server to Support iSCSI Boot). For IPv4, with the exception of the initiator iSCSI name, any settings on the Initiator Parameters, 1st Target Parameters, or 2nd Target Parameters screens are ignored and do not need to be cleared. For IPv6, with the exception of the CHAP ID and Secret, any settings on the Initiator Parameters, 1st Target Parameters, or 2nd Target Parameters screens are ignored and do not need to be cleared. For information on configuration options, see Table 1.

NOTE: When using a DHCP server, the DNS server entries are overwritten by the values provided by the DHCP server. This occurs even if the locally provided values are valid and the DHCP server provides no DNS server information. When the DHCP server provides no DNS server information, both the primary and secondary DNS server values are set to 0.0.0.0. When the Windows OS takes over, the Microsoft iSCSI initiator retrieves the iSCSI Initiator parameters and configures the appropriate registries statically. It will overwrite whatever is configured. Since the DHCP daemon runs in the Windows environment as a user process, all TCP/IP parameters have to be statically configured before the stack comes up in the iSCSI Boot environment.

If DHCP Option 17 is used, the target information is provided by the DHCP server, and the initiator iSCSI name is retrieved from the value programmed from the Initiator Parameters screen. If no value was selected, then the controller defaults to the name:

iqn.1995-05.com.broadcom.<11.22.33.44.55.66>.iscsiboot

where the string 11.22.33.44.55.66 corresponds to the controller's MAC address.

If DHCP option 43 (IPv4 only) is used, then any settings on the Initiator Parameters, 1st Target Parameters, or 2nd Target Parameters screens are ignored and do not need to be cleared.

To configure the iSCSI boot parameters using dynamic configuration

  1. From the General Parameters Menu screen, set the following:
    • TCP/IP parameters via DHCP: Enabled. (For IPv4.)
    • IP Autoconfiguration: Enabled. (For IPv6, non-offload.)
    • iSCSI parameters via DHCP: Enabled
    • CHAP Authentication: Disabled
    • Boot to iSCSI target: Disabled
    • DHCP Vendor ID: BRCM ISAN
    • Link Up Delay Time: 0
    • Use TCP Timestamp: Enabled
    • Target as First HDD: Disabled
    • LUN Busy Retry Count: 0
    • IP Version: IPv6. (For IPv6, non-offload.)
    • HBA Boot Mode: Disabled
  2. Select ESC to return to the Main menu.
  3. NOTE: Information on the Initiator Parameters 1st Target Parameters, and 2nd Target Parameters screens are ignored and do not need to be cleared.

  4. A second iSCSI boot adapter can be configured for redundancy in the event the primary adapter fails to boot. To configure the secondary device parameters, select Secondary Device Parameters from the Main menu (see Configure Parameters for a Secondary Adapter). Otherwise, go to step 4.
  5. Select Exit and Save Configurations.
Configure Parameters for a Secondary Adapter

A second iSCSI boot adapter can be optionally configured for redundancy in the event the primary adapter fails to boot.

To configure the iSCSI boot parameters for a secondary adapter

  1. From the iSCSI Boot Main Menu screen, select Secondary Device Parameters.
  2. From the Device List, select the adapter that will be used as the secondary adapter.
  3. From the Secondary Device Parameters screen, set the following:
    • Use Independent Target Portal: Enabled (or Disabled if MPIO mode is not required)
    • Use Independent Target Name: Enabled
    • Configure Secondary Device: Invoke
  4. Configure the secondary adapter parameters.
  5. NOTE: The IP addresses for the primary and secondary adapters must be in two different subnets.

  6. Select ESC and select Exit and Save Configuration.
  7. Select F4 to save your MBA configuration.
Enabling CHAP Authentication

Ensure that CHAP authentication is enabled on the target.

To enable CHAP authentication

  1. From the General Parameters screen, set CHAP Authentication to Enabled.
  2. From the Initiator Parameters screen, type values for the following:
    • CHAP ID (up to 128 bytes)
    • CHAP Secret (if authentication is required, and must be 12 characters in length or longer)
  3. Select ESC to return to the Main menu.
  4. From the Main menu, select 1st Target Parameters.
  5. From the 1st Target Parameters screen, type values for the following using the values used when configuring the iSCSI target:
    • CHAP ID (optional if two-way CHAP)
    • CHAP Secret (optional if two-way CHAP, and must be 12 characters in length or longer)
  6. Select ESC to return to the Main menu.
  7. Select ESC and select Exit and Save Configuration.
Configuring the DHCP Server to Support iSCSI Boot

The DHCP server is an optional component and it is only necessary if you will be doing a dynamic iSCSI Boot configuration setup (see Dynamic iSCSI Boot Configuration).

Configuring the DHCP server to support iSCSI boot is different for IPv4 and IPv6.

DHCP iSCSI Boot Configurations for IPv4

The DHCP protocol includes a number of options that provide configuration information to the DHCP client. For iSCSI boot, Broadcom adapters support the following DHCP configurations:

DHCP Option 17, Root Path

Option 17 is used to pass the iSCSI target information to the iSCSI client.

The format of the root path as defined in IETC RFC 4173 is:

"iscsi:"<servername>":"<protocol>":"<port>":"<LUN>":"<targetname>"

The parameters are defined below.

Table 2: DHCP Option 17 Parameter Definition
Parameter
Definition
"iscsi:"
A literal string
<servername>
The IP address or FQDN of the iSCSI target
":"
Separator
<protocol>
The IP protocol used to access the iSCSI target. Currently, only TCP is supported so the protocol is 6.
<port>
The port number associated with the protocol. The standard port number for iSCSI is 3260.
<LUN>
The Logical Unit Number to use on the iSCSI target. The value of the LUN must be represented in hexadecimal format. A LUN with an ID OF 64 would have to be configured as 40 within the option 17 parameter on the DHCP server.
<targetname>
The target name in either IQN or EUI format (refer to RFC 3720 for details on both IQN and EUI formats). An example IQN name would be "iqn.1995-05.com.broadcom:iscsi-target".

DHCP Option 43, Vendor-Specific Information

DHCP option 43 (vendor-specific information) provides more configuration options to the iSCSI client than DHCP option 17. In this configuration, three additional suboptions are provided that assign the initiator IQN to the iSCSI boot client along with two iSCSI target IQNs that can be used for booting. The format for the iSCSI target IQN is the same as that of DHCP option 17, while the iSCSI initiator IQN is simply the initiator's IQN.

NOTE: DHCP Option 43 is supported on IPv4 only.

The suboptions are listed below.

Table 3: DHCP Option 43 Suboption Definition
Suboption
Definition
201
First iSCSI target information in the standard root path format
"iscsi:"<servername>":"<protocol>":"<port>":"<LUN>":"<targetname>"
202
Second iSCSI target information in the standard root path format
"iscsi:"<servername>":"<protocol>":"<port>":"<LUN>":"<targetname>"
203
iSCSI initiator IQN

Using DHCP option 43 requires more configuration than DHCP option 17, but it provides a richer environment and provides more configuration options. Broadcom recommends that customers use DHCP option 43 when performing dynamic iSCSI boot configuration.

Configuring the DHCP Server

Configure the DHCP server to support option 17 or option 43.

NOTE: If using Option 43, you also need to configure Option 60. The value of Option 60 should match the DHCP Vendor ID value. The DHCP Vendor ID value is BRCM ISAN, as shown in General Parameters of the iSCSI Boot Configuration menu.

DHCP iSCSI Boot Configuration for IPv6

The DHCPv6 server can provide a number of options, including stateless or stateful IP configuration, as well s information to the DHCPv6 client. For iSCSI boot, Broadcom adapters support the following DHCP configurations:

DHCPv6 Option 16, Vendor Class Option

DHCPv6 Option 16 (vendor class option) must be present and must contain a string that matches your configured DHCP Vendor ID parameter. The DHCP Vendor ID value is BRCM ISAN, as shown in General Parameters of the iSCSI Boot Configuration menu.

The content of Option 16 should be <2-byte length> <DHCP Vendor ID>.

DHCPv6 Option 17, Vendor-Specific Information

DHCPv6 Option 17 (vendor-specific information) provides more configuration options to the iSCSI client. In this configuration, three additional suboptions are provided that assign the initiator IQN to the iSCSI boot client along with two iSCSI target IQNs that can be used for booting.

The suboptions are listed below.

Table 4: DHCP Option 17 Suboption Definition
Suboption
Definition
201
First iSCSI target information in the standard root path format
"iscsi:"[<servername>]":"<protocol>":"<port>":"<LUN>":"<targetname>"
202
Second iSCSI target information in the standard root path format
"iscsi:"[<servername>]":"<protocol>":"<port>":"<LUN>":"<targetname>"
203
iSCSI initiator IQN

NOTE: In Table 4, the brackets [ ] are required for the IPv6 addresses.

The content of option 17 should be <2-byte Option Number 201|202|203> <2-byte length> <data>.

Configuring the DHCP Server

Configure the DHCP server to support Option 16 and Option 17.

NOTE:

Preparing the iSCSI Boot Image

Windows Server 2008 R2 and SP2 iSCSI Boot Setup

The Windows Server 2008 R2 and the Windows Server 2008 SP2 support booting as well as installing in either the offload or non-offload paths.

The following procedure is to prepare to install and boot the Windows Server 2008 R2 and SP2 iSCSI Boot image in either the offload or non-offload path. The procedure below references the Windows Server 2008 R2 but procedure is common to both the Windows Server 2008 R2 and SP2.

CD/iso needed:

USB drive:

Other Software Needed:

Procedure:

  1. Remove any local hard drives on the SUT.
  2. Load the latest Broadcom MBA and iSCSI boot images onto NVRAM of the AUT.
  3. Configure SUT's BIOS to have the Broadcom MBA as the first bootable device, and the CDROM as the second device.
  4. Configure the iSCSI Target, with sufficient disk space to hold new O/S installation, to allow connection from the SUT.
  5. Boot up system. At PXE banner, press Ctrl+S to enter PXE menu.
  6. At PXE menu, set Boot Protocol to iSCSI.
  7. Enter iSCSI target parameters.
  8. Set HBA Boot Mode to Enabled or Disabled.
  9. In General Parameters, set Boot to Target parameter to One-Time Disabled.
  10. Save settings, and reboot system.
  11. SUT should connect to target, and then boot to DVDROM device.
  12. Boot to DVD and begin installation.
  13. Answer all the installation questions with appropriate answers. (such as Operating System you want to install, accept the license terms, etc.).
  14. When the Where you want to install Windows? dialog window appears, select Load Drivers. Plug in USB device, which contains drivers, into SUT.
    1. If HBA Boot Mode is Enabled: load evbd/vbd and ois drivers.
    2. IF HBA Boot Mode is Disabled: load evbd/vbd and ndis drivers.
  15. Target Drive should be seen. This is a drive connected via the iSCSI boot protocol, located in the remote iSCSI target) Select Next to proceed W2K8R2 installation.
  16. A few minutes after the W2K8R2 DVD installation process starts, there will be a system restart follows.
  17. After a reboot, W2K8R2 installation routine should start and continue on. (Completing installation).
  18. Then there will be another system restart follows, check and verify the SUT is able to boot to the desktop.
  19. After W2K8R2 is booted up, load all drivers and run Bindview.exe.
    1. Select: All Services.
    2. Under WFP Lightweight Filter you should see Binding paths for the AUT. Right click and disable them. When done close out.
  20. Verify the OS and system is functional, and able to pass traffic by pinging a remote system's IP, etc.
  21. Test and verify iSCSI boot remains functional over both NDIS and OIS path in both IPv4 and all IPv6 protocols.

Linux iSCSI Boot Setup

Linux iSCSI boot is supported on Red Hat Enterprise Linux 5.5 and later and SUSE Linux Enterprise Server 11 PS1 and later in both the offload and non-offload paths. SLES 10.x and SLES 11 support only the non-offload path.

There are two methods to set up Linux iSCSI boot:

Local hard drive installation

  1. Install Linux OS on your local hard drive and make sure open-iscsi initiator is up to date.
  2. Make sure all Runlevels of network service are on.
  3. Make sure 2, 3, and 5 Runlevels of iscsi service are on.
  4. Update uIP. You can get uIP package from Broadcom CD. This step is not needed for SuSE 10.
  5. Install linux-nx2 package on you linux system. You can get this package from Broadcom CD.
  6. Install bibt package on you Linux system. You can get this package from Broadcom CD.
  7. Delete all ifcfg-eth* files.
  8. Configure one port of network adapter to connect to iSCSI Target (see how to setup iSCSI target in corresponding section).
  9. Connect to iSCSI Target.
  10. Use DD command to copy local hard drive to iSCSI Target.
  11. When DD is done, execute sync command a couple of times, logout then login to iSCSI Target again.
  12. Run fsck command on all partitions created on iSCSI Target.
  13. Change to /OPT/bcm/bibt folder and run the iscsi_setup.sh script to create the initrd images. Option 0 will create non-offload image and option 1 will create offload image. Iscsi_script.sh script will create the non-offload image only on SuSE 10 as offload is not supported on SuSE 10.
  14. Mount the /boot partition on the iSCSI Target.
  15. Copy the initrd images you created in step 13 from your local hard drive to the partition mounted in step 14.
  16. On the partition mounted in step 14, edit grub menu to point to the new initrd images.
  17. Unmount the /boot partition on the iSCSI Target.
  18. (Red hat Only) To enable CHAP, you need to modify the CHAP section of the iscsid.conf file on the iSCSI Target. Edit iscsid.conf file with one or two way CHAP information as desired.
  19. Shut down system and disconnect local hard drive. Now you are ready to iSCSI boot into iSCSI Target.
  20. Configure iSCSI Boot Parameters including CHAP parameters if desired (see corresponding sections).
  21. Continue booting into iSCSI Boot image and choose one of the images you created (non-offload or offload). Your choice should correspond with your choice in the iSCSI Boot parameters section. If HBA Boot Mode was enabled in the iSCSI Boot Parameters section, you have to boot the offload image. SuSE 10.x and SLES 11 do not support offload.

Remote DVD installation

Installation using the remote DVD method can only be performed through the non-offload path. After completing the installation, the system can be setup to boot from either the non-offload or offload paths as described in the procedure below. Starting with Red Hat 6.2 and SLES 11.2, installing through the offload path will be supported.

  1. Get the latest Broadcom Linux driver CD.
  2. Configure iSCSI Boot Parameters for DVD direct install to target by disabling Boot from target option on network adapter.
  3. To set to the non-offload path, set HBA Boot Mode to Disabled in the NVRAM Configuration.
  4. Change boot order as follows:
    1. Boot from the network adapter.
    2. Boot from the CD/DVD driver.
  5. Reboot the system.
  6. System will connect to iSCSI target, then will boot from CD/DVD drive.
  7. Follow the corresponding OS instructions.
    1. Red Hat 5.5 - Type "linux dd" at "boot:" prompt and press enter
    2. Red Hat 6.0
    3. SuSE 10
    4. SuSE 11.1 choose "installation" and type withiscsi=1 netsetup=1 at boot option and choose YES for F6 driver option.
  8. Follow the instructions to load the driver CD.
  9. At the "networking device" prompt, choose the desired network adapter port and press OK.
  10. At "configure TCP/IP prompt configure the way the system acquire IP address and press OK.
  11. If static IP was chosen, you need to enter IP information for iscsi initiator.
  12. (Red hat) choose to "skip" media testing.
  13. Continue installation as desired. A drive will be available at this point. After file copying is done, remove CD/DVD and reboot system.
  14. When system reboot, enable "boot from target" in iSCSI Boot Parameters and continue with installation until it is done.
  15. Update iscsi initiator if needed. You need to remove existing one first.
  16. Make sure all runlevels of network service are on.
  17. Make sure 2,3 and 5 runlevels of iscsi service are on.
  18. For Red Hat 6.0, make sure Network Manager service is stopped and disabled.
  19. Install uIP (not required for SuSE 10).
  20. Install linux-nx2 package.
  21. Install bibt package.
  22. Remove ifcfg-eth*.
  23. Reboot.
  24. For SUSE 11.1, follow remote DVD installation workaround.
  25. After system reboot, login and change to /opt/bcm/bibt folder and run iscsi_setup.sh script to create offload and non-offload initrd images.
  26. Copy the initrd images, offload and non-offload, to the /boot folder.
  27. Change the grub menu to point to the new initrd images.
  28. To enable CHAP you need to modify iscsid.conf (Red Hat only).
  29. Reboot and change CHAP parameters if desired.
  30. Continue booting into the iSCSI Boot image and select one of the images you created (non-offload or offload). Your choice should correspond with your choice in the iSCSI Boot parameters section. If HBA Boot Mode was enabled in the iSCSI Boot Parameters section, you have to boot the offload image. SLES 10.x and SLES 11 do not support offload.

SUSE 11.1 Remote DVD installation workaround

  1. Create a new file called boot.open-iscsi with the content shown below.
  2. Copy the file you just created to /etc/init.d/ folder and overwrite the existing one.

Content of the new boot.open-iscsi file:

#!/bin/bash
#
# /etc/init.d/iscsi
#
### BEGIN INIT INFO
# Provides:          iscsiboot
# Required-Start:
# Should-Start:      boot.multipath
# Required-Stop:
# Should-Stop:       $null
# Default-Start:     B
# Default-Stop:      
# Short-Description: iSCSI initiator daemon root-fs support
# Description:       Starts the iSCSI initiator daemon if the
#                    root-filesystem is on an iSCSI device
#               
### END INIT INFO
ISCSIADM=/sbin/iscsiadm
ISCSIUIO=/sbin/iscsiuio
CONFIG_FILE=/etc/iscsid.conf
DAEMON=/sbin/iscsid
ARGS="-c $CONFIG_FILE"
# Source LSB init functions
. /etc/rc.status
#
# This service is run right after booting. So all targets activated
# during mkinitrd run should not be removed when the open-iscsi
# service is stopped.
#
iscsi_load_iscsiuio()
{
    TRANSPORT=`$ISCSIADM -m session 2> /dev/null | grep "bnx2i"`
    if [ "$TRANSPORT" ] ; then
	echo -n "Launch iscsiuio "
        startproc $ISCSIUIO
    fi
}
iscsi_mark_root_nodes()
{
    $ISCSIADM -m session 2> /dev/null | while read t num i target ; do
	ip=${i%%:*}
	STARTUP=`$ISCSIADM -m node -p $ip -T $target 2> /dev/null | grep "node.conn\[0\].startup" | cut -d' ' -f3`
	if [ "$STARTUP" -a "$STARTUP" != "onboot" ] ; then
	    $ISCSIADM -m node -p $ip -T $target -o update -n node.conn[0].startup -v onboot
	fi
    done
}
# Reset status of this service
rc_reset
# We only need to start this for root on iSCSI
if ! grep -q iscsi_tcp /proc/modules ; then
    if ! grep -q bnx2i /proc/modules ; then
        rc_failed 6
        rc_exit
    fi
fi
case "$1" in
    start)
	echo -n "Starting iSCSI initiator for the root device: "
	iscsi_load_iscsiuio
	startproc $DAEMON $ARGS
	rc_status -v
	iscsi_mark_root_nodes
	;;
    stop|restart|reload)
	rc_failed 0
	;;
    status)
	echo -n "Checking for iSCSI initiator service: "
	if checkproc $DAEMON ; then
	    rc_status -v
	else
	    rc_failed 3
	    rc_status -v
	fi
	;;
    *)
	echo "Usage: $0 {start|stop|status|restart|reload}"
	exit 1
	;;
esac
rc_exit
Booting

After that the system has been prepared for an iSCSI boot and the operating system is present on the iSCSI target, the last step is to perform the actual boot. The system will boot to Windows or Linux over the network and operate as if it were a local disk drive.

  1. Reboot the server.
  2. Select CTRL+S.
  3. From the Main menu, select General Parameters and configure the Boot to iSCSI target option to Enabled.
  4. To boot through an offload path, set the HBA Boot Mode to Enabled. To boot through a non-offload path, set the HBA Boot Mode to Disabled.

If CHAP authentication is needed, enable CHAP authentication after determining that booting is successful (see Enabling CHAP Authentication).

Other iSCSI Boot Considerations

There are several other factors that should be considered when configuring a system for iSCSI boot.

Virtual LANs

Virtual LAN (VLAN) tagging is not supported for iSCSI boot with the Microsoft iSCSI Software Initiator.

Troubleshooting iSCSI Boot

The following troubleshooting tips are useful for iSCSI boot.

Problem: When switching iSCSI boot from the Microsoft standard path to Broadcom iSCSI offload, the booting fails to complete.
Solution: Install or upgrade the Broadcom Virtual Bus Device (VBD) driver to 5.0.x, along with the OIS driver, prior to switching the iSCSI boot path.

Problem: The iSCSI configuration utility will not run.
Solution: Ensure that the iSCSI Boot firmware is installed in the NVRAM.

Problem: A system blue screen occurs when installing the Broadcom drivers through Windows Plug-and-Play (PnP).
Solution: Install the drivers through the Setup installer.

Problem: For static IP configuration when switching from Layer 2 iSCSI boot to Broadcom iSCSI HBA, then you will receive an IP address conflict.
Solution: Change the IP address of the network property in the OS.

Problem: After configuring the iSCSI boot LUN to 255, a system blue screen appears when performing iSCSI boot.
Solution: Although Broadcom's iSCSI solution supports a LUN range from 0 to 255, the Microsoft iSCSI software initiator does not support a LUN of 255. Configure a LUN value from 0 to 254.

Problem: The iSCSI target is not present as a disk when installing Windows Server 2008 R2 with a NetXtreme II 1G or 10G adapter.
Solution: See the resolution below.

First, install the Windows Automated Installation Kit (AIK) from Microsoft on the test machine where you are going to modify the OS media. Then delete the old network drivers in the boot.wim of the OS media by following the procedure below.

  1. Create a temporary folder, such as D:\temp.
  2. Create the following two subfolders in the temporary folder:
    • Win2008R2Copy
    • Win2008R2Mod
  3. Copy all the contents from the DVD installation media into the Win2008R2Copy folder.
  4. Open the Windows AIK command prompt in elevated mode from All program, and then run the following command:
  5. attrib –r D:\Temp\Win2008R2Copy\sources\boot.wim
    
  6. Run the following command to mount the boot.wim image:
  7. dism /Mount-WIM /WimFile:D:\Temp\Win2008R2Copy\sources\boot.wim /index:1 /MountDir:D:\Temp\Win2008R2Mod
    
  8. The Boot.wim image was mounted in the Win2008R2Mod folder. Find all the instances of the files listed below in the subfolders of the Win2008R2Mod folder, and then delete them.
  9. List of files to be deleted.

    • netevbda.inf
    • netevbda.pnf
    • evbda.sys
    • netbxnda.inf
    • netbxnda.pnf
    • bxnd60a.sys
    • bxvbda.sys
    • netbvbda.inf
    • netbvbda.pnf
    • To easily find all the instances of the files to be deleted, run the following command:

      dir /s D:\Temp\Win2008R2Mod\filename
      
  10. Run the following command to unmount the Boot.wim image:
  11. dism /unmount-wim /Mountdir:D:\Temp\Win2008R2Mod /commit
    
  12. Repeat steps 5 to 7 by keeping the index = 2 for the command in step 5.
  13. Run the following command to create an .iso file:
  14. oscdimg -e -h -m -n -lWS08R2_x64 -bootdata:2#p0,e,b"c:\Program Files\Windows AIK\Tools\PETools\amd64\boot\etfsboot.com"#pEF,e,b"c:\Program Files\Windows AIK\Tools\PETools\amd64\boot\efisys.bin" D:\Temp\Win2008R2Copy D:\Temp\Win2008R2Mod.iso
    

Note: The above command is a single continuous command.

  1. Burn the Win2008R2Mod.iso file to a DVD.
  2. Perform the installation by using the new DVD and provide the network controller drivers during installation. You will receive the iSCSI LUN to complete the installation.

iSCSI Crash Dump

If you will use the Broadcom iSCSI Crash Dump utility, it is important to follow the installation procedure to install the iSCSI Crash Dump driver. See Using the Installer for more information.

iSCSI Offload

iSCSI offload is a technology that offloads iSCSI protocol processing overhead from host processors to the iSCSI host bus adapter to increase network performance and throughput while helping to optimize server processor utilization.

This section covers Windows iSCSI offload for the NetXtreme II family of network adapters. For Linux iSCSI offload, see Linux iSCSI Offload.

iSCSI Offload Limitations

The bnx2i driver for iSCSI does not operate on a stand-alone PCI device. It shares the same PCI device with the networking driver (bnx2 and bnx2x). The networking driver alone supports layer 2 networking traffic. Offloaded iSCSI operations require both the networking driver and the bnx2i driver.

iSCSI operations will be interrupted when the networking driver brings down or resets the device. This scenario requires proper handling by the networking and bnx2i drivers, as well as the userspace iscsid daemon that keeps track of all iSCSI sessions. Offloaded iSCSI connections take up system and on-chip resources that must be freed up before the device can be reset. iscsid running in userspace is generally less predictable, as it can run slowly and take a long time to disconnect and reconnect iSCSI sessions during network reset, especially when the number of connections is large. Broadcom cannot guarantee that iSCSI sessions will always recover in every conceivable scenario when the networking device is repeatedly being reset. Broadcom recommends that administrator-administered network device resets, such as MTU change, ring size change, device shutdown, hot-unplug, and so forth, be kept at a minimum while there are active offloaded iSCSI sessions running on that shared device. On the other hand, link-related changes do not require device reset and are safe to be performed at any time.

To help alleviate some of the above issues, install the latest open-iscsi utilities by upgrading your Red Hat Network subscription.

Configuring iSCSI Offload

With the proper iSCSI offload licensing, you can configure your iSCSI-capable NetXtreme II network adapter to offload iSCSI processing from the host processor. The following process enables your system to take advantage of Broadcom's iSCSI offload feature.

Installing Broadcom Drivers and Management Applications
  1. Install the Windows drivers. See Windows Driver Software.
  2. Install the management applications. See Installing Management Applications.
Installing the Microsoft iSCSI Initiator

For Windows Server 2008 and later, the iSCSI initiator is included inbox. To download the iSCSI initiator from Microsoft, go to http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=18986 and locate the direct link for your system.

Configuring Broadcom iSCSI Using BACS

The Broadcom Advanced Control Suite (BACS) is used to manage all of Broadcom's network adapters and advanced features. For more information, see Using Broadcom Advanced Control Suite 4.

  1. Open BACS.
  2. Select the Broadcom NetXtreme II C-NIC iSCSI adapter. If the C-NIC iSCSI adapter is not present, then select the VBD device and enable iSCSI offload by selecting iSCSI Offload Engine from the Resource Reservations area of the Configuration tab. See Viewing Resource Reservations.
  3. Select the Configuration tab.
  4. DHCP is the default for IP address assignment, but this can be changed to static IP address assignment, if this is the preferred method of IP address assignment.
  5. NOTE: The IP address assignment method cannot be changed if the adapter was used for boot.

  6. Select Apply and close BACS.
Configure Microsoft Initiator to Use Broadcom's iSCSI Offload

Now that the IP address has been configured for the iSCSI adapter, you need to use Microsoft Initiator to configure and add a connection to the iSCSI target using Broadcom iSCSI adapter. See Microsoft's user guide for more details on Microsoft Initiator.

  1. Open Microsoft Initiator.
  2. Configure the initiator IQN name according to your setup. To change, click on Change.


  3. Enter the initiator IQN name.


  4. Select the Discovery tab and click Add to add a target portal.


  5. Enter the IP address of the target and click Advanced.


  6. From the General tab, select Broadcom NetXtreme II C-NIC iSCSI Adapter from Local adapter.


  7. Select the IP address for the adapter from Source IP.


  8. Click OK to close Advanced setting and then OK to add the target portal.


  9. From the Targets tab, select the target and click Log On to log into your iSCSI target using the Broadcom iSCSI adapter.


  10. Click on Advanced.


  11. On the General tab, select the Broadcom NetXtreme Ii C-NIC iSCSI adapter from Local adapter.
  12. Click OK to close Advanced settings.


  13. Click OK to close the Microsoft Initiator.
  14. To format your iSCSI partition, use Disk Manager.
  15. NOTES:

    • No teaming support for iSCSI-enabled adapters is available at this point. MPIO handles all failover and link aggregation for iSCSI traffic.
    • Network teaming and MPIO are supported concurrently on different ports. Ports running iSCSI use MPIO and ports running LAN traffic use network teaming.
    • If a Broadcom network adapter has iSCSI offload enabled, the teaming software, BASP, will not allow the iSCSI offload enabled network port interface to be a part of a GEC or LACP (802.3ad) team, but SLB teams are allowed.

iSCSI Offload FAQs

Q: How do I assign an IP address for iSCSI offload?
A: Use the Configurations tab in Broadcom Advanced Control Suite (BACS).

Q: What tools should be used to create the connection to the target?
A: Use Microsoft iSCSI Software Initiator (version 2.08 or later).

Q: How do I know that the connection is offloaded?
A: Use Microsoft iSCSI Software Initiator. From a command line, type iscsicli sessionlist. From Initiator Name, an iSCSI offloaded connection will display an entry beginning with "B06BDRV...". A non-offloaded connection will display an entry beginning with "Root...".

Q: What configurations should be avoided?
A: The IP address should not be the same as the LAN.

Q: Why does the install fail when attempting to complete an iSCSI offload install using Windows Server 2008 R2 for BCM5709 (1 GbE) adapters?
A: There is a conflict with the internal inbox driver.

Event Log Messages

Table 5 lists the offload iSCSI driver event log messages.

Offload iSCSI (OIS) Driver

Table 5: Offload iSCSI (OIS) Driver Event Log Messages
Message Number
Severity
Message
1
Error
Initiator failed to connect to the target. Target IP address and TCP Port number are given in dump data.
2
Error
The initiator could not allocate resources for an iSCSI session.
3
Error
Maximum command sequence number is not serially greater than expected command sequence number in login response. Dump data contains Expected Command Sequence number followed by Maximum Command Sequence number.
4
Error
MaxBurstLength is not serially greater than FirstBurstLength. Dump data contains FirstBurstLength followed by MaxBurstLength.
5
Error
Failed to setup initiator portal. Error status is given in the dump data.
6
Error
The initiator could not allocate resources for an iSCSI connection
7
Error
The initiator could not send an iSCSI PDU. Error status is given in the dump data.
8
Error
Target or discovery service did not respond in time for an iSCSI request sent by the initiator. iSCSI Function code is given in the dump data. For details about iSCSI Function code please refer to iSCSI User's Guide.
9
Error
Target did not respond in time for a SCSI request. The CDB is given in the dump data.
10
Error
Login request failed. The login response packet is given in the dump data.
11
Error
Target returned an invalid login response packet. The login response packet is given in the dump data.
12
Error
Target provided invalid data for login redirect. Dump data contains the data returned by the target.
13
Error
Target offered an unknown AuthMethod. Dump data contains the data returned by the target.
14
Error
Target offered an unknown digest algorithm for CHAP. Dump data contains the data returned by the target.
15
Error
CHAP challenge given by the target contains invalid characters. Dump data contains the challenge given.
16
Error
An invalid key was received during CHAP negotiation. The key=value pair is given in the dump data.
17
Error
CHAP Response given by the target did not match the expected one. Dump data contains the CHAP response.
18
Error
Header Digest is required by the initiator, but target did not offer it.
19
Error
Data Digest is required by the initiator, but target did not offer it.
20
Error
Connection to the target was lost. The initiator will attempt to retry the connection.
21
Error
Data Segment Length given in the header exceeds MaxRecvDataSegmentLength declared by the target.
22
Error
Header digest error was detected for the given PDU. Dump data contains the header and digest.
23
Error
Target sent an invalid iSCSI PDU. Dump data contains the entire iSCSI header.
24
Error
Target sent an iSCSI PDU with an invalid opcode. Dump data contains the entire iSCSI header.
25
Error
Data digest error was detected. Dump data contains the calculated checksum followed by the given checksum.
26
Error
Target trying to send more data than requested by the initiator.
27
Error
Initiator could not find a match for the initiator task tag in the received PDU. Dump data contains the entire iSCSI header.
28
Error
Initiator received an invalid R2T packet. Dump data contains the entire iSCSI header.
29
Error
Target rejected an iSCSI PDU sent by the initiator. Dump data contains the rejected PDU.
30
Error
Initiator could not allocate a work item for processing a request.
31
Error
Initiator could not allocate resource for processing a request.
32
Information
Initiator received an asynchronous logout message. The Target name is given in the dump data.
33
Error
Challenge size given by the target exceeds the maximum specified in iSCSI specification.
34
Information
A connection to the target was lost, but Initiator successfully reconnected to the target. Dump data contains the target name.
35
Error
Target CHAP secret is smaller than the minimum size (12 bytes) required by the specification.
36
Error
Initiator CHAP secret is smaller than the minimum size (12 bytes) required by the specification. Dump data contains the given CHAP secret.
37
Error
FIPS service could not be initialized. Persistent logons will not be processed.
38
Error
Initiator requires CHAP for logon authentication, but target did not offer CHAP.
39
Error
Initiator sent a task management command to reset the target. The target name is given in the dump data.
40
Error
Target requires logon authentication via CHAP, but Initiator is not configured to perform CHAP.
41
Error
Target did not send AuthMethod key during security negotiation phase.
42
Error
Target sent an invalid status sequence number for a connection. Dump data contains Expected Status Sequence number followed by the given status sequence number.
43
Error
Target failed to respond in time for a login request.
44
Error
Target failed to respond in time for a logout request.
45
Error
Target failed to respond in time for a login request. This login request was for adding a new connection to a session.
46
Error
Target failed to respond in time for a SendTargets command.
47
Error
Target failed to respond in time for a SCSI command sent through a WMI request.
48
Error
Target failed to respond in time to a NOP request.
49
Error
Target failed to respond in time to a Task Management request.
50
Error
Target failed to respond in time to a Text Command sent to renegotiate iSCSI parameters.
51
Error
Target failed to respond in time to a logout request sent in response to an asynchronous message from the target.
52
Error
Initiator Service failed to respond in time to a request to configure IPSec resources for an iSCSI connection.
53
Error
Initiator Service failed to respond in time to a request to release IPSec resources allocated for an iSCSI connection.
54
Error
Initiator Service failed to respond in time to a request to encrypt or decrypt data.
55
Error
Initiator failed to allocate resources to send data to target.
56
Error
Initiator could not map an user virtual address to kernel virtual address resulting in I/O failure.
57
Error
Initiator could not allocate required resources for processing a request resulting in I/O failure.
58
Error
Initiator could not allocate a tag for processing a request resulting in I/O failure.
59
Error
Target dropped the connection before the initiator could transition to Full Feature Phase.
60
Error
Target sent data in SCSI Response PDU instead of Data_IN PDU. Only Sense Data can be sent in SCSI Response.
61
Error
Target set DataPduInOrder to NO when initiator requested YES. Login will be failed.
62
Error
Target set DataSequenceInOrder to NO when initiator requested YES. Login will be failed.
63
Error
Cannot reset the target or LUN. Will attempt session recovery.
64
Information
Attempt to bootstrap Windows using iSCSI NIC Boot (iBF).
65
Error
Booting from iSCSI, but could not set any NIC in Paging Path.
66
Error
Attempt to disable the Nagle Algorithm for iSCSI connection failed.
67
Information
If Digest support selected for iSCSI Session, will use Processor support for Digest computation.
68
Error
After receiving an async logout from the target, attempt to relogin the session failed. Error status is given in the dump data.
69
Error
Attempt to recover an unexpected terminated session failed. Error status is given in the dump data.
70
Error
Error occurred when processing iSCSI logon request. The request was not retried. Error status is given in the dump data.
71
Information
Initiator did not start a session recovery upon receiving the request. Dump data contains the error status.
72
Error
Unexpected target portal IP types. Dump data contains the expected IP type.


Back to Contents Page