Subject: Re: Creative use of Raidframe
To: Christopher Sean Hilton <chris@vindaloo.com>
From: Matthias Scheler <tron@zhadum.org.uk>
List: port-sparc64
Date: 11/22/2006 21:46:22
On Wed, Nov 22, 2006 at 01:23:04PM -0500, Christopher Sean Hilton wrote:
> I'm trying to use raidframe on an E250 to create a 36G RAID 0+1 volume
> from 4 18G disks. The configuration is as follows:
> 
>      raid0 = stripe(sd1e, sd2e)
>      raid1 = stripe(sd3e, sd4e)
>      raid2 = mirror(raid0, raid1)

That's not the best configuration. I would suggest to configure it like this:

raid0 = mirror(sd1e, sd2e)
raid1 = mirror(sd3e, sd4e)
raid2 = stripe(raid0, raid1) (you could also use ccd(4) here)

If a disk dies and gets replaced in your setup RAIDframe will rewrite
the parity of the complete RAID 1+0. In my suggested configuration
it would only rewrite the parity of one of the smaller RAID 1 volumes.

If some of the disks are on different SCSI channels I would also
recomment to use disks attached to different channels to speedup
parity rewrites.

> Is the 7 hour estimate indicative of the performance that I will get
> out of this set?

Eventually? How large are you disks? And to what SCSI channesl are they
attached at what speed? Remember that the E250 only supports Ultra-Wide SCSI
(at most 40MB/Sec). So even if you have two really fast disks on a single
SCSI channel the parity rewrite performance will be at most 20MB/Sec,
probably less.

> I'm assuming that all that really needs to happen is
> that the contents of raid0 needs to be copied onto raid1

Yes.

> Has anyone done this kind of thing before? I'd like to share
> experience if that's possible? 

Parity rewrite performance depends mostly on the speed of the disks and
on the bandwidth to the disks. A Pentium 4@2GHz system with two 111GB
IDE UDMA/100 disks on different channels can rewrite parity in less
than two hours even if the RAID 1 is in use.

>> P.S. In writing this letter I realized that one better way to do this
> may be to setup:
> 
>      raid0 = mirror(sd1e, sd2e)
>      raid1 = mirror(sd3e, sd4e)
>      raid2 = stripe(raid0, raid1)

Oh, you figured that part out yourself. :-)

	Kind regards

-- 
Matthias Scheler                                  http://zhadum.org.uk/