btrfs-progs: docs: annual typo, clarity, & grammar review & fixups

Signed-off-by: Nicholas D Steeves <nsteeves@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.com>
master
Nicholas D Steeves 2017-12-07 21:26:09 +01:00 committed by David Sterba
parent 1f36022071
commit 8c5db79d0f
21 changed files with 125 additions and 111 deletions

View File

@ -21,8 +21,8 @@ filesystem.
The balance operation is cancellable by the user. The on-disk state of the The balance operation is cancellable by the user. The on-disk state of the
filesystem is always consistent so an unexpected interruption (eg. system crash, filesystem is always consistent so an unexpected interruption (eg. system crash,
reboot) does not corrupt the filesystem. The progress of the balance operation reboot) does not corrupt the filesystem. The progress of the balance operation
is temporarily stored and will be resumed upon mount, unless the mount option is temporarily stored as an internal state and will be resumed upon mount,
'skip_balance' is specified. unless the mount option 'skip_balance' is specified.
WARNING: running balance without filters will take a lot of time as it basically WARNING: running balance without filters will take a lot of time as it basically
rewrites the entire filesystem and needs to update all block pointers. rewrites the entire filesystem and needs to update all block pointers.
@ -201,10 +201,11 @@ ENOSPC
------ ------
The way balance operates, it usually needs to temporarily create a new block The way balance operates, it usually needs to temporarily create a new block
group and move the old data there. For that it needs work space, otherwise group and move the old data there, before the old block group can be removed.
it fails for ENOSPC reasons. For that it needs the work space, otherwise it fails for ENOSPC reasons.
This is not the same ENOSPC as if the free space is exhausted. This refers to This is not the same ENOSPC as if the free space is exhausted. This refers to
the space on the level of block groups. the space on the level of block groups, which are bigger parts of the filesytem
that contain many file extents.
The free work space can be calculated from the output of the *btrfs filesystem show* The free work space can be calculated from the output of the *btrfs filesystem show*
command: command:
@ -227,7 +228,7 @@ space. After that it might be possible to run other filters.
Conversion to profiles based on striping (RAID0, RAID5/6) require the work Conversion to profiles based on striping (RAID0, RAID5/6) require the work
space on each device. An interrupted balance may leave partially filled block space on each device. An interrupted balance may leave partially filled block
groups that might consume the work space. groups that consume the work space.
EXAMPLES EXAMPLES
-------- --------
@ -238,7 +239,7 @@ can be found in section 'TYPICAL USECASES' of `btrfs-device`(8).
MAKING BLOCK GROUP LAYOUT MORE COMPACT MAKING BLOCK GROUP LAYOUT MORE COMPACT
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The layout of block groups is not normally visible, most tools report only The layout of block groups is not normally visible; most tools report only
summarized numbers of free or used space, but there are still some hints summarized numbers of free or used space, but there are still some hints
provided. provided.
@ -298,7 +299,7 @@ data to the remaining blockgroups, ie. the 6GiB are now free of filesystem
structures, and can be reused for new data or metadata block groups. structures, and can be reused for new data or metadata block groups.
We can do a similar exercise with the metadata block groups, but this should We can do a similar exercise with the metadata block groups, but this should
not be typically necessary, unless the used/total ration is really off. Here not typically be necessary, unless the used/total ratio is really off. Here
the ratio is roughly 50% but the difference as an absolute number is "a few the ratio is roughly 50% but the difference as an absolute number is "a few
gigabytes", which can be considered normal for a workload with snapshots or gigabytes", which can be considered normal for a workload with snapshots or
reflinks updated frequently. reflinks updated frequently.

View File

@ -22,10 +22,10 @@ by the option '--readonly'.
*btrfsck* is an alias of *btrfs check* command and is now deprecated. *btrfsck* is an alias of *btrfs check* command and is now deprecated.
WARNING: Do not use '--repair' unless you are advised to by a developer, an WARNING: Do not use '--repair' unless you are advised to do so by a developer
experienced user or accept the fact that 'fsck' cannot possibly fix all sorts or an experienced user, and then only after having accepted that no 'fsck'
of damage that could happen to a filesystem because of software and hardware successfully repair all types of filesystem corruption. Eg. some other software
bugs. or hardware bugs can fatally damage a volume.
The structural integrity check verifies if internal filesystem objects or The structural integrity check verifies if internal filesystem objects or
data structures satisfy the constraints, point to the right objects or are data structures satisfy the constraints, point to the right objects or are
@ -49,9 +49,8 @@ This can be combined with '--super' if some of the superblocks are damaged.
--check-data-csum:: --check-data-csum::
verify checksums of data blocks verify checksums of data blocks
+ +
This expects that the filesystem is otherwise This expects that the filesystem is otherwise OK, and is basically and offline
OK, so this is basically and offline 'scrub' but does not repair data from 'scrub' but does not repair data from spare copies.
spare copies.
--chunk-root <bytenr>:: --chunk-root <bytenr>::
use the given offset 'bytenr' for the chunk tree root use the given offset 'bytenr' for the chunk tree root
@ -88,8 +87,8 @@ the free space cache for block groups that are modified while the filesystem is
mounted with that option. Thus, using this option with 'v1' makes it possible mounted with that option. Thus, using this option with 'v1' makes it possible
to actually clear the entire free space cache. to actually clear the entire free space cache.
+ +
For free space cache 'v2', the 'clear_cache' kernel mount option does destroy For free space cache 'v2', the 'clear_cache' kernel mount option destroys
the entire free space cache. This option with 'v2' provides an alternative the entire free space cache. This option, with 'v2' provides an alternative
method of clearing the free space cache that doesn't require mounting the method of clearing the free space cache that doesn't require mounting the
filesystem. filesystem.

