On Thu, Nov 05, 2009 at 11:55:58AM -0800, Ilya wrote:

> Slide 18 shows variably sizes extents but doesn't explain the process
> of full-on write. What I'm looking for is one example. I still don't
> understand how it works with variable sized extents. So if you have 2
> stripe units on one disk and 1 stripe unit for the parity and you
> modify half of the first stripe unit only, when you do a full-stripe
> write, what happens in terms of a full-stripe write?

You never modify a ZFS block (or part of a ZFS block).  You write a new
replacement block elsewhere and a new metadata tree is constructed that
references the new block and not the old one (other than via snapshots).

I'm not sure I understand your picture of "2 stripe units on one disk
and 1 stripe unit for parity".  That doesn't seem correct.  Are you
looking at a particular portion of that graphic that you could
reference? 

> I also didn't see a distinction between parity and metadata
> reconstruction. I still do not know the process behind the metadata
> reconstruction for bad data and when parity is used for bad data.

Not sure what you mean by metadata reconstruction.

The checksums stored in parent blocks can be used to validate child
blocks (either metadata or data).

If the checksum fails, and there is redundant information (copy, parity,
mirror), then the system tries to see if the data is available through
the redundant data.  It will read the other half of the mirror, or try
to read a data using a parity reconstruction.  It will then validate
that other read via the checksum.  If that checksum succeeds, you've
read the data and the system should attempt to rewrite the redundant
info (assuming it was a bad block and not a disk failure that has left
the pool in a degraded state).

If the checksum fails and there is no redundant copy, then the data is
not returned.

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

Reply via email to