Thursday, March 24, 2011

Mapping disk instance name with physical name

Say you need to find the instance name for the following disks:
'/dev/rdsk/c6t20030003BACCC8FAd0s6',
'/dev/rdsk/c6t20030003BACCC8FAd1s6',
'/dev/rdsk/c6t20030003BACCC902d0s6',
'/dev/rdsk/c6t20030003BACCC902d1s6



Look for 902 (0 and 1) in /etc/path_to_inst file:
"/pci@0/pci@0/pci@8/pci@0/pci@a/SUNW,qlc@0,1/fp@0,0/ssd@w20030003baccc902,1" 3 "ssd"
"/pci@0/pci@0/pci@8/pci@0/pci@a/SUNW,qlc@0,1/fp@0,0/ssd@w20030003baccc902,0" 4 "ssd"

Look for 8FA (0 and 1 ) in /etc/path_to_inst file:
"/pci@0/pci@0/pci@8/pci@0/pci@a/SUNW,qlc@0,1/fp@0,0/ssd@w20030003baccc8fa,1" 72 "ssd"
"/pci@0/pci@0/pci@8/pci@0/pci@a/SUNW,qlc@0,1/fp@0,0/ssd@w20030003baccc8fa,0" 7 "ssd"


The mapping is as under:
'/dev/rdsk/c6t20030003BACCC8FAd0s6  : ssd7
'/dev/rdsk/c6t20030003BACCC8FAd1s6:ssd72
/dev/rdsk/c6t20030003BACCC902d0s6:ssd4
/dev/rdsk/c6t20030003BACCC902d1s6:ssd3

Tuesday, March 8, 2011