View File

@ -19,7 +19,7 @@ Supported filesystems:
* ext2, ext3, ext4 -- original feature, always built in * ext2, ext3, ext4 -- original feature, always built in
* reiserfs -- since version 4.13, opptinally built, requires libreiserfscore 3.6.27 * reiserfs -- since version 4.13, optionally built, requires libreiserfscore 3.6.27
The list of supported source filesystem by a given binary is listed at the end The list of supported source filesystem by a given binary is listed at the end
of help (option '--help'). of help (option '--help').
@ -32,13 +32,14 @@ The conversion utilizes free space of the original filesystem. The exact
estimate of the required space cannot be foretold. The final btrfs metadata estimate of the required space cannot be foretold. The final btrfs metadata
might occupy several gigabytes on a hundreds-gigabyte filesystem. might occupy several gigabytes on a hundreds-gigabyte filesystem.
If you decide not to rollback anymore, it is recommended to perform a few more If the ability to rollback is no longer important, the it is recommended to
steps to transform the btrfs filesystem to a more compact layout. The perform a few more steps to transition the btrfs filesystem to a more compact
conversion inherits the original data block fragmentation and the metadata layout. This is because the conversion inherits the original data blocks'
blocks are bound to the original free space layout. fragmentation, and also because the metadata blocks are bound to the original
free space layout.
Due to different constraints, it's possible to convert only filesystem that Due to different constraints, it is only possible to convert filesystems that
have supported data block size (ie. the same that would be valid for have a supported data block size (ie. the same that would be valid for
'mkfs.btrfs'). This is typically the system page size (4KiB on x86_64 'mkfs.btrfs'). This is typically the system page size (4KiB on x86_64
machines). machines).
@ -52,8 +53,8 @@ metadata of the original filesystem will be removed:
# btrfs subvolume delete /mnt/ext2_saved # btrfs subvolume delete /mnt/ext2_saved
At this point it's not possible to do rollback. The filesystem is usable but may At this point it is not possible to do a rollback. The filesystem is usable but
be impacted by the fragmentation inherited from the original filesystem. may be impacted by the fragmentation inherited from the original filesystem.
**MAKE FILE DATA MORE CONTIGUOUS** **MAKE FILE DATA MORE CONTIGUOUS**
@ -102,7 +103,7 @@ set filesystem label during conversion
-L|--copy-label:: -L|--copy-label::
use label from the converted filesystem use label from the converted filesystem
-O|--features <feature1>[,<feature2>...]:: -O|--features <feature1>[,<feature2>...]::
A list of filesystem features turned on at conversion time. Not all features A list of filesystem features enabled the at time of conversion. Not all features
are supported by old kernels. To disable a feature, prefix it with '^'. are supported by old kernels. To disable a feature, prefix it with '^'.
Description of the features is in section 'FILESYSTEM FEATURES' of Description of the features is in section 'FILESYSTEM FEATURES' of
`mkfs.btrfs`(8). `mkfs.btrfs`(8).

View File

@ -124,7 +124,7 @@ statistics and the meaning.
Print the stats and reset the values to zero afterwards. Print the stats and reset the values to zero afterwards.
-c|--check:::: -c|--check::::
Check if the stats are all zeros and return 0 it it is so. Set bit 6 of the Check if the stats are all zeros and return 0 it this is so. Set bit 6 of the
return code if any of the statistics is no-zero. The error values is 65 if return code if any of the statistics is no-zero. The error values is 65 if
reading stats from at least one device failed, otherwise it's 64. reading stats from at least one device failed, otherwise it's 64.
@ -190,8 +190,8 @@ there's enough workspace for the conversion process, we can do:
$ btrfs balance start -mconvert=raid1 /mnt $ btrfs balance start -mconvert=raid1 /mnt
This operation can take a while as the metadata have to be moved and all block This operation can take a while, because al metadata have to be moved and all
pointers updated. Depending on the physical locations of the old and new block pointers updated. Depending on the physical locations of the old and new
blocks, the disk seeking is the key factor affecting performance. blocks, the disk seeking is the key factor affecting performance.
You'll note that the system block group has been also converted to RAID1, this You'll note that the system block group has been also converted to RAID1, this

