On Tue, Sep 11, 2007 at 08:16:02AM +0100, Robert Milkowski wrote:
> Are you overwriting old data? I hope you're not...

I am, I overwrite parity, this is the whole point. That's why ZFS
designers used RAIDZ instead of RAID5, I think.

> I don't think you should suffer from above problem in ZFS due to COW.

I do, because autonomous blocks share the same parity block.

> If you are not overwriting and you're just writing to new locations
> from the pool perspective those changes (both new data block and
> checksum block) won't be active until they are both flushed and uber
> block is updated... right?

Assume 128kB stripe size in RAID5. You have three disks: A, B and C.
ZFS writes 128kB at offset 0. This makes RAID5 to write data into disk A
and parity into disk C (both at offset 0). Then, ZFS writes 128kB at
offset 128kB. RAID5 writes data into disk B (at offset 0) and updates
parity on disk C (also at offset 0).

As you can see, two independent ZFS blocks share one parity block.
COW won't help you here, you would need to be sure that each ZFS
transaction goes to a different (and free) RAID5 row.

This is I belive the main reason why poor RAID5 wasn't used in the first
place.

-- 
Pawel Jakub Dawidek                       http://www.wheel.pl
[EMAIL PROTECTED]                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

Attachment: pgpVx1begmkQi.pgp
Description: PGP signature

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to