Zfs: https://reviews.freebsd.org/D15124 //RaidZ expansion

Created on 20 Feb 2019  路  3Comments  路  Source: openzfs/zfs

Describe the problem you're observing

"Lack of progress" for ZFS RaidZ Expansion

I have been following the RaidZ project from Matthew Ahrens with great interest, how ever, the following pre-alpha code has been idle for the last year as far as I can tell.

Adding this issue, so that the great community for ZFSonLinux can pick up the thread and see what is possible.

Inactive Feature

Most helpful comment

additionally, the performance is questionable, with the indirection table that is generated - it'll be somewhat similar to dedup.

RAID-Z expansion doesn't use an indirection table. It only needs to keep track of how far through the vdev it is, so it can tell if a requested DVA is before or after the rewrite point, to decide which geometry to use to perform the read.

The trick RAID-Z expansion uses, is that by 'reflowing' the data, like if you were changing the column width of some text in a text editor, the 10th word is still the 10th word, it is just that it is now on line 2 instead of line 3. So the DVA addresses in the blockpointers don't actually change, the data just moves to the address it is supposed to be at, which is now closer to the start of the vdev since we have added an additional column.

Maybe the graphics explain it better than I am. See Matt's slides:
http://www.open-zfs.org/w/images/6/68/RAIDZ_Expansion_v2.pdf

All 3 comments

additionally, the performance is questionable, with the indirection table that is generated - it'll be somewhat similar to dedup.

RAID-Z expansion doesn't use an indirection table. It only needs to keep track of how far through the vdev it is, so it can tell if a requested DVA is before or after the rewrite point, to decide which geometry to use to perform the read.

The trick RAID-Z expansion uses, is that by 'reflowing' the data, like if you were changing the column width of some text in a text editor, the 10th word is still the 10th word, it is just that it is now on line 2 instead of line 3. So the DVA addresses in the blockpointers don't actually change, the data just moves to the address it is supposed to be at, which is now closer to the start of the vdev since we have added an additional column.

Maybe the graphics explain it better than I am. See Matt's slides:
http://www.open-zfs.org/w/images/6/68/RAIDZ_Expansion_v2.pdf

So development of this feature is currently halted beyond an experimental proof-of-concept?

So development of this feature is currently halted beyond an experimental proof-of-concept?

An updated preview is available here: https://github.com/zfsonlinux/zfs/pull/8853

Was this page helpful?
0 / 5 - 0 ratings