Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Dec 97 17:55:37 -0500
From:      curt@kcwc.com (Curt Welch)
To:        freebsd-scsi@FreeBSD.ORG
Subject:   Re: RAID on FreeBSD
Message-ID:  <9712122255.AA09122@mail.kcwc.com>

next in thread | raw e-mail | index | archive | help
On Fri, 12 Dec 1997, Wilko Bulte wrote:

>  > As Tom wrote...
>  > >   Well, if you are going to making one arrray of 9 drives, write
>  > > performance will bad.  If you are going to making 3 arrays of 3
>  > 

>  > Why? Calculating the parity takes the same overhead in both cases.
>  

>    To do a write, you will hae to read the data back from
>  the other drives to calculate the parity.  The more
>  drives, the more data you have to read back, and more
>  i/o you have to do to complete a write.  You want to make
>  a tradeoff between parity storage overhead and write
>  performance.

No.  To do a write, you read the parity block and the old
data block.  The new parity block is calculated by xoring
these two blocks with the new data block (or something like
that).  You then write the new data block and the new parity
block.  It's always two reads and two writes no matter how
many drives you have in the array.

But, when a drive fails, then the controller must read blocks
from all drives whenever you want to read or write a single
block that was on the failed drive.  So larger arrays can have
serious performance problems when a drive fails - and if you
need a certain level of performance to keep running this could
be important.

Curt Welch



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