jose_maria_gonz
Virtuoso
Virtuoso

Path Management and Manual Load Balancing for active/passive arrays

Hi there,

On the San configuration guide, on page 96, ( http://www.vmware.com/pdf/vi3_301_201_san_cfg.pdf ) ;

"Balancing loads among available paths improves performance. You can set up your system to use different paths to different LUNs by changing the preferred path for the different HBAs. This is possible only for active/active SPs,[/b] and requires that you have path policy set to Fixed. "

Please, correct me if I am wrong but could I set up two ports per storage processor (4 ports in total - four paths per LUN) on a Clariion CX series(active/passive array)[/b] and use two HBAs per host as a possible way to improves performance by "manual" load balancing to use different paths to different LUNs?

Thanking you in advance,

rgds,

J.

0 Kudos
9 Replies
wobbly1
Expert
Expert

yes this is possible. Ideally this will be two seperate fabrics and you then set the preferred path at the storage controller level rather than within ESX when setting up an active/active array

hth

jose_maria_gonz
Virtuoso
Virtuoso

Thanks a lot mate, I need a confirmation. Don't you think VMware should amend the official documentation to avoid future misunderstanding?

thanks,

rgds

J.

0 Kudos
Sorwyn
Enthusiast
Enthusiast

No because doing what's suggested there is in fact a decrease performance and increased load instead of balancing.

Let me explain:

On an Active/Active Array a LUN is able to be read/written two by either controller. Thus spreading your hosts across both controllers for that LUN will result in a load spread across active controllers and a potential improvement of performance.

On an Active/Passive Array a LUN is "owned" by only one controller at a time, which means only one controller can read/write to the LUN. The passive controller can access the LUN but only by passing the I/O across the internal backplane to the active controller. This results in an effect doubling of I/O to the array as both controllers effectively have to process the I/O.

ESX is dangerous to active/passive arrays because of this, for a normal server that may be attached to dual controllers the controller is smart enough to move the active controller to the one the normal host is accessing. For ESX because mutliple servers are hitting both active and passive at the same time it has no option but to pass the I/O across the back plane.

So don't have multiple hosts spread across controllers for the same LUN. By all means balance LUNs to active controllers, eg. LUN1 Controller 1, all hosts to controller 1 for LUN1, LUN2 Controller 2, all hosts to controller 2.

0 Kudos
BUGCHK
Commander
Commander

On an Active/Active Array a LUN is able to be read/written two by either controller.

That is only true, if you have a very expensive cache-centric mainframe box.

On most midrange arrays, that look like 'active/active', an internal storage container (logical/virtual disk, RAID-set, ...) is still owned by one controller. Unlike 'active/passive' arrays, the other controller DOES forward I/Os to the owning controller.

The 'passive' controller in an 'active/passive' array DOES NOT pass over I/Os - it responds with a NOT READY status. It does present SCSI LUNs, however, so that the failover software on the host 'knows' about redundant paths.

Sorwyn
Enthusiast
Enthusiast

On an Active/Active Array a LUN is able to be read/written two by either controller.

That is only true, if you have a very expensive

cache-centric mainframe box.

Yup, they are the only True Active/Active Arrays and that's what the document is referring to.

On most midrange arrays, that look like

'active/active', an internal storage container

(logical/virtual disk, RAID-set, ...) is still owned

by one controller. Unlike 'active/passive' arrays,

the other controller DOES forward I/Os to the owning

controller.

Yes they look active/active but are really active/passive with some smarts.

The 'passive' controller in an 'active/passive' array

DOES NOT pass over I/Os - it responds with a NOT

READY status. It does present SCSI LUNs, however, so

that the failover software on the host 'knows' about

redundant paths.

These are pretty rare these days (at least to buy new) and these are the most problematic for ESX if using fixed path balancing and can lead to "path thrashing", so if anyone has one of these stick to MRU and you'll be fine.

0 Kudos
BUGCHK
Commander
Commander

Yup, they are the only True Active/Active Arrays and that's what the document is referring to.

I have to disagree with you as I read the document differently. Let me highlight:

""You can set up your system to use different paths[/b] to different LUNs[/b] by changing the preferred path for the different HBAs. This is possible only for active/active SPs""

To me, this includes storage arrays which use proxy controller technology.

...

These are pretty rare these days

It's a 'dying species', yes, but not everybody buys a brand-new storage array for his environment Smiley Sad

0 Kudos
jose_maria_gonz
Virtuoso
Virtuoso

Thanks guys for your prompt reply and help on this.

For what I have been gathering an active/passive array is where one controller is only active and the second controller acts as a standby. I think we all agreed on that.

However my point was that even thought the Dell|EMC arrays are in essence "active/pasive" still both controllers can host LUNs and act as a failover controller for the other controller and both controllers can own different LUNs (kinda "active/active" array at the back end) allowing to do manual load balancing within ESX but please correct me if I am wrong

Thanks,

rgds

J.

0 Kudos
BUGCHK
Commander
Commander

I think we all agreed on that.

No, sorry Smiley Wink

There are two 'levels' of active/passive.

The lowest is, for example, an HP MSA1000 with A/P software is what you describe first: one controller is active and serves all logical disks. The other is 'standby' - it also presents the logical disks so that the multipath component in the operating system knows about redundant paths. In case of a failover, however, ALL logical disks are transfered for management by the second controller.

The next level is what you describe next: different 'logical disks' (EMC unfortunately does not differentiate between the internal storage container and the external representation, calls both LUNs and gives them even different numbers, if I understand that correctly....) can be owned by different controllers. One controller does the disk I/O for one container at a time. The other controller presents the paths as well, but disk I/O is not possible.

The next level is active/active, although the technical term is asymetrical A/A. The non-owning controller accepts I/O commands, but does not process them directly - it forwards them to the owning controller.

The next level is (expensive) active/active which is found in mainframe class storage arrays. Here, both controllers can process physical disk I/O.

0 Kudos
Rumple
Virtuoso
Virtuoso

On the cx series of SAN (I have both a cx500 and a cx700) the only properly supported method is to use MRU and not to use Fixed.

When I first setup my environment I thought fixed made alot of sense and grasshopper quickly provided me with the information on why not to do that.

This statement is pretty correct - Dell|EMC arrays are in essence "active/pasive" still both controllers can host LUNs and act as a failover controller for the other controller and both controllers can own different LUNs (kinda "active/active" array at the back end)

Technically you can load balance per LUN just by having every alternate LUN on a different SP but I think thats SAN load balancing not Fabric load balancing...

0 Kudos