ZFS is a complicated storage system. When capacity planning time rolls around, those of us who manage ZFS storage pools often become frustrated while trying to explain what storage capacity is being used for.
There are many well understood variables that can have a dramatic impact on the usable capacity of a pool: compression ratio, RAIDZ layout and parity level, etc. There are also many poorly understood variables: record size, file size, sector size, number of blockpointers, etc.
In this talk we will discuss how these variables can drastically change the capacity efficiency of a ZFS storage pool. We'll also show a tool that can be used to model the ZFS capacity allocation algorithms so we can perform capacity usage analysis on real production data before making any changes to production pool configurations.
Kody is a software engineer at Joyent where he enjoys analyzing and developing models of complex software systems. At Joyent Kody has created software to monitor thousands of application instances, helped recover hundreds of terabytes of user data from cloud storage, fixed numerous low-level performance problems, and witnessed the failure of every hardware component in the IO path.