Zoning the Supermicro 946ED-R2KJBOD

From Define Wiki
Jump to navigation Jump to search

Prerequisites

  • Install "openSUSE 12.1"
linux-2l59:~ # cat /etc/SuSE-release
openSUSE 12.1 (x86_64)
VERSION = 12.1
CODENAME = Asparagus
  • Use YaST to configure the firewall to allow any SSH connection.
  • Ensure GlibC version is 2.14.x
linux-2l59:~ # /lib/libc.so.6 | grep release
GNU C Library stable release version 2.14.1 (20111007), by Roland McGrath et al.
  • Replace currently installed lsscsi
linux-2l59:~ # zypper remove lsscsi
linux-2l59:~ # wget http://sg.danny.cz/scsi/lsscsi-0.28-1.x86_64.rpm
linux-2l59:~ # rpm -Uvh lsscsi-0.28-1.x86_64.rpm
  • Download and install SG3_Utils and SMP_Utils.
linux-2l59:~ # wget http://sg.danny.cz/sg/p/sg3_utils-libs-1.41-1.x86_64.rpm; rpm -Uvh sg3_utils-libs-1.41-1.x86_64.rpm
linux-2l59:~ # wget http://sg.danny.cz/sg/p/sg3_utils-1.41-1.x86_64.rpm; rpm -Uvh sg3_utils-1.41-1.x86_64.rpm
linux-2l59:~ # wget http://sg.danny.cz/sg/p/smp_utils-libs-0.98-1.x86_64.rpm; rpm -Uvh smp_utils-libs-0.98-1.x86_64.rpm
linux-2l59:~ # wget http://sg.danny.cz/sg/p/smp_utils-0.98-1.x86_64.rpm; rpm -Uvh smp_utils-0.98-1.x86_64.rpm
  • The system must have either a HBA or RAID card, this does not have to be SAS3, SAS2 will work with SFF8088 to SFF8644 cables
  • The system must be connected to both expanders on the JBOD.
  • Download "Hello.946" and "FlexZoneUtil" from the headnode. LOCATION TO BE ADDED SOON

Example Zone Configuration File

  • A file 2Zone.txt will come with the "FlexZoneUtil" modify this to represent the desired zoning configuration on the JBOD
  • One configuration file only is required, this is then applied separately to each of the JBOD expanders.
  • Realistically you can mix and match zone configurations on each expander, however I can't think where this would be appropiate.
  • Important! You can configure upto 4 zones only on a single JBOD.

[UPTOHBA] - defines what port is assigned to what zone, the number represents the Ports on a single expander of the JBOD from Left to Right looking at the rear of the chassis and the letter the zone which you are assigning it to. The example below assigns ports 1 & 3 to Zone A and ports 2 & 4 to Zone B

[BAYSETTING] - defines what drive is assigned to what zone, this must correspond to a zone specified in the UPTOHBA else the drive will be undetectable. Bays can be assigned to multiple zones, this must be capital letter separated with a "," e.g. 00=A,B If left unconfigured the Bay will be assigned to all zones.

#It's an example for SMC Flex-Zoning Tool
#The Zoning Utility will not process the line which was leading with '#'
#
#Please don't change anything in '[]' region beside the values after '='
#
#[UPTOHBA] region is a place to define how many zones for SC946. What the cable and zone relation is.
#
#    ------DB-9----------I-----II-----III-----IV-----
#
#  Ex. If you want to assign cable I and II connect to the same zone we call "A",
#      III to zone "B", and IV to zone "C".
#  Input 1=A
#        2=A
#        3=B
#        4=C
#  SC946 supports max 4 zones.
#  This example will config SC946 as below:
#  75~89 D
#  60~74 C
#  45~59 B
#  30~44 A
#  15~29 ABCD
#  00~14 ABCD
#
#
[UPTOHBA]
1=A
2=B
3=A
4=B

#[BAYSETTING] region is a place to define which zone will be grouped to the specific bay(HDD or SSD)
# EX. Assign HDD00 to A,B,C, HDD02 to B,C and HDD24 to C
# 00=A,B,C
# 02=B,C
# 24=C
# If the bay is not mentioned in this region, it will be set to A,B,C,D all zones for default.

[BAYSETTING]
00=A
01=A
02=A
.
.
.
88=B
89=B

Configure Zoning

  • Ensure everything is working correctly by using Hello.946
  • This will report back drive information, is this is correct then proceed with the zoning.
linux-2l59:~ # ./Hello.946 -m
  • To zone the JBOD you need to run the FlexZoneUtil with the 2Zone.txt as an argument.
linux-2l59:~ # ./FlexZoneUtil 2Zones.txt
------------------
------------------
------------------
------------------
------------------
------------------
Supermicro SC946 JBOD funded.
[UPTOHBA]
[BAYSETTING]
The SC946 JBOD main expander(s) founded as below:
The digit before last '3' means Primary side or Secondary side.
Even number is primary and Odd number is secondary.

0x500304800920563       /dev/sg107      /sys/class/sas_device/expander-7:3
0x500304800920573       /dev/sg14       /sys/class/sas_device/expander-7:0

Please select the JBOD which was presented by main expander you want to apply zoning:
(Please input /dev/sg*, ex /dev/sg1)

You will now see two expanders, in my case "/dev/sg107" & "/dev/sg14" - Copy and paste the full name of the expander into the command line below and hit return.

After this expect a large output while it completes its operations.

/dev/sg107
Zone Process 1/3.
Active zone manager SAS address (hex): 500605b0065e1421
response too short, len=0
Create Report for Expander
  phy   0:D:attached:[5000c50083356081:00  t(SSP)]  12 Gbps  ZG:17
  phy   1:D:attached:[5000c5008334b919:00  t(SSP)]  12 Gbps  ZG:17
  .
  .
  .
  phy  46:U:attached:[500304800920563f:47 exp t(SMP)]  12 Gbps
  phy  47:U:attached:[500304800920563f:46 exp t(SMP)]  12 Gbps
  phy  48:D:attached:[50030480092056bd:00  V i(SMP) t(SSP)]  12 Gbps
Zone Process 2/3
Active zone manager SAS address (hex): 500605b0065e1421
Zone unlock result: Busy
Create Report for Expander
  phy   0:D:attached:[5000c500842a37c1:00  t(SSP)]  12 Gbps  ZG:16
  phy   1:D:attached:[5000c500842a5989:00  t(SSP)]  12 Gbps  ZG:16
  .
  .
  .
  phy  47:U:attached:[500304800920563f:01 exp t(SMP)]  12 Gbps
  phy  48:D:attached:[500304800920567d:00  V i(SMP) t(SSP)]  12 Gbps
Zone Process 3/3
Active zone manager SAS address (hex): 500605b0065e1421
Zone unlock result: Busy
Create Report for Expander
  phy   0: inaccessible (phy vacant)
  phy   1:U:reset in progress
  .
  .
  .
  phy  47:U:reset in progress
  phy  48:D:attached:[500304800920563d:00  V i(SMP) t(SSP)]  12 Gbps
Please restart Target JBOD to enalbe zoning configuration.
  • Repeat this process for the 2nd expander, in my case this was "/dev/sg14"

DONE! - You can now power cycle the JBOD and the Zoning will have taken effect. You can test by connecting the HBA to various ports and using a tool such as "storcli64" to compare DID's between different ports, in the example above no single port should be able to see more than 45 drives.