btrfs文件系统

最近一位同事在美国参加LSF(Linux Storage and Filesystem Summit)回来,分享了他的总结,非常的精彩。这是一个没有演讲、没有照片、没有录像的讨论为主的会议,因此参会者基本上都是比较资深的Linux内核和文件系统的开发者,参加这个讨论会的有不少中国人(华人),相比起我们这些只是理解使用某个数据库产品的DBA来说,这是值得我们敬仰的一群人。也许在不远的将来,淘宝的DBA团队也不仅仅是一个维护某种数据库产品的团队,也能在开源数据库领域内贡献自己的力量,这也正是我们接下来招聘的思路所在。淘宝DBA团队,也已经建立了开源数据库研究小组,当前主要是MySQL/InnoDB,如果你是一位优秀的c/c++开发者,如果你对MySQL/InnoDB等开源数据库在大规模大并发量的网站应用有兴趣,如果你想有一天,能够为开源数据库提供Patch,欢迎加入我们,不管之前你有没有DBA经验,也不管你还是个应届毕业生(我的邮箱jiangfeng # taobao.com,你懂的)。

扯远了,这里我想说的是,从这个报告我注意到了btrfs文件系统。前一段时间,也一直在考虑,在Linux上部署MySQL数据库,究竟什么样的文件系统会比较适合?或者说什么文件系统适合不同的数据库环境?之前的思路,更多的集中在xfs, ext4等已经比较熟悉的文件系统上,上周去北京出差的时候,本来还想找前面的这位同事探讨一下ext4是否适合在数据库产品环境中部署,而当时他正好在美国参加LSF,因此也错过了机会。不过从他的这个总结来看,ext4已经达到了产品级别的稳定性,应该可以尝试,接下来可能会安排一些测试,这是后话。

对于btrfs,简单的从字面来理解,就是以B-Tree作为组织元数据的数据结构,相比于ext2/ext3使用线性表来保存目录等结构,好处在于查找,插入和删除操作都很高效。btrfs另外一个比较重要的特性是基于extent来分配管理文件空间,而不是传统的block。看到这里,作为DBA,其实可以很明显的看到,这和Oracle数据库组织管理数据的思路何其一致(如果寻根问祖,发现这个btrfs根本就是由Oracle最初在2007年开放出来的项目,本是同根生啊)。关于btrfs更详细的信息,可以参考这里,还有这里。另外,btrfs对于目前热点的SSD磁盘也提供了特别的支持,因此被认为是Linux未来文件系统的趋势所在,虽然目前还是开发版本,但值得关注。

实际上可以做一个简单的类比,就能对btrfs有一个更加感性的认识,可以将btrfs看作是Linux版本的ZFS,其设计思路和特性,很多都是借鉴自ZFS,其主要特性如下:

  • Copy on Write
  • Extent based file storage (2^64 max file size)
  • Space efficient packing of small files
  • Space efficient indexed directories
  • Dynamic inode allocation
  • Writable snapshots
  • Subvolumes (separate internal filesystem roots)
  • Object level mirroring and striping
  • Checksums on data and metadata (multiple algorithms available)
  • Compression
  • Integrated multiple device support, with several raid algorithms
  • Online filesystem check
  • Very fast offline filesystem check
  • Efficient incremental backup and FS mirroring
  • Online filesystem defragmentation


无觅相关文章插件,快速提升流量

8条评论

  • At 2010.08.21 10:34, Rain@DNA said:

    是的,目前的一些主流版本里已经集成btrfs提供测试使用。

    可惜open solaris估计已是陌路了。

    看到消息说Google大规模迁移到Ext4,个人使用感觉,还不太好说。

    • At 2010.08.21 16:12, ruochen said:

      ext4的稳定性现在应该说已经很不错了,只是好像还不支持boot分区,grub小组正在努力

      • At 2010.12.24 16:08, finechore said:

        那个说的不支持boot,我现在就有机器是。

      • At 2010.08.22 00:14, 大头刚 said:

        EXT4 对内核的要求太高,大规模的迁移的话,成本也是不低的。

        • At 2010.12.24 16:08, finechore said:

          升级内核有啥成本

        • At 2010.08.25 16:30, 巫师勋 said:

          这里面有一些理念和ASM很像啊,确实有同根的味道

          • At 2010.09.01 11:48, guanghui said:

            我很早就开始关注zfs,然后自然也关注btrfs了。
            应该说btrfs还处于处于测试阶段,不适合做实际应用。

            zfs经过近5年发展,已经比较稳定。
            我比较喜欢的一些feature:snapshot usrquota compression,dedup.
            L2ARC,当然还有很多。

            我认为Linux未来会提供一个可用的btrfs,不过时间可能是2年以后了。
            不知道netapp会不会到时候也找点儿类似zfs相关的专利问题来找麻烦。

            • At 2010.12.24 16:11, finechore said:

              正如文中所说,其实btrfs对于ext系列的,很多理念都被颠覆,如果想生产用,还得时间。
              介时,在此基础上的DFS系CEPH,是不是也会改变现在的TFS呢?


              (Required)
              (Required, will not be published)