Data Storage - Re: RAID 0+1 vs. RAID 1+0: explanations appreciated

This is Interesting: Free IT Magazines  
Home > Archive > Data Storage > May 2004 > Re: RAID 0+1 vs. RAID 1+0: explanations appreciated





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author Re: RAID 0+1 vs. RAID 1+0: explanations appreciated
Neil Zanella

2004-05-30, 11:10 am

Faeandar <mr_castalot@yahoo.com> wrote in message

> Honestly I'm not sure why anyone would run 0+1 anymore but there may
> be reasons. Most array vendors are now 1+0 by default I think. I
> know HDS is at least.


Fine. However I still don't understand how the striping is done one
the mirroring takes place in RAID 1+0 in such a way to create a
different configuration than that produced using RAID 0+1. That
is what the original question was. I wonder whether perhaps
someone could fill in the diagram below with the
appropriate picture so as to clarify things...??

Thanks,

Neil

------------------------------------------------------------

Logical representation:

+-------------------+
| B0 B1 B2 B3 B4 B5 | Disk 0
+-------------------+

------------------------------------------------------------

Physical representation (RAID 0 AKA striping):

+----------+
| B0 B2 B4 | Disk 0
+----------+

+----------+
| B1 B3 B5 | Disk 1
+----------+

------------------------------------------------------------

Physical representation (RAID 1 AKA mirroring):

+-------------------+
| B0 B1 B2 B3 B4 B5 | Disk 0
+-------------------+

+-------------------+
| B0 B1 B2 B3 B4 B5 | Disk 1
+-------------------+

------------------------------------------------------------

Physical representation (RAID 0+1):

+----------+
| B0 B2 B4 | Disk 0
+----------+

+----------+
| B1 B3 B5 | Disk 1
+----------+

+----------+
| B0 B2 B4 | Disk 2
+----------+

+----------+
| B1 B3 B5 | Disk 3
+----------+

Loosing one drive means loosing the entire mirror.

------------------------------------------------------------

Physical representation (RAID 1+0):

Step 1: Mirror:

+-------------------+
| B0 B1 B2 B3 B4 B5 | Disk 0
+-------------------+

+-------------------+
| B0 B1 B2 B3 B4 B5 | Disk 1
+-------------------+

Step 2: Stripe???

OK, I've mirrored them. Now how do I stripe these disks
so as to produce a RAID 1+0 configuration???

Thanks,

Neil
Faeandar

2004-05-30, 11:10 am

I am pretty sure the diagram doesn't change, as I mentioned
previously. There's no difference in how the blocks are laid out,
merely where the mirroring is.

If blocks 1-10 are laid out on a stripe of 10 drives, you have each
block on the corresponding drive. ie. B1 on disk 1, B2 on disk 2,
etc.
Then that entire plex (stripe) is mirrored to another plex as a single
entity. So B1 is on disk1 and disk 1m (mirror), and so on down the
line.

In 1+0 the blocks are laid exactly the same, except that disk 1 is
mirrored first. Then each mirror is striped down the other disks.

The block layout is identical. Just consider how this affects a drive
loss though for a few minutes and it will make sense.

~F



On 14 Apr 2004 23:54:24 -0700, nzanella@cs.mun.ca (Neil Zanella)
wrote:

>Faeandar <mr_castalot@yahoo.com> wrote in message
>
>
>Fine. However I still don't understand how the striping is done one
>the mirroring takes place in RAID 1+0 in such a way to create a
>different configuration than that produced using RAID 0+1. That
>is what the original question was. I wonder whether perhaps
>someone could fill in the diagram below with the
>appropriate picture so as to clarify things...??
>
>Thanks,
>
>Neil
>
>------------------------------------------------------------
>
>Logical representation:
>
>+-------------------+
>| B0 B1 B2 B3 B4 B5 | Disk 0
>+-------------------+
>
>------------------------------------------------------------
>
>Physical representation (RAID 0 AKA striping):
>
>+----------+
>| B0 B2 B4 | Disk 0
>+----------+
>
>+----------+
>| B1 B3 B5 | Disk 1
>+----------+
>
>------------------------------------------------------------
>
>Physical representation (RAID 1 AKA mirroring):
>
>+-------------------+
>| B0 B1 B2 B3 B4 B5 | Disk 0
>+-------------------+
>
>+-------------------+
>| B0 B1 B2 B3 B4 B5 | Disk 1
>+-------------------+
>
>------------------------------------------------------------
>
>Physical representation (RAID 0+1):
>
>+----------+
>| B0 B2 B4 | Disk 0
>+----------+
>
>+----------+
>| B1 B3 B5 | Disk 1
>+----------+
>
>+----------+
>| B0 B2 B4 | Disk 2
>+----------+
>
>+----------+
>| B1 B3 B5 | Disk 3
>+----------+
>
>Loosing one drive means loosing the entire mirror.
>
>------------------------------------------------------------
>
>Physical representation (RAID 1+0):
>
>Step 1: Mirror:
>
>+-------------------+
>| B0 B1 B2 B3 B4 B5 | Disk 0
>+-------------------+
>
>+-------------------+
>| B0 B1 B2 B3 B4 B5 | Disk 1
>+-------------------+
>
>Step 2: Stripe???
>
>OK, I've mirrored them. Now how do I stripe these disks
>so as to produce a RAID 1+0 configuration???
>
>Thanks,
>
>Neil


Malcolm Weir

2004-05-30, 11:10 am

On 14 Apr 2004 23:54:24 -0700, nzanella@cs.mun.ca (Neil Zanella)
wrote:

>Faeandar <mr_castalot@yahoo.com> wrote in message
>
>
>Fine. However I still don't understand how the striping is done one
>the mirroring takes place in RAID 1+0 in such a way to create a
>different configuration than that produced using RAID 0+1. That
>is what the original question was. I wonder whether perhaps
>someone could fill in the diagram below with the
>appropriate picture so as to clarify things...??


Neil,

I think you've missed an important point: terms like "RAID 0+1", "RAID
1+0", "RAID 10" are all marketing terms to describe _implementation_,
rather than _topology_, details.

If you refer back to the original Patterson, Gibson, and Katz paper
that coined the term "RAID" and the levels, you'll see that they are
only addressing ways of handling the performance / reliability
tradeoff ("performance" here includes considerations of usable
capacity as a lesser issue).

So, for example, no distinction is made between striping and
concatenation, which is a valid stance to take because if one's
application accesses all the available storage randomly, there *is* no
distinction between the two! They are both forms of "RAID-0":
concatenation is striping under the special case where the stripe unit
happens to equal to the size of a single disk...

[ There *is* a distinction made between topologies where a single
minimal IO operation involves all the disks (e.g. RAID-3) and where it
doesn't (RAID-4). But beyond that, the size of IO, stripe size, etc.
are irrelevant. ]

So to get back to your initial question, the reason why you can't see
a configuration distinction between RAID 0+1 and RAID 1+0 is that
there is no distinction: they are both RAID 1 implementations.

However, for ease of operation and implementation, most designs use a
hierarchical scheme where a group of disks are combined in some
fashion and then presented to the outside world as a single, disk-like
entity. Several of those disk-like entities, being disk-like, can in
turn be combined in some fashion to create another single entity, etc.
This type of scheme has some significant advantages (not least of
which is the ability to, say, combine two small physical disks to
create a single thing which can be mirrored with a large physical
disk), but it also has some disadvantages, such as the complexity of
handling the consequences of a disk failure.

Perhaps an example of a (strange) configuration might help:

Suppose you have 10 physical disks, 5 of which are 10GB, 5 of which
are 20GB. Most implementations would limit you to either just
combining like drives (creating two R5 sets, one 40GB, one 80GB, total
120GB), or wasting half the space of the larger drives (creating one
R5 set, total 90GB).

But there's no reason why you shouldn't design a system capable of
creating a *single* RAID-5 set of all 10 disks, such that the first
90GB of usable storage was spread across all 10 drives, and the next
40GB across just the 5 larger (for a total of 130GB). All this would
require is that the R5 code understands that not all the disks were
the same size, which is not rocket science... but also it's likely not
worth the effort and support headache!

