Operating System - HP-UX
1833323 Members
3190 Online
110051 Solutions
New Discussion

Host Based Mirroring Between 2 Storage Arrays

 
Shaun See
Occasional Contributor

Host Based Mirroring Between 2 Storage Arrays

Hi all...

At our site we have an application that is uptime critical and very sensitive to any stopages in I/O. Currently our storage is on an EMC 8730 that is shared with several other application and although performance is not an issue we have problems with the EMC performing I/O busy commands that block I/O for certain admin functions. (e.g. SDR, TimeFinder splits and establishes, micro-code upgrades, etc.) Everytime the EMC issues one of these I/O busys we get anywhere from a few hundred to a few thousand millisecond I/O freeze and this causes transactions within the application to timeout.

To try and avoid these I/O busy problems, and to provide higher fault tolerance, EMC has presented a solution where we migrate the application to a CX600 for it's primary storage, maintain a copy on a symmetrix and use Mirror/UX to keep them in sync. In addition to providing higher fault tolerance this would also provide us the ability to BCV off a copy (on the symmetric) periodically throughout the day to SRDF over to our DRP site.

At first glance their solution seems to have some merit however??? Having mostly worked with HW mirroring solutions (other than vg00) I'm unaware of all of the potential gotcha's in architecting a solution like this? A few questions that pop into mind are:

Is there some recommended reading I should get my hands on so I can answer the rest of these questions myself? :)

Read performance? Are reads going to both mirrors simultaneously?

Write performance? Are writes going to both mirrors simultaneously? Does the OS wait for both to respond and is this tuneable?

In the event of failure on one side of the mirror is there a timeout prior to reading and writing to the other side?

If we split a mirror does the entire mirror have to be rebuilt or is there a snapshot capability.

I know this is a pretty open ended topic but I would appreciate any/all feedback/help on this.

Thanx,

Shaun
Democracy is the theory the common man knows what he wants, and deserves to get it good and hard!
4 REPLIES 4
Steven E. Protter
Exalted Contributor

Re: Host Based Mirroring Between 2 Storage Arrays

I've been using Mirror/UX in a way similar to the EMC recommendation for years.

Mirror/UX is a rock solid, well tested piece of software.

It provides great performance and flexibility. I use it for Raid 10 type mirroring on a few servers.

It seems in testing to provide better performance and reliability than hardware based Raid 10 mirroring on our disk array.

As some say, that's my 2 cents.

Want specifics, ask.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
Geoff Wild
Honored Contributor

Re: Host Based Mirroring Between 2 Storage Arrays

Seeing how this is "open ended..."

I think the best solution would be:

dd the the drives to tape....have an operator put the tape on another server attached to the 2nd frame...then dd the tape to disk....

:0
Proverbs 3:5,6 Trust in the Lord with all your heart and lean not on your own understanding; in all your ways acknowledge him, and he will make all your paths straight.
James R. Ferguson
Acclaimed Contributor

Re: Host Based Mirroring Between 2 Storage Arrays

Hi Shaun:

The mirror scheduling policy (parallel or sequential) is going to have a large affect on performance. Generally, parallel writes are preferred since data is transferred simultaneously to all mirror copies. Sequential scheduling means that the mirror copies are written one-by-one, the next write only beginning after the previous one completes. The use of the sequential policy provides for slightly higher data integrity than for the parallel policy.

For reads, the parallel schedule allows distribution of reads accross the mirrors. Sequential scheduling always selects the first mirror for reading.

The mirror scheduling policy is selected by 'lvcreate -d p|s' and can be changed with 'lvchange -d p|s'. The parallel policy is the default.

When a mirror copy is 'lvsplit', a bitmap is created which keeps track of all writes to the mirror pairs. When the 'lvmerge' is issued, this bitmap is used to determine which logical extents require resynchronization, thereby speeding this process over a total resynchronization of all extents.

Regards!

...JRF...
Shaun See
Occasional Contributor

Re: Host Based Mirroring Between 2 Storage Arrays

James, the information about scheduling is excellent. It sure sounds like parallel is the way we want to go since both sides of the mirror will be HW mirror copies in their own right.

If I read this correctly, using parallel would protect us from large timeouts on both write and read activity in the event of short or long interuptions to one of the storage arrays?

A question about parallel reads? Are all I/O's sent to all mirrors and the fastest response wins or is there some sort of load balancing happening?

This is something we're planning to test but it's always nice to set expectations??? :>)

Lastly, any suggestions on some "light" reading on this topic?

Thanx,

Shaun
Democracy is the theory the common man knows what he wants, and deserves to get it good and hard!