Commit | Line | Data |
---|---|---|
709ac06a DW |
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 |