[ Actually, that's a poor example, since you could achieve the same
result by using logical partitions on the disks, and using those
instead of the physical disk, and then creating two R5 sets and
concatenating them. But the same concept would apply if you had one
10GB, one 20GB, one 30GB, and one 40GB disk. You could create a R5
set that had 30GB+20GB+10GB=60GB protected (leaving 10GB wasted or
unprotected). Note I'm not suggesting you *should* do that, or even
that any sane R5 implementation would tolerate it, merely that
architecturally its possible, and occasionally it may even be
worthwhile! ]

>Neil


Malc.
jlsue

2004-05-30, 11:10 am

On 14 Apr 2004 23:54:24 -0700, nzanella@cs.mun.ca (Neil Zanella) wrote:

>Faeandar <mr_castalot@yahoo.com> wrote in message
>
>
>Fine. However I still don't understand how the striping is done one
>the mirroring takes place in RAID 1+0 in such a way to create a
>different configuration than that produced using RAID 0+1. That
>is what the original question was. I wonder whether perhaps
>someone could fill in the diagram below with the
>appropriate picture so as to clarify things...??
>


Example, use 4 250 GB drives....

RAID 0 the drives into two sets of two disks each. And then mirror them
into one mirrored stripeset.

Stripe drives 1 and 2 = Stripe 1 = 500 GB
Stripe drives 3 and 4 = Stripe 2 = 500 GB
Mirror Stripe 1 and Stripe 2 = 500 GB.


I would definitely recommend AGAINST doing it this way as a general rule.
If you lose one drive in either stripeset, you've lost 1/2 of your mirror
and now you're at risk until you replace & rebuild. Note too that you've
got to rebuild the entire 500GB as a mirror before you're covered again.

Typically we recommend striping the mirrors, not mirring the stripsets.

This would make the configuration be::
Mirror drives 1 and 2 = Mirror 1 = 250 GB
Mirror drives 3 and 4 = Mirror 2 = 250 GB
Stripe Mirror 1 and Mirror 2 = 500 GB.

Note that the usable capacity stays the same. However, if I lose drive 1,
only Mirror 1 is directly affected. A second failure before I can replace
the drive wouldn't happen to the same mirror set (most likely). Losing 1
drive from Mirror 2, and I'd still be able to run with the Stripe intact.

Not too that by losing one drive, replacing and building only has to mirror
250GB of data before I'm covered in that mirrorset again.

In this case of only 4 drives, it's not as apparently significant, but in
cases where there are 3 or more pairs there's a huge difference.

For example:
Stripe drives 1 and 2 and 3 = Stripe 1 = 750 GB
Stripe drives 4 and 5 and 6 = Stripe 2 = 750 GB
Mirror Stripe 1 and Stripe 2 = 750 GB.

No problem. However, now, lose one drive in stripe 1, oops, you're down to
only one "stripeset" in your mirror set - you've lost all of your
redundancy (i.e., the entire Stripe n goes out) and your window of
opportunity for multiple drive failures taking out your data is greater.
As your total number of drive in the RAID-1+0 set grows, the likelihood of
multiple simultaneous drive failures increases.

Also, when you replace a drive you've go to copy the entire 750GB of data
to get covered by your mirror again.

Now, instead implement it like the 2-drive solution I outlined above:

Mirror drives 1 and 2 = Mirror 1 = 250 GB
Mirror drives 3 and 4 = Mirror 2 = 250 GB
Mirror drives 5 and 6 = Mirror 3 = 250 GB
Stripe Mirror 1 and Mirror 2 and Mirror 3 = 750 GB.

Notice that the loss of a single drive only takes out 50% of one specific
mirror set. Sure, you can have a second drive failure, however the
likelihood that it would be from the same mirror set as the first failure
is much lower. Thus you can actually sustain multiple drive outages
without loss of data and downtime.

And again, the most you've got to copy in a rebuild of a mirror set is
250GB.

As the number of drives grows, this becomes a much more effective
configuration for reliability and, as it turns out, performance.
--- jls
The preceding message was personal opinion only.
I do not speak in any authorized capacity for anyone,
and certainly not my employer.
(get rid of the xxxz in my address to e-mail)
Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com