Btrfs

from Wikipedia, the free encyclopedia
Btrfs
Full name B-tree FS
Initial release For Linux on June 12, 2007, as beta (with version 3.10 ) from June 2013, stable since October 27, 2014;
for Windows (with version 0.1 ) on February 21, 2016, stable (from 1.0 ) since September 4, 2017 ( Linux , Windows )
Technical implementation
Directories B + tree
Maximum values
Size of a file 16  egg
Number of all files 2 64
Length of the file name 255 bytes
File system size 16  egg
Allowed characters in the file name all bytes except NULLand/
properties
File attributes POSIX
File rights management POSIX, ACLs
Transparent compression Yes
Transparent encryption planned
Supporting operating systems Linux , ReactOS , Windows

The Btrfs ( B-tree  FS ; also called 'butter FS') is a copy-on-write file system that has been available as free software under the GNU General Public License (GPL) for the Linux operating system since 2007 and with the Designation WinBtrfs , cross-platform for Windows (from Windows 7 ) as well as ReactOS is developed.

For some time now, Btrfs has been the successor to the extended filesystem that has prevailed in the Linux environment , since 2008 in version 4 as the ext4 file system, as this initially only lifted part of the restrictions of earlier versions ( ext2 and ext3 ) such as file size and overall file system size. So put Andrew Morton , one of the most prominent Linux kernel developer, in 2008 "in the longer term on Btrfs". However, since both file systems offer certain advantages and both are actively being further developed, Btrfs has not yet taken over as successor - instead, it offers an additional option for distributors and users.

properties

Btrfs has a lot in common with ZFS and is therefore described as a Linux analogue to ZFS. ZFS was designed seven years earlier by the same manufacturer ( Sun Microsystems , merged into Oracle) as the ultimate file system, but because of its license status it was unsuitable for use with Linux. Both have integrated RAID , volume management , checksum-based protection against data transmission errors and use copy-on-write , a process in which a copy is only made "in real" as soon as it is changed by one of the parties involved. As long as all those involved have not changed their copy, it is sufficient to save the original once. The copy is therefore initially made “virtually” and is only created with a delay when it is used for the first time. The RAID subsystem integrated in the file system offers the advantage over classic hardware or software RAID implementations that a distinction can be made between occupied and free data blocks, so that when a mirrored RAID volume is reconstructed, only occupied disk space has to be mirrored. This results in enormous time savings in the event of damage, especially in the case of insufficiently filled file systems. In contrast to classic RAID procedures, the RAID functionality is also organized with the help of larger data blocks. There is then no mirroring of the data carriers in RAID 1, for example , but it is ensured that each data area is stored on at least two data carriers. As long as the largest data carrier is not larger than the rest combined, it is possible to create a RAID 1 from an uneven number of data carriers of different capacities - with full utilization of their capacity.

With the B-tree structure, Btrfs is also based on a central concept from XFS. It is thus related to the no longer developed Reiser4 , to which it is seen as an adequate alternative.

Btrfs includes the utility btrfs-convert that can be used to convert existing ext3 and ext4 file systems to Btrfs file systems. The conversion is reversible.

Above all, Btrfs should also offer functions that set it apart from the current Linux standard ext3 / ext4, but also from other file systems such as XFS or JFS , including:

history

The core structure of Btrfs - the copy-on-write B-tree structure - was originally proposed by IBM researcher Ohad Rodeh during a presentation at USENIX 2007. Rodeh also suggested adding referencing counters for memory blocks and certain relaxation of the balancing algorithms of normal B-trees, which make the B-trees suitable for high-performance storage solutions with copy-on-write snapshots while maintaining good concurrency .

Chris Mason, then a ReiserFS developer at SUSE , was hired by Oracle that same year and began work there on a new file system that almost exclusively uses such B-trees - not only for meta and user files, but also recursively for Tracking the storage allocation of the trees themselves. This means that all operations can be handled by the same routines.

On January 9, 2009, Btrfs was included in the Linux kernel 2.6.29 for the first time. In some Linux distributions , the file system is officially available for selection during installation.

Linux

For most Linux distributions , Btrfs is one of the file systems available to choose from, or packages exist to set it up manually. For experimental use, the file system was supported for the first time under OpenSUSE 11.3 and under Oracle Linux Release 2. For example, the Arch Linux , Debian , Fedora , Gentoo , RHEL and Ubuntu distributions can optionally be installed on Btrfs or use Btrfs volumes .

Btrfs is the standard file system on the distributions MeeGo , SUSE Linux Enterprise Server  12 (SLES 12) and openSUSE from version 13.2.

