ZFS is the (relatively) new filesystem from Sun with some fascinating properties. Here are some headline facts just to get your attention – the maximum size of a single file on a zfs filesystem is 16 ExiBytes (that’s 1000 million gigabytes), it’s possible to take a complete filesystem backup (snapshot) in a few seconds and you’ll never have to fsck your filesystem again to make sure it’s not corrupt.
So, sounds pretty impressive, heh? So what makes all this possible?
There are 3 main components to zfs that enable a lot of the cool functionality. If you’ve used a NetApp OnTap based filer before then these will sound familiar (hence, Netapp and Sun’s lawyers getting in a bit of overtime).
The first component is the Copy On Write transactional model (COW). This means that when a block of data on the filesystem changes it is not overwritten, a new block is created and the metadata for the file that has changed is updated.