btrfs-progs: docs: update Gloassary

Bring up to date, reformat, remove some wiki references.

Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
David Sterba 2022-05-31 00:14:15 +02:00
parent 02b06b3e8d
commit 3b0fe46c08

View File

@ -14,7 +14,7 @@ allocator
balance balance
An operation that can be done to a btrfs filesystem, for example An operation that can be done to a btrfs filesystem, for example
through <code>btrfs fi balance /path</code> (see *btrfs-progs*). A through ``btrfs fi balance /path``. A
balance passes all data in the filesystem through the *allocator* balance passes all data in the filesystem through the *allocator*
again. It is primarily intended to rebalance the data in the filesystem again. It is primarily intended to rebalance the data in the filesystem
across the *devices* when a device is added or removed. A balance across the *devices* when a device is added or removed. A balance
@ -43,22 +43,21 @@ B-tree
*superblocks*, all of btrfs *metadata* is stored in one of several *superblocks*, all of btrfs *metadata* is stored in one of several
B-trees on disk. B-trees store key/item pairs. While the same code is B-trees on disk. B-trees store key/item pairs. While the same code is
used to implement all of the B-trees, there are a few different used to implement all of the B-trees, there are a few different
categories of B-tree. For reference, see [[Btrees]]. The name "btrfs" categories of B-tree. The name *btrfs*
refers to its use of B-trees. refers to its use of B-trees.
btrfsck btrfsck
Tool in *btrfs-progs* that checks a filesystem *offline* (ie. Tool in *btrfs-progs* that checks a filesystem *offline* (ie.
unmounted), and reports on any errors in the filesystem structures it unmounted), and reports on any errors in the filesystem structures it
finds. Does not ([[FAQ#When_will_Btrfs_have_a_fsck_like_tool.3F|yet]]) finds. By default the tool runs in read-only mode as fixing errors is
fix errors by default. Recently it got support to fix certain types of potentially dangerous. See also *scrub*.
corruption. See also *scrub*.
btrfs-progs btrfs-progs
User mode tools to manage btrfs-specific features. Maintained at User mode tools to manage btrfs-specific features. Maintained at
[http://git.kernel.org/?p=linux/kernel/git/mason/btrfs-progs.git;a=summary|btrfs-progs http://github.com/kdave/btrfs-progs.git . The main frontend to btrfs
gitweb]. The main frontend to btrfs features is the features is the standalone tool *btrfs*, although
<code>[[Manpage/btrfs|btrfs]]</code> program, although other tools such other tools such as *mkfs.btrfs* and *btrfstune* are also part of
as *mkfs.btrfs* and *btrfsck* are also part of btrfs-progs. btrfs-progs.
chunk chunk
A part of a *block group*. Chunks are either 1 GiB in size (for data) A part of a *block group*. Chunks are either 1 GiB in size (for data)
@ -66,7 +65,7 @@ chunk
chunk tree chunk tree
A layer that keeps information about mapping between physical and A layer that keeps information about mapping between physical and
logical block addresses. It's stored within the *System* group. logical block addresses. It's stored within the *system* group.
cleaner cleaner
Usually referred to in context of deleted subvolumes. It's a background Usually referred to in context of deleted subvolumes. It's a background
@ -84,7 +83,7 @@ copy-on-write
way. In COW filesystems, files tend to fragment as they are modified. way. In COW filesystems, files tend to fragment as they are modified.
Copy-on-write is also used in the implementation of *snapshots* and Copy-on-write is also used in the implementation of *snapshots* and
*reflink copies*. A copy-on-write filesystem is, in theory, *reflink copies*. A copy-on-write filesystem is, in theory,
*'always*' consistent, provided the underlying hardware supports 'always' consistent, provided the underlying hardware supports
*barriers*. *barriers*.
COW COW
@ -92,8 +91,7 @@ COW
default subvolume default subvolume
The *subvolume* in a btrfs filesystem which is mounted when mounting The *subvolume* in a btrfs filesystem which is mounted when mounting
the filesystem without using the <code>subvol=</code> [[Mount the filesystem without using the ``subvol=`` mount option.
options|mount option]].
device device
A Linux block device, e.g. a whole disk, partition, LVM logical volume, A Linux block device, e.g. a whole disk, partition, LVM logical volume,
@ -103,8 +101,8 @@ device
df df
A standard Unix tool for reporting the amount of space used and free in A standard Unix tool for reporting the amount of space used and free in
a filesystem. The standard tool does not give accurate results, but the a filesystem. The standard tool does not give accurate results, but the
<code>[[Manpage/btrfs|btrfs]]</code> command from *btrfs-progs* has *btrfs* command from *btrfs-progs* has
an implementation of df which shows space available in more detail. See an implementation of *df* which shows space available in more detail. See
the the
[[FAQ#Why_does_df_show_incorrect_free_space_for_my_RAID_volume.3F|FAQ]] [[FAQ#Why_does_df_show_incorrect_free_space_for_my_RAID_volume.3F|FAQ]]
for a more detailed explanation of btrfs free space accounting. for a more detailed explanation of btrfs free space accounting.
@ -113,10 +111,10 @@ DUP
A form of "*RAID*" which stores two copies of each piece of data on A form of "*RAID*" which stores two copies of each piece of data on
the same *device*. This is similar to *RAID-1*, and protects the same *device*. This is similar to *RAID-1*, and protects
against *block*-level errors on the device, but does not provide any against *block*-level errors on the device, but does not provide any
guarantees if the entire device fails. By default, btrfs uses *'DUP*' guarantees if the entire device fails. By default, btrfs uses *DUP*
profile for metadata on filesystems with one rotational device, profile for metadata on filesystems with one rotational device,
*'single*' profile on filesystems with one non-rotational device, and *single* profile on filesystems with one non-rotational device, and
*'RAID1*' profile on filesystems with more than one device. *RAID1* profile on filesystems with more than one device.
ENOSPC ENOSPC
Error code returned by the OS to a user program when the filesystem Error code returned by the OS to a user program when the filesystem
@ -126,7 +124,7 @@ ENOSPC
*COW* behaviour, btrfs can sometimes return ENOSPC when there is *COW* behaviour, btrfs can sometimes return ENOSPC when there is
apparently (in terms of *df*) a large amount of space free. This is apparently (in terms of *df*) a large amount of space free. This is
effectively a bug in btrfs, and (if it is repeatable), using the mount effectively a bug in btrfs, and (if it is repeatable), using the mount
option <code>[[Mount options|enospc_debug]]</code> may give a report option ``enospc_debug`` may give a report
that will help the btrfs developers. See the that will help the btrfs developers. See the
[[FAQ#if_your_device_is_large_.28.3E16GiB.29|FAQ entry]] on free space. [[FAQ#if_your_device_is_large_.28.3E16GiB.29|FAQ entry]] on free space.
@ -151,25 +149,23 @@ filefrag
A tool to show the number of extents in a file, and hence the amount of A tool to show the number of extents in a file, and hence the amount of
fragmentation in the file. It is usually part of the e2fsprogs package fragmentation in the file. It is usually part of the e2fsprogs package
on most Linux distributions. While initially developed for the ext2 on most Linux distributions. While initially developed for the ext2
filesystem, it works on Btrfs as well (but filesystem, it works on Btrfs as well. It uses the *FIEMAP* ioctl.
[http://thread.gmane.org/gmane.comp.file-systems.ocfs2.devel/8894/focus=8902
not really with compressed files]). It uses the *FIEMAP* ioctl.
free space cache free space cache
Btrfs doesn't track free space, it only tracks allocated space. Free Btrfs doesn't track free space, it only tracks allocated space. Free
space is by definition any holes in the allocated space, but finding space is by definition any holes in the allocated space, but finding
these holes is actually fairly I/O intensive. The free space cache these holes is actually fairly I/O intensive. The free space cache
stores a compressed representation of what is free. It is updated on stores a condensed representation of what is free. It is updated on
every *transaction* commit. every *transaction* commit.
fsync fsync
On Unix and Unix-like operating systems (of which Linux is the latter), On Unix and Unix-like operating systems (of which Linux is the latter),
the <code>fsync()</code> system call causes all buffered file the ``lfsync()`` system call causes all buffered file
descriptor related data changes to be flushed to the underlying block descriptor related data changes to be flushed to the underlying block
device. When a file is modified on a modern operating system the device. When a file is modified on a modern operating system the
changes are generally not written to the disk immediately but rather changes are generally not written to the disk immediately but rather
those changes are buffered in memory for reasons of performance, those changes are buffered in memory for reasons of performance,
calling <code>fsync()</code> causes any in-memory changes to be written calling ``fsync()`` causes any in-memory changes to be written
to disk. to disk.
generation generation
@ -178,23 +174,21 @@ generation
generation is stored in the block, so that blocks which are too new generation is stored in the block, so that blocks which are too new
(and hence possibly inconsistent) can be identified. (and hence possibly inconsistent) can be identified.
genid key
See *generation*.
Key
A fixed sized tuple used to identify and sort items in a *B-tree*. A fixed sized tuple used to identify and sort items in a *B-tree*.
The key is broken up into 3 parts: *'objectid*', *'type*', and The key is broken up into 3 parts: *objectid*, *type*, and
*'offset*'. The *'type*' field indicates how each of the other two *offset*. The *type* field indicates how each of the other two
fields should be used, and what to expect to find in the item. For fields should be used, and what to expect to find in the item.
reference, see [[Btree Keys]].
Item item
A variable sized structure stored in B-tree leaves. Items hold A variable sized structure stored in B-tree leaves. Items hold
different types of data depending on key type. For reference, see different types of data depending on key type.
[[Btree Items]].
log tree log tree
A b-tree that temporarily tracks ongoing metadata updates until a full
transaction commit is done. It's a performance optimization of
``fsync``. The log tracked in the tree are replayed if the filesystem
is not unmounted cleanly.
metadata metadata
Data about data. In btrfs, this includes all of the internal data Data about data. In btrfs, this includes all of the internal data
@ -203,8 +197,7 @@ metadata
*extents*. All btrfs metadata is stored in *B-trees*. *extents*. All btrfs metadata is stored in *B-trees*.
mkfs.btrfs mkfs.btrfs
The tool (from *btrfs-progs*) to create a btrfs filesystem, see The tool (from *btrfs-progs*) to create a btrfs filesystem.
[[mkfs.btrfs]].
offline offline
A filesystem which is not mounted is offline. Some tools (e.g. A filesystem which is not mounted is offline. Some tools (e.g.
@ -215,7 +208,8 @@ online
work on online filesystems. Compare *offline*. work on online filesystems. Compare *offline*.
orphan orphan
(file) A file that's still in use (opened by a running process) but all
directory entries of that file have been removed.
RAID RAID
A class of different methods for writing some additional redundant data A class of different methods for writing some additional redundant data
@ -224,8 +218,7 @@ RAID
*RAID-1*, *RAID-5*, *RAID-6*, *RAID-10*, *DUP* and *RAID-1*, *RAID-5*, *RAID-6*, *RAID-10*, *DUP* and
*single*. Traditional RAID methods operate across multiple devices of *single*. Traditional RAID methods operate across multiple devices of
equal size, whereas btrfs's RAID implementation works inside *block equal size, whereas btrfs's RAID implementation works inside *block
groups*. See the [[SysadminGuide#Data_usage_and_allocation|Sysadmin's groups*.
Guide]] for the details.
RAID-0 RAID-0
A form of *RAID* which provides no form of error recovery, but A form of *RAID* which provides no form of error recovery, but
@ -241,14 +234,12 @@ RAID-1
RAID-5 RAID-5
A form of *RAID* which stripes a single copy of data across multiple A form of *RAID* which stripes a single copy of data across multiple
*devices*, including one device's worth of additional parity data. *devices*, including one device's worth of additional parity data.
Can be used to recover from a single device failure. Not yet Can be used to recover from a single device failure.
implemented in btrfs.
RAID-6 RAID-6
A form of *RAID* which stripes a single copy of data across multiple A form of *RAID* which stripes a single copy of data across multiple
*devices*, including two device's worth of additional parity data. Can *devices*, including two device's worth of additional parity data. Can
be used to recover from the failure of two devices. Not yet implemented be used to recover from the failure of two devices.
in btrfs.
RAID-10 RAID-10
A form of *RAID* which stores two complete copies of each piece of A form of *RAID* which stores two complete copies of each piece of
@ -256,22 +247,17 @@ RAID-10
performance. performance.
reflink reflink
Parameter to <code>cp</code>, allowing it to take advantage of the Parameter to ``cp``, allowing it to take advantage of the
capabilities of *COW*-capable filesystems. Allows for files to be capabilities of *COW*-capable filesystems. Allows for files to be
copied and modified, with only the modifications taking up additional copied and modified, with only the modifications taking up additional
storage space. May be considered as *snapshots* on a single file rather storage space. May be considered as *snapshots* on a single file rather
than a *subvolume*. Example: <code>cp --reflink file1 file2</code> than a *subvolume*. Example: ``cp --reflink file1 file2``
relocation relocation
The process of moving block groups within the filesystem while The process of moving block groups within the filesystem while
maintaining full filesystem integrity and consistency. This maintaining full filesystem integrity and consistency. This
functionality is underlying *balance* and *device* removing features. functionality is underlying *balance* and *device* removing features.
restriper
A development name for the rewritten *balance* code implemented in the
v3.3 kernel. Allows to change RAID profiles of the filesystem,
*online*.
scrub scrub
An *online* filesystem checking tool. Reads all the data and metadata An *online* filesystem checking tool. Reads all the data and metadata
on the filesystem, and uses *checksums* and the duplicate copies from on the filesystem, and uses *checksums* and the duplicate copies from
@ -284,8 +270,7 @@ seed device
devices are persistent across reboots. The original device remains devices are persistent across reboots. The original device remains
unchanged and can be removed at any time (after Btrfs has been unchanged and can be removed at any time (after Btrfs has been
instructed to copy over all missing blocks). Multiple read/write file instructed to copy over all missing blocks). Multiple read/write file
systems can be built from the same seed. See [[Seed-device]] for an systems can be built from the same seed.
example.
single single
A "*RAID*" level in btrfs, storing a single copy of each piece of data. A "*RAID*" level in btrfs, storing a single copy of each piece of data.
@ -340,7 +325,7 @@ transaction
filesystem at any one time. filesystem at any one time.
transid transid
An alternative term for *genid*. See *generation*. An alternative term for *generation*.
writeback writeback
*Writeback* in the context of the Linux kernel can be defined as the *Writeback* in the context of the Linux kernel can be defined as the