Facebook是如何使用Btrfs的?
Btrfs文件系統已有十多年曆史,但性能和可靠性問題導致其未能普及。社交巨人是少數大規模採用Btrfs的科技公司。Btrfs開發者Josef Bacik在最近舉行的開源峰會上談論了Facebook是如何深入融入Btrfs的。
每一個Facebook 服務都運行在容器內,以簡化服務在機器之間的遷移。Facebook 有很多的機器,它希望所有機器都能盡可能的保持一致,能在任何時間向任何機器遷移任何服務。所有這些容器化服務都使用Btrfs 作為它們的root 文件系統。
Facebook 的工作流規定任何人不能直接向代碼庫遞交代碼,而是必須先進行測試。構建系統首先克隆庫,應用補丁,構建系統,執行測試。完成之後,徹底清理準備測試下一個補丁。
然而清理階段是相對緩慢的,刪除庫平均需要2 或3 分鐘,有時候需要10 分鐘,在此期間機器無法執行下一個測試。因此基礎設施團隊嘗試使用Btrfs,與其克隆一個庫不如創建一個快照,測試完成之後就刪除快照。刪除快照比刪除一個大的代碼庫要快得多。