BSDCan2016 - v1.1.24

BSDCan 2016
The Technical BSD Conference

Matt Ahrens
Day Talks #1 - 10 June - 2016-06-10
Room DMS 1160
Start time 16:00
Duration 01:00
ID 710
Event type Lecture
Track Invited Talks
Language used for presentation English

OpenZFS space allocation

doubling performance on large and fragmented pools

Allocating space for new blocks is at the heart of every filesystem, but this is especially true for OpenZFS, because it allocates new blocks for every write, and because blocks are arbitrarily sized. This talk is an overview of how OpenZFS allocates space, including the on-disk data structures used to keep track of where the free space is, and the algorithms used to select the “best” free space to use for a write.

The talk also covers recent improvements to space allocation algorithms, including:

  • Big wins on pools with “unbalanced” vdevs which have different amounts of free space

  • A new on-disk data structure which vastly reduces the I/O overhead of tracking free space

  • Improved diagnosability of the space allocation process