Home » Linux » What’s All This I Hear About Btrfs For Linux

What’s All This I Hear About Btrfs For Linux

About The Author

Dan is a proponent of Open Source Matters and an avid supporter of The Linux Foundation. He runs Linux Mint 14 Cinnamon and Mate on all his PC platforms, including his laptops, netbook and Desktop tower. Dan has a Bachelor of Arts degree in Mathematics, a Master of Science degree in Information Technology with a specialty in network architecture, and has completed all his course requirements and two colloquia toward his Ph.D. in IT Education. Until just recently, Dan was employed by Capella University as an adjunct faculty teaching assistant but the program was terminated after a year-and-a-half and he was laid off along with the entire TA staff just prior to the holidays. Dan holds a Post-Masters Certificate in College Teaching from Capella University which he received in July, 2012.

Blog Post Calendar

December 2012
M T W T F S S
    Jan »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Blog Categories

Advertisements

btrfsHave you heard about a file system called Btrfs? If so, then you would be among a select group of individuals who have ever been introduced to it or who know anything about it at all. If you haven’t heard about this file system, then I’ll introduce you to it in this article, give you a little information about its history, and tell you the latest hype about where Btrfs fits in with the future development and implementation of Linux.

Btrfs stands for B-tree File System. This file system name is pronounced either as “B-tree File System,” “B-tree FS,” “Butter FS,” “Better FS,” or “Butterfuss.” Although it is a B-tree File System, the term “B-tree” should not be confused with the term “Binary Tree.”

In the world of Computer Science, a B-tree is a data structure in a tree arrangement that keeps the data sorted while allowing searches, sequential access, insertions, and deletions in logarithmic time. In essence, a B-tree is related to a Binary Tree in that the former is a generalization of the latter since a node can have more than two children (Corner, 1979, p. 123). Btrfs is a file system developed by Oracle beginning in 2007, and is a GPL-licensed copy-on-write (COW) file system developed for Linux. Btrfs was developed as a replacement file system for Linux that was intended to address the lack of support for pooling, snapshots, checksums, and multi-device spanning not prevelant in the Linux ext3 or ext4 file systems. It is critical that these elements be incorporated into the Linux file system since Linux is beginning to scale up to more and more applicability in the Enterprise, and if Linux is to be a viable operating system in the future of the Enterprise, it will be necessary for it to possess the capability to access large data volumes, handle large file sizes, and deal with large data storage requirements.

The core data structure of Btrfs resides in a copy-on-write B-tree, which was originally proposed by an IBM researcher by the name of Ohad Rodeh. Simultaneously with the beginning of the development of Btrfs, Chris Mason, an engineer working for SuSE Linux, was orchestrating the development of another file system for Linux known as ReiserFS. However, later in 2007, Chris Mason dropped work on ReiserFS and went to work for Oracle to assist with the development of the file system using B-trees. By now, the original designer of ReiserFS, Hans Reiser, was embroiled in a murder investigation into the death of his wife and further development of this file system had halted. Later, it would be determined through the courts that Hans was guilty of the crime of murder against his wife, and he was imprisoned. All further development of the ReiserFS was terminated. Thus, the move ahead on the development of Btrfs was continued.

Many of the prominent features of the Btrfs as contained within the Linux kernel 3.6 released on 30 September 2012 are:

  • Online defragmentation
  • Online volume expansion and compression
  • Online block device addition and removal
  • Online load balancing
  • Offline file system checking
  • Implementation of RAID 0, 1, & 10
  • Subvolumes consisting of one or more separately mountable volumes within each partition
  • Snapshots consisting of read-only or copy-on-write clones or subvolumes
  • In-place rollback capability from ext3/4 to Btrfs
  • Hierarchical per-volume quotas

In a recent “Weather Forecast” issued by the Linux Foundation, it was noted that with the release of Linux kernel 3.6 on 30 September 2012, the Btrfs was now capable of calculating the differences between two Btrfs subvolumes or snapshots and serializing the result, which leads the way for easy mirroring of volumes and incremental backups. In addition, it was reported that Btrfs through further development had acquired the capability of allocating disk quotas to subvolumes, which is a feature that is appealing to web hosting companies. Most importantly, however, was the information released by the Linux Foundation that Oracle had made the decision wherein it intended to use the Btrfs in its Enterprise distribution of Linux. This sends a clear signal to the World that Linux is advancing into a more active use on a global scale through the implementation of Btrfs as its defacto file system. Problems remaining to be resolved with Btrfs though are the development of a repair tool for the file system and the successful merging of RAID 5/6 support.

For more information on the future of Btrfs in Linux, visit The Linux Foundation website.

Reference:

Corner, D. (1979). The Ubiquitous B-Tree, Computing Surveys 11 (2): 123–137, doi:10.1145/356770.356776.

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Goodreads

%d bloggers like this: