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

Btrfs,未来的Linux标准文件系统

Btrfs,读作B-Tree fs,或者Better fs(我个人倾向于Btree,因为整个fs的目录存储和索引基础是基于二叉树的)。

至少从2008年起,Btrfs就被人视作是下一代的存储技术,现有的Linux文件系统的竞争者和取代者。自从2.6.29进入内核主线以来,每一次内核小版本的发布都包括了Btrfs的改进。

Btrfs项目的创始人,Chris Mason——现在是Oracle的Director of Software Development表示,Btrfs虽然还未最终完成,但已经整体稳定和可用。但他同时承认,该文件系统仍有一些问题需要在接下来的开发中解决。Mason希望Btrfs能最终取代现有的Ext系文件系统。

在由Oracle赞助的关于Btrfs现状的webcast中,Mason指出了此项目的创立原因和技术特点。

由于现有的Linux文件系统的技术特点造成了某些Oracle关注的特性无法实现,所以他们决定另起炉灶,而不是在现有文件系统上扩展。

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 在大型机器上仍有卓越的表现,其整体性能而不会随着系统容量的增加而降低。

其次是数据一致性 (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

你可能感兴趣的:(linux,职场,休闲,btrfs)