I am sponsoring this case for Jack Meng. It requests a patch
binding for iSCSI boot, updating PSARC 2008/427 as a result.
I do not expect this to be controversial so I have marked it
Self Review, but am happy to start a timer if an ARC member
so desires or significant discussion ensues.

-- mark

Template Version: @(#)onepager.txt 1.35 07/11/07 SMI
Copyright 2008 Sun Microsystems

1. Introduction
    1.1. Project/Component Working Name:
        iSCSI Boot in Solaris with iBFT/OBP

    1.2. Name of Document Author/Supplier:
        Jack Meng (jack.meng at sun.com)

    1.3. Date of This Document:
        01/08/10
        
        1.3.1. Date this project was conceived:
                N/A

    1.4. Name of Major Document Customer(s)/Consumer(s):
        1.4.1. The PAC or CPT you expect to review your project:
                Solaris PAC
        1.4.2. The ARC(s) you expect to review your project:
                PSARC
        1.4.3. The Director/VP who is "Sponsoring" this project:
                Scott.Tracy at Sun.Com
        1.4.4. The name of your business unit:
                Archive Software

    1.5. Email Aliases:
        1.5.1. Responsible Manager: Grant.Zhang at sun.com
        1.5.2. Responsible Engineer: iscsi-boot-iteam at sun.com
        1.5.3. Marketing Manager: margaret.hamburger at sun.com
        1.5.4. Interest List: iscsi-interest at sun.com

2. Project Summary
    2.1. Project Description:
        This project is to enable Solaris to boot off iSCSI luns via regular 
network
        adapters. Different approaches, iBFT/OBP, are adopted to implement this 
feature
        on x86/sparc platforms. This case supersedes PSARC/2007/450, iSCSI 
Software boot.

    2.2. Risks and Assumptions:
        On x86 platform, iSCSI boot depends on NIC's firmware to implement
        its own iSCSI initiator and to support iBFT to pass boot info to OS.
        That means the solution on x86 needs dedicated hardware/firmware.
        Currently Intel 1G/10G Pro. series NICs support this feature along with
        Broadcom in their high-end NICs.

        On Sparc platform, iSCSI boot depends on OBP to implement its own iSCSI 
stack
        to connect to the iSCSI target, load boot archive, and pass the boot 
info to
        Solaris OS via standard OBP properties. A suite of standard properties 
need
        to be defined in OBP.

        iSCSI disk will still be incapable of being a dump device with this 
project.

3. Business Summary
    3.1. Problem Area:
        Currently Solaris is unable to be boot-off from iSCSI disk. This
        is a drawback which limits Solaris' competency in iSCSI SAN
        environment, diskless clients and so on.

    3.2. Market/Requester:
         System Group

    3.3. Business Justification:
        iSCSI boot is required on Solaris in FY09, both on x86 and SPARC 
platform,
        because:
                1) Sun customers are requesting iSCSI boot options on our 
Ethernet
                cards and Storages
                2) Intel has iSCSI boot option on their standard NIC for Windows
                and Linux OS, and Sun can offer this today if we have iSCSI 
boot on Solaris
                3) iSCSI boot is supported on Linux and Windows; therefore we 
need
                to reach parity on Solaris
                4) iSCSI boot will be the replacement for PXE boot
                5) The plan allows iSCSI boot on the standard Network
                cards without using expensive TOE HBAs.
        
        Justification from System Marketing team.

    3.4. Competitive Analysis:
        Linux and Microsoft Windows are capable of booting-off iSCSI disk
        with the support to iBFT and few other ways(PXE/Boot server).
        
        Solaris is significantly behind them in this area and this project is 
the
        effort to pace up with those competitors with feasible solutions both 
for
        x86 and Sparc.

    3.5. Opportunity Window/Exposure:
        N/A

    3.6. How will you know when you are done?:
        Solaris is able to boot off iSCSI disk with IBFT NIC on x86, and with
        OBP on SPARC.

4. Technical Description:
     4.1. Details:
        This project enables Solaris to directly boot off iSCSI disk both on 
x86 and
        Sparc platform. For doing that it modifies the 'Kernel' stage of 
Solaris' booting
        process to enumerate the iSCSI disk with and then mount the rootfs 
there. Therefore
        the info of the boot iSCSI target is essential for the kernel to 
achieve this, and
        there are completely different ways on x86 and Sparc platform, iBFT/OBP 
respectively,
        to pass the info to the ramdisk/kernel. However that info will be 
unified to the same set
        of properties so the rest procedure of iSCSI boot is the same for x86 
and Sparc.

         4.1.1 iBFT on x86

                On x86, iBFT is chosen as the method of passing iSCSI boot 
parameters.
                iBFT(iSCSI Boot Firmware Table) is defined in ACPI 3.0b 
specification and
                is a block of information that contains various parameters that 
are useful
                to the iSCSI Boot process. For Solaris by scanning the low 
memory, it
                is able to know if it is doing an iSCSI boot and loading 
necessary
                parameters then. It is iBF's responsibility to present the 
iSCSI disk
                to load OS boot loader and then the ramdisk.

         4.1.2 OBP on Sparc

                On Sparc, kernel reads properties of the boot iSCSI lun from 
OBP if OBP indicates
                this is an iSCSI boot. Before that, OBP constructs an iSCSI 
boot disk with its
                own iSCSI/TCP/IP stack and loads/executes the booter from 
