> What do you guys think about implementing 'zfs/zpool rewrite' command?
> It'll read every block older than the date when the command was executed
> and write it again (using standard ZFS COW mechanism, simlar to how
> resilvering works, but the data is read from the same disk it is written to=
> ).

#1 How do you control I/O overhead?

#2 Snapshot blocks are never rewritten at the moment.  Most of your
   suggestions seem to imply working on the "live" data, but doing that
   for snapshots as well might be tricky. 

> 3. I created file system with huge amount of data, where most of the
> data is read-only. I change my server from intel to sparc64 machine.
> Adaptive endianess only change byte order to native on write and because
> file system is mostly read-only, it'll need to byteswap all the time.
> And here comes 'zfs rewrite'!

It's only the metadata that is modified anyway, not the file data.  I
would hope that this could be done more easily than a full tree rewrite
(and again the issue with snapshots).  Also, the overhead there probably
isn't going to be very high (since the metadata will be cached in most
cases).  

Other than that, I'm guessing something like this will be necessary to
implement disk evacuation/removal.  If you have to rewrite data from one
disk to elsewhere in the pool, then rewriting the entire tree shouldn't
be much harder.

-- 
Darren Dunham                                           [EMAIL PROTECTED]
Senior Technical Consultant         TAOS            http://www.taos.com/
Got some Dr Pepper?                           San Francisco, CA bay area
         < This line left intentionally blank to confuse you. >
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to