ZFS doesn't make sense for Time Machine
Despite what people say, ZFS makes no more sense for Time Machine than HFS+. I used to think ZFS would work well for Time Machine backups, but after thinking through it a bit more, I realize I was mistaken.
Snapshots don't work across multiple volumes. The point of snapshots is to duplicate the filesystem metadata, while pointing to the same data blocks. Only as the data blocks change are they duplicated to preserve the snapshot state. However, Time Machine is not about snapshots. It is about helping users replicate their data on an external volume for fault tolerance. Snapshots on the same volume as the original data provide no fault tolerance. It is an additional benefit that users can use Time Machine to easily access their multiple backups.
The only way ZFS snapshots would work with an external volume is to use mirroring. That isn't a solution, either. Mirroring requires that the backup volume be the same size as the original volume. Hence, if you added a 300 GB external disk to an iMac with an 80 GB internal disk, only 80 GB of the 300 GB drive could be used for mirroring. The other 220 GB would have to be formatted as an independent volume. With this setup, you are limited to 80 GB to store your current data and all backups. As the disk fills up, you will be forced to delete old backups more quickly than if you could use the entire 300 GB disk for backups.
The only way ZFS snapshots would work with Time Machine would be if the VFS were modified to designate certain disks as "backups". These backup disks would be quasi-mirrors, which replicate the file operations on the master disk, while also taking periodic snapshots. However, they wouldn't be proper mirrors, because the metadata wouldn't match exactly. For example, it would be impossible to guarantee that the inode number of a file on the master disk would be identical to the inode number of the same file on the backup volume. Things like creating hardlinks becomes more difficult to manage when this is the case. Bottom line, this sort of modification would be a very ugly perversion of mirroring. It greatly increases the bookkeeping involved with replicated filesystem changes and ruins the fundamental purpose of a mirror: to have an identical copy of the filesystem on every disk. This is not the way to solve this problem!
Of course, I would like snapshots for my own devices. I already replicate my data. I'm one of the people in that small sliver Jobs showed in the keynote. After many years of UNIX use with high-speed networking, I have it ingrained to make use of SSH, rsync and unison to replicate my data and work remotely. My important data is replicated on my office desktop, my home desktop and my laptop. I don't need Time Machine to make duplicates for me, but snapshots would be a great help indeed. Either ZFS or UFS2 would be of great value to me on a Mac.
ZFS offers some additional nice features. On-the-fly compression and data checksums would be invaluable. Sun is right, especially with multicore Macs: there are plenty of wasted cycles, so they might as well be used to compress or validate data. I really hope ZFS makes it into Leopard, at least well enough that I can think about moving my /Users partition to it. But it won't solve the Time Machine problem.
x2
ZFS + timemachine makes sense.
Despite what people say, ZFS makes no more sense for Time Machine than HFS+. I used to think ZFS would work well for Time Machine backups, but after thinking through it a bit more, I realize I was mistaken.
Snapshots don't work across multiple volumes. The point of snapshots is to duplicate the filesystem metadata, while pointing to the same data blocks. Only as the data blocks change are they duplicated to preserve the snapshot state. However, Time Machine is not about snapshots. It is about helping users replicate their data on an external volume for fault tolerance. Snapshots on the same volume as the original data provide no fault tolerance. It is an additional benefit that users can use Time Machine to easily access their multiple backups.
The only way ZFS snapshots would work with an external volume is to use mirroring. That isn't a solution, either. Mirroring requires that the backup volume be the same size as the original volume. Hence, if you added a 300 GB external disk to an iMac with an 80 GB internal disk, only 80 GB of the 300 GB drive could be used for mirroring. The other 220 GB would have to be formatted as an independent volume. With this setup, you are limited to 80 GB to store your current data and all backups. As the disk fills up, you will be forced to delete old backups more quickly than if you could use the entire 300 GB disk for backups.
The only way ZFS snapshots would work with Time Machine would be if the VFS were modified to designate certain disks as "backups". These backup disks would be quasi-mirrors, which replicate the file operations on the master disk, while also taking periodic snapshots. However, they wouldn't be proper mirrors, because the metadata wouldn't match exactly. For example, it would be impossible to guarantee that the inode number of a file on the master disk would be identical to the inode number of the same file on the backup volume. Things like creating hardlinks becomes more difficult to manage when this is the case. Bottom line, this sort of modification would be a very ugly perversion of mirroring. It greatly increases the bookkeeping involved with replicated filesystem changes and ruins the fundamental purpose of a mirror: to have an identical copy of the filesystem on every disk. This is not the way to solve this problem!
Of course, I would like snapshots for my own devices. I already replicate my data. I'm one of the people in that small sliver Jobs showed in the keynote. After many years of UNIX use with high-speed networking, I have it ingrained to make use of SSH, rsync and unison to replicate my data and work remotely. My important data is replicated on my office desktop, my home desktop and my laptop. I don't need Time Machine to make duplicates for me, but snapshots would be a great help indeed. Either ZFS or UFS2 would be of great value to me on a Mac.
ZFS offers some additional nice features. On-the-fly compression and data checksums would be invaluable. Sun is right, especially with multicore Macs: there are plenty of wasted cycles, so they might as well be used to compress or validate data. I really hope ZFS makes it into Leopard, at least well enough that I can think about moving my /Users partition to it. But it won't solve the Time Machine problem.