> With RAID-Z stripes can be of variable width meaning that, say, a
> single row
> in a 4+2 configuration might have two stripes of 1+2. In other words,
> there
> might not be enough space in the new parity device.

Wow -- I totally missed that scenario.  Excellent point.

>  I did write up the
> steps
> that would be needed to support RAID-Z expansion

Good write up.  If I understand it, the basic approach is to add the device to 
each row and leave the unusable fragments there.  New stripes will take 
advantage of the wider row but old stripes will not.

It would seem that the mythical bp_rewrite() that I see mentioned here and 
there could relocate a stripe to another set of rows without altering the 
transaction_id (or whatever it's called), critical for tracking snapshots.  I 
suspect this function would allow background defrag/coalesce (a needed feature 
IMHO) and deduplication.  With background defrag, the extra space on existing 
stripes would not immediately be usable, but would appear over time.

Many thanks for the insight and thoughts.

Bluntly, how can I help?  I have cut a lifetime of C code in a past life.

Cheers,
Marty
-- 
This message posted from opensolaris.org
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to