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.
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.
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.
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.
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.
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.
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)