Btrfs作為Linux下一代文件系統與zfs有著許多相似的功能。
擴展性 (scalability) 相關的特性,btrfs 最重要的設計目標是應對大型機器對文件系統的擴展性要求。 Extent,B-Tree 和動態 inode 創建等特性保證了 btrfs 在大型機器上仍有卓越的表現,其整體性能而不會隨著系統容量的增加而降低。
其次是數據一致性 (data integrity) 相關的特性。系統面臨不可預料的硬件故障,Btrfs 采用 COW 事務技術來保證文件系統的一致性。
btrfs 還支持 checksum,避免了 silent corrupt 的出現。而傳統文件系統則無法做到這一點。
第三是和多設備管理相關的特性。 Btrfs 支持創建快照 (snapshot),和克隆 (clone) 。 btrfs 還能夠方便的管理多個物理設備,使得傳統的卷管理軟件變得多余。
最後是其他難以歸類的特性。這些特性都是比較先進的技術,能夠顯著提高文件系統的時間 / 空間性能,包括延遲分配,小文件的存儲優化,目錄索引等。
btrfs 文件系統中所有的 metadata 都由 BTree 管理。使用 BTree 的主要好處在於查找,插入和刪除操作都很高效。可以說 BTree 是 btrfs 的核心。
它的特性我已經download一篇官方的文檔,以供參照
下面的操作是為了使CentOS能夠方便使用btrfs
我的操作系統是centos6.2內核版本是2.6.32
yum install rpm-build fuse-devel libtool libtool-ltdl-devel boost-devel libedit-devel git e2fsprogs-devel
wget http://www.kernel.org/pub/linux/kernel/people/mason/btrfs/btrfs-progs-0.19.tar.gz
wget http://downloads.sourceforge.net/e2fsprogs/e2fsprogs-1.41.14.tar.gz
tar xvzf e2fsprogs-1.41.14.tar.gz
進入e2fsprogs-1.41.14目錄後執行
/configure --prefix=/usr/local/e2fsprogs
make
make install
然後把uuid目錄拷過去
cp -r lib/uuid/ /usr/include/ \\這一步是為下面編譯准備uuid/uuid.h庫的
ln -sv /lib/ln -s /lib/libuuid.so.1.3.0 /usr/lib/libuuid.so \\這步是為了防止編譯時報錯can not find -luuid 這個錯誤的
tar xf btrfs-progs-0.19.tar.gz
cd btrfs-progs-0.19
在btrfsck.c中包含頭文件stat.h 格式如下 \\這步是為了防止編譯中報錯
#including <sys/stat.h>
make
make install
試使用btrfs文件系統
關機添加一塊新磁盤 系統默認識別為/dev/sdb
Centos默認將btrfs編譯成模塊,如果想使用需要事先加載