Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Jul 1997 22:46:11 -0700 (PDT)
From:      Simon Shapiro <Shimon@i-Connect.Net>
To:        Tom Samplonius <tom@sdf.com>
Cc:        FreeBSD-Hackers@FreeBSD.ORG
Subject:   Re: Make World Explodes
Message-ID:  <XFMail.970710224611.Shimon@i-Connect.Net>
In-Reply-To: <Pine.BSF.3.95q.970710214458.25974K-100000@misery.sdf.com>

next in thread | previous in thread | raw e-mail | index | archive | help

Hi Tom Samplonius;  On 11-Jul-97 you wrote: 

...

>  /usr/sup database said they were up to date.
> Crashes during a cvsup can cause this problem.

Here, it is actually /usr/local/etc/cvsup.  I thought you were thinking
about
the archive itself.

> > reading and writing to disk.  Performance with RAID-5 is a constant
> > 8.9MB/Sec writing/reading mix.  RAID-0 is closer to 18-20MB/Sec.
> 
>   8.9MB/s for RAID-5?  Is this is a controller limitation or a drive
> limitation?  Could the controller do better with faster drives, or more
> channels and drives to spread io over?

This is really an algorithm limitation.  there are two methods for upating
the ``parity'' in a WRITE.  One involved reading from evry drive, XORing
with
the data and writing the data and the XOR back out.  this gets progressively
worse with size.  The better way is to read the old data, XOR with the new,
take this bitmask, XOR it with the old parity and write the new result.
It still takes a read-XOR-write-compute-read-XOR-write per write operation.
Since it involves (exactly) two drives, it is only so fast.

This is the cost of trying to beat the cost associated with RAID-1 and
obtain
READ performance in the process.

The solution is to take a group of RAID-5 arrays, treating each as a single
``disk'' and build a RAID-0 array form these.  You can do it easily with
CCD.

IMPORTANT:  (I am, again, inviting an argument here, plus ``my system is
better
that your junk'' comments :-)  put as many busses on the DPT as you can (3
is
a good number (the maximum too ;-)  Then put as few disks on each bus as 
possible (I say 4-6 with wide-ultra, and doing file system stuff).

Let us say you have three busses and 10 disks:

Bus 0:  0, 1, 2, 3
Bus 1:  0, 1, 2, 3
Bus 2:  0, 1, 2, 3, 4

If we call Tarket zer on bus 0 0-0 and disk 4 on bus 2 2-4, specify the rais
array to dptmgr, in EXACTLY this order:

0-0 1-0 2-0 0-1 1-1 2-1 0-2 1-2 2-2 0-3 1-3 2-3

Designate 2-4 as a Hot Spare.  If the drives are 4GB, you will have a 36GB
``disk'' on 0-0 and 2-4 will be invisible to the O/S.

Remember!  If an array element (say 1-3) fails, 2-4 will not only go into
service, but will actually BECOME 1-3 (if in a StorageWorks/DPT cabinet).

Now go partition this and see, that for normal Unix installation you have a 
strange limit:  How many partitions does disklabel allow you to have per
drive?

The rest of this should move to -SCSI ML?

Simon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.970710224611.Shimon>