Plugging HP-UX into SAN
Our task for today is to connect HP-UX (11.31 release) to MSA2312fc through SAN with two Brocade switches in between. First, we need to find out all FC cards installed in our server and once we have that piece of information we could dig for WWN numbers to map them latter to the disk array.
Lets start from the beginning, ioscan is our best friend in revealing inner life of our server:
bash-4.0# ioscan -funC fc
Class I H/W Path Driver S/W State H/W Type Description
===================================================================
fc 0 0/3/0/0/0/0 fcd CLAIMED INTERFACE HP 4Gb Dual Port PCIe Fibre Channel Mezzanine (FC Port 1)
/dev/fcd0
fc 1 0/3/0/0/0/1 fcd CLAIMED INTERFACE HP 4Gb Dual Port PCIe Fibre Channel Mezzanine (FC Port 2)
/dev/fcd1
The output above says everything we need to know. So now, I’m going to use fcmsutil to display WWN information from our cards:
bash-4.0# fcmsutil /dev/fcd0
Vendor ID is = 0x1077
Device ID is = 0x2432
PCI Sub-system Vendor ID is = 0x103C
PCI Sub-system ID is = 0x1705
PCI Mode = PCI Express x4
ISP Code version = 4.2.2
ISP Chip version = 3
Topology = PTTOPT_FABRIC
Link Speed = 4Gb
Local N_Port_id is = 0x020b01
Previous N_Port_id is = None
N_Port Node World Wide Name = 0x5001438004c2e159
N_Port Port World Wide Name = 0x5001438004c2e158
Switch Port World Wide Name = 0x200b00051e868762
Switch Node World Wide Name = 0x100000051e868762
N_Port Symbolic Port Name = oamdwh1_fcd0
N_Port Symbolic Node Name = oamdwh1_HP-UX_B.11.31
Driver state = ONLINE
Hardware Path is = 0/3/0/0/0/0
Maximum Frame Size = 2048
Driver-Firmware Dump Available = NO
Driver-Firmware Dump Timestamp = N/A
Driver Version = @(#) fcd B.11.31.0803 Jan 20 2008
bash-4.0#
bash-4.0# fcmsutil /dev/fcd1
Vendor ID is = 0x1077
Device ID is = 0x2432
PCI Sub-system Vendor ID is = 0x103C
PCI Sub-system ID is = 0x1705
PCI Mode = PCI Express x4
ISP Code version = 4.2.2
ISP Chip version = 3
Topology = PTTOPT_FABRIC
Link Speed = 4Gb
Local N_Port_id is = 0x010b01
Previous N_Port_id is = None
N_Port Node World Wide Name = 0x5001438004c2e15b
N_Port Port World Wide Name = 0x5001438004c2e15a
Switch Port World Wide Name = 0x200b00051e855e8b
Switch Node World Wide Name = 0x100000051e855e8b
N_Port Symbolic Port Name = oamdwh1_fcd1
N_Port Symbolic Node Name = oamdwh1_HP-UX_B.11.31
Driver state = ONLINE
Hardware Path is = 0/3/0/0/0/1
Maximum Frame Size = 2048
Driver-Firmware Dump Available = NO
Driver-Firmware Dump Timestamp = N/A
Driver Version = @(#) fcd B.11.31.0803 Jan 20 2008
Using this information we could proceed with zone configuration on FC switches.
alicreate "hpux_fcd1", "50:01:43:80:04:c2:e1:5a" alicreate "MSA2312_A1", "20:70:00:c0:ff:d8:bb:a4" zonecreate "hpux_msa2312", "hpux_fcd1;MSA2312_A1" cfgadd "HPUX_cfg" "hpux_msa2312"
For brevity I omitted the steps required to configure the second switch since they are almost the same. The only difference is the aliases’, zones’ names and WWN numbers.
Don’t forget to save and enable newly created configuration on the switch:
cfgsave HPUX_cfg cfgenable HPUX_cfg
All that we have to do next, apart from creating and mapping LUNs on our storage, is to tell the system to scan for new disks and to create special files for them:
# insf -C disk
To double check that new disks have been successfully added do the following:
# ioscan -m dsf
Persistent DSF Legacy DSF(s)
========================================
/dev/rdisk/disk1 /dev/rdsk/c0t0d0
/dev/rdisk/disk1_p1 /dev/rdsk/c0t0d0s1
/dev/rdisk/disk1_p2 /dev/rdsk/c0t0d0s2
/dev/rdisk/disk1_p3 /dev/rdsk/c0t0d0s3
/dev/pt/pt4 /dev/rscsi/c3t0d0
/dev/pt/pt5 /dev/rscsi/c2t0d0
/dev/rdisk/disk6 /dev/rdsk/c4t0d1
/dev/rdsk/c5t0d1
/dev/rdisk/disk6 is our new lovely friend. To confirm that, use scsimgr command:
# scsimgr inquiry -D /dev/rdisk/disk6
INQUIRY INFORMATION FOR LUN: /dev/rdisk/disk6
Peripheral Device Type: 0 (Direct Access)
Peripheral Qualifier: 0 (Peripheral Device Connected)
Removable Media: No
ANSI Version: 5 (Complies to SPC-3)
Normal ACA Support: No
Hierarchical Support: 0x1 (Hierarchical addressing model used)
Response Data Format: 2 (SPC-3)
Additional Length: 155
SCC Support: 0 (No Embedded Storage Array Controller)
Access Controls Coordinator: No
Target Port Group Support: 0x1 (Implicit Asymmetric Access Support)
Third-Party Copy: No
Protect: 0 (Protection Information NOT Supported)
Basic Queuing: 0
Command Queuing: 0x1 (Full Task Management Model (SAM-3))
Enclosure Services: No
Multi-port Device Support: Yes
Medium Changer Support: No
Supports 16-bit wide SCSI addresses: No
Support for 16 Bit Transfers: No
Synchronous Data Transfers: No
Linked Command Support: No
Vendor Identification: "HP "
Product Identification: "MSA2312fc "
Product Revision Level: "M110"
Vendor Specific Data: 20 20 20 20 20 20 20 20 " "
43 41 50 49 20 20 41 41 "CAPI AA"
66 20 20 20 "f "
Clocking: 0 (Supports only ST)
Quick Arbitration & Selection support: No
Information Unit transfers Support: No
Finally, when you decide to create LVM configuration on top of newly added disk don’t use legacy DSF, all those c#t#d#, but use persistent DSF instead, i.e. /dev/rdisk/disk6 and HP-UX will deal with multipathing on its own:
# scsimgr lun_map -D /dev/rdisk/disk6
LUN PATH INFORMATION FOR LUN : /dev/rdisk/disk6
Total number of LUN paths = 2
World Wide Identifier(WWID) = 0x600c0ff000d8d17c1b1bf84a01000000
LUN path : lunpath4
Class = lunpath
Instance = 4
Hardware path = 0/3/0/0/0/0.0x247000c0ffd8bba4.0x4001000000000000
SCSI transport protocol = fibre_channel
State = STANDBY
Last Open or Close state = STANDBY
LUN path : lunpath5
Class = lunpath
Instance = 5
Hardware path = 0/3/0/0/0/1.0x207000c0ffd8bba4.0x4001000000000000
SCSI transport protocol = fibre_channel
State = ACTIVE
Last Open or Close state = ACTIVE
Enjoy.

on October 22, 2010 at 8:50 pm
·