BtrFS:下一代GNU/Linux文件系統

Btrfs,將來的Linux標準文件系統html

Btrfs,讀做B-Tree fs,或者Better fs(我我的傾向於Btree,由於整個fs的目錄存儲和索引基礎是基於二叉樹的)。node

至少從2008年起,Btrfs就被人視做是下一代的存儲技術,現有的Linux文件系統的競爭者和取代者。自從2.6.29進入內核主線以來,每一次內核小版本的發佈都包括了Btrfs的改進。linux

Btrfs項目的創始人,Chris Mason——如今是Oracle的Director of Software Development表示,Btrfs雖然還未最終完成,但已經總體穩定和可用。但他同時認可,該文件系統仍有一些問題須要在接下來的開發中解決。Mason但願Btrfs能最終取代現有的Ext系文件系統。web

在由Oracle贊助的關於Btrfs現狀的webcast中,Mason指出了此項目的創立緣由和技術特色。數據庫

因爲現有的Linux文件系統的技術特色形成了某些Oracle關注的特性沒法實現,因此他們決定另起爐竈,而不是在現有文件系統上擴展。ide

Btrfs的基本特色是使用了copy on write (COW),這意味着Btrfs在普通操做中不會直接覆蓋數據,而是將元數據(metadata)和數據的新值寫到別的地方,而後在文件系統中指向新的位置。 這就提供了強大的一致性和完整性保證。在海量存儲上,這對於保持數據的可管理很是重要。工具

在COW以外,Btrfs還提供了快照和調整文件系統大小的功能。爲了方便現有的Ext3/4用戶遷移,Btrfs提供了從Ext3/4離線轉換(offline conversion)的功能。在這種轉換中,系統首先在Ext3/4的空閒空間上建立Btrfs,而後建立Btrfs的元數據(metadata),使其指向Ext3/4現存文件的數據塊(data blocks)性能

btrfs 的特性
優化

首先是擴展性 (scalability) 相關的特性,btrfs 最重要的設計目標是應對大型機器對文件系統的擴展性要求。Extent,B-Tree 和動態 inode 建立等特性保證了 btrfs 在大型機器上仍有卓越的表現,其總體性能而不會隨着系統容量的增長而下降。spa

其次是數據一致性 (data integrity) 相關的特性。系統面臨不可預料的硬件故障,Btrfs 採用 COW 事務技術來保證文件系統的一致性。 btrfs 還支持 checksum,避免了 silent corrupt 的出現。而傳統文件系統則沒法作到這一點。

第三是和多設備管理相關的特性。Btrfs 支持建立快照 (snapshot),和克隆 (clone) 。 btrfs 還可以方便的管理多個物理設備,使得傳統的卷管理軟件變得多餘。

最後是其餘難以歸類的特性。這些特性都是比較先進的技術,可以顯著提升文件系統的時間 / 空間性能,包括延遲分配,小文件的存儲優化,目錄索引等。

仍有改進的餘地

因爲有上述優勢,Btrfs迅速的得到了支持。如Meego、Fedora、OpenSUSE等發行版都包含了它。但目前Btrfs仍不是在每個場合都優於Ext3/4。

例如,COW在有利於儲存完整性的同時,它可能還不是對全部企業應用的場合都算理想。在回答InternetNews.com的問題時,Mason提到COW可能致使比其它文件系統更多的磁盤碎片(greater disk fragmentation),特別是在跑數據庫和虛擬化的時候。由於在這兩種環境下都會存在對一個特定文件的屢次隨機寫入(數據庫資料和虛擬機鏡像),這是Btrfs表現最差的場合之一。但眼下Btrfs開發者正在努力尋找解決這一問題的途徑

並且至少還有另外一個麻煩的問題——Mason警告說他們尚未什麼管用的辦法解決內核bug形成的文件系統損壞。固然一樣,開發者如今正在作一個文件系統校驗工具,以期緩解這一問題。他補充說,可能很快,他們的勞動就將結出果實——大約兩個月,咱們就能解決這些基本的問題,Btrfs將獲得進一步的改進。

Btrfs與Ext4的詳細對比:


部分轉自:LinuxToy

相關文章
相關標籤/搜索