David Woodhouse | 709ac06 | 2009-01-07 09:54:24 -0500 | [diff] [blame] | 1 | |
| 2 | BTRFS |
| 3 | ===== |
| 4 | |
| 5 | Btrfs is a new copy on write filesystem for Linux aimed at |
| 6 | implementing advanced features while focusing on fault tolerance, |
| 7 | repair and easy administration. Initially developed by Oracle, Btrfs |
| 8 | is licensed under the GPL and open for contribution from anyone. |
| 9 | |
| 10 | Linux has a wealth of filesystems to choose from, but we are facing a |
| 11 | number of challenges with scaling to the large storage subsystems that |
| 12 | are becoming common in today's data centers. Filesystems need to scale |
| 13 | in their ability to address and manage large storage, and also in |
| 14 | their ability to detect, repair and tolerate errors in the data stored |
| 15 | on disk. Btrfs is under heavy development, and is not suitable for |
| 16 | any uses other than benchmarking and review. The Btrfs disk format is |
| 17 | not yet finalized. |
| 18 | |
| 19 | The main Btrfs features include: |
| 20 | |
| 21 | * Extent based file storage (2^64 max file size) |
| 22 | * Space efficient packing of small files |
| 23 | * Space efficient indexed directories |
| 24 | * Dynamic inode allocation |
| 25 | * Writable snapshots |
| 26 | * Subvolumes (separate internal filesystem roots) |
| 27 | * Object level mirroring and striping |
| 28 | * Checksums on data and metadata (multiple algorithms available) |
| 29 | * Compression |
| 30 | * Integrated multiple device support, with several raid algorithms |
| 31 | * Online filesystem check (not yet implemented) |
| 32 | * Very fast offline filesystem check |
| 33 | * Efficient incremental backup and FS mirroring (not yet implemented) |
| 34 | * Online filesystem defragmentation |
| 35 | |
| 36 | |
| 37 | |
| 38 | MAILING LIST |
| 39 | ============ |
| 40 | |
| 41 | There is a Btrfs mailing list hosted on vger.kernel.org. You can |
| 42 | find details on how to subscribe here: |
| 43 | |
| 44 | http://vger.kernel.org/vger-lists.html#linux-btrfs |
| 45 | |
| 46 | Mailing list archives are available from gmane: |
| 47 | |
| 48 | http://dir.gmane.org/gmane.comp.file-systems.btrfs |
| 49 | |
| 50 | |
| 51 | |
| 52 | IRC |
| 53 | === |
| 54 | |
| 55 | Discussion of Btrfs also occurs on the #btrfs channel of the Freenode |
| 56 | IRC network. |
| 57 | |
| 58 | |
| 59 | |
| 60 | UTILITIES |
| 61 | ========= |
| 62 | |
| 63 | Userspace tools for creating and manipulating Btrfs file systems are |
| 64 | available from the git repository at the following location: |
| 65 | |
| 66 | http://git.kernel.org/?p=linux/kernel/git/mason/btrfs-progs-unstable.git |
| 67 | git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git |
| 68 | |
| 69 | These include the following tools: |
| 70 | |
| 71 | mkfs.btrfs: create a filesystem |
| 72 | |
| 73 | btrfsctl: control program to create snapshots and subvolumes: |
| 74 | |
| 75 | mount /dev/sda2 /mnt |
| 76 | btrfsctl -s new_subvol_name /mnt |
| 77 | btrfsctl -s snapshot_of_default /mnt/default |
| 78 | btrfsctl -s snapshot_of_new_subvol /mnt/new_subvol_name |
| 79 | btrfsctl -s snapshot_of_a_snapshot /mnt/snapshot_of_new_subvol |
| 80 | ls /mnt |
| 81 | default snapshot_of_a_snapshot snapshot_of_new_subvol |
| 82 | new_subvol_name snapshot_of_default |
| 83 | |
| 84 | Snapshots and subvolumes cannot be deleted right now, but you can |
| 85 | rm -rf all the files and directories inside them. |
| 86 | |
| 87 | btrfsck: do a limited check of the FS extent trees. |
| 88 | |
| 89 | btrfs-debug-tree: print all of the FS metadata in text form. Example: |
| 90 | |
| 91 | btrfs-debug-tree /dev/sda2 >& big_output_file |