In short, yes. The enabling technology for all of this is something we call bp rewrite -- that is, the ability to rewrite an existing block pointer (bp) to a new location. Since ZFS is COW, this would be trivial in the absence of snapshots -- just touch all the data. But because a block may appear in many snapshots, there's more to it. It's not impossible, just a bit tricky... and we're working on it.
Once we have bp rewrite, many cool features will become available as trivial applications of it: on-line defrag, restripe, recompress, etc. Jeff On Mon, Dec 17, 2007 at 02:29:14AM -0800, Ross wrote: > Hey folks, > > Does anybody know if any of these are on the roadmap for ZFS, or have any > idea how long it's likely to be before we see them (we're in no rush - late > 2008 would be fine with us, but it would be nice to know they're being worked > on)? > > I've seen many people ask for the ability to expand a raid-z pool by adding > devices. I'm wondering if it would be useful to work on a defrag / > restriping tool to work hand in hand with this. > > I'm assuming that when the functionality is available, adding a disk to a > raid-z set will mean the existing data stays put, and new data is written > across a wider stripe. That's great for performance for new data, but not so > good for the existing files. Another problem is that you can't guarantee how > much space will be added. That will have to be calculated based on how much > data you already have. > > ie: If you have a simple raid-z of five 500GB drives, you would expect > adding another drive to add 500GB of space. However, if your pool is half > full, you can only make use of 250GB of space, the other 250GB is going to be > wasted. > > What I would propose to solve this is to implement a defrag / restripe > utility as part of the raid-z upgrade process, making it a three step process: > > - New drive added to raid-z pool > - Defrag tool begins restriping and defragmenting old data > - Once restripe complete, pool reports the additional free space > > There are some limitations to this. You would maybe want to advise that > expanding a raid-z pool should only be done with a reasonable amount of free > disk space, and that it may take some time. It may also be beneficial to add > the ability to add multiple disks in one go. > > However, if it works it would seem to add several benefits: > - Raid-z pools can be expanded > - ZFS gains a defrag tool > - ZFS gains a restriping tool > > > This message posted from opensolaris.org > _______________________________________________ > zfs-discuss mailing list > zfs-discuss@opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/zfs-discuss _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss