diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/filesystems/btrfs.txt | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt new file mode 100644 index 000000000000..64087c34327f --- /dev/null +++ b/Documentation/filesystems/btrfs.txt | |||
@@ -0,0 +1,91 @@ | |||
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 | ||