劉 明 (ovis_poly@sina.com), 軟件工程師, 上海交通大學(xué)電子與通信工程系
2009 年 8 月 20 日
Btrfs 被稱為是下一代 Linux 文件系統(tǒng)。近年來 ext2/3 遇到越來越多的擴展性問題,在
期待 ext4 的同時,人們發(fā)現(xiàn)了 btrfs,據(jù)說它
采用了很多先進的文件系統(tǒng)
設(shè)計,不僅解決了 ext2/3 的擴展性問題,還讓人們看到了下一代文件系統(tǒng)所具有的許多其他特性。這一切都讓人不禁心生好奇,btrfs 究竟提供了哪些特性?它是如何實現(xiàn)的?本文便圍繞這些問題展開探討,首先
研究了 btrfs 所提供的新特性,并簡要介紹了 btrfs 內(nèi)部實現(xiàn)這些特性的原理;然后演示了 btrfs 的常用命令。
Btrfs 簡介 文件系統(tǒng)似乎是內(nèi)核中比較穩(wěn)定的部分,多年來,人們一直使用 ext2/3,ext 文件系統(tǒng)以其卓越的穩(wěn)定性成為了事實上的 Linux 標準文件系統(tǒng)。近年來 ext2/3 暴露出了
一些擴展性問題,于是便催生了 ext4 。在 2008 年發(fā)布的 Linux2.6.19 內(nèi)核中集成了 ext4 的 dev 版本。 2.6.28內(nèi)核發(fā)布時,ext4 結(jié)束了開發(fā)版,開始接受用戶的使用。似乎 ext 就將成為 Linux 文件系統(tǒng)的代名詞。然而當(dāng)您閱讀很多有關(guān) ext4的文章時,會發(fā)現(xiàn)都不約而同地提到了 btrfs,并認為 ext4 將是一個過渡的文件系統(tǒng)。 ext4 的作者 Theodore Tso 也盛贊btrfs 并認為 btrfs 將成為下一代 Linux 標準文件系統(tǒng)。 Oracle,IBM, Intel 等廠商也對 btrfs表現(xiàn)出了極大的關(guān)注,投入了資金和人力。為什么 btrfs 如此受人矚目呢。這便是本文首先想探討的問題。
Kevin Bowling[1] 有一篇介紹各種文件系統(tǒng)的文章,在他看來,ext2/3 等文件系統(tǒng)屬于“古典時期”。文件系統(tǒng)的新時代是2005 年由 Sun 公司的 ZFS 開創(chuàng)的。 ZFS 代表” last word in file system”,意思是此后再也不需要開發(fā)其他的文件系統(tǒng)了。 ZFS 的確帶來了很多嶄新的觀念,對文件系統(tǒng)來講是一個劃時代的作品。
如果您比較 btrfs 的特性,將會發(fā)現(xiàn) btrfs 和 ZFS 非常類似。也許我們可以認為 btrfs 就是 Linux 社區(qū)對 ZFS 所作出的回應(yīng)。從此往后在 Linux 中也終于有了一個可以和 ZFS 相媲美的文件系統(tǒng)。
btrfs 的特性 您可以在 btrfs 的主頁上 [2] 看到 btrfs 的特性列表。我自作主張,將那張列表分成了四大部分。
首先是擴展性 (scalability) 相關(guān)的特性,btrfs 最重要的設(shè)計目標是應(yīng)對大型機器對文件系統(tǒng)的擴展性要求。Extent,B-Tree 和動態(tài) inode 創(chuàng)建等特性保證了 btrfs在大型機器上仍有卓越的表現(xiàn),其整體性能而不會隨著系統(tǒng)容量的增加而降低。
其次是數(shù)據(jù)一致性 (data integrity) 相關(guān)的特性。系統(tǒng)面臨不可預(yù)料的硬件故障,Btrfs 采用 COW事務(wù)技術(shù)來保證文件系統(tǒng)的一致性。 btrfs 還支持 checksum,避免了 silent corrupt的出現(xiàn)。而傳統(tǒng)文件系統(tǒng)則無法做到這一點。
第三是和多設(shè)備管理相關(guān)的特性。 Btrfs 支持創(chuàng)建快照 (snapshot),和克隆 (clone) 。 btrfs 還能夠方便的管理多個物理設(shè)備,使得傳統(tǒng)的卷管理軟件變得多余。
最后是其他難以歸類的特性。這些特性都是比較先進的技術(shù),能夠顯著提高文件系統(tǒng)的時間 / 空間性能,包括延遲分配,小文件的存儲優(yōu)化,目錄索引等。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。