View File

@ -3,7 +3,7 @@ btrfs-filesystem(8)
NAME NAME
---- ----
btrfs-filesystem - command group of btrfs that usually work on the whole filesystem btrfs-filesystem - command group othat primarily does work on the whole filesystems
SYNOPSIS SYNOPSIS
-------- --------
@ -53,8 +53,9 @@ not total size of filesystem.
when the filesystem is full. Its 'total' size is dynamic based on the when the filesystem is full. Its 'total' size is dynamic based on the
filesystem size, usually not larger than 512MiB, 'used' may fluctuate. filesystem size, usually not larger than 512MiB, 'used' may fluctuate.
+ +
The global block reserve is accounted within Metadata. In case the filesystem The GlobalReserve is a portion of Metadata. In case the filesystem metadata is
metadata are exhausted, 'GlobalReserve/total + Metadata/used = Metadata/total'. exhausted, 'GlobalReserve/total + Metadata/used = Metadata/total'. Otherwise
there appears to be some unused space of Metadata.
+ +
`Options` `Options`
+ +
@ -93,10 +94,10 @@ You can also turn on compression in defragment operations.
+ +
WARNING: Defragmenting with Linux kernel versions < 3.9 or ≥ 3.14-rc2 as well as WARNING: Defragmenting with Linux kernel versions < 3.9 or ≥ 3.14-rc2 as well as
with Linux stable kernel versions ≥ 3.10.31, ≥ 3.12.12 or ≥ 3.13.4 will break up with Linux stable kernel versions ≥ 3.10.31, ≥ 3.12.12 or ≥ 3.13.4 will break up
the ref-links of COW data (for example files copied with `cp --reflink`, the reflinks of COW data (for example files copied with `cp --reflink`,
snapshots or de-duplicated data). snapshots or de-duplicated data).
This may cause considerable increase of space usage depending on the broken up This may cause considerable increase of space usage depending on the broken up
ref-links. reflinks.
+ +
NOTE: Directory arguments without '-r' do not defragment files recursively but will NOTE: Directory arguments without '-r' do not defragment files recursively but will
defragment certain internal trees (extent tree and the subvolume tree). This has been defragment certain internal trees (extent tree and the subvolume tree). This has been
@ -174,7 +175,7 @@ show sizes in TiB, or TB with --si.
Show or update the label of a filesystem. This works on a mounted filesystem or Show or update the label of a filesystem. This works on a mounted filesystem or
a filesystem image. a filesystem image.
+ +
The 'newlabel' argument is optional. Current label is printed if the the argument The 'newlabel' argument is optional. Current label is printed if the argument
is omitted. is omitted.
+ +
NOTE: the maximum allowable length shall be less than 256 chars and must not contain NOTE: the maximum allowable length shall be less than 256 chars and must not contain
@ -359,9 +360,9 @@ specify the devid though.
*$ btrfs filesystem resize 1:max /path* *$ btrfs filesystem resize 1:max /path*
Let's assume that devid 1 exists, the filesystem does not occupy the whole block Let's assume that devid 1 exists and the filesystem does not occupy the whole
device, eg. it has been enlarged and we wan the grow the filesystem. Simply using block device, eg. it has been enlarged and we wan the grow the filesystem. By
'max' as size we will achieve that. simply using 'max' as size we will achieve that.
NOTE: There are two ways to minimize the filesystem on a given device. The NOTE: There are two ways to minimize the filesystem on a given device. The
*btrfs inspect-internal min-dev-size* command, or iteratively shrink in steps. *btrfs inspect-internal min-dev-size* command, or iteratively shrink in steps.

View File

@ -17,7 +17,7 @@ root tree's objectid, generation, level.
OPTIONS OPTIONS
------- -------
-a:: -a::
Search through all the metadata extents, even the root is already found. Search through all metadata extents, even the root has been already found.
-g <generation>:: -g <generation>::
Filter root tree by it's original transaction id, tree root's generation in default. Filter root tree by it's original transaction id, tree root's generation in default.
-o <objectid>:: -o <objectid>::

View File

