Hi. 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).
I see few situations where it might be useful: 1. My file system is almost full (or not) and I'd like to enable compression on it. Unfortunately compression will work from now on and I'd also like to compress already stored data. Here comes 'zfs rewrite'! 2. I was bad boy and turned off checksuming. Now I suspect something corrupts my data and I'd really like to checksum everything. Ok, here comes 'zfs rewrite'! 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'! 4. Not sure how ZFS traverse blocks tree, if it is done based on files, it my be used to move data from one file closer to each other, which will reduce seek times. Because of the way how ZFS works, the data may become fragmented and 'zfs rewrite' could be used for defragmentation. 5. Once file system encryption is implemented, this mechanism can be used to encrypt existing file system and also it can be used to change encryption key. What do you think? -- Pawel Jakub Dawidek http://www.wheel.pl [EMAIL PROTECTED] http://www.FreeBSD.org FreeBSD committer Am I Evil? Yes, I Am!
pgpuG6Srs5cMH.pgp
Description: PGP signature
_______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss