On Dec 30, 2009, at 9:35 AM, Bob Friesenhahn wrote:
On Tue, 29 Dec 2009, Ross Walker wrote:
Some important points to consider are that every write to a raidz
vdev must be synchronous. In other words, the write needs to
complete on all the drives in the stripe before the write may
return as complete. This is also true of "RAID 1" (mirrors) which
specifies that the drives are perfect duplicates of each other.
I believe mirrored vdevs can do this in parallel though, while
raidz vdevs need to do this serially due to the ordered nature of
the transaction which makes the sync writes faster on the mirrors.
I don't think that the raidz needs to write the stripe serially, but
it does need to ensure that the data is committed to the drives
before considering the write to be completed. This is due to the
nature of the RAID5 stripe, which needs to be completely written.
It seems that mirrors are more sloppy in that writing and committing
to one mirror is enough.
Yes, though I wouldn't call it "sloppy" ;-)
With traditional software RAID, you have to make sure both sides of
the mirror
are written because you also assume that you can later read either
side. For
ZFS, if only one side of the mirror is written, you know the bad side
is bad
because of the checksum. The checksum is owned by the parent, which is
an important design decision that applies here, too.
Methinks it might be a good idea to start a comparison wiki to share
some
of the details...
-- richard
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss