Configuring iSCSI Boot for x86 Systems
OpenSolaris iSCSI boot allows you to initialize an operating system over the network from a remote location, such as a storage disk array. iSCSI boot is typically loaded onto an initiator, or diskless client, while the hard disk resides on a SCSI target attached to the network. Because iSCSI boot uses standard Ethernet-based infrastructure, data, storage, and networking traffic can be consolidated on a standard network.
Using iSCSI boot is different from booting an x86 system over the network using GRUB:
- A GRUB based network boot requires a DHCP server that is configured for PXE clients. This is not necessary for iSCSI boot, however using a DHCP server with iSCSI boot is an option.
- PXE requires a boot server to provide the miniroot/ramdisk. This is not necessary for iSCSI boot.
For information on GRUB based booting over the network, see How to Perform a GRUB Based Boot From the Network.
Prerequisites
Your x86 system must be running Solaris Express Community Edition (SXCE) Build 104 or later. To download the latest SXCE build, go to http://www.opensolaris.org/os/downloads/.
Your system must have one of the following Intel network interface cards (NICs):
- Add-on NIC: Intel PCI-e server adapters, from Q4 2006 or later, support the iSCSI boot firmware table (iBFT). For tools to enable iSCSI boot on Intel NICs, go to http://www.intel.com/support/network/adapter/pro100/sb/CS-023748.htm.
- On-board controller: A controller that has an option ROM to integrate with system BIOS.
- NIC with Preloaded iBF: iSCSI boot firmware that is loaded onto selected Intel NICs. For a list of preloaded NICs, go to http://www.intel.com/support/network/adapter/pro100/sb/CS-028681.htm.
To determine if your x86 machine supports iSCSI boot, check the BIOS setting. If the BIOS setting supports the iBFT, it will also support iSCSI boot. The iBFT is a table created by the iSCSI boot firmware to pass parameters about the iSCSI boot device to the loaded OS.
| Useful Information It is possible to have an iBTF compatible NIC that does not have the firmware loaded. If this is the case, you will not be able to use iSCSI boot without first updating the firmware on the NIC. For information on how to update the firmware, see the documentation provided by the NIC manufacturer. |
How to Install SXCE on a Remote x86 SCSI Disk
Installing SXCE on a remote x86 SCSI disk is similar to the network installation outlined in the Solaris Express Installation Guide for Network-Based Installations, with the important exception of specifying an iSCSI target logical unit number (LUN). This step is unique to iSCSI boot.
In the following procedure, steps 1-4 highlight how to start the installation and configure the system. For more in-depth information, see the Solaris Express Installation Guide for Network-Based Installations. After completing step 4, you interrupt the installation to perform step 5 – specifying the iSCSI target LUN. After completing step 5, you resume the standard installation.
To install SXCE remotely on an x86 SCSI disk:
- Use the DVD installation media and boot from the DVD-ROM.
- Choose the display mode: Solaris Express for a desktop environment, and Solaris Express Serial Console ttya for a console session.
- Choose the Solaris Interactive mode (default).
- Configure the system:
- Select the Networked option.
- Select the network interface that has iBF. This is the interface Solaris will boot off of later.
- Select Yes for DHCP, if you are using Dynamic Host Configuration Protocol (DHCP) server. The server must be configured to provide the iSCSI remote boot configurations to the iSCSI initiator.
- Select Confirm, and then select Exit. You have to interrupt the installation at this point, and go to a shell window to specify the iSCSI target LUN.
- Use the iscsiadm command to specify the target LUN. The LUN configuration is temporary, and will not affect the OS behavior after installation. Refer to the iscsiadm(1M) man page for full list of sub commands.
- After specifying the target LUN, type install-solaris. When the install wizard appears, select Next to resume the installation.
| Useful Information The following basic commands make a logical unit available and verify that the logical unit has been discovered. Then you can format the disk.
The device name from iscsiadm list target -S corresponds to the target logical unit where you install Solaris. For more information on setting up Solaris iSCSI targets and initiators, see Chapter 14 of the OpenSolaris System Administration Guide: Devices and File Systems. |
How to Boot Solaris From a Remote x86 iSCSI Disk
Before you begin, you should review the Prerequisites to ensure that the NIC on the host supports iBTF.
To boot Solaris from an x86 iSCSI disk:
- Configure iBF. This procedure varies from vendor to vendor, depending on the firmware implementation of iBF. See the following example for instructions on how to configure an Intel iBF.
- Boot the system from an iSCSI disk volume. See the following Intel iBF example.
To configure an Intel iBF and boot from an iSCSI disk:
- Power on the system and then press Ctrl+D.
- Select the primary NIC to configure.
- Choose iSCSI Boot Configuration and modify the initiator and target information as needed.
- Save your changes and exit. You will not need to change this information again, unless changes are made to the boot environment.
- Press ESC to continue with the boot process. iBF adopts the configuration, establishes a connection with the iSCSI target and lists the available disks on the target.
- From the pop-up menu of bootable devices, select Hard Disk and then select the iSCSI disk. It is not necessary to specify the iSCSI disk for every bootup, because the configuration is saved in the BIOS.
iSCSI Boot Console Messages
The following console messages were introduced with iSCSI boot. Details on each message and its resolution are listed below.
Notice: Configuring iSCSI boot session...
This message does not require action. The OS is trying to connect to the iSCSI storage device and boot from that device.
Notice: Adopting default login parameters in boot session as MPxIO is disabled
This message does not require action. For a non MPxIO, there is no safe way to adopt customized parameters for an iSCSI session that is connected to a boot target.
Warning: Failed to configure iSCSI boot session
The attempt to establish a session with a boot target has failed. Verify the connectivity to the target and the accuracy of the login parameters, such as CHAP.
Warning: Failed to configure iSCSI boot nic
The attempt to set up a boot NIC has failed. Check to see if there is a conflict between the firmware setup and your Solaris configuration.
Warning: Invalid iBFT table 0x%x
The iBFT passed to Solaris is invalid. Refer to the vendor-specific documentation to set up iBFT correctly. You can also call the vendor's Customer Service Department for assistance.