there, and then the
                kernel is loaded and started.

                Overall, for the Solaris kernel, the only difference regarding 
iSCSI boot
                on x86 and Sparc is the way to retrieve info of the boot iSCSI 
lun
                as described above. Afterwards it is the same routine to
                plumb/configure the NIC, load/initialize the iscsi initiator 
driver, wait for
                iscsi initiator to discovery the boot target and then mount the 
rootfs from there.

         4.1.3 Security

                 For booting, it is loading OS specific data so the important 
thing is to make sure
                 that data come from the authenticated server/target. Solaris 
iSCSI boot uses CHAP
                 (Challenge-handshake authentication protocol, RFC1994) to do 
ensure the data iSCSI
                 initiator received for booting comes from the target it claims 
to have come from.
                 IPsec in initiator side is not available during the boot but 
will take effect
                 after Solaris fully starts up.

                 However, despite the security put in place for this project, 
Sun will still require
                 customers to have a physically secured network for iSCSI boot, 
similar to the FC
                 situation.

         4.1.4 Dump
        
                iSCSI disk is incapable of being the dump device in Solaris, 
and this project will
                not address this issue. This is a decision after evaluating 
benefits/risks of each
                possible solution.
        
        4.1.5 Installation
                Both LEGACY and NEW installer (Caiman) will be supported to 
configure iSCSI disk.
                The project team are working with the installer team to draft a 
design.

                Currently Solaris is able to be installed on iSCSI disk with 
the LEGACY installer if
                applying a workaround.
        
        4.1.6 stmsboot
                stmsboot will be supporting iSCSI along with this project.
        
        4.1.7 Note
                 This project doesn't apply to RFC 4173 and doesn't mean to.
        
     4.2. Bug/RFE Number(s):
        6701045 iSCSI boot on X86
        6714847 iSCSI boot on Sparc, driver part
        6717072 stmsboot needs to support iscsi
        6713364 iscsi needs to support PSARC 2008/337 scsi-self-identifying
         6422549 delay nl7c_init() call until after the root is mounted

     4.3. In Scope:
        Solaris Kernel, Solaris iSCSI Software Initiator, stmsboot

     4.4. Out of Scope:
        OBP, Solaris Installer

     4.5. Interfaces:
         Imported:
                 Interfaces to load iBFT info on x86, TBD.
         Exported:
                 Properties in OBP for Solaris OS to load/save iSCSI
                 boot parameters, TBD.

     4.6. Doc Impact:
        TBD

     4.7. Admin/Config Impact:
        Administrator needs to learn how to configure iBFT/BIOS on x86 platform 
and/or
        OBP properties on Sparc to enable iSCSI boot.

     4.8. HA Impact:
        Solaris cluster should be able to boot off iSCSI luns, will work with 
cluster
        team if they have any special requirement.
        
        On x86, Intel's NIC support failover during booting if multiple ports 
exist
        and are configured to connect the same target.

     4.9. I18N/L10N Impact:
        N/A

     4.10. Packaging&  Delivery:
        N/A

     4.11. Security Impact:
        iSCSI is based on TCP/IP which may expose security vulnerabilities. 
Please refer to
        4.1.3 for more details of the solution.

     4.12. Dependencies:
        Support to Sparc platform depends on case FWSAC 2008/466 which enables 
iSCSI boot on OBP.

5. Reference Documents:
        new-boot sparc                                  
http://sac.sfbay/PSARC/2006/525
        Solaris Boot Architecture                       
http://sac.sfbay/PSARC/2004/454
        scsi-self-identifying                           
http://sac.eng.sun.com/PSARC/2008/337
        iSCSI Software boot                             
http://sac.sfbay/PSARC/2007/450
        Intel iSCSI Boot Support                        
http://www.intel.com/network/connectivity/products/iscsiboot.htm
        IBFT Specification                              
http://www.microsoft.com/whdc/system/platform/firmware/ibft.mspx
        Challenge Handshake Authentication Protocol     
http://www.ietf.org/rfc/rfc1994.txt

6. Resources and Schedule:
    6.1. Projected Availability:
        Q2 FY 2009 for iBFT support (x86 solution)
        Q3 FY 2009 for OBP support (Sparc solution) and iSCSI support in 
Solaris installer

    6.2. Cost of Effort:
        12 engineering months
        
    6.3. Cost of Capital Resources:
        Approx. capital of $5000 for one LSI iSCSI array.

    6.4. Product Approval Committee requested information:
        6.4.1. Consolidation or Component Name:
                ON, NWS
        6.4.3. Type of CPT Review and Approval expected:
                Standard
         6.4.4. Project Boundary Conditions:
                N/A
        6.4.5. Is this a necessary project for OEM agreements:
                N/A
        6.4.6. Notes:
        6.4.7. Target RTI Date/Release/Binding:
                Solaris Nevada B104 for x86
                Solaris Nevada B127 for Sparc
                Solaris Update 9 for both x86 and Sparc
                This feature is required to be backported to S10U9 and requires 
a patch binding.
        6.4.8. Target Code Design Review Date:
                Aug. 15 2008

    6.5. ARC review type:
                Standard
    6.6. ARC Exposure:
                open
        6.6.1. Rationale:
                 N/A

7. Prototype Availability:
    7.1. Prototype Availability:
        Prototype done by Jun 10 2008

    7.2. Prototype Cost:
        4 engineering months


Reply via email to