Friday 22 March 2013

Scsi-Initiator-ID

Why Change scsi-initiator-id
============================ 

Shared storage in clusters uses the Multi-Initiator capability of the SCSI
specification.  PCI systems use PCI host adapter cards for the SCSI interface.
Otherwise, the operation is the same as in SBus systems.  The scsi-initiator-id
must be changed because you cannot have two controllers (or SCSI devices) with
the same SCSI ID on the same SCSI chain.  This is true for all shared storage.

However, the scsi-initiator-id of controllers that link private storage should
be returned to 7 or it will conflict with the SCSI ID 6 of the CD-ROM.  Also,
for 6-slot MultiPacks you must change the SCSI IDs to the 9-14 range.  Use the
switch on the back of the MultiPack to change this.

The normal documented procedure for setting up dual-hosted MultiPacks is to set
the scsi-initiator-id for one node to 6 and then reset specific SCSI adapters 
(the ones that are not attached to the dual-hosted disks) to 7.  The 
scsi-initiator-id for the other node attached to the disk must be left at the
default setting (7). This approach may be somewhat ERROR-PRONE because you can
get SCSI errors if you do not reset ALL of the adapters that are NOT attached to
the dual-hosted disks to 7.

A method that works well is to leave the scsi-initiator-id for both nodes at 7.
Then, set the scsi-initiator-id for ONLY the adapters that are connected to the
dual-hosted disk to 6 on one of the nodes (normally the second node). 

Which scsi-initiator-id to Change and What to Set It To
=======================================================

Leave the scsi-initiator-id of one node set to the default (7) and change the
scsi-initiator-id to 6 for the other node. Do NOT change jumper settings on
any SCSI device (CD-ROM).

CAUTION:  Do NOT change the scsi-initiator-id to 8 because it WILL cause a
conflict with some other storage devices (D1000).

When to Change scsi-initiator-id
================================

You must change the scsi-initiator-id BEFORE connecting the shared storage.
If the storage has already been connected, disconnect it first.

How to Change the scsi-initiator-id
===================================

Only change the scsi-initiator-id on one node in the chain of the dual-hosted
SCSI device. At the ok (OBP) prompt, use the probe-scsi-all command to
identify the controllers connected to shared storage and those connected to
private storage. You have to first set auto-boot to false then reset-all before
the probe-scsi-all command will work. Depending on your configuration, there are
two methods of doing this.


NOTE:  Use Method 1 if your system is an E450.


First, identify the SCSI adapters by entering the following from the boot PROM:


      ok  setenv auto-boot? false
      ok  reset-all
      ok  probe-scsi-all
      /pci@6,4000/scsi@3,
      /pci@6,4000/scsi@3
      Target 2
          Unit 0        Disk    SEAGATE ST32171W SUN2.1G7462
      Target 3
          Unit 0        Disk    SEAGATE ST32171W SUN2.1G7462
        
      /pci@6,4000/scsi@2,1
      Target 2
          Unit 0        Disk    SEAGATE ST32171W SUN2.1G7462
      Target 3
          Unit 0        Disk    SEAGATE ST32171W SUN2.1G7462


Method 1
========

If more controllers are connected to the private storage than controllers
connected to shared storage, more scsi-initiator-id 7s than scsi-initiator-id 6s,
or more private storage controllers than shared storage controllers:

NOTE:  Steps 1 through 5 should be done on one of the nodes attached to the disk.
       Step 6 needs to be done on both nodes (assuming you are not using Ultra SCSI).

1.  Edit or create the nvramrc to set the scsi-initiator-id to 6 for these devices.
    From the OBP enter:
    
      ok  nvedit
      0:  probe-all install-console banner
      1:  cd /pci@6,4000/scsi@3
      2:  6 " scsi-initiator-id" integer-property
      3:  device-end
      4:  cd /pci@6,4000/scsi@2,1
      5:  6 " scsi-initiator-id" integer-property
      6:  device-end
      7:  banner (Control C)
      
2.  Do a ctrl-c, and store the nvramrc:

      ok  nvstore
      
3.  Set the system to use the nvramrc and reset auto-boot:

      ok  setenv use-nvramrc? true
      ok  setenv auto-boot? true
      
4.  Do a reset:

      ok  reset-all

5.  Edit the /etc/system file (on both nodes) and add the following line to set
    fast/wide SCSI (disable Ultra SCSI):
    
      set scsi_options=0x3f8
      
6.  Boot both systems and verify that you can see the multi-hosted disks from
    both nodes.
    

Method 2
========

If your system is not an E450, and there are more controllers connected to
shared storage than controller connected to private storage, more scsi-initiator-id6s
than scsi-initiator-id 7s, or more shared storage controllers than private
storage controllers, then:

1.  Set the global scsi-initiator-id to 6:

      ok  setenv scsi-initiator-id 6
      scsi-initiator-id = 6
      
2.  Edit or create the nvramrc script and set the scsi-initiator-id of the 
    controllers connected to private storage to 7.  The line numbers (0:, 1:,
    and so on) are printed by the OBP, for example:
    
CAUTION!  Insert EXACTLY one space after the double quote and before
scsi-initiator-id.

      ok  nvedit
      0:  probe-all
      1:  cd /sbus@70,0/SUNW,fas@1,8800000
      2:  7 encode-int " scsi-initiator-id" property
      3:  device-end
      4:  cd /sbus@70,0/QLGC,isp@0,10000
      5:  7 encode-int " scsi-initiator-id" property
      6:  device-end
      7:  cd /sbus@50,0/SUNW,fas@1,8800000
      8:  7 encode-int " scsi-initiator-id" property
      9:  device-end
      10:  install-console
      11:  banner (Control C)
      ok
      
In this example you have set three controller scsi-initiator-ids to 7. Your script
may be different because you will be resetting controllers that were listed by the probe-scsi-all command.

The following is an example of the internal/external controllers in an E250/E450:

      ok  setenv auto-boot? false
      ok  reset-all
      ok  probe-scsi-all
      /pci@1f,4000/scsi@3 (internal controller)
      /pci@1f,4000/pci@4/SUNW,isptwo@4 (external controller)
      /pci@1f,4000/scsi@5 (external controller)
      
3.  Store or discard the changes.

    The changes you make through the nvedit command are done on a temporary
    copy of the nvramrc script. You can continue to edit this copy without risk.
    Once you have completed your edits, save the changes. If you are not sure about
    the changes, discard them.
    
    To store the changes, enter:
    
      ok  nvstore
      ok
      
    To discard the changes, enter:
    
      ok  nvquit
      ok
      
4.  Enter the nvedit command to create and store an nvramrc script, also, reset
    auto-boot back to the default of true.

      ok  setenv use-nvramrc? true
      ok  setenv auto-boot? true
      
5.  Connect the shared storage devices and then enter:

      ok  boot -r                                            


No comments:

Post a Comment