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

Reply via email to