91 lines
		
	
	
	
		
			2.8 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
	
		
			2.8 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
 | 
						|
	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-unstable.git
 | 
						|
 git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.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
 |