CoreOS Moves From Btrfs To EXT4 + OverlayFS

Since December the CoreOS developers and stakeholders have been debating switching off Btrfs due to issues. The original proposal mentioned, "We chose btrfs because it was the most straightforward Docker graph driver at the time. But, CoreOS users have regularly reported bugs against btrfs including: out of disk space errors, metadata rebalancing problems requiring manual intervention and generally slow performance when compared to other filesystems."
Many CoreOS users and developers were in favor of moving away from Btrfs due to issues of this next-generation Linux file-system going through growing pains. Easing them off of Btrfs was that OverlayFS was finally merged in Linux 3.18. Using OverlayFS can yield greater speed in making new Docker containers over other alternatives.
To the Btrfs issues for CoreOS, Chris Mason the lead Btrfs developer who is now employed by Facebook wrote, "On our end, many of these Btrfs warts are getting solved. The 3.19 merge window fixes some very hard to find corruption problems that we've been chasing down, and Josef Bacik has developed a slick power-fail testing target that makes it much easier to prevent similar bugs in the future. 3.19 will also fix rare corruptions with block group removal, making both balance and the new auto-blockgroup cleanup feature much more reliable. We've hit a few performance problems deploying Btrfs here at Facebook, and fixes for these are making it into upstream kernels. We've also now caught two storage cards returning either stale or corrupt data, and the Btrfs crcs saved us from replicating the bad copies out across the cluster."
After one month of discussions, CoreOS has indeed moved off of Btrfs by default to instead use EXT4+OverlayFS for new installations. The change happened last week and can be found with the latest CoreOS alpha.
41 Comments