October 22nd, 2007


A conversation with the creators of ZFS.

When you have a server and you want to upgrade its memory, the process is pretty straightforward. You power down the server, plug in some DIMMs, power it back on, and you're done. You don't run dimmconfig, you don't edit /etc/dimmtab, and you don't create virtual DIMMs that you mount on applications. The memory is simply a pooled resource that's managed by the operating system on behalf of the application. If Firefox wants another megabyte of memory, it asks for it, and if it's available, it gets it. When it's done, it frees it, and back it goes into the pool for other applications to use. It's a very simple, very natural way of thinking about storage.

With ZFS, we asked this question: why can't your on-disk storage be the same way? That's exactly what we do in ZFS. We have a pooled storage model. The disks are like DIMMs, and the file systems are like applications. You add devices into the storage pool, and now the file system is no longer tied to the concept of a physical disk. It grabs data from the pool as it needs to store your files, and as you remove or delete your files, it releases that storage back to the pool for other file systems to use. Again, it's a very natural, very simple way to administer large quantities of data.