Comments (4)
Nov 21, 2008
Jack_Meng says:
1. I've added a stub page for new console messages, feel free to edit that secti...1. I've added a stub page for new console messages, feel free to edit that section if needed.
2. Per comments we received, a link to point to another page which describing the installation process will be good. Please add it.
Others look good to me.
Apr 27, 2009
clcchu@hotmail says:
There seems no need to use iscsi-boot capable NICs as mentioned in the Prerequi...There seems no need to use iscsi-boot capable NICs as mentioned
in the Prerequisites.
One may use gPXE of http://www.etherboot.org to make Nevada
snv-b104 to snv-b111 be installed and booted from iscsi-target.
snv-b112 had failed that, though. Wish the feature will be
fixed on the upcoming snv-b113+.
I had made a few boxes be iSCSI-booted using even the cheapest
ever rtls(4) NIC.
If the author of this article is to enrich it with gPXE iSCSI-boot,
email me, and prepare to buy me beer
May 03, 2009
Jack_Meng says:
gPXE is out of the support list for iSCSI boot, the prerequisite is valid, at le...gPXE is out of the support list for iSCSI boot, the prerequisite is valid, at least for now. However it will work if gPXE uses iBFT standard internally. gPXE is an interesting feature, I'll take a closer look, and may have a dozen beers prepared.
Jun 24
clcchu@hotmail says:
Dear Jack_Meng, the small trick to make gPXE be use as iSCSI boot is as follows...Dear Jack_Meng,
the small trick to make gPXE be use as iSCSI boot is as follows:
use manual reboot on installation, and upon installation completion,
insert a line "/lib/svc/method/iscsi-initiator" into
/a/lib/svc/method/fs-root.
the trick works for b112 thru b115, believably b116, too (am to do
that later today).
the most important benefit of using iSCSI boot is that:
the installed contents is machine independent, regardless of
chipsets, NICs, etc. i.e. as far as you figure out how to use
gPXE properly, any machine with enough resources may use the bootimage.
the iqn seems to have been embedded into root-fs, had started hunting
for places of the embedded contents. for now, the same bootimage may be deployed
on different iSCSI targets to achieve the one-image, several machines goal.
I had mentioned it to Marty Connor of etherboot.org, but seems they
are more interested in lindoz systems rather than opensolaris
best wishes,
Clarence
P.S. try it and save iSCSI-bootable NICs, and buy me beers
actually, xcat.sf.net is also using gPXE intensively, another
lindoz project, though.