Status 状态
Overview 概述
For a list of features by their introduction, please see Changes (feature/version).
请参阅更改(功能/版本)中按其引入列出的功能列表。
The table below aims to serve as an overview for the stability status of
the features BTRFS supports. While a feature may be functionally safe
and reliable, it does not necessarily mean that its useful, for example
in meeting your performance expectations for your specific workload.
Combination of features can vary in performance, the table does not
cover all possibilities.
下表旨在作为 BTRFS 支持的功能稳定状态的概览。虽然某个功能在功能上是安全可靠的,但这并不一定意味着它对您的特定工作负载的性能期望是有用的。功能组合可能在性能上有所不同,表格并未涵盖所有可能性。
The table is based on the latest released linux kernel: 6.8
该表格基于最新发布的 Linux 内核:6.8
The columns for each feature reflect the status of the implementation
in following ways:
每个功能的列反映了实现状态的方式:
稳定性 - 实现的完整性,用例覆盖率
性能 - 在达到固有限制之前可以提高多少
注释 - 已知问题的简要描述,或与状态相关的其他信息
Legend: 传说:
OK: should be safe to use, no known major deficiencies
正常:应该可以安全使用,没有已知的主要缺陷mostly OK: safe for general use, there are some known problems that do not affect majority of users
大多数正常:适合一般使用,有一些已知问题,但不影响大多数用户Unstable: do not use for other then testing purposes, known severe problems, missing implementation of some core parts
不稳定:仅用于测试目的,已知存在严重问题,某些核心部分尚未实现
Feature |
Stability |
Performance |
Notes |
---|---|---|---|
OK |
OK |
||
OK |
|||
OK |
OK |
||
mostly OK 大多数情况下正常 |
extents get unshared (see below) |
||
OK |
|||
OK |
mounted with -o discard (has performance implications), also see fstrim |
||
OK |
mounted with -o discard=async (improved performance) |
||
OK |
mostly OK 大多数情况下正常 |
(reflink), heavily referenced extents have a noticeable performance hit (see below) |
|
OK |
mostly OK 大多数情况下正常 |
(reflink), heavily referenced extents have a noticeable performance hit (see below) |
|
OK |
OK |
shrink, grow 缩小,增长 |
|
mostly OK 大多数情况下正常 |
mostly OK 大多数情况下正常 |
(see below) (见下文) |
|
OK |
OK |
automatically repair from a correct spare copy if possible (DUP, RAID1, RAID10, RAID56) |
|
OK |
OK |
||
Scrub + RAID56 |
mostly OK 大多数情况下正常 |
mostly OK 大多数情况下正常 |
|
OK |
n/a |
||
OK |
OK |
balance + qgroups can be slow when there are many snapshots |
|
OK |
OK |
||
OK |
OK |
||
Offline UUID change 脱机 UUID 更改 |
OK |
OK |
|
Metadata UUID change 元数据 UUID 更改 |
OK |
OK |
|
Temporary FSID 临时 FSID |
6.8 |
6.8 |
Single devices with same FSID can be mounted repeatedly, getting a temporary UUID. |
OK |
OK |
||
mostly OK 大多数情况下正常 |
mostly OK 大多数情况下正常 |
qgroups with many snapshots slows down balance |
|
6.8 |
6.8 |
simplified qgroup accounting, better performance, specific use case |
|
OK |
n/a |
with some limitations 具有一些限制 |
|
nodatacow |
OK |
OK |
|
OK |
OK |
Also see table below for compatibility. |
|
mostly OK 大多数情况下正常 |
mostly OK 大多数情况下正常 |
Not yet feature complete but moderately stable, also see table below
for compatibility. |
Block group profiles 区块组概况
Feature |
Stability |
Performance |
Notes |
---|---|---|---|
OK |
OK |
||
OK |
OK |
||
OK |
OK |
||
OK |
mostly OK 大多数情况下正常 |
reading from mirrors in parallel can be optimized further (see below) |
|
OK |
mostly OK 大多数情况下正常 |
reading from mirrors in parallel can be optimized further (see below) |
|
OK |
mostly OK 大多数情况下正常 |
reading from mirrors in parallel can be optimized further (see below) |
|
OK |
mostly OK 大多数情况下正常 |
reading from mirrors in parallel can be optimized further (see below) |
|
unstable |
n/a |
(see below) (见下文) |
|
OK |
OK |
On-disk format 磁盘格式
Features that are typically set at mkfs time (sometimes can be changed or
converted later).
通常在 mkfs 时间设置的功能(有时可以稍后更改或转换)。
Feature |
Stability |
Performance |
Notes |
---|---|---|---|
OK |
OK |
mkfs.btrfs default since 3.12 |
|
OK |
OK |
mkfs.btrfs default since 3.18 |
|
OK |
OK |
mkfs.btrfs default since 5.15 |
|
OK |
OK |
mkfs.btrfs default since 5.15 |
|
OK |
OK |
||
mostly OK 大多数情况下正常 |
OK |
not all profiles are supported and RST is behind CONFIG_BTRFS_DEBUG build option |
|
OK |
OK |
Simplified tracking needs on-disk format update, but may work in a limited way without it. |
Interoperability 互操作性
Integration with other Linux features or external systems.
See also.
与其他 Linux 功能或外部系统集成。另请参阅。
Feature |
Stability |
Performance |
Notes |
---|---|---|---|
OK |
OK |
||
OK |
OK |
IO controller IO 控制器 |
|
OK |
OK |
||
OK |
OK |
||
OK |
OK |
||
OK |
OK |
compression, server-side copies, snapshots |
Please open an issue if:
如果有任何问题,请提交一个问题
there’s a known missing entry
已知缺失条目a particular feature combination that has a different status and is worth mentioning separately
具有不同状态且值得单独提及的特定功能组合you know of a bug that lowers the feature status
您知道一个降低功能状态的错误
Subpage block size 子页面块大小
Most commonly used page sizes are 4KiB, 16KiB and 64KiB. All combinations with
a 4KiB sector size filesystems are supported. Some features are not compatible
with subpage or require another feature to work. Since btrfs-progs 6.7 the default
sector size is 4KiB as this allows cross-architecture compatibility.
最常用的页面大小为 4KiB、16KiB 和 64KiB。支持所有与 4KiB 扇区大小文件系统的组合。一些功能不兼容子页面或需要另一个功能才能工作。自 btrfs-progs 6.7 起,默认扇区大小为 4KiB,因为这样可以实现跨架构兼容性。
Feature |
Status |
Notes |
---|---|---|
Inline files 内联文件 |
unsupported |
The max_inline mount option value is ignored, as if mounted with max_inline=0 |
Free space cache v1 空闲空间缓存 v1 |
unsupported |
Free space tree is mandatory, v1 makes some assumptions about page size |
Compression |
partial support 部分支持 |
Only page-aligned ranges can be compressed |
Sectorsize |
supported |
The list of supported sector sizes on a given version can be found
in file |
Zoned mode 分区模式
Features that completely incompatible with zoned mode are listed below.
Compatible features may not be listed and are assumed to work as they
are unaffected by the zoned device constraints.
完全与分区模式不兼容的功能列在下面。兼容的功能可能没有列出,并假定它们可以正常工作,因为它们不受分区设备约束的影响。
Feature |
Status |
Notes |
---|---|---|
Boot |
incompatible |
The blocks where partition table is stored are used for super block |
Mixed block groups 混合块组 |
incompatible |
Interleaving data and metadata would lead to out of order write |
NODATACOW |
incompatible |
In-place overwrite 原地覆盖 |
fallocate |
incompatible |
Preallocation of blocks would require an out of order write |
Free space cache v1 空闲空间缓存 v1 |
incompatible |
Cache data are updated in a NODATACOW-way |
Swapfile |
incompatible |
Swap blocks are written out of order |
Offline UUID change 脱机 UUID 更改 |
incompatible |
Metadata blocks are updated in-place |
Free space tree 空闲空间树 |
supported |
|
Block group tree 块组树 |
supported |
|
Raid stripe tree RAID 条带树 |
supported |
Allows to use RAID in zoned mode |
Filesystem resize 文件系统调整大小 |
supported |
|
Balance |
supported |
|
Metadata UUID change 元数据 UUID 更改 |
supported |
|
RAID0, RAID1* RAID0,RAID1* |
supported |
requires raid-stripe-tree |
RAID56 |
not implemented 未实现 |
Will be supported once raid-stripe-tree support is implemented |
discard |
not implemented 未实现 |
May not be required at all due to automatic zone reclaim |
subpage blocksize 子页面块大小 |
not implemented 未实现 |
Missing support for compressed data |
fsverity |
TBD |
|
seeding |
TBD |
Details that do not fit the table
不适合表格的详细信息
Defrag 碎片整理
The data affected by the defragmentation process will be newly written
and will consume new space, the links to the original extents will not
be kept. See also btrfs-filesystem(8) . Though
autodefrag affects newly written data, it can read a few adjacent blocks
(up to 64KiB) and write the contiguous extent to a new location. The
adjacent blocks will be unshared. This happens on a smaller scale than
the on-demand defrag and doesn’t have the same impact.
受碎片整理过程影响的数据将被重新写入并占用新空间,原始范围的链接将不会保留。另请参阅 btrfs-filesystem(8)。虽然 autodefrag 影响新写入的数据,但它可以读取几个相邻的块(最多 64KiB)并将连续的范围写入新位置。相邻的块将不共享。这比按需碎片整理规模小,影响也不同。
RAID1, RAID10 RAID1,RAID10
The simple redundancy RAID levels utilize different mirrors in a way
that does not achieve the maximum performance. The logic can be improved
so the reads will spread over the mirrors evenly or based on device
congestion.
简单冗余 RAID 级别利用不同的镜像,但无法达到最大性能。可以改进逻辑,使读取均匀地分布在镜像上,或基于设备拥塞情况进行读取。
RAID56
Please see
https://btrfs.readthedocs.io/en/latest/btrfs-man5.html#raid56-status-and-recommended-practices
.
请参阅 https://btrfs.readthedocs.io/en/latest/btrfs-man5.html#raid56-status-and-recommended-practices 。
Device replace 设备替换
Device replace and device delete insist on being able to read or
reconstruct all data. If any read fails due to an IO error, the
delete/replace operation is aborted and the administrator must remove or
replace the damaged data before trying again.
设备替换和设备删除坚持能够读取或重建所有数据。如果由于 IO 错误导致任何读取失败,则删除/替换操作将被中止,管理员必须在再次尝试之前移除或替换受损数据。
On-disk format 磁盘格式
The filesystem disk format is stable. This means it is not expected to
change unless there are very strong reasons to do so. If there is a
format change, filesystems which implement the previous disk format will
continue to be mountable and usable by newer kernels.
文件系统磁盘格式是稳定的。这意味着除非有非常强烈的理由,否则不会发生变化。如果发生格式更改,实现先前磁盘格式的文件系统将继续可以被新内核挂载和使用。
The core of the on-disk format that comprises building blocks of the
filesystem:
磁盘格式的核心构建模块,构成文件系统的基础:
layout of the main data structures, e.g. superblock, b-tree nodes, b-tree keys, block headers
主要数据结构的布局,例如超级块,B 树节点,B 树键,块头the COW mechanism, based on the original design of Ohad Rodeh’s paper “B-trees, Shadowing and Clones” (http://sylab-srv.cs.fiu.edu/lib/exe/fetch.php?media=paperclub:shadow_btree.pdf)
基于 Ohad Rodeh 的论文“B-树,阴影和克隆”的原始设计的 COW 机制(http://sylab-srv.cs.fiu.edu/lib/exe/fetch.php?media=paperclub:shadow_btree.pdf)
Newly introduced features build on top of the above and could add
specific structures. If a backward compatibility is not possible to
maintain, a bit in the filesystem superblock denotes that and the level
of incompatibility (full, read-only mount possible).
新引入的功能建立在上述基础之上,可能会添加特定的结构。如果无法保持向后兼容性,则文件系统超级块中的一个位表示这一点以及不兼容性的级别(完全,只读挂载可能)。