Peter's Solaris Zone

StorEdge 3510 basic configuration

The Sun StorEdge 3510 array is a Fibre-Channel storage array. While there are other variants, I'm going to talk about the model with 2 redundant raid controllers. And I'm going to attach it to a single host, with two fiber connections for redundancy.

Sun's documentation is voluminous. Part of the problem is that the 3510 comes in several variants, and the 3511 array is covered as well. Then you can add expansion trays. and there are a variety of host connectivity scenarios. This means that you have to wade through a lot of almost duplicate material, with the danger of missing the key points.

Once you've got the array configured, check my mpxio quickstart on how to make the host use the redundant paths.

Physical Connectivity

With 2 controllers, you want to attach it to 2 ports on the host. Preferably 2 separate HBAs, in fact. (Especially on a V880 or V890 where you can hotswap the HBAs.) So I'm going to assume you've got 2 ports on the host to connect to.

The standard setup seems to be to attach the first host to port 0 (the one on the extreme left) on the upper controller, and port 5 (the one on the extreme right) on the lower controller. You might have to swap the SFP gbics around to allow this.

If you power on the array, and then do a reconfiguration reboot (or better, devfsadm -c disk) on the host, you should be able to see the array with format. At this point, you'll probably be able to see just one LUN, on one of the controllers. There are LUNs created just to get you started - these are needed so that the host sees some disks and can thus establish a connection to the array.

Software Installation

While you can attach a terminal to the serial port of the array, you can also use in-band management tools - sccli. You need to download this first, of course, and then install on the host.

(I haven't found a really good link. If you go to Sun's download site and go to the A-Z tab, then look under S for "Sun StorEdge [tm] 3000 Family Storage Products--Related Software" or some such. This is what you'll need for any of the 3000 series arrays, scsi or fibre.)

After installing the software, running sccli should connect you to the array.

Apply Updates

Before you go any further, it's a good idea to make sure that everything is up to date. In particular, you'll want to have current firmware on both the HBAs in your server and on the 3510 itself. So this is a good time to go over to sunsolve and get the appropriate patches.

The patches explain the procedure pretty well. For HBAs, use luxadm fcode_download; for the array you use sccli to download the firmware.

Updating disk drive firmware is a little more complex. To do this, you'll need to configure the network on the array.

Channels

OK, so it's connected up and you've got the latest software/firmware and the like. How do we get the redundancy and failover we need? The key is to set up the channels and maps correctly.

On a vanilla 3510, the channel map looks like:

sccli> show channels
Ch  Type    Media   Speed   Width  PID / SID
--------------------------------------------
 0  Host    FC(L)   2G      Serial  40 / N/A
 1  Host    FC(L)   N/A     Serial  N/A / 42
 2  Drive   FC(L)   2G      Serial  14 / 15
 3  Drive   FC(L)   2G      Serial  14 / 15
 4  Host    FC(L)   2G      Serial  44 / N/A
 5  Host    FC(L)   N/A     Serial  N/A / 46
 6  Host    LAN     N/A     Serial  N/A / N/A

What does this mean? It means that channel 0 is exposed as id 40 on the primary (upper) controller, and that channel 1 is exposed as id 46 on the secondary (lower) controller.

In order for access to data via both paths, you need to expose the channels you're using on both controllers. So, the idea is to add 41 as a SID on channel 0 and 47 as a PID on channel 5:

configure channel 0 sid 41
configure channel 5 pid 47

And then the channel map looks like:

sccli> show channels
Ch  Type    Media   Speed   Width  PID / SID
--------------------------------------------
 0  Host    FC(L)   2G      Serial  40 / 41
 1  Host    FC(L)   N/A     Serial  N/A / 42
 2  Drive   FC(L)   2G      Serial  14 / 15
 3  Drive   FC(L)   2G      Serial  14 / 15
 4  Host    FC(L)   2G      Serial  44 / N/A
 5  Host    FC(L)   2G      Serial  47 / 46
 6  Host    LAN     N/A     Serial  N/A / N/A

OK, that's step one - if we associate a drive to a channel, you can get at it via both controllers.

A small clarification is in order here. Remember that we've connected the host to port 0 on one controller and port 5 on the other controller. All we've really done here is configure it so that we can see both controllers down each cable.

Mapping devices

To make a logical drive (or partition, or volume) visible, you need to map it to a particular channel.

A logical drive is owned by a particular controller. It will be assigned to either the primary or secondary controller. For example, if I have 3 logical drives like the following, look at the Assigned field and you see which controller owns it:

sccli> show ld
LD    LD-ID        Size  Assigned  Type   Disks Spare  Failed Status     
------------------------------------------------------------------------
ld0   298D416C  58.59GB  Primary   RAID0  2     0      0      Good  
                         Write-Policy Default          StripeSize 128KB
ld1   51908295  58.59GB  Secondary RAID0  2     0      0      Good  
                         Write-Policy Default          StripeSize 128KB
ld2   6116EBC9 130.00GB  Secondary RAID5  7     1      0      Good  
                         Write-Policy Default          StripeSize 128KB

To map, you assign a channel, target, and lun. For example:

map ld2 0.41.1
map ld2 5.46.1

That maps it to channel 0, target 41, lun 1. Note that the target and channel must match the configured channels, and you have to map it to the target that's on the correct controller. Here, ld2 is on the Secondary controller, so we have to use the SID (Secondary ID) on both channels.

You're done! Having set up mpxio on the host, it can see it over both channels. So it looks like adding it to one target on a channel makes it available via both paths, and I see double the performance as well, so it seems to be working.

Managing logical devices

To see what logical devices are present:

sccli> show ld
LD    LD-ID        Size  Assigned  Type   Disks Spare  Failed Status     
------------------------------------------------------------------------
ld0   298D416C  58.59GB  Primary   RAID0  2     0      0      Good  
                         Write-Policy Default          StripeSize 128KB
ld1   51908295  58.59GB  Secondary RAID0  2     0      0      Good  
                         Write-Policy Default          StripeSize 128KB
ld2   6116EBC9 130.00GB  Secondary RAID5  7     1      0      Good  
                         Write-Policy Default          StripeSize 128KB

To delete one of those logical devices, first unmap it:

sccli> show map
Ch Tgt LUN   ld/lv   ID-Partition  Assigned  Filter Map
---------------------------------------------------------------------
 0  40   0   ld0     38B2AF06-00   Primary   
 5  47   0   ld0     38B2AF06-00   Primary   

This gives you the partition ID, which you can use to unmap:

sccli> unmap partition 38B2AF06-00

Then you can delete the logical drive:

sccli> delete logical-drive ld0

To create a logical drive, using 5 drives to create a raid5:

sccli> create logical-drive raid5 2.0-4 primary

And then a second one, this time owned by the other controller, and adding disk 2.10 as a global hot-spare:

sccli> create logical-drive raid5 2.5-9 secondary global-spare 2.10

And remember, then you need to map the logical drives to host channels.

You can use the logical drives right away while it's initializing them. To monitor the initialization process:

sccli> show ld initializing
LD      LD-ID     Status
------------------------
ld0     026BB1F0  53% complete (online)
ld1     73DCB79D  53% complete (online)

Peter's Home | Zone Home