|  | 
 | 	BTRFS | 
 | 	===== | 
 |  | 
 | Btrfs is a new copy on write filesystem for Linux aimed at | 
 | implementing advanced features while focusing on fault tolerance, | 
 | repair and easy administration. Initially developed by Oracle, Btrfs | 
 | is licensed under the GPL and open for contribution from anyone. | 
 |  | 
 | Linux has a wealth of filesystems to choose from, but we are facing a | 
 | number of challenges with scaling to the large storage subsystems that | 
 | are becoming common in today's data centers. Filesystems need to scale | 
 | in their ability to address and manage large storage, and also in | 
 | their ability to detect, repair and tolerate errors in the data stored | 
 | on disk.  Btrfs is under heavy development, and is not suitable for | 
 | any uses other than benchmarking and review. The Btrfs disk format is | 
 | not yet finalized. | 
 |  | 
 | The main Btrfs features include: | 
 |  | 
 |     * 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 (not yet implemented) | 
 |     * Very fast offline filesystem check | 
 |     * Efficient incremental backup and FS mirroring (not yet implemented) | 
 |     * Online filesystem defragmentation | 
 |  | 
 |  | 
 |  | 
 | 	MAILING LIST | 
 | 	============ | 
 |  | 
 | There is a Btrfs mailing list hosted on vger.kernel.org. You can | 
 | find details on how to subscribe here: | 
 |  | 
 | http://vger.kernel.org/vger-lists.html#linux-btrfs | 
 |  | 
 | Mailing list archives are available from gmane: | 
 |  | 
 | http://dir.gmane.org/gmane.comp.file-systems.btrfs | 
 |  | 
 |  | 
 |  | 
 | 	IRC | 
 | 	=== | 
 |  | 
 | Discussion of Btrfs also occurs on the #btrfs channel of the Freenode | 
 | IRC network. | 
 |  | 
 |  | 
 |  | 
 | 	UTILITIES | 
 | 	========= | 
 |  | 
 | Userspace tools for creating and manipulating Btrfs file systems are | 
 | available from the git repository at the following location: | 
 |  | 
 |  http://git.kernel.org/?p=linux/kernel/git/mason/btrfs-progs.git | 
 |  git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git | 
 |  | 
 | These include the following tools: | 
 |  | 
 | mkfs.btrfs: create a filesystem | 
 |  | 
 | btrfsctl: control program to create snapshots and subvolumes: | 
 |  | 
 | 	mount /dev/sda2 /mnt | 
 | 	btrfsctl -s new_subvol_name /mnt | 
 | 	btrfsctl -s snapshot_of_default /mnt/default | 
 | 	btrfsctl -s snapshot_of_new_subvol /mnt/new_subvol_name | 
 | 	btrfsctl -s snapshot_of_a_snapshot /mnt/snapshot_of_new_subvol | 
 | 	ls /mnt | 
 | 	default snapshot_of_a_snapshot snapshot_of_new_subvol | 
 | 	new_subvol_name snapshot_of_default | 
 |  | 
 | 	Snapshots and subvolumes cannot be deleted right now, but you can | 
 | 	rm -rf all the files and directories inside them. | 
 |  | 
 | btrfsck: do a limited check of the FS extent trees. | 
 |  | 
 | btrfs-debug-tree: print all of the FS metadata in text form.  Example: | 
 |  | 
 | 	btrfs-debug-tree /dev/sda2 >& big_output_file |