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