Solaris Containers

  • How to create Zones
  • Create a root directory for zones with rwx permission for user.
    • mkdir /zones1
    • chmod 700 /zones1
  • Create a zone configuration file as under:
    • create
    • set zonepath=/zones1
    • set autoboot=true
    • Add network (exclusive IP or default shared IP):
      • Setting exclusive IP
    If you are setting up exclusive IP: (do not set address attribute for exclusive IP)
      set ip-type=exclusive
      add net
      set physical=e1000g2
      end

      Additional info about exclsive IP setup:
      http://download.oracle.com/docs/cd/E19082-01/819-6990/gicom/index.html

        • Setting default shared IP
      If you are setting default shared IPadd net
      set physical=e1000g2
      set address=<ip address of container>
      end

      • Add Raw devices
      To add raw devices to the containers configuration

      add device
      set match=/dev/rdsk/c6t20030003BACCC902*
      end
      add device
      set match=/dev/rdsk/c6t20030003BACCC8FA*
      end

      On Solaris 11:
      zonecfg:rac4Zone> add device
      zonecfg:rac4Zone:device> set match=/dev/rdsk/c1t0d0s0
      zonecfg:rac4Zone:device> set allow-partition=true
      zonecfg:rac4Zone:device> set allow-raw-io=true
      zonecfg:rac4Zone:device> end


      • Add FS
      To add fs refer to
      • http://docs.oracle.com/cd/E23824_01/html/821-1460/z.admin.task-11.html

      To mount a global directory as lofs to container

      zonecfg -z zones1
      add fs
      set dir=/oracle11gR2
      set special=/oracle11gR2
      set type=lofs
      set options=nodevices
      end

      • Set shared memory :
        global# zonecfg -z myzone
        zonecfg:myzone> set max-shm-memory=50G
        • Add dedicated CPU 
          Adding dedicated -cpu is a simpler form of creating a pool and attaching it to the container. Add dedicated-cpu command creates a temporary pool and assigns it to the container

          add dedicated-cpu
          set ncpus=32
          end

          • Remove dedicated CPU

          To remove the dedicated-cpu, issue the following command
          remove dedicated-cpu

          • Add resource pool
            • set pool=rac1pool
          • Remove pool
            • On Solaris 11
              •  clear pool
            • On Solaris 10 Update 3 and below
              • set pool=""

          • Steps to create and configure a container

          1. Invoke zonecfg command to configure the zone
            1. zonecfg -z zones1 -f test.cfg
          2.  Install the configured zone
            1. zoneadm -z zones1 install
          3.  Use the list subcommand of zoneadm to list the installed zones and verify their status. The status of the zone is "Installed"
            1. zoneadm list -iv
          4. Boot the zone
            1. zoneadm -z zones1 boot
          5.  Verify that status of the zone is "running"
            1. zoneadm list -v
          6.  Log in to Zone console to perform the internal zone configuration
            1. zlogin -C zone1
          7.  Optionally edit /etc/sysidcfg file to perfom the inital zone configuration
            1. Go to /etc/ directory of the local zone
              1. cd /export/home/zones/root/etc
            2. Create sysidcfg file in this directory

          • Steps to delete a container
            • zoneadm -z myzone halt
            • zoneadm -z myzone uninstall
            • zonecfg -z myzone delete -F

          • List a container and info about it

          • List all zones from global zone
            • zoneadm list -v
          • Login to local zone from global zone:
            • zlogin <zonename>
          • In the zone , issue zonename to print its name
          • Get info about the zone
            • zonecfg -z myzone info
          • To verify if /dev/rdsk/c6 is accessible in local container
            • ls /my_zone/root/dev/rdsk/.....

          • Initial zone configuration

          • Hostname and ip address: 
            • The hostname can be resolved through DNS or NIS
              • Verify if it is resolved through DNS
                • nslookup isve-111-212 
              • Verify if it resolves through NIS
                • ypcat hosts | grep isve-111-212
              • If hostname is resolved through dns /etc/nsswitch.conf should have the following 
                • ipnodes:        files dns
              • else it should be as under:
                • ipnodes:        files nis
          • netmask: /etc/inet/netmasks
          • Router IP : /etc/defaultrouter
          • Dominname : exec domainname command
          • Name service : Check /etc/nsswitch.conf to confirm it is NIS
          • Name server: output of ypwhich command
          • Ip addres of name server : ping -s <nameserver>
          • DNS name server ip address from /etc/resolv.conf

          • Modify exisiting zone

          • Change net settings {removing address or physical attribute of the net will delete both network parameters
            • zonecfg -z zone1 info
            • remove net address=<value> {or remove net physical=<value>}
            • add net
            •    set physical
            •     set address
            • end
          • Some changes need the zone to be rebooted to take effect
            • zoneadm -z zone1 reboot


          If you want to restart initial zone configuration
          • zlogin -S zonename /usr/sbin/sys-unconfig
          • or login to zones (zlogin zonename) , issue sys-unconfig and reboot
          • On Solaris 11, you can configure using the following commnd
            • /usr/sbin/sysconfig unconfigure
          How to specify netmask in containers:
          Why is zone booting command failing as under:

           zoneadm -z zones2 boot
          zoneadm: zone 'zones2': These file-systems are mounted on subdirectories of /zones2/root:
          zoneadm: zone 'zones2':   /zones2/root/var/sadm/install/.door
          zoneadm: zone 'zones2': call to zoneadmd failed
          You do not have the right zones patch installed..... Wait for 10 minutes and issue the command and it will work if you do not want  to install the updated patches


          If you see the following error, login in to the console to view the SCI ....


          root@unknown:~# sysconfig configure
          This program will re-configure your system.
          Do you want to continue (y/[n])? y
          Interactive configuration requested.
          System Configuration Interactive (SCI) tool will be launched on console.
          Since you are currently not logged on console,
          you may not be able to navigate SCI tool.
          Would you like to proceed with re-configuration (y/[n])? y

          How to create a resource pool and bind a project to that pool

          Create Resource Pool
          • Enable the resource pool service
            • svcadm enable system/pools:default
          • Enable dynamic resource pool
            • svcadm enable system/pools/dynamic:default
          • Check if both are enabled
            • svcs \*pool\*
          • Create a processor set named oracle_set with 32 processors
            • poolcfg -c 'create pset oracle_set( uint pset.min=32; uint pset.max=32)'
          • Create a pool named oraclePool
            • poolcfg -c ' create pool oraclePool
          • Associate the pool with processor set
            • poolcfg -c 'associate pool oraclePool (pset oracle_set)'
          •  Display the info
            • poolcfg -c info
          • Commit the changes to /etc/pooladm.cfg
            •  pooladm -c
          • Alternatively, you can save the configuration in a file and invoke pooladm with that file
          Here is an example of configuration file that creates a pool with 8 CPUs in it

          cat sPool:
          create pset rac1_set(uint pset.min=8;uint pset.max=8)
          create pool rac1Pool
          associate pool rac1Pool(pset rac1_set)
          transfer to pset rac1_set(cpu 0;cpu 1 ; cpu 2; cpu 3; cpu 4 ; cpu 5 ; cpu 6; cpu 7)

          Invoke the following command to save current configuration in /etc/pooladm.conf file.

           if that file does not exist
          • pooladm -s
          Execute the following command to execute commands from sPool file
          • poolcfg -f sPool
          • poolcfg -c info
          • pooladm -c
          The following commands can be used to delete the pool:

          cat delPool
          destroy pset rac1_set
          destroy pool rac1Pool
          poolcfg -f delPool

          If poolcfg -c info is not taking the right changes, you may want to flush out current in-memory config and start afresh ...

          pooladm -x # flush current in-memory config
          pooladm -s # blank /etc/pooladm.conf config

          For more info : http://www.brendangregg.com/zones.html


            Bind the oracle project to this pool

            • Set project.pool attribute for oracle project to oraclePool so that oracle project gets binded to oraclePool by default. This implies that all processes starting in this project are bound to the pool automatically
              •  projmod -a -K project.pool=poolname project

            Destroy the processor set and pool set

            • poolcfg -c 'destroy pset oracle_set' /etc/pooladm.conf
            • poolcfg -c 'destroy pool oraclePool'
            • poolcfg -c info
            • pooladm -c
            Bind a process to the resource pool

            The following procedure uses poolbind with the -p option to manually bind a process  to a pool named oraclePool
            • Bind the process named ohare to the resource pool oraclePool
              • # poolbind -p oraclePool <procesid of process to be binded>
            • verify which pool a particular process is binded to
              • $ poolbind -q <process id of binded process)
            Monitor pool and processor set:
            • Execute the following commands
              • poolstat 5
              • poolstat -r pset 5 
            If you cannot find dynamic-resource SMF service (system/pools/dynamic:default ), download dynamic-resource-pools pkg.



            Verify if dynamic-resource-pools package exist on your system or not.
            •  pkg info dynamic-resource-pools
            pkg: info: no packages matching the following patterns you specified are
            installed on the system.  Try specifying -r to query remotely:

                    dynamic-resource-pools


            • pkg info resource-pools
                      Name: system/resource-mgmt/resource-pools
                   Summary: Resource Pools
               Description: core software for resource pools
                  Category: System/Core
                     State: Installed
                 Publisher: solaris
                   Version: 0.5.11
             Build Release: 5.11
                    Branch: 0.175.1.0.0.9.0
            Packaging Date: Mon Feb 06 23:51:31 2012
                      Size: 811.45 kB
                      FMRI: pkg://solaris/system/resource-mgmt/resource-pools@0.5.11,5.11-0.                             175.1.0.0.9.0:20120206T235131Z


            • # pkg search dynamic-resource-pools
            INDEX      ACTION VALUE                                               PACKAGE
            pkg.fmri   set    solaris/system/resource-mgmt/dynamic-resource-pools pkg:/syste                             m/resource-mgmt/dynamic-resource-pools@0.5.11-0.175.1.0.0.9.0


            • # pkg install dynamic-resource-pools
                       Packages to install:  3
                   Create boot environment: No
            Create backup boot environment: No
                        Services to change:  5

            DOWNLOAD                                  PKGS       FILES    XFER (MB)
            Completed                                  3/3   1015/1015    52.5/52.5

            PHASE                                        ACTIONS
            Install Phase                              1374/1374

            PHASE                                          ITEMS
            Package State Update Phase                       3/3
            Image State Update Phase                         2/2


             
            Additional info:
            ttp://www.brendangregg.com/zones.html#resource_cpu0

              Wednesday, February 9, 2011

              Solaris Technotes

              • Enable rsh in S10:
              http://unixadministrator.blogspot.com/2008/12/how-to-enable-rsh-on-solaris-10.html
              Also, verify that the account from where you are setting rsh has a password ....

              • corestat does not show output
              verify that cpustat command is giving the right output.if cpustat says resource currently unavailable, reboot the system.The cpustat command that corestat executes can be found in corestat file ....
              • Kill all oraclebench process 
                ps -ef | grep oraclebench | awk '{print $2}' | xargs -n1 kill -9

              • List ora_smon_test process

              pgrep -fl ora_smon_test 
              • To remove all the files from  a directory , when rm gives "list too long" error
                      find . -name '*' | xargs rm
              • To enable ssh for root  

              • Edit /etc/ssh/sshd_config file 
                  • search for: PermitRootLogin no 
                  • change the 'no' to yes.
              • Edit etc/default/login 
                • comment out "CONSOLE=/dev/console"
              • Restart sshd 
                • with following command
                  •  # svcadm restart svc:/network/ssh:default
                • Or as under
                  •  # /lib/svc/method/sshd restart
               
              •  Sqlplus cheatsheet:
               
              • http://www.adp-gmbh.ch/ora/sqlplus/use_vars.html
              • http://www.cs.csubak.edu/~wang/CS342/SqlPlus.htm

                   

              Connecting to database from remote client

              • Start listener on server machine
              • Install adminstrative client s/w on the client machine and add server name in tnsname.ora in client machine
              •  Verify on client machine:
                • tnsping <servicename>
                • sqlplus tpcc/tpcc@bench (where tpcc is the username and bench is the service name)
                • setenv TWO_TASK bench
                • sqlplus tpcc/tpcc (you should get the prompt)
                •  
              • What is the use of TWO_TASK environment variable ?
              If you are in a Unix environment, you can normally set 2 environment variables:
              • ORACLE_HOME
              • ORACLE_SID
              that will connect you to a local database identified by that home and sid. If you wanted
              to be able to connect to a remote database or a database on that machine via SQLNet, you
              can also set:
              •  TWO_TASK = <tnsconnect string> 
              The setting of TWO_TASK overrides the ORACLE_SID when set. You will not connecting to a
              local database with two_task but rather using sqlnet to connect to a remote database.
              So, instead of: 
              I can: 
              $ setenv TWO_TASK some_db
              $ sqlplus scott/tiger
              and the @some_db is implied.

              Tuesday, February 8, 2011

              Whitepaper links

              • Oracle Database on Sun SPARC Enterprise T-series Systems : Suitablilty Analysis
              • Optimizing Single Instance Oracle Databases on Oracle's T-Series Servers:
              • Deploying Oracle Database on the Oracle Solaris Platform -Best Practices:
              • Best Practices for Runing Oracle Databases in Oracle Solaris Containers
              • Session in MySQL Conf 2008 : Best Practices for Deploying MySQL on the Solaris Platform
              • Session in Oracle OpenWorld 2010:
              http://www.oracle.com/technetwork/server-storage/solarisstudio/oow-focus-on-solaris-173299.pdf

              • Oracle Optimized Solution
              How to Consolidate, Optimize, and Deploy Oracle Database Environments with Flexible Virtualized Services
              Oracle Optimized Solution for Oracle Database
              http://www.oracle.com/technetwork/server-storage/hardware-solutions/o12-032-howto-db-throughput-avail-1592601.pdf
               
               
              •  Oracle Optimized Soltuion:
               
              How to Accelerate Test and Development Through Rapid Cloning of Production Databases and Operating Environments
               
              http://www.oracle.com/technetwork/server-storage/hardware-solutions/o13-022-rapid-cloning-db-1919816.pdf
              
              
              •  Session in Oracle Open World 2012

              How to Configure HCC for Optimizing Query Database Performance and lowering TCO
              • Deploying MySQL Database in Solaris Cluster Environments

              Looking at another FC storage

              Storage configuration is as under:

              • luxadm  -e port

              4 HBAs are connected:
              /devices/pci@1,700000/SUNW,qlc@0/fp@0,0:devctl                     CONNECTED
              /devices/pci@1,700000/SUNW,qlc@0,1/fp@0,0:devctl                   CONNECTED
              /devices/pci@13,700000/SUNW,qlc@0/fp@0,0:devctl                    CONNECTED
              /devices/pci@13,700000/SUNW,qlc@0,1/fp@0,0:devctl                  CONNECTED

              You can find out the WWN number of each HBA as under :


              Pos AL_PA ID Hard_Addr Port WWN         Node WWN         Type
              0     e1  4     e1     200700a0b832f4bd 200600a0b832f4bc 0x0  (Disk device)
              1     1   7d    0      2100001b320b6958 2000001b320b6958 0x1f (Unknown Type,Host Bus Adapter)


              Pos AL_PA ID Hard_Addr Port WWN         Node WWN         Type
              0     e8  1     e8     200600a0b832f4bd 200600a0b832f4bc 0x0  (Disk device)
              1     1   7d    0      2101001b322b6958 2001001b322b6958 0x1f (Unknown Type,Host Bus Adapter)


              Pos AL_PA ID Hard_Addr Port WWN         Node WWN         Type
              0     ef  0     ef     202400a0b83892c4 200400a0b83892c4 0x0  (Disk device)
              1     1   7d    0      2100001b329bdf46 2000001b329bdf46 0x1f (Unknown Type,Host Bus Adapter)


              Pos AL_PA ID Hard_Addr Port WWN         Node WWN         Type
              0     e8  1     e8     203400a0b83892c4 200400a0b83892c4 0x0  (Disk device)
              1     1   7d    0      2101001b32bbdf46 2001001b32bbdf46 0x1f (Unknown Type,Host Bus Adapter)


              Additional info about HBAs including their speed can be found by issuing the following comand
              • fcinfo hba-ports
              # fcinfo hba-port
              HBA Port WWN: 2100001b320b6958
                      OS Device Name: /dev/cfg/c1
                      Manufacturer: QLogic Corp.
                      Model: 375-3356-02
                      Firmware Version: 05.03.02
                      FCode/BIOS Version:  BIOS: 1.24; fcode: 1.24; EFI: 1.08;
                      Serial Number: 0402G00-0814437006
                      Driver Name: qlc
                      Driver Version: 20100301-3.00
                      Type: L-port
                      State: online
                      Supported Speeds: 1Gb 2Gb 4Gb
                      Current Speed: 4Gb
                      Node WWN: 2000001b320b6958
              HBA Port WWN: 2101001b322b6958
                      OS Device Name: /dev/cfg/c2
                      Manufacturer: QLogic Corp.
                      Model: 375-3356-02
                      Firmware Version: 05.03.02
                      FCode/BIOS Version:  BIOS: 1.24; fcode: 1.24; EFI: 1.08;
                      Serial Number: 0402G00-0814437006
                      Driver Name: qlc
                      Driver Version: 20100301-3.00
                      Type: L-port
                      State: online
                      Supported Speeds: 1Gb 2Gb 4Gb
                      Current Speed: 4Gb
                      Node WWN: 2001001b322b6958
              HBA Port WWN: 2100001b329bdf46
                      OS Device Name: /dev/cfg/c6
                      Manufacturer: QLogic Corp.
                      Model: 371-4325-01
                      Firmware Version: 05.03.02
                      FCode/BIOS Version:  BIOS: 2.02; fcode: 2.03; EFI: 2.01;
                      Serial Number: 0402H00-1002804353
                      Driver Name: qlc
                      Driver Version: 20100301-3.00
                      Type: L-port
                      State: online
                      Supported Speeds: 2Gb 4Gb 8Gb
                      Current Speed: 4Gb
                      Node WWN: 2000001b329bdf46
              HBA Port WWN: 2101001b32bbdf46
                      OS Device Name: /dev/cfg/c7
                      Manufacturer: QLogic Corp.
                      Model: 371-4325-01
                      Firmware Version: 05.03.02
                      FCode/BIOS Version:  BIOS: 2.02; fcode: 2.03; EFI: 2.01;
                      Serial Number: 0402H00-1002804353
                      Driver Name: qlc
                      Driver Version: 20100301-3.00
                      Type: L-port
                      State: online
                      Supported Speeds: 2Gb 4Gb 8Gb
                      Current Speed: 4Gb
                      Node WWN: 2001001b32bbdf46

              You can find out which disk are attached to which HBA by the following command:

              (where P is WWN of the HBA port found by luxadm dump_map command or fcinfo hba_port command)
              • fcinfo remote-port -sl -p 2100001b320b6958
              Remote Port WWN: 200700a0b832f4bd
                      Active FC4 Types:
                      SCSI Target: yes
                      Node WWN: 200600a0b832f4bc
                      Link Error Statistics:
                              Link Failure Count: 3
                              Loss of Sync Count: 9
                              Loss of Signal Count: 133
                              Primitive Seq Protocol Error Count: 0
                              Invalid Tx Word Count: 0
                              Invalid CRC Count: 0
                      LUN: 0
                        Vendor: SUN
                        Product: CSM200_R
                        OS Device Name: /dev/rdsk/c1t4d0s2
                      LUN: 1
                        Vendor: SUN
                        Product: CSM200_R
                        OS Device Name: /dev/rdsk/c1t4d1s2
                      LUN: 2
                        Vendor: SUN
                        Product: CSM200_R
                        OS Device Name: /dev/rdsk/c1t4d2s2
                      LUN: 3
                        Vendor: SUN
                        Product: CSM200_R
                        OS Device Name: /dev/rdsk/c1t4d3s2

              • # fcinfo remote-port -sl  -p  2101001b32bbdf46
              Remote Port WWN: 203400a0b83892c4
                      Active FC4 Types:
                      SCSI Target: yes
                      Node WWN: 200400a0b83892c4
                      Link Error Statistics:
                              Link Failure Count: 13
                              Loss of Sync Count: 2167
                              Loss of Signal Count: 3158
                              Primitive Seq Protocol Error Count: 0
                              Invalid Tx Word Count: 0
                              Invalid CRC Count: 0
                      LUN: 0
                        Vendor: SUN
                        Product: LCSM100_F
                        OS Device Name: /dev/rdsk/c7t1d0s2
                      LUN: 1
                        Vendor: SUN
                        Product: LCSM100_F
                        OS Device Name: /dev/rdsk/c7t1d1s2
                      LUN: 2
                        Vendor: SUN
                        Product: LCSM100_F
                        OS Device Name: /dev/rdsk/c7t1d2s2
                      LUN: 3
                        Vendor: SUN
                        Product: LCSM100_F
                        OS Device Name: /dev/rdsk/c7t1d3s2
              • # fcinfo remote-port -sl -p 2101001b322b6958
              Remote Port WWN: 200600a0b832f4bd
                      Active FC4 Types:
                      SCSI Target: yes
                      Node WWN: 200600a0b832f4bc
                      Link Error Statistics:
                              Link Failure Count: 3
                              Loss of Sync Count: 9
                              Loss of Signal Count: 69
                              Primitive Seq Protocol Error Count: 0
                              Invalid Tx Word Count: 0
                              Invalid CRC Count: 0
                      LUN: 0
                        Vendor: SUN
                        Product: CSM200_R
                        OS Device Name: /dev/rdsk/c2t1d0s2
                      LUN: 1
                        Vendor: SUN
                        Product: CSM200_R
                        OS Device Name: /dev/rdsk/c2t1d1s2
                      LUN: 2
                        Vendor: SUN
                        Product: CSM200_R
                        OS Device Name: /dev/rdsk/c2t1d2s2
                      LUN: 3
                        Vendor: SUN
                        Product: CSM200_R
                        OS Device Name: /dev/rdsk/c2t1d3s2
              • # fcinfo remote-port -sl -p 2100001b329bdf46
              Remote Port WWN: 202400a0b83892c4
                      Active FC4 Types:
                      SCSI Target: yes
                      Node WWN: 200400a0b83892c4
                      Link Error Statistics:
                              Link Failure Count: 10
                              Loss of Sync Count: 1776
                              Loss of Signal Count: 3331
                              Primitive Seq Protocol Error Count: 0
                              Invalid Tx Word Count: 0
                              Invalid CRC Count: 0
                      LUN: 0
                        Vendor: SUN
                        Product: LCSM100_F
                        OS Device Name: /dev/rdsk/c6t0d0s2
                      LUN: 1
                        Vendor: SUN
                        Product: LCSM100_F
                        OS Device Name: /dev/rdsk/c6t0d1s2
                      LUN: 2
                        Vendor: SUN
                        Product: LCSM100_F
                        OS Device Name: /dev/rdsk/c6t0d2s2
                      LUN: 3
                        Vendor: SUN
                        Product: LCSM100_F
                        OS Device Name: /dev/rdsk/c6t0d3s

              The above output shows that each HBA has four disk attached
              1 HBA : 200700a0b832f4bd : c1t4do-d3
              2 HBA : 203400a0b83892c4:  c7t1d0-d3
              3 HBA :200600a0b832f4bd: c2t1d0-d3
              4 HBA: 202400a0b83892c4:  c6t0d0-d3

              On the storage side:
              There are two arrays:
              One is 6140 with 1.7 terabytes of storage with a total of 13 disk each of 136 GB . It has two controllers
              6140 is divided into four volumes of 442GB each. Two volumes are connected to controller A and two are connected to controller B.
              Each controller has 2 ports. However, the link of only port per controller is up
              The wwn of the port that is up on Controller A (A/1) is
              20:06:00:A0:B8:32:F4:BD
              The wwn of the port that is up on controller B (B/1)is
              20:07:00:A0:B8:32:F4:BD

              The second storage is 2540 with 1.6 TB of storage with a total of 12 SAS disk each of 136 GB. It consist of single controller.The link of both ports on the controller are active.
              The WWN of the first port of the controller (A/1) is
              20:24:00:A0:B8:38:92:C4
              the WWN of the second port of the controller (A/2) is oth the
              20:34:00:A0:B8:38:92:C4
              2540 consist of 4 volumes each of 408 GB

              Combining info about storage and HBA info on server side.
              c1t4 disk and c2t1 disks are from 6140.
              c7t1 and c6t0 are disks from 2150. These two disk are from single controller and are identical.