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

相关文章
相关标签/搜索