Btrfs at Scale: How Meta Depends on Btrfs for Our Entire Infrastructure - Josef Bacik, Meta
Channel: The Linux Foundation
Date: 25/05/2023

Btrfs at Scale: How Meta Depends on Btrfs for Our Entire Infrastructure - Josef Bacik, Meta

Inside Meta all of our services run on our shared pool of machines that are spread across the entire world. These services are containers that can easily be deployed, ramped up, and scaled down on demand. This entire system is backed by Btrfs. A base image is deployed onto every machine in the fleet that contains the basic runtime environment for these containers, this is done with Btrfs's send/receive feature. The services themselves are packaged using send/receive. At container startup time this base image is snapshotted to create a pristine runtime environment for the service, this happens instantaneously, drastically cutting down on the startup time for services. We use the built in compression offered by Btrfs to drastically increase the SSD lifetimes in our fleet by reducing the amount of data written to the disk, saving huge amounts of money in storage costs. We use the asynchronous discard feature of Btrfs to eliminate all discard related latency issues that exist on most SSD's. Without Btrfs, operating a container based fleet at scale would cost us significantly more time, cost of SSDs, and a lot of flexibility. This talk is an updated version of one I've given before. The scale and integration of Btrfs has drastically increased in the last two years.