Subject: Re: NetBSD iSCSI HOWTOs
To: Rhialto <rhialto@falu.nl>
From: Daniel Carosone <dan@geek.com.au>
List: current-users
Date: 03/06/2006 13:12:42
--0uCeA/GhJk5vQd80
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.
>=20
> 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.

--
Dan.
--0uCeA/GhJk5vQd80
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (NetBSD)

iD8DBQFEC5qaEAVxvV4N66cRAreLAKDV6BEJk9lVL2WeGpyCoJs1UYtMBACgxAPM
Zr9ASnozNulOob7pl3W/D7I=
=+0iE
-----END PGP SIGNATURE-----

--0uCeA/GhJk5vQd80--