Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Dec 1997 22:44:01 -0800 (PST)
From:      asami@cs.berkeley.edu (Satoshi Asami)
To:        curt@kcwc.com
Cc:        freebsd-scsi@freebsd.org
Subject:   Re: RAID on FreeBSD
Message-ID:  <199712130644.WAA01273@baloon.mimi.com>
In-Reply-To: <9712122255.AA09122@mail.kcwc.com> (curt@kcwc.com)

next in thread | previous in thread | raw e-mail | index | archive | help
 * From: curt@kcwc.com (Curt Welch)

 * 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.

It's not "always".  If the write is larger than the whole stripe, you
can just calculate parity in memory without reading anything.  (This
is basically what the various LFS + RAID5 combinations are trying to
leverage from -- LFS -> large writes -> few parity reads.)

Satoshi



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