Subject: Re: NetBSD iSCSI HOWTOs
To: Rhialto <>
From: Daniel Carosone <>
List: current-users
Date: 03/06/2006 13:12:42
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Mar 06, 2006 at 02:24:01AM +0100, Rhialto wrote:
> On Wed 01 Mar 2006 at 20:35:08 -0500, Miles Nordin wrote:
> > as I understand it, the RAID5 write hole is because RAID5 can't write
> > anything smaller than a stripe.  If you write a single sector, RAID5
> > has to read-modify-write the ~64kByte*(ndisks-1) (+- a few factors of
> > 2) stripe in which the sector resides.  For one sector, you have to
> > read all n disks, then write to one data disk and one parity disk.
> Why? Unless I misunderstood, if you modify one sector in the stripe,
> only one parity sector on the parity disk will change. So you only need
> to rewrite that single sector (even if you read one sector from each
> other disk to recalculate the parity, which you can even avoid if you
> read the old data from the one written sector and XOR a bit).

That's irrelevant.  How you implement the r/m/w cycle doesn't matter -
it still remains true that there's a window of failure between
updating sectors on more than one disk.  If you lose power, or
otherwise fail, when only one has been updated, you lose.  You need
some kind of transactional store, either via nvram hardware or via
zfs-style copy-on-write semantics.

Content-Type: application/pgp-signature
Content-Disposition: inline

Version: GnuPG v1.4.2 (NetBSD)