On Fedora, Btrfs was also to be used as the standard file system after 2008, but was repeatedly discarded because some tools for administering the file system were not yet fully developed. Fedora 33, expected in October 2020, should now - after more than 10 years - receive Btrfs as the standard file system.

In 2017, Red Hat announced that it would no longer support Btrfs in RHEL, whereupon it was no longer included in RHEL 8 (2019). How the decision by Fedora, RHEL's free base, will affect Red Hat's commercial Linux remains to be seen. Canonical , however, relies on the OpenZFS ( ZFS on Linux ) file system under Ubuntu, which is comparable to Btrfs and which has been increasingly integrated into the distribution since version 16.04, but includes support for Btrfs.

Windows and ReactOS

The file system driver WinBtrfs enables the use of the file system under Windows and ReactOS.

Criticism of the design

Red Hat hired Edward Shishkin, one of the original Reiser4 developers, to do a code review in the second quarter of 2010 . Shishkin's conclusion was that the design was flawed because the original algorithm was not followed in key points. The design flaws mean that in special cases the disk space can run out even though there is enough space. The Btrfs developers disagreed with the claim that it was a design flaw. Rather, they called it an implementation bug that has already been fixed. In August 2017, Red Hat announced that it would end its long-term support for Btrfs in Red Hat Enterprise Linux (RHEL). The reasons for this are problems with the file system in conjunction with Docker , as well as user complaints, which, according to co-developers, often required time-consuming manual corrections in the file system. However, the current version of RHEL uses the Linux kernel 3.10, which is not recommended by the Btrfs developers and reflects a status of Btrfs from 2013. One reason could also be that Red Hat wants to avoid competition in-house, which would have arisen through the purchase of Permabit. In order to access features such as data deduplication, Red Hat customers have to resort to a commercial, paid extension.

See also

Web links

