Serial Attach SCSI instance renumbered after Ignite-UX recovery
Contents
Abstract
Ignite-UX C.7.8.201 introduces the Updated USB support in the install kernel. When using this version of Ignite-UX or newer to Recover (make_tape_recovery | make_net_recovery) any system with Serial Attach SCSI controllers (e.g. rx3600 or rx6600), the sasd driver instances may be displaced from their original instance number if the system does not have the updated USB drivers loaded.
This issue does not represent a problem for cold installation of systems as instance information will be assigned for the first time during a cold install. It is important to understand that this issue has no functional effect on the system. The only change is that the device you would use with sasmgr to gather information about a SAS HBA will change.
Information available on this article is abridged and updated from GR8 case 4000189102 and WFM case 3604484812
Identify the Issue
1. Prior to the recovery or golden imaging, the following ioscan tree configuration will appear on the server configuration:
# ioscan -fnNk Class I H/W Path Driver S/W State H/W Type Description =================================================================================== ... OO 0 0/0/2/0 UsbOhci CLAIMED INTERFACE USB OHCI Interface OO 2 0/0/2/0.0x0 UsbMiniBus CLAIMED INTERFACE USB Composite Device OO 3 0/0/2/0.0x0.0x0 UsbBootKeyboard CLAIMED DEVICE Virtual Keyboard unknown -1 0/0/2/0.0x0.0x1 UNCLAIMED UNKNOWN OO Device Driver OO 5 0/0/2/1 UsbOhci CLAIMED INTERFACE USB OHCI Interface OO 7 0/0/2/1.0x0 UsbMiniBus CLAIMED INTERFACE USB Composite Device OO 8 0/0/2/1.0x0.0x0 UsbBulkOnlyMS CLAIMED DEVICE USB Bulk Only disk 2 0/0/2/1.0x0.0x10 UsbScsiAdaptor CLAIMED LUN_PATH USB SCSI Stack Adaptor OO 10 0/0/2/2 UsbEhci CLAIMED INTERFACE USB EHCI Interface graphics 0 0/0/3/0 gvid_core CLAIMED INTERFACE PCI Display (1002515e) ba 1 0/1 lba CLAIMED BUS_NEXUS Local PCI-X Bus Adapter (122e) escsi_ctlr 0 0/1/1/0 sasd CLAIMED INTERFACE HP PCI/PCI-X SAS MPT Adapter /dev/sasd0
Note that the SAS HBA "HP PCI/PCI-X SAS MPT Adapter" has instance 0 assigned to the escsi_ctlr Class with a device special path /dev/sasd0. Likewise, the USB devices are under the OO Class.
2. During the recovery or golden imaging, the following error message will be visible on the monitor console or on the Ignite-UX server client install.log file:
ioinit: Instance number 0 already exists for class escsi_ctlr. Input line 1: 0/1/1/0 escsi_ctlr 0 WARNING: Command: "/sbin/ioinit -f /tmp/ioinit.in" failed. Instance number assignments for devices of class "escsi_ctlr" may not be assigned
Note that the messages may be slightly different if you have more than one SAS HBA in the system.
3. After the recovery or golden imaging is complete, the SAS HBA device special file and instance number will be displaced, for example to instance 1:
# ioscan -fnNk Class I H/W Path Driver S/W State H/W Type Description =================================================================================== ... OO 0 0/0/2/0 UsbOhci CLAIMED INTERFACE USB OHCI Interface OO 2 0/0/2/0.0x0 UsbMiniBus CLAIMED INTERFACE USB Composite Device OO 3 0/0/2/0.0x0.0x0 UsbBootKeyboard CLAIMED DEVICE Virtual Keyboard unknown -1 0/0/2/0.0x0.0x1 UNCLAIMED UNKNOWN OO Device Driver OO 5 0/0/2/1 UsbOhci CLAIMED INTERFACE USB OHCI Interface OO 7 0/0/2/1.0x0 UsbMiniBus CLAIMED INTERFACE USB Composite Device OO 8 0/0/2/1.0x0.0x0 UsbBulkOnlyMS CLAIMED DEVICE USB Bulk Only disk 31 0/0/2/1.0x0.0x10 UsbScsiAdaptor CLAIMED LUN_PATH USB SCSI Stack Adaptor OO 10 0/0/2/2 UsbEhci CLAIMED INTERFACE USB EHCI Interface graphics 0 0/0/3/0 gvid_core CLAIMED INTERFACE PCI Display (1002515e) ba 1 0/1 lba CLAIMED BUS_NEXUS Local PCI-X Bus Adapter (122e) escsi_ctlr 1 0/1/1/0 sasd CLAIMED INTERFACE HP PCI/PCI-X SAS MPT Adapter /dev/sasd1 ...
Further analysis of the /stand/ioconfig file shows that none device is assigned to the escsi_ctlr Class.
Kernel Driver Class Instance Hardware Address ------------------------------------------------------------- rmp3f01 tty 0 0.0.1.0 rmp3f01 tty 1 0.0.1.1 asio0 tty 2 0.0.1.2 gvid_core graphics 0 0.0.3.0 sasd escsi_ctlr 1 0.1.1.0 igelan lan 0 0.1.2.0 (/dev/lan0) igelan lan 1 0.1.2.1 (/dev/lan1) fcd fc 0 0.2.1.0.4.0 fcd fc 1 0.2.1.0.4.1 iether lan 2 0.2.1.0.6.0 (/dev/lan2) iether lan 3 0.2.1.0.6.1 (/dev/lan3) fcd fc 2 0.4.1.0.4.0 fcd fc 3 0.4.1.0.4.1 iether lan 4 0.4.1.0.6.0 (/dev/lan4) iether lan 5 0.4.1.0.6.1 (/dev/lan5) asio0 tty 3 250.1 acpi_node acpi_node 0 250.2 UsbOhci OO 0 0.0.2.0 UsbOhci OO 5 0.0.2.1 UsbEhci OO 10 0.0.2.2 ipmi ipmi 0 250.0 sasd_vbus ext_bus 4 0.1.1.0.0.0 sdisk disk 21 0.1.1.0.0.0.4.0 fcd_fcp fcp 0 0.2.1.0.4.0.100 fcd_vbus ext_bus 1 0.2.1.0.4.0.100.93.0.0 sdisk disk 0 0.2.1.0.4.0.100.93.0.0.0.0 sdisk disk 1 0.2.1.0.4.0.100.93.0.0.0.1 sdisk disk 2 0.2.1.0.4.0.100.93.0.0.0.2 sdisk disk 3 0.2.1.0.4.0.100.93.0.0.0.3 sdisk disk 4 0.2.1.0.4.0.100.93.0.0.0.4 sdisk disk 5 0.2.1.0.4.0.100.93.0.0.0.5 sdisk disk 42 0.2.1.0.4.0.100.93.0.0.0.6 sdisk disk 7 0.2.1.0.4.0.100.93.0.0.0.7 sdisk disk 8 0.2.1.0.4.0.100.93.0.0.1.0 fcd_vbus ext_bus 0 0.2.1.0.4.0.100.93.255.0 fcd_fcp fcp 1 0.4.1.0.4.0.101 fcd_vbus ext_bus 3 0.4.1.0.4.0.101.93.0.0 sdisk disk 9 0.4.1.0.4.0.101.93.0.0.0.0 sdisk disk 10 0.4.1.0.4.0.101.93.0.0.0.1 sdisk disk 11 0.4.1.0.4.0.101.93.0.0.0.2 sdisk disk 12 0.4.1.0.4.0.101.93.0.0.0.3 sdisk disk 13 0.4.1.0.4.0.101.93.0.0.0.4 sdisk disk 14 0.4.1.0.4.0.101.93.0.0.0.5 sdisk disk 15 0.4.1.0.4.0.101.93.0.0.0.6 sdisk disk 16 0.4.1.0.4.0.101.93.0.0.0.7 sdisk disk 17 0.4.1.0.4.0.101.93.0.0.1.0 fcd_vbus ext_bus 2 0.4.1.0.4.0.101.93.255.0 UsbBootKeyboard OO 4 0.0.2.0.0.0 UsbScsiAdaptor disk 32 0.0.2.1.0.16 sctl ctl 0 0.2.1.0.4.0.100.93.255.0.0.0 sctl ctl 1 0.4.1.0.4.0.101.93.255.0.0.0
Instance renumbering cause
Followig is a detailed explanation on the issue provided by Shane Seymour from WTEC Ignite-UX support team:
- The problem is related to the introduction of the new USB drivers in the 0903 11.31 OE. When a new version of Ignite-UX is released the install kernels are built from the drivers supplied with the new OE. In the 0903 11.31 OE the USB driver was changed so it no longer used the device filesystem but supplied agile and legacy device files so they appeared the same as other disk devices.
The folowing ioscan hardware tree will appear on systems were the Update USB support drivers are installed during both the cold instalation or recovering a backup image:
Class I H/W Path Driver IO Flag =================================================================== ... escsi_ctlr 1 0/4/1/0 sasd 258 ... escsi_ctlr 0 64000/0x0/0x0 usb_ms_scsi 3 ...
The agile USB mass storage driver usb_ms_scsi allocates an entry in the escsi_ctlr class, which is the same class as the SAS HBA gets its instance number from.
That means that after a recovery the SAS HBA has instance 1 instead of instance 0. Ignite-UX makes an assumption that during a recovery all of the hardware will remain the same. The new USB drivers on 11.31 break that assumption. That means when Ignite attempted to reassign the instance number of the SAS HBA to be 0 it couldn't because it was already in use.
Available Solutions
Install the Update USB support patches
Since this will become the standard instance number assignation for newer HP-UX cold installation, one approach is jsut to install the Update USB support patches. The the new sasd instance number will be preserve and the USB controller(s) will be recieve the first instance values (0).
- Update to USB Driver Support on HPUX 11iv2 April 16th, 2009
- Update to USB Driver Support on HPUX 11iv3 March 25, 2009
Golden Imaging and System Recovery will preserve the new USB and SAS instance numbers that will consider final status.
Swap the instance numbers
Swapping the instance numbers back can be acomplished using the ioinit command as follows:
# cat /tmp/ioinit.in 0/4/1/0 escsi_ctlr 0 64000/0x0/0x0 escsi_ctlr 1 # ioinit -f ioinit.in -r
It's important to note that the system reboots immediately when you do that with the -r option. It's the only way to reassign the instance numbers.
Issuing the ioinit command without the -r flag is not recommended as some commands can remove the reassignment before the next reboot, so is required to schedule a down time.
If you need swap the instance numbers too, you will need a copy of /stand/ext_ioconfig or /etc/ext_ioconfig files and use the ioconfig_dump utility:
Check the box in front of the tool ioconfig_dump, the click on the next button. The select the type of executable you need, then click on next again. Then select how you want the tool delievered. Please note that the tool ioconfig_dump is not intended for customer use do not send it to the customer.
Once you've got the hardware paths for the devices you can write an ioinit.in file for the customer. It will probably look pretty similar to the one used on the previous example to reassign the instance numbers.
Reference
- USB Support Update for HP-UX 11i v2 and v3
- Update to USB Driver Support on HPUX 11iv2 April 16th, 2009
- Update to USB Driver Support on HPUX 11iv3 March 25, 2009