Btrfs文件系统在CentOS中的应用


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编译成模块,如果想使用需要事先加载

  1. [root@localhost ~]# modprobe btrfs 
  2.  
  3. [root@localhost ~]# lsmod |grep btrfs 
  4.  
  5. btrfs                 534417  0 
  6.  
  7. zlib_deflate           19141  1 btrfs 
  8.  
  9. lzo_decompress          2155  1 btrfs 
  10.  
  11. lzo_compress            1979  1 btrfs 
  12.  
  13. libcrc32c                841  1 btrfs 
  • 1
  • 2
  • 下一页

相关内容