XFS: Teaching an Old Dog Old Tricks

Presented by Dave Chinner
Wednesday 1:40 p.m.–2:25 p.m. in Medium Lecture Theatre CB11.00.401
Target audience: User


XFS has been in production for more than 20 years and has been in the linux kernel for 15 of them - it is the oldest of the current mainstream Linux filesystems. The design of XFS was state of the art in the late 1980s, when btrees, extents and journalling were shiny new concepts. While development of XFS still continues, it's design and architecture is largely unchanged. many of the tricks that XFS brought to Linux can now be found in other Linux filesystems, too. It's the old dog of the pack. We recently introduced a late-90s technology to XFS: shared data extents and a copy-on-write IO path. The copy-on-write tree structure that first appeared in the late 90s can be found in ZFS and BTRFS, but not XFS. So while XFS can now provide some data manipulations like clones and deduplication, it doesn't provide any of the more advanced CoW functionality like snapshots that traditional CoW filesystems inherently provide. Given that XFS doesn't have a copy-on-write architecture, can we use the new functionality to provide a similar feature set to native COW filesystems? What other old tricks do we need to pull out of the bag to make this a reality? And how much will the result look like XFS? In this talk I'll outline my crazy plan to add filesystem management concepts to XFS that only copy-on-write filesystems current provide to Linux users. There won't be anything "new" here - I'll describe the old tech that inspired the algorithms and structures that we'll use and, more importantly, some of the pitfalls and hard lessons learned from the original implementations of these techniques. With any luck, I'll present a coherent story of how we are going to bring subvolumes, snapshots, writeable clones, send/receive remote snapshot replication, page cache sharing and more to XFS without needing to change it's underlying 1980s architecture. XFS may be an old dog, but there's still some old tricks we can teach it to keep it shiny, new and relevant to users for years to come.

Presented by

Dave Chinner

Dave Chinner spends his days in a quiet country town muttering to himself about the weather. When he's not distracted trying to stop his crazy half-titanium dog from racking up another yet another monstrous repair bill, he can be found collecting used grinder sparks from under the dangerous mechanical contraptions he's building in his garage. In his frequent moments of insanity, he can be found in front of his computer trying to herd the uncooperative bovines that now run rampant through the XFS filesystem code.