Individual evidence

  1. a b c WinBtrfs: Readme (English) - GitHub , on September 4, 2017; also (probably from 2016) u. a. with "WinBtrfs is a Windows driver for the next-generation Linux filesystem Btrfs. A reimplementation from scratch, it contains no code from the Linux kernel, and should work on any version from Windows 7 onwards. " And " It is also included as part of the free operating system ReactOS. " (Translation of the last sentence:" It is also included as part of the [...] ReactOS operating system. ")
  2. Valerie Aurora b. Henson: A short history of btrfs. btrfs: Pre-history. In: LWN.net. June 22, 2009, accessed on October 4, 2010 (English): “Rodeh's trees are different: […], he got rid of the links between leaves of the tree […]. (This is a fairly standard form of btrees in file systems, sometimes called 'B + trees'.) "
  3. A Conversation with Chris Mason on BTRfs: the next generation file system for Linux ( Memento from June 25, 2009 in the Internet Archive )
  4. The first letter is capitalized.
  5. Valerie Henson: Chunkfs: Fast file system check and repair. (OGG) 2008, accessed on February 5, 2008 (106.8 MB, running time 18 minutes, 49 seconds): "It's called Butter FS or B-tree FS, but all the cool kids say Butter FS"
  6. Jake Edge: CRFS and POHMELFS. In: LWN.net. Eklektix, Inc., February 6, 2008, accessed October 4, 2010 .
  7. a b Chris Mason: [ANNOUNCE] Btrfs: a copy on write, snapshotting FS. In: Linux Kernel Mailing List archive. June 12, 2007, accessed May 29, 2010 .
  8. Experimental: Free driver for Btrfs file system under Windows - Heise , on February 22nd, 2016.
  9. ReactOS 0.4.1 Released - Reactos Project , May 17, 2016; u. a. with " BTRFS support - Initial read and write support introduced via importing of the WinBtrfs driver. "
  10. ^ Andrew Morton: Status and Direction of Kernel Development. (PDF; 58 kB) (No longer available online.) July 9, 2008, formerly in the original ; accessed on October 4, 2010 (English): “I am hoping that btrfs will save us. But as far as I know it is not getting as much external development support as it warrants - Merging btrfs into mainline might help here "
  11. Kernel log: No unstable series, Linux 2008.7, dealing with security corrections. In: heise open. July 16, 2008, accessed October 4, 2010 .
  12. Theodore Ts'o : Re: reiser4 for 2.6.27-rc1. (No longer available online.) In: Linux Kernel Mailing List archive. KernelTrap, August 1, 2008, archived from the original on September 3, 2008 ; accessed on October 16, 2010 (English).
  13. Michael Kofler: btrfs - Linux file system of the future - Working with btrfs - Pro-Linux. In: pro-linux.de. August 26, 2010, accessed October 1, 2015 .
  14. Thorsten Leemhuis: Kernel-Log - What 3.9 brings. In: heise.de. Heise Zeitschriften Verlag GmbH & Co. KG, March 27, 2013, accessed on March 30, 2013 .
  15. Michael Larabel: Btrfs RAID 0/1/5/6/10 Five-Disk Benchmarks On Linux 4.1. phoronix, May 29, 2015, accessed May 29, 2015 .
  16. Ohad Rodeh: B-trees, Shadowing, and Clones. (PDF; 2.5 MB) 2008, accessed on October 16, 2010 (English).
  17. ^ Valerie Aurora: A short history of btrfs. In: LWN.net . July 22, 2009, accessed August 22, 2009 .
  18. Jonathan Corbet: Btrfs merged for 2.6.29. In: lwn.net. January 9, 2009, accessed October 4, 2010 .
  19. OpenSUSE 11.3: Product highlights. 1.1 Support for the new Btrfs file system. (No longer available online.) In: openSUSE Wiki. Archived from the original on July 26, 2010 ; accessed on July 17, 2010 (English): "openSUSE is the first distribution that lets you choose Btrfs in the installer."
  20. Oliver Diedrich: Oracle Linux with Btrfs. March 14, 2012, accessed March 14, 2012 .
  21. Mirko Dölle: MeeGo project chooses Btrfs as the standard file system. In: heise open. May 12, 2010, accessed October 4, 2010 .
  22. SUSE: Release Notes for SUSE Linux Enterprise Server 12. In: suse.com. April 16, 2014, accessed April 16, 2014 .
  23. Jörg Thoma: Innovations for Fedora 17 are certain. In: golem.de. December 13, 2011, accessed February 9, 2012 .
  24. Thorsten Leemhuis: Fedora 19: MariaDB instead of MySQL, but no Btrfs. In: heise.de. January 31, 2013, accessed January 31, 2013 .
  25. fedoraproject.org: 9.14.4. Create a Btrfs subvolume (English)
  26. Chris Murphy: Re: Btrfs in fedora 25-26. In: spinics.net. September 8, 2016, accessed September 23, 2017 .
  27. Ferdinand Thommes: Fedora 33 comes with Btrfs as the standard file system. In: linuxnews.de. July 16, 2020, accessed August 21, 2020 .
  28. golem.de: Red Hat ends support for Btrfs. In: golem.de. August 2, 2017, accessed August 1, 2018 .
  29. a b Martin Gerhard Loschwitz: Linux: File system Btrfs should be the default in Fedora 33. In: Heise online . August 25, 2020 . Retrieved August 25, 2020 .; Quote: "After the file system in RHEL 6 was delivered as" Technology Preview ", it was over again in Version 8: Btrfs was thrown out of the distribution. Current RHEL versions no longer provide any support for Btrfs. ... How the Red Hat team will deal with the Fedora decision in the future and how this will affect RHEL remains to be seen ”.
  30. Maharmstone: WinBtrfs. Contribute to maharmstone / btrfs development by creating an account on GitHub. December 18, 2018, accessed December 18, 2018 .
  31. ^ Edward Shishkin: Btrfs: broken file system design (was Unbound (?) Internal fragmentation in Btrfs). In: Linux Kernel Mailing List archive. June 18, 2010, accessed December 31, 2010 .
  32. ^ Edward Shishkin: Re: Balancing leaves when walking from top to down (what Btrfs: ...). In: linux-btrfs. June 30, 2010, accessed January 8, 2011 .
  33. FAQ. (No longer available online.) In: btrfs Wiki. January 8, 2011, archived from the original on July 20, 2011 ; accessed on January 8, 2011 .
  34. FAQ. (No longer available online.) In: btrfs Wiki. Archived from the original on October 6, 2015 ; accessed on November 17, 2015 (English).
  35. RHEL 7.4: Red Hat ends support for Btrfs - Golem.de . ( golem.de [accessed on August 4, 2017]).
  36. Red Hat turns away from Btrfs - Pro-Linux . In: Pro-Linux . ( pro-linux.de [accessed on August 4, 2017]).
  37. Log in to Red Hat IDP. Retrieved June 26, 2018 .
  38. Red Hat Acquires Permabit Assets, Eases Barriers to Cloud Portability with Data Deduplication Technology. Retrieved June 26, 2018 .