Sun Microsystems, Inc.  Oracle System Handbook - ISO 7.0 May 2018 Internal/Partner Edition
   Home | Current Systems | Former STK Products | EOL Systems | Components | General Info | Search | Feedback

Asset ID: 1-71-2169732.1
Update Date:2018-04-25
Keywords:

Solution Type  Technical Instruction Sure

Solution  2169732.1 :   MaxRep: How to map FC WWNs to the HBAs  


Related Items
  • Pillar Axiom Replication Engine (MaxRep)
  •  
Related Categories
  • PLA-Support>Sun Systems>DISK>Axiom>SN-DK: MaxRep-2x
  •  




In this Document
Goal
Solution
References


Applies to:

Pillar Axiom Replication Engine (MaxRep) - Version 3.0 to 3.0 [Release 3.0]
Information in this document applies to any platform.

Goal

MaxRep R3 supports two FC HBAs and each HBA contains two 8Gb FC ports.
This document explains how to identify the physical location of all the 4 FC ports.

Solution

FC HBAs are located in Slot 3 and Slot 6 on the MaxRep appliance.

The bottom HBA (Slot 3) is referred as HBA1 for the zoning.
The top HBA (Slot 6) is referred as HBA2 for the zoning.

PCI Slots

On each HBA, the port on the right is referred as Port 1 for the zoning.
The port on the left is referred as Port 2 for the zoning.

HBA1 and HBA2

Port 1 & Port 2 have the same WWN except for the last byte where Port 1 always have a hexadecimal value lower than Port 2 by one unit.

Example:

20:00:00:24:ff:4d:d4:39 -> Port 1
20:00:00:24:ff:4d:d4:3a -> Port 2

Each Port 1 is also associated to 4 NPIV ports for AIS (Initiator for Source LUNs) and 4 NPIV ports for AIT (Initiator for Target LUNs).

Each Port 2 is used as a physical target port: AT (used to accept IO from the splitter driver on the Source FS1 and also to present virtual snapshots to the hosts).

The remaining question is how to identify the HBA that belongs to a particular port.

Open an SSH session to the MaxRep Engine management IP address that needs to be investigated (see Document 2046703.1 FS System: Passwords Associated with the Oracle FS1-2 Flash Storage System to obtain the password).

 

1. Run the following command (move the mouse pointer to the right to copy the full line):

[root@maxrep ~]# perl -e '$s = "/sys/class/fc_host/host";$st = `ls -d $s*`;chomp($st);@a1 = split("\n", $st);@a1 = sort{$a <=> $b} map{(/(\d{1,2})/)?($1):(0)} @a1;print "\n\nPort            Port Name" . " " x 17 . "Node Name          Type      State    Speed\n" . "-" x 87 . "\n";foreach(@a1){$port = substr(`cat $s$_/port_name`,2,16);$port =~ s/..\K(?=.)/:/g;$node = substr(`cat $s$_/node_name`,2,16);$node =~ s/..\K(?=.)/:/g;$type = substr(`cat $s$_/port_type`,0,5);$type =~ s/^U.*/unknown/;$state = `cat $s$_/port_state`;chomp($state);$speed = `cat $s$_/speed`;chomp($speed);printf "%-6s   %s   %s   %-7s   %s   %s\n", "host$_", $port, $node, $type, $state, $speed};print "\n\n";'

Example of output:

Port            Port Name                 Node Name          Type      State    Speed
---------------------------------------------------------------------------------------
host7    21:00:00:24:ff:4d:c6:30   20:00:00:24:ff:4d:c6:30   NPort     Online   8 Gbit
host8    21:00:00:24:ff:4d:c6:31   20:00:00:24:ff:4d:c6:31   NPort     Online   8 Gbit
host9    21:00:00:24:ff:4d:cc:a0   20:00:00:24:ff:4d:cc:a0   unknown   Online   unknown
host10   21:00:00:24:ff:4d:cc:a1   20:00:00:24:ff:4d:cc:a1   unknown   Online   unknown
host11   50:02:38:30:02:a2:1d:7a   20:00:00:24:ff:4d:c6:30   NPIV      Online   8 Gbit
host12   50:02:38:30:01:71:78:c9   20:00:00:24:ff:4d:c6:30   NPIV      Online   8 Gbit
host13   50:02:38:30:00:3a:5f:95   20:00:00:24:ff:4d:c6:30   NPIV      Online   8 Gbit
host14   50:02:38:30:02:41:b7:af   20:00:00:24:ff:4d:c6:30   NPIV      Online   8 Gbit
host15   50:02:38:30:00:a9:53:66   20:00:00:24:ff:4d:c6:30   NPIV      Online   8 Gbit
host16   50:02:38:30:01:df:43:bd   20:00:00:24:ff:4d:c6:30   NPIV      Online   8 Gbit
host17   50:02:38:30:01:0f:05:6b   20:00:00:24:ff:4d:c6:30   NPIV      Online   8 Gbit
host18   50:02:38:30:03:0a:a3:05   20:00:00:24:ff:4d:c6:30   NPIV      Online   8 Gbit

In this example, host7 and host8 are from the same HBA (host7 is Port 1 and host8 is Port 2). There are 8 NPIV ports associated with 20:00:00:24:ff:4d:c6:30 (same node as Port 1). 

 

Notes:

- The other HBA (host9 and host10) seems to have none of its 2 ports connected (speed is unknown) and there is no NPIV port.
- The MaxRep GUI (Settings -> Replication Engine Ports Configuration) has a similar output but the GUI does not provide the Port reference (Host#) that is needed to identify the PCI Bus. 

 

2. Run the following command to find out which PCI Bus is associated to host7 and host8 (the previous command confirmed that they are from the same HBA):

[root@maxrep ~]# systool -c fc_host -v -d | egrep "Class.*0000\:[ab]0\:00.*host(7|8)"
Class Device path = "/sys/devices/pci0000:80/0000:80:03.0/0000:a0:00.0/host7/vport-7:0-0/host11/fc_host/host11"
Class Device path = "/sys/devices/pci0000:80/0000:80:03.0/0000:a0:00.0/host7/vport-7:0-1/host12/fc_host/host12"
Class Device path = "/sys/devices/pci0000:80/0000:80:03.0/0000:a0:00.0/host7/vport-7:0-2/host13/fc_host/host13"
Class Device path = "/sys/devices/pci0000:80/0000:80:03.0/0000:a0:00.0/host7/vport-7:0-3/host14/fc_host/host14"
Class Device path = "/sys/devices/pci0000:80/0000:80:03.0/0000:a0:00.0/host7/vport-7:0-4/host15/fc_host/host15"
Class Device path = "/sys/devices/pci0000:80/0000:80:03.0/0000:a0:00.0/host7/vport-7:0-5/host16/fc_host/host16"
Class Device path = "/sys/devices/pci0000:80/0000:80:03.0/0000:a0:00.0/host7/vport-7:0-6/host17/fc_host/host17"
Class Device path = "/sys/devices/pci0000:80/0000:80:03.0/0000:a0:00.0/host7/vport-7:0-7/host18/fc_host/host18"
Class Device path = "/sys/devices/pci0000:80/0000:80:03.0/0000:a0:00.0/host7/fc_host/host7"
Class Device path = "/sys/devices/pci0000:80/0000:80:03.0/0000:a0:00.1/host8/fc_host/host8"

 All the hosts (ports) associated with that HBA are listed under the same PCI Bus: a0:00

3. Run the same command but replace 7|8 by 9|10 for the other HBA:

[root@maxrep ~]# systool -c fc_host -v -d | egrep "Class.*0000\:[ab]0\:00.*host(9|10)"
Class Device path = "/sys/devices/pci0000:80/0000:80:03.2/0000:b0:00.1/host10/fc_host/host10"
Class Device path = "/sys/devices/pci0000:80/0000:80:03.2/0000:b0:00.0/host9/fc_host/host9"

 

All the hosts (ports) associated with that second HBA are listed under the same PCI Bus: b0:00

Note: there is no vport in this case: Port 1 is not connected or the virtual ports have not been created using the GUI.

4. Perform the PCI Bus <-> HBA mapping:

Bus a0:00 -> PCIe Slot 3
Bus b0:00 -> PCIe Slot 6

Mapping for the other PCIe Slots (not supported for FC cards):
Bus 20:00 -> PCIe Slot 1
Bus 40:00 -> PCIe Slot 2
Bus 30:00 -> PCIe Slot 4
Bus 50:00 -> PCIe Slot 5

 

Conclusion: HBA1 (Slot 3) has host7 & host8 and HBA2 (Slot 6) has host9 & host10.

Note: hosts 7 & 8 usually reprent the ports on Slot 3 and hosts 9 & 10 the ports on Slot 6.

At the time this article was written, there is no method to get this information from the logs.


Attachments
This solution has no attachment
  Copyright © 2018 Oracle, Inc.  All rights reserved.
 Feedback