Hello ZFS gurus and fellow fans. As we all know ZFS does not _yet_ support relayout of pools. I want to know whether there is any hope for this to become available in the near future?>From my outside view it sounds like it should be possible to set a flag tostop allocating new blocks from a specific device, then start a job to "touch" each block on the subject device, causing each block to be CoW moved to one of the other disks until there are no more blocks left on that device and then finally to clear the device''s pool membership status. Similarly, adding a device into a raid-Z vdev seems easy to do: All future writes include that device in the list of devices from which to allocate blocks. But I admit, I am no programmer, so please do enlighten me :-) -- Any sufficiently advanced technology is indistinguishable from magic. Arthur C. Clarke My blog: http://initialprogramload.blogspot.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.opensolaris.org/pipermail/zfs-discuss/attachments/20081218/b21d0048/attachment.html>
On 18 December, 2008 - Johan Hartzenberg sent me these 2,7K bytes:> Hello ZFS gurus and fellow fans. > > As we all know ZFS does not _yet_ support relayout of pools. I want to know > whether there is any hope for this to become available in the near future?http://blogs.sun.com/ahrens/entry/new_scrub_code has some info that it''s coming..> From my outside view it sounds like it should be possible to set a flag to > stop allocating new blocks from a specific device, then start a job to > "touch" each block on the subject device, causing each block to be CoW moved > to one of the other disks until there are no more blocks left on that device > and then finally to clear the device''s pool membership status.It would have been this easy, except that ZFS has support for snapshots, clones etc.. /Tomas -- Tomas ?gren, stric at acc.umu.se, http://www.acc.umu.se/~stric/ |- Student at Computing Science, University of Ume? `- Sysadmin at {cs,acc}.umu.se
On Thu, Dec 18, 2008 at 10:24:26AM +0200, Johan Hartzenberg wrote:> Similarly, adding a device into a raid-Z vdev seems easy to do: All future > writes include that device in the list of devices from which to allocate > blocks.In general, I agree completely. But in practice there are limitations that folks might not be aware of. With Raid4, you can just add a column, because new data can be written into the column, and the existing parity for the written stripe can be updated. With RaidZ, a single added column isn''t very useful on a full (or nearly-full) vdev. Each new block written must have at least one disk and one parity write in the stripe on separate disks. So adding one disk to a full raidz will add very little capacity. I don''t know how you''d display that issue to the admin either. -- Darren