Subject: Re: NetBSD iSCSI HOWTOs
To: Miles Nordin <carton@Ivy.NET>
From: Rhialto <rhialto@falu.nl>
List: current-users
Date: 03/06/2006 02:24:01
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). Vinum's
RAID does something like that (from vinum(8)):

     It appears that some hardware RAID systems have problems with large
     stripes: they appear to always transfer a complete stripe to or from
     disk, so that a large stripe size will have an adverse effect on perfor-
     mance.  The vinum utility does not suffer from this problem: it optimizes
     all disk transfers and does not transfer unneeded data.

-Olaf.
-- 
___ Olaf 'Rhialto' Seibert      -- You author it, and I'll reader it.
\X/ rhialto/at/xs4all.nl        -- Cetero censeo "authored" delendum esse.