Facebook 如何使用 Btrfs
Btrfs 文件系统已有十多年历史,但性能和可靠性问题导致其未能普及。社交巨人是少数大规模采用 Btrfs 的科技公司。Btrfs 开发者 Josef Bacik 在最近举行的开源峰会上谈论了 Facebook 是如何深入融入 Btrfs 的。每一个 Facebook 服务都运行在容器内,以简化服务在机器之间的迁移。Facebook 有很多的机器,它希望所有机器都能尽可能的保持一致,能在任何时间向任何机器迁移任何服务。所有这些容器化服务都使用 Btrfs 作为它们的 root 文件系统。Facebook 的工作流规定任何人不能直接向代码库递交代码,而是必须先进行测试。构建系统首先克隆库,应用补丁,构建系统,执行测试。完成之后,彻底清理准备测试下一个补丁。然而清理阶段是相对缓慢的,删除库平均需要 2 或 3 分钟,有时候需要 10 分钟,在此期间机器无法执行下一个测试。因此基础设施团队尝试使用 Btrfs,与其克隆一个库不如创建一个快照,测试完成之后就删除快照。删除快照比删除一个大的代码库要快得多。