7.13.2006

Work { V880 internal FCAL drive + Solaris 10 6/06 (Update 2) woes

Project due next Monday to provide a Solaris 10 development environment for electronic timekeeping. V880s rank up their with E420Rs on my list of "Least liked Sun Microsystem Hardware" as they are big, clunky, and consume an immense amount of power for their size. But I digress. They come with up to 12 internal FCAL loop attached 72GB disk drives and they have an add on option where you can install another FCAL controller (and a small cable) to make them mutlipathed to the disks incase one controller fails you can still access them. Useful for some situations, a waste of money for others. The patient in question did not have the multipathing option installed.

Solaris 10 is shaping up to be one of the best Solaris Operating Systems SUN has, but it was not ready for production use (in my opinion) until 01/06 (Update 1, side note to any 3/05 users may want to upgrade to at least 01/06 as the Java Desktop has greatly enhanced performance in 01/06 (JDS is rides on top of Gnome)).

In Solaris 10 Solaris disk multipathing (aka MPXIO) is enabled by default, which is a good thing. However on the V880 I installed, on first reboot after jumpstart, I received an error that it could not mount the root (/) partition...that's bad. I brought the system back down to the 'ok' prompt and boot into single user mode via the network. Once in single user mode I mounted up /dev/dsk/c1t0d0s0 (the / partition) and editted the /kernel/drv/fp.conf file and set 'mpxio-disable="yes";', to disable MPXIO and rebooted, the system was able to come fully online and the partitions mounted properly. But this disabled Solaris multipathing for all storage attached, this was bad as I had LUNs presented from SAN storage that I did want to be under MPXIO, so I tried to search through SunSolve, a once great resource that has now become almost, but not quite useless (content is locked away unless you have a support contract, which I do and even then a lot of stuff you used to have access to like bug IDs are not locked away) with vague reference to what I already tried, but no help. So I opened a ticket via the online support center...that was 48 hours ago with no response. So I escalated to my local SAM and SSE, they were able to help me with a few stmsboot commands, but these didn't work, as in they produced no output when I ran the commands. So I opend up the /kernel/drv/fp.conf file again and started reading:


--tail fp.conf---
# You can also enable or disable MPxIO on a per port basis.
# Per port settings override the global setting for the specified ports.
# To disable MPxIO on port 0 whose parent is /pci@8,600000/SUNW,qlc@4 set:
# name="fp" parent="/pci@8,600000/SUNW,qlc@4" port=0 mpxio-disable="yes";
#
# NOTE: If you just want to enable or disable MPxIO on all fp ports, it is
# better to use stmsboot(1M) as it also updates /etc/vfstab.
#
mpxio-disable="no";
---end fp.conf---


Aha! This is exactly what I want, to disable on a per port basis. So I modified the file to read:

--tail fp.conf---
# You can also enable or disable MPxIO on a per port basis.
# Per port settings override the global setting for the specified ports.
# To disable MPxIO on port 0 whose parent is /pci@8,600000/SUNW,qlc@4 set:
# name="fp" parent="/pci@8,600000/SUNW,qlc@4" port=0 mpxio-disable="yes";
#
# NOTE: If you just want to enable or disable MPxIO on all fp ports, it is
# better to use stmsboot(1M) as it also updates /etc/vfstab.
#
name="fp" parent="/pci@8,600000/SUNW,qlc@2" port=0 mpxio-disable="yes";
mpxio-disable="no";
---end fp.conf---


and rebooted...error came back. I was perplexed, and pondered it over and realized that I may have the order wrong, so I did the net-boot/edit /kernel/drv/fp.conf again and changed it to read:


--tail fp.conf---
# You can also enable or disable MPxIO on a per port basis.
# Per port settings override the global setting for the specified ports.
# To disable MPxIO on port 0 whose parent is /pci@8,600000/SUNW,qlc@4 set:
# name="fp" parent="/pci@8,600000/SUNW,qlc@4" port=0 mpxio-disable="yes";
#
# NOTE: If you just want to enable or disable MPxIO on all fp ports, it is
# better to use stmsboot(1M) as it also updates /etc/vfstab.
#
mpxio-disable="no";
name="fp" parent="/pci@8,600000/SUNW,qlc@2" port=0 mpxio-disable="yes";
---end fp.conf---


and Viola! It now does what I want it to, disable only the internal FCAL loop, but not the HBA fabric attached SAN storage.

time spent on problem: lots
number of small furry animals sacrificed to the machine god: moderate
number of admins rejoicing: 1

2 comments:

Scots said...

Thank you very much ... this did fix a problem I was having with v890s.

One problem I had in addition to editing the fp.conf ... I had several failed attempts, so I had to edit the /etc/vfstab files and removed the commented out entries from the stmsboot command. Then your edits worked like a champ!

God bless! -scott.

Pernox said...

Scots,

I'm glad this helped. My frustration with this is what lead me to post this info so that others did not have to go through as much pain. :-)

I did not have to do the /etc/vfstab part, I'm not sure why it appeared that stmsboot did not modify the file. I wonder if this was perhaps half-done thing caused by JET. I am hoping the newer version of JET 4.3.3, and Solaris 10 11/06 fix this.