@ -136,16 +136,16 @@ resize operation, this may be useful before executing the actual resize operatio
specify the device 'id' to query, default is 1 if this option is not used specify the device 'id' to query, default is 1 if this option is not used
*rootid* <path>:: *rootid* <path>::
for a given file or directory, return the containing tree root id, for a for a given file or directory, return the containing tree root id, but for a
subvolume itself return it's own tree id (ie. subvol id) subvolume itself return its own tree id (ie. subvol id)
+ +
NOTE: The result is undefined for the so-called empty subvolumes (identified by NOTE: The result is undefined for the so-called empty subvolumes (identified by
inode number 2), but such subvolume does not contain any files anyway inode number 2), but such a subvolume does not contain any files anyway
*subvolid-resolve* <subvolid> <path>:: *subvolid-resolve* <subvolid> <path>::
(needs root privileges) (needs root privileges)
+ +
resolve the absolute path of a the subvolume id 'subvolid' resolve the absolute path of the subvolume id 'subvolid'
*tree-stats* [options] <device>:: *tree-stats* [options] <device>::
(needs root privileges) (needs root privileges)

View File

@ -58,17 +58,17 @@ location.
+ +
WARNING: Defragmenting with Linux kernel versions < 3.9 or ≥ 3.14-rc2 as WARNING: Defragmenting with Linux kernel versions < 3.9 or ≥ 3.14-rc2 as
well as with Linux stable kernel versions ≥ 3.10.31, ≥ 3.12.12 or well as with Linux stable kernel versions ≥ 3.10.31, ≥ 3.12.12 or
≥ 3.13.4 will break up the ref-links of CoW data (for example files ≥ 3.13.4 will break up the reflinks of COW data (for example files
copied with `cp --reflink`, snapshots or de-duplicated data). copied with `cp --reflink`, snapshots or de-duplicated data).
This may cause considerable increase of space usage depending on the This may cause considerable increase of space usage depending on the
broken up ref-links. broken up reflinks.
*barrier*:: *barrier*::
*nobarrier*:: *nobarrier*::
(default: on) (default: on)
+ +
Ensure that all IO write operations make it through the device cache and are stored Ensure that all IO write operations make it through the device cache and are stored
permanently when the filesystem is at it's consistency checkpoint. This permanently when the filesystem is at its consistency checkpoint. This
typically means that a flush command is sent to the device that will typically means that a flush command is sent to the device that will
synchronize all pending data and ordinary metadata blocks, then writes the synchronize all pending data and ordinary metadata blocks, then writes the
superblock and issues another flush. superblock and issues another flush.
@ -129,7 +129,7 @@ seconds (5 minutes). Use with care.
Control BTRFS file data compression. Type may be specified as 'zlib', Control BTRFS file data compression. Type may be specified as 'zlib',
'lzo', 'zstd' or 'no' (for no compression, used for remounting). If no type 'lzo', 'zstd' or 'no' (for no compression, used for remounting). If no type
is specified, 'zlib' is used. If 'compress-force' is specified, is specified, 'zlib' is used. If 'compress-force' is specified,
the compression will always be attempted, but the data may end up uncompressed then compression will always be attempted, but the data may end up uncompressed
if the compression would make them larger. if the compression would make them larger.
+ +
Otherwise some simple heuristics are applied to detect an incompressible file. Otherwise some simple heuristics are applied to detect an incompressible file.
@ -205,12 +205,20 @@ system at that point.
*nodiscard*:: *nodiscard*::
(default: off) (default: off)
+ +
Enable discarding of freed file blocks using the TRIM operation. This is useful Enable discarding of freed file blocks. This is useful for SSD devices, thinly
for SSD devices, thinly provisioned LUNs or virtual machine images where the provisioned LUNs, or virtual machine images; however, every storage layer must
backing device understands the operation. Depending on support of the support discard for it to work. if the backing device does not support
underlying device, the operation may severely hurt performance in case the TRIM asynchronous queued TRIM, then this operation can severly degrade performance,
operation is synchronous (eg. with SATA devices up to revision 3.0). because a synchronous TRIM operation will be attempted instead. Queued TRIM
+ requires newer than SATA revision 3.1 chipsets and devices.
If it is not necessary to immediately discard freed blocks, then the `fstrim`
tool can be used to discard all free blocks in a batch. Scheduling a TRIM
during a period of low system activity will prevent latent interference with
the performance of other operations. Also, a device may ignore the TRIM command
if the range is too small, so running a batch discard has a greater probability
of actually discarding the blocks.
If discarding is not necessary to be done at the block freeing time, there's If discarding is not necessary to be done at the block freeing time, there's
`fstrim`(8) tool that lets the filesystem discard all free blocks in a batch, `fstrim`(8) tool that lets the filesystem discard all free blocks in a batch,
possibly not much interfering with other operations. Also, the the device may possibly not much interfering with other operations. Also, the the device may
@ -643,8 +651,8 @@ long as this attribute is set (obviously the exception is unsetting the attribut
'O_DSYNC' 'O_DSYNC'
*X*:: *X*::
'no compression', permanently turn off compression on the given file, other 'no compression', permanently turn off compression on the given file. Any
compression mount options will not affect that compression mount options will not affect this file.
+ +
When set on a directory, all newly created files will inherit this attribute. When set on a directory, all newly created files will inherit this attribute.

View File

@ -12,7 +12,7 @@ SYNOPSIS
DESCRIPTION DESCRIPTION
----------- -----------
*btrfs-map-logical* can be used to find out what the physical offsets are *btrfs-map-logical* can be used to find out what the physical offsets are
on the mirrors, the result is dumped into stdout in default. on the mirrors, the result is dumped to stdout by default.
Mainly used for debug purpose. Mainly used for debug purpose.

View File

@ -17,7 +17,7 @@ NOTE: To use qgroup you need to enable quota first using *btrfs quota enable*
command. command.
WARNING: Qgroup is not stable yet and will impact performance in current mainline WARNING: Qgroup is not stable yet and will impact performance in current mainline
kernel (v3.14 so far). kernel (v4.14).
QGROUP QGROUP
------ ------
@ -56,13 +56,13 @@ Explicitly ask not to do a rescan.
Create a subvolume quota group. Create a subvolume quota group.
+ +
For the '0/<subvolume id>' qgroup, a qgroup can be created even before the For the '0/<subvolume id>' qgroup, a qgroup can be created even before the
subvolume created. subvolume is created.
*destroy* <qgroupid> <path>:: *destroy* <qgroupid> <path>::
Destroy a qgroup. Destroy a qgroup.
+ +
If a qgroup is no isolated,which means it is a parent or child qgroup, it If a qgroup is not isolated, meaning it is a parent or child qgroup, then it
can't be destroyed. can only be destroyed after the relationship is removed.
*limit* [options] <size>|none [<qgroupid>] <path>:: *limit* [options] <size>|none [<qgroupid>] <path>::
Limit the size of a qgroup to <size> or no limit in the btrfs filesystem Limit the size of a qgroup to <size> or no limit in the btrfs filesystem

View File

@ -15,24 +15,24 @@ The commands under *btrfs quota* are used to affect the global status of quotas
of a btrfs filesystem. The quota groups (qgroups) are managed by the subcommand of a btrfs filesystem. The quota groups (qgroups) are managed by the subcommand
`btrfs qgroup`(8). `btrfs qgroup`(8).
NOTE: the qgroups are different than the traditional user quotas and designed NOTE: Qgroups are different than the traditional user quotas and designed
to track shared and exclusive data per-subvolume. Please refer to the section to track shared and exclusive data per-subvolume. Please refer to the section
'HIERARCHICAL QUOTA GROUP CONCEPTS' for a detailed description. 'HIERARCHICAL QUOTA GROUP CONCEPTS' for a detailed description.
PERFORMANCE IMPLICATIONS PERFORMANCE IMPLICATIONS
~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~
When the quotas are turned on, they affect all extent processing, taking a When quotas are activated, they affect all extent processing, which takes a
performance hit. It is not recommended to turn on qgroups unless the user performance hit. Activation of qgroups is not recommended unless the user
intends to actually use them. intends to actually use them.
STABILITY STATUS STABILITY STATUS
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
The qgroup implementation has turned out to be quite difficult as it affects The qgroup implementation has turned out to be quite difficult as it affects
the core of the filesystem operation. The users have hit various corner cases the core of the filesystem operation. Qgroup users have hit various corner cases
over time, eg. wrong accounting or system instability. The situation is over time, such as incorrect accounting or system instability. The situation is
gradually improving but currently (4.7) there are still issues found and fixed. gradually improving and issues found and fixed.
HIERARCHICAL QUOTA GROUP CONCEPTS HIERARCHICAL QUOTA GROUP CONCEPTS
--------------------------------- ---------------------------------
@ -52,7 +52,7 @@ On the other hand, the traditional approach has only a poor solution to
restrict directories. restrict directories.
At installation time, the harddisk can be partitioned so that every directory At installation time, the harddisk can be partitioned so that every directory
(eg. /usr, /var/, ...) that needs a limit gets its own partition. The obvious (eg. /usr, /var/, ...) that needs a limit gets its own partition. The obvious
problem is, that those limits cannot be changed without a reinstallation. The problem is that those limits cannot be changed without a reinstallation. The
btrfs subvolume feature builds a bridge. Subvolumes correspond in many ways to btrfs subvolume feature builds a bridge. Subvolumes correspond in many ways to
partitions, as every subvolume looks like its own filesystem. With subvolume partitions, as every subvolume looks like its own filesystem. With subvolume
quota, it is now possible to restrict each subvolume like a partition, but keep quota, it is now possible to restrict each subvolume like a partition, but keep
@ -181,7 +181,7 @@ own way how to integrate qgroups.
`Replacement for partitions` `Replacement for partitions`
The simplest use case is to use qgroups as simple replacement for partitions. The simplest use case is to use qgroups as simple replacement for partitions.
Btrfs takes the disk as a whole, and /, /usr, /var etc. are created as Btrfs takes the disk as a whole, and /, /usr, /var, etc. are created as
subvolumes. As each subvolume gets it own qgroup automatically, they can subvolumes. As each subvolume gets it own qgroup automatically, they can
simply be restricted. No hierarchy is needed for that. simply be restricted. No hierarchy is needed for that.

View File

@ -81,7 +81,7 @@ should be protected from access by users until the receive operation
has completed and the subvolume is set to read-only. has completed and the subvolume is set to read-only.
Additionally, receive does not currently do a very good job of validating Additionally, receive does not currently do a very good job of validating
that an incremental send streams actually makes sense, and it is thus that an incremental send stream actually makes sense, and it is thus
possible for a specially crafted send stream to create a subvolume with possible for a specially crafted send stream to create a subvolume with
reflinks to arbitrary files in the same filesystem. Because of this, reflinks to arbitrary files in the same filesystem. Because of this,
users are advised to not use *btrfs receive* on send streams from users are advised to not use *btrfs receive* on send streams from

View File

@ -34,7 +34,7 @@ from the system, you have to use the devid parameter format.
The <targetdev> needs to be same size or larger than the <srcdev>. The <targetdev> needs to be same size or larger than the <srcdev>.
+ +
NOTE: the filesystem has to be resized to fully take advantage of a NOTE: the filesystem has to be resized to fully take advantage of a
larger target device, this can be achieved with larger target device; this can be achieved with
`btrfs filesystem resize <devid>:max /path` `btrfs filesystem resize <devid>:max /path`
+ +
`Options` `Options`
@ -45,10 +45,10 @@ only read from <srcdev> if no other zero-defect mirror exists.
slow) slow)
-f:::: -f::::
force using and overwriting <targetdev> even if it looks like force using and overwriting <targetdev> even if it looks like
containing a valid btrfs filesystem. it contains a valid btrfs filesystem.
+ +
A valid filesystem is assumed if a btrfs superblock is found which contains a A valid filesystem is assumed if a btrfs superblock is found which contains a
correct checksum. Devices which are currently mounted are correct checksum. Devices that are currently mounted are
never allowed to be used as the <targetdev>. never allowed to be used as the <targetdev>.
+ +
-B:::: -B::::

