1. Introduction 1.1. Project/Component Working Name: Dynamical assembling the bootpath for iSCSI boot on sparc 1.2. Name of Document Author/Supplier: Author: Jack Meng 1.3 Date of This Document: September 18 2009 2. Project Summary 2.1. Project Description This project is to introduce a new mechanism to get the bootpath by dynamical assembling it with information provided by firmware, rather than read it statically from somewhere else. 4. Technical Description 4.1. Details: Currently Solaris Sparc kernel takes the hardware description of boot device from OBP, which is in compliance with IEEE Std. 1275, as the physical device path in OS. For example, the path, "/pci@8,600000/SUNW,qlc@2/fp@0,0/ssd@w21000004cf68e801,0" works fine for both OBP and Solaris as OBP considers this a platform-independent description while Solaris takes it as the physical device path. With the introduction of iSCSI Boot support in OBP things become different for the bootpath FWARC 2008/466 provided, '/iscsi-hba/disk', is not recognizable by Solaris Kernel. That makes Solaris kernel have to read the bootpath from somewhere else, or dynamically assemble the bootpath of an iscsi device path, e.g., /iscsi/ssd@0000iqn.1986-03.com.sun:02:43644186-e5bb-41f2-8b8e-f34be1afaebc0001,0:a or /iscsi/disk@0000iqn.1986-03.com.sun:02:43644186-e5bb-41f2-8b8e-f34be1afaebc0001,0:a So far 3 options were discussed, Option 1 To store and retrieve the bootpath from OBP. It is considered not a good approach for both it is an OS-specific property and most information adhering to the path has been given to the OS. Option 2 To store and retrive the bootpath from boot_archive, as the same machnism in use to support Solaris UFS boot in x86, will cause a lot of issues to impact the flexibility in OS configuration and migration. For example, this approach will simply breaks the system as soon as a minor configuration change that impacts the bootpath. This is also a major issue on x86 that has kept OS images from being as portable as they should, and is needed to be fixed rather than broadening the adoption. Option 3 FWARC 2008/466 and FWARC 2009/498 has provide enough information to compose the physical path of the iSCSI boot disk except the binding disk driver. For details, the path of an iSCSI disk has following components, 1. iscsi - iscsi driver name, fixed 2. ssd - name/alias of bound disk driver, is one of 'ssd' or 'disk' 3. 0000 - part of the iscsi initiator ISID as a fixed number in Solaris 4. iqn.1986-03.com.sun:02:43644186-e5bb-41f2-8b8e-f34be1afaebc - value of the 'iscsi-target-name' property in OBP '/chosen' node 5. 0001 - value of the 'iscsi-tpgt' property in OBP '/chosen' node 6. 0 - value of the 'iscsi-lun' property in OBP '/chosen' node 7. :a - value of the 'iscsi-partition' property in OBP '/chosen' node Therefore all components can be determined except the disk driver, which has 2 options in Solaris, namely 'ssd' and 'sd'(disk). This means that dynamical assembling will generate 2 options in this case. Since the binding driver is determined by both the MPxIO capability and user configuration so the kernel is unable to determine which driver to bind until the boot device is available in the device tree. Therefore an trial-and-error is introduced for these 2 options by trying to mount the root fs on the most possible one, 'ssd' in this case, and then the another. The impact of this approach is proved trivial as no relogin/rediscovery will be made to the target in case of failure, and so it is considered the best approach to solve the bootpath issue for iSCSI boot. 4.5 Interfaces: Exported Interface | Stability | Description --------------------------------------|--------------|------------------- Imported Interface | Stability | Description --------------------------------------|--------------|------------------- iscsi-target-name | committed | iscsi target name in OBP '/chosen' node iscsi-tpgt | committed | iscsi target portl group tag in '/chosen' iscsi-lun | committed | boot lun in '/chosen' iscsi-partition | committed | boot partition in '/chosen' Other documents: FWARC 2008/466 iSCSI SPARC Openboot support http://sac.sfbay/FWARC/2008/466 FWARC 2009/498 iscsi boot update http://sac.sfbay/FWARC/2009/498 PSARC 2008/427 iSCSI Boot http://sac.sfbay/PSARC/2008/427 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: ONNV, ON10 6.4.2. Target Release/Binding Request patch binding as this feature may get backported to S10. 6.5. ARC review type: FastTrack 6.6. ARC Exposure: open