Serial Attach SCSI instance renumbered after Ignite-UX recovery

From Wiki-UX.info
Jump to: navigation, search

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).

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

Authors