iSCSI Software boot [PSARC/2007/450 FastTrack timeout 08/10/2007]

Mark Carlson markcarl at sac.sfbay.sun.com
Fri Aug 3 14:41:08 PDT 2007


Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
This information is Copyright 2007 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
	 iSCSI Software boot
    1.2. Name of Document Author/Supplier:
	 Author:  Sajid Zia
    1.3  Date of This Document:
	03 August, 2007
4. Technical Description

1. Background:
--------------

        PSARC 2003/126 introduced the Solaris iSCSI Initiator to Solaris. 
	Solaris Initiator allows access to scsi storage using Sun's
        TCP/IP stack through a general NIC. The initiator provided a
        software only solution with no boot support. A traditional
        boot requires firmware support on adapters which a general
        NIC does not provide.

2. Problem Statement:
---------------------

	Storage Area Networks (SANs) have been rapidly growing and
        gaining popularity over the traditional client-server model due
        to their ability to efficiently handle data. Typically, Storage
        Area Networks require Fibre Channel, however, iSCSI for SANs,
        which encapsulates standard SCSI over existing IP networks, 
	offers a lower cost alternative to expensive Fibre Channel.

	Fibre Channel SANs support booting from an FC device over
	a SAN thereby eliminating the need for a local hard disk on
	a system. Boot is considered a basic OS functionality, and
	currently no good iSCSI boot solution exists on the market
	due to the fact that a general NIC does not provide any iSCSI
	support in its BIOS.


3. Proposal:
------------
	PSARC 2004/454 introduced the Solaris New Boot Architecture which
	greatly simplified a boot process on x86 platforms. iSCSI boot
	proposal leverages Solaris New Boot to offer a solution which
	requires no dependency on iSCSI support in bios. This basic idea
	here is to combine net and disk boot process. It uses pxegrub
	to download boot archives from the install server in the early
	stages of the boot and then loads iscsi initiator in client's 
	RAM to access the boot device using regular block disk IOs.

	This proposal is offering a new iscsi boot functionality only, 
	and does not impact in any way the general solaris install/boot
	process for non iscsi root devices.


4. Proposal Details:
--------------------

	When a client system powers up or rebooted,  these are the steps
	which are followed for booting.

	1. BIOS running on the machine makes a DHCP request.
	2. DHCP server responds with boot server and boot file, i.e., pxegrub
	3. BIOS downloads pxegrub using tftp
	4. pxegrub displays the grub menu supplied by the boot server
	5. pxegrub then gets the boot-archive (mini-kernel) from the boot server
           and executes the mini kernel.
	6. mini-kernel plumbs the network interface and enumerates the iSCSI 
	   boot device.
	7. root disk is seen through regular NIC port
	8. rest of the OS image comes from the root disk using regular disk IOs

	The steps 1-5 are exactly the same as followed by a normal Solaris 
	Installation process. The only difference is that the boot-archive in
	step 5 comes from the root disk and not an Installation boot-archive

	Installation
	------------

	The installation process changed a bit in the sense that we need to
	provide iscsi boot target IP address and client's Initiator Node
	Name during the installation to discover the boot device. This is
	accomplished by using bootparams. The following name=val entry is 
	required in /etc/bootparams on the install server.

	<Client's Name>  iscsi-boot=Target_IP:Initiator_Node_Name

	An example:
	iscsi-1 iscsi-boot=192.29.74.155:iqn.1986-03.com.sun:01:iscsi-1

	Once the installation is complete, the following extra steps an 
	administrator needs to do to prepare the client for booting:

	1. newly created boot archives need to be copied to the Install
	   server for subsequent booting

	2. menu list on the server need to reference the new boot archives
	   for booting.

	The code changes for the project are mostly confined to iscsi
	driver and require no interface/architectural changes. These are
	some additional changes.

	1. During the installation, an rc script is needed to discover and
	   enumerate the boot lun.

	2. filelist.ramdisk file needs to be updated with iscsi persistent
	   database files which are needed to boot 

	3. SUNWsibi pkgmap needs to include iscsi database file entry.

	4. A minor sockfs change is required, addressed by the CR 6422549

	5. A minor update is needed in smf_include.sh script. 
    

5. Limitations 
--------------

	This solution offers an innovative way of accomplishing iscsi boot
	on a general NIC. The first phase of the project has few limitations
	which will be addressed in subsequent phases.

	1. It is supported only on x86/x64 platforms due to a dependency on
	   Solairs NewBoot

	2. The customers will be encouraged to use the first phase of this
	   solution over physically secured networks. The next phase of the 
           project will add CHAP authentication.

	3. Currently require targets to have TPGS disabled so that iqn based
	   names appear in the root device name. The next phase will add 
	   multi-pathing support along with IPMP.

	4. Only manual network installation is supported.

	5. After the installation, the boot archives must be moved to the
	   installed server to be used for booting. This needs to be done
	   by the administrator.

	6. Install server is required at the time of boot/reboots

	7. The boot archives on the root disk and on the installed server
	   must be in sync. This needs to be ensured by the administrator.
	
	8. dump/sync is only supported on a local partition due to a
	   networking bug 6205961, which will be addressed in the next
	   phase.


6. Benefits
-----------

	Despite these limitations, this solution offers many benefits
	which should outweigh the limitations for phase I release.

	1. Offers an innovative solution to combine net/disk boot

	2. No hardware dependencies

	3. Works on any modern general NIC which has pxe support.

	4. Superior to "diskless boot" which requires boot server to be
	   available all the time to service boot clients.

	5. A generic Solaris iscsi boot solution will offer a huge
	   marketing advantage over our competitors. Currently there is
	   no good generic iSCSI boot solution available in the market.

8. References:
--------------

	1. PSARC 2003/126 iSCSI Project

	2. PSARC 2004/454 Solaris Boot Architecture

6. Resources and Schedule
    6.4. Steering Committee requested information
   	6.4.1. Consolidation C-team Name:
		ON
    6.5. ARC review type: FastTrack
    6.6. ARC Exposure: open




More information about the opensolaris-arc mailing list