| |
| 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 |