View File

@ -67,8 +67,8 @@ This command will clear the filesystem log tree. This may fix a specific
set of problem when the filesystem mount fails due to the log replay. See below set of problem when the filesystem mount fails due to the log replay. See below
for sample stacktraces that may show up in system log. for sample stacktraces that may show up in system log.
+ +
The common case where this happens has been fixed a long time ago, The common case where this happens was fixed a long time ago,
so it is unlikely that you will see this particular problem, but the utility is so it is unlikely that you will see this particular problem, but the command is
kept around. kept around.
+ +
NOTE: clearing the log may lead to loss of changes that were made since the NOTE: clearing the log may lead to loss of changes that were made since the

View File

@ -21,8 +21,8 @@ structural damage in the filesystem.
The user is supposed to run it manually or via a periodic system service. The The user is supposed to run it manually or via a periodic system service. The
recommended period is a month but could be less. The estimated device bandwidth recommended period is a month but could be less. The estimated device bandwidth
utilization is about 80% on an idle filesystem. The IO priority class is by utilization is about 80% on an idle filesystem. The IO priority class is by
default 'idle' so background scrub should not interfere with normal filesystem default 'idle' so background scrub should not significantly interfere with
operation significantly. normal filesystem operation.
The scrubbing status is recorded in '/var/lib/btrfs/' in textual files named The scrubbing status is recorded in '/var/lib/btrfs/' in textual files named
'scrub.status.UUID' for a filesystem identified by the given UUID. (Progress 'scrub.status.UUID' for a filesystem identified by the given UUID. (Progress

View File

@ -29,12 +29,13 @@ are available on both the sending and receiving side can be used to reduce the
amount of information that has to be sent to reconstruct the sent snapshot on a amount of information that has to be sent to reconstruct the sent snapshot on a
different filesystem. different filesystem.
It is allowed to omit the '-p <parent>' option when '-c <clone-src>' options The '-p <parent>' option can be omitted when '-c <clone-src>' options are
are given, in which case *btrfs send* will determine a suitable parent among the given, in which case *btrfs send* will determine a suitable parent from among
clone sources itself. the clone sources.
You must not specify clone sources unless you guarantee that these snapshots You must not specify clone sources unless you guarantee that these snapshots
are exactly in the same state on both sides, the sender and the receiver. are exactly in the same state on both sides--both for the sender and the
receiver.
`Options` `Options`
@ -53,7 +54,7 @@ send in 'NO_FILE_DATA' mode
+ +
The output stream does not contain any file The output stream does not contain any file
data and thus cannot be used to transfer changes. This mode is faster and data and thus cannot be used to transfer changes. This mode is faster and
useful to show the differences in metadata. is useful to show the differences in metadata.
-v|--verbose:: -v|--verbose::
enable verbose output, print generated commands in a readable form, (each enable verbose output, print generated commands in a readable form, (each

View File

@ -17,7 +17,7 @@ snapshots.
SUBVOLUME AND SNAPSHOT SUBVOLUME AND SNAPSHOT
---------------------- ----------------------
A subvolume is a part of filesystem with its own and independent A subvolume is a part of filesystem with its own independent
file/directory hierarchy. Subvolumes can share file extents. A snapshot is file/directory hierarchy. Subvolumes can share file extents. A snapshot is
also subvolume, but with a given initial content of the original subvolume. also subvolume, but with a given initial content of the original subvolume.
@ -66,7 +66,7 @@ If <subvolume> is not a subvolume, btrfs returns an error but continues if
there are more arguments to process. there are more arguments to process.
+ +
The corresponding directory is removed instantly but the data blocks are The corresponding directory is removed instantly but the data blocks are
removed later in the background. The command returns immediatelly. See `btrfs removed later in the background. The command returns immediately. See `btrfs
subvolume sync` how to wait until the subvolume gets completely removed. subvolume sync` how to wait until the subvolume gets completely removed.
+ +
The deletion does not involve full transaction commit by default due to The deletion does not involve full transaction commit by default due to
@ -143,7 +143,11 @@ for --sort you can combine some items together by \',', just like
--sort=+ogen,-gen,path,rootid. --sort=+ogen,-gen,path,rootid.
*set-default* [<subvolume>|<id> <path>]:: *set-default* [<subvolume>|<id> <path>]::
Set the default subvolume of the (mounted) filesystem. Set the default subvolume for the (mounted) filesystem.
Set the default subvolume for the (mounted) filesystem at <path>. This will hide
the top-level subvolume (ie. the one mounted with 'subvol=/' or 'subvolid=5').
Takes action on next mount.
+ +
There are two ways how to specify the subvolume, by <id> or by the <subvolume> There are two ways how to specify the subvolume, by <id> or by the <subvolume>
path. path.
@ -166,10 +170,9 @@ If <source> is not a subvolume, btrfs returns an error.
Make the new snapshot read only. Make the new snapshot read only.
*sync* <path> [subvolid...]:: *sync* <path> [subvolid...]::
Wait until given subvolume(s) are completely removed from the filesystem Wait until given subvolume(s) are completely removed from the filesystem after
after deletion. If no subvolume id is given, wait until all current deletion deletion. If no subvolume id is given, wait until all current deletion requests
requests are completed, but do not wait for subvolumes deleted meanwhile. are completed, but do not wait for subvolumes deleted in the meantime.
The status of subvolume ids is checked periodically.
+ +
`Options` `Options`
+ +

View File

@ -25,9 +25,9 @@ page `btrfs`(5).
COMMAND SYNTAX COMMAND SYNTAX
-------------- --------------
Any command name can be shortened as far as it stays unambiguous, Any command name can be shortened so long as the shortened form is unambiguous,
however it is recommended to use full command names in scripts. however, it is recommended to use full command names in scripts. All command
All command groups have their manual page named *btrfs-<group>*. groups have their manual page named *btrfs-<group>*.
For example: it is possible to run *btrfs sub snaps* instead of For example: it is possible to run *btrfs sub snaps* instead of
*btrfs subvolume snapshot*. *btrfs subvolume snapshot*.
@ -106,10 +106,10 @@ COMMANDS
STANDALONE TOOLS STANDALONE TOOLS
---------------- ----------------
There are several standalone tools to provide certain functionality. If the New functionality could be provided using a standalone tool. If the functionality
functionality proves to be useful, the standalone tools are declared obsolete proves to be useful, then the standalone tool is declared obsolete and its
and their functionality copied to the main tool. The deprecation period is long functionality is copied to the main tool. Obsolete tools are removed after a
(years) and the obsolete binaries are still provided. long (years) depreciation period.
Tools that are still in active use without an equivalent in *btrfs*: Tools that are still in active use without an equivalent in *btrfs*:

View File

@ -11,7 +11,7 @@ SYNOPSIS
DESCRIPTION DESCRIPTION
----------- -----------
*btrfstune* can be used to enable, disable or set various filesystem *btrfstune* can be used to enable, disable, or set various filesystem
parameters. The filesystem must be unmounted. parameters. The filesystem must be unmounted.
The common usecase is to enable features that were not enabled at mkfs time. The common usecase is to enable features that were not enabled at mkfs time.
@ -20,8 +20,8 @@ complete list of features and kernel version of their introduction at
https://btrfs.wiki.kernel.org/index.php/Changelog#By_feature . Also, the https://btrfs.wiki.kernel.org/index.php/Changelog#By_feature . Also, the
manual page `mkfs.btrfs`(8) contains more details about the features. manual page `mkfs.btrfs`(8) contains more details about the features.
Some of the features could be enabled on a mounted filesystem. Please refer to Some of the features could be also enabled on a mounted filesystem by other
the respective section in `btrfs`(5). means. Please refer to the 'FILESYSTEM FEATURES' in `btrfs`(5).
OPTIONS OPTIONS
------- -------
@ -86,9 +86,10 @@ EXIT STATUS
COMPATIBILITY NOTE COMPATIBILITY NOTE
------------------ ------------------
This tool exists for historical reasons but is still in use today. The
functionality is about to be merged to the main tool someday and *btrfstune* This deprecated tool exists for historical reasons but is still in use today.
will become deprecated and removed afterwards. Its functionality will be merged to the main tool, at which time *btrfstune*
will be declared obsolete and scheduled for removal.
SEE ALSO SEE ALSO
-------- --------

View File

@ -13,16 +13,15 @@ DESCRIPTION
----------- -----------
*fsck.btrfs* is a type of utility that should exist for any filesystem and is *fsck.btrfs* is a type of utility that should exist for any filesystem and is
called during system setup when the corresponding `/etc/fstab` entries called during system setup when the corresponding `/etc/fstab` entries
contain non-zero value for `fs_passno` , see `fstab`(5) for more. contain non-zero value for `fs_passno`, see `fstab`(5) for more.
Traditional filesystems need to run their respective fsck utility in case the Traditional filesystems need to run their respective fsck utility in case the
filesystem was not unmounted cleanly and the log needs to be replayed before filesystem was not unmounted cleanly and the log needs to be replayed before
mount. This is not needed for BTRFS. You should set fs_passno to 0. mount. This is not needed for BTRFS. You should set fs_passno to 0.
If you wish to check the consistency of a BTRFS filesystem or repair a damaged If you wish to check the consistency of a BTRFS filesystem or repair a damaged
filesystem, see `btrfs-check`(8). By default the filesystem filesystem, see `btrfs-check`(8). By default filesystem consistency is checked,
consistency is checked, the repair mode is enabled via '--repair' option (use the repair mode is enabled via the '--repair' option (use with care!).
with care!).
OPTIONS OPTIONS
------- -------

View File

@ -22,7 +22,7 @@ mount option. See section *MULTIPLE DEVICES* for more details.
OPTIONS OPTIONS
------- -------
*-b|--byte-count <size>*:: *-b|--byte-count <size>*::
Specify the size of the filesystem. If this option is not used, Specify the size of the filesystem. If this option is not used, then
mkfs.btrfs uses the entire device space for the filesystem. mkfs.btrfs uses the entire device space for the filesystem.
*-d|--data <profile>*:: *-d|--data <profile>*::
@ -74,7 +74,7 @@ default value is 16KiB (16384) or the page size, whichever is bigger. Must be a
multiple of the sectorsize and a power of 2, but not larger than 64KiB (65536). multiple of the sectorsize and a power of 2, but not larger than 64KiB (65536).
Leafsize always equals nodesize and the options are aliases. Leafsize always equals nodesize and the options are aliases.
+ +
Smaller node size increases fragmentation but leads to higher b-trees which in Smaller node size increases fragmentation but leads to taller b-trees which in
turn leads to lower locking contention. Higher node sizes give better packing turn leads to lower locking contention. Higher node sizes give better packing
and less fragmentation at the cost of more expensive memory operations while and less fragmentation at the cost of more expensive memory operations while
updating the metadata blocks. updating the metadata blocks.
@ -167,7 +167,7 @@ root partition created with RAID1/10/5/6 profiles. The mount action can happen
before all block devices are discovered. The waiting is usually done on the before all block devices are discovered. The waiting is usually done on the
initramfs/initrd systems. initramfs/initrd systems.
As of kernel 4.9, RAID5/6 is still considered experimental and shouldn't be As of kernel 4.14, RAID5/6 is still considered experimental and shouldn't be
employed for production use. employed for production use.
FILESYSTEM FEATURES FILESYSTEM FEATURES
@ -282,9 +282,9 @@ The mkfs utility will let the user create a filesystem with profiles that write
the logical blocks to 2 physical locations. Whether there are really 2 the logical blocks to 2 physical locations. Whether there are really 2
physical copies highly depends on the underlying device type. physical copies highly depends on the underlying device type.
For example, a SSD drive can remap the blocks internally to a single copy thus For example, a SSD drive can remap the blocks internally to a single copy--thus
deduplicating them. This negates the purpose of increased redundancy and just deduplicating them. This negates the purpose of increased redundancy and just
wastes filesystem space without the expected level of redundancy. wastes filesystem space without providing the expected level of redundancy.
The duplicated data/metadata may still be useful to statistically improve the The duplicated data/metadata may still be useful to statistically improve the
chances on a device that might perform some internal optimizations. The actual chances on a device that might perform some internal optimizations. The actual