on  it road.com

btrfs 子卷实用程序

使用 btrfs subvolume 命令管理和报告 Btrfs 子卷。
下面是一些创建 btrfs 子卷并查看有关它们的信息的示例。

1. 创建一个 btrfs 子卷

使用 btrfs subvolume create 命令创建子卷。
以下示例在挂载在 /btrfs 上的 Btrfs 文件系统上创建名为 SV1 的子卷:

# btrfs subvolume create /btrfs/SV1
Create subvolume '/btrfs/SV1'

2. 查看btrfs子卷

使用 btrfs subvolume list 命令仅查看 Btrfs 文件系统中的子卷,如下例所示:

# btrfs subvolume list /btrfs
ID 257 gen 12 top level 5 path SV1
ID 258 gen 9 top level 5 path SV1-snap

此命令还显示子卷 ID (257)、B 树的根 ID 生成 (12) 和顶级 ID (5)。

3. 创建 btrfs 子卷快照

使用 btrfs subvolume snapshot 命令创建子卷的可写/可读快照。
以下示例创建 SV1 子卷的快照:

# btrfs subvolume snapshot /btrfs/SV1 /btrfs/SV1-snap
Create a snapshot of ‘/btrfs/SV1’ in ‘/btrfs/SV1-snap’

使用 btrfs subvolume snapshot -r 选项创建只读快照:

# btrfs subvolume snapshot –r /btrfs/SV1 /btrfs/SV1-rosnap 
Create a readonly snapshot of ‘/btrfs/SV1’ in ‘/btrfs/SV1-rosnap’

btrfs 实用程序

使用 btrfs 命令管理和显示有关 Btrfs 文件系统的信息。
该命令需要一个子命令。
输入不带任何参数的 btrfs 以列出子命令:

# btrfs
usage: btrfs [--help] [--version] [group] [[group]...] [command] [args]
Command groups:
  subvolume         manage subvolumes: create, delete, list, etc
  filesystem        overall filesystem tasks and information
  balance           balance data across devices, or change block groups using filters
  device            manage and query devices in the filesystem
  scrub             verify checksums of data and metadata
  rescue            toolbox for specific rescue operations
  inspect-internal  query various internal information
  property          modify properties of filesystem objects
  quota             manage filesystem quota settings
  qgroup            manage quota groups
  replace           replace a device in the filesystem
Commands:
  check             Check structural integrity of a filesystem (unmounted).
  restore           Try to restore files from a damaged filesystem (unmounted)
  send              Send the subvolume(s) to stdout.
  receive           Receive subvolumes from a stream
  help              Display help information
  version           Display btrfs-progs version
For an overview of a given command use 'btrfs command --help'
or 'btrfs [command...] --help --full' to print all available options.
Any command name can be shortened as far as it stays unambiguous,
however it is recommended to use full command names in scripts.
All command groups have their bananaal page named 'btrfs-[group]'.
创建和管理 Btrfs 文件系统

如何创建和挂载Btrfs文件系统?

Btrfs 是一个用于 Linux 的开源通用文件系统。
该名称源自使用 B 树来存储内部文件系统结构。
文件系统使用了不同的名称,包括“Butter F S”和“B-tree F S”。
Btrfs 的开发始于 2007 年的 Oracle,现在许多(包括 Red Hat、Fujitsu、Intel、SUSE 和许多其他)都在为开发工作做出贡献。
Btrfs 包含在主线 Linux 内核中。

btrfs 文件系统实用程序

使用 btrfs filesystem 命令管理和报告 Btrfs 文件系统。
可用命令列表如下:

  • btrfs 文件系统 df
  • btrfs 文件系统展示
  • btrfs 文件系统同步
  • btrfs 文件系统碎片整理
  • btrfs 文件系统调整大小
  • btrfs 文件系统平衡
  • btrfs 文件系统标签

1. btrfs 文件系统 df 实用程序

当文件系统被挂载并复制了一个文件时,df 命令的输出可能会为 Btrfs 文件系统产生不准确的信息。
要获取 Btrfs 文件系统的准确空间信息,请使用 btrfs filesystem df 命令:

# btrfs filesystem df /btrfs
Data, single: total=8.00MiB, used=5.87MiB
System, DUP: total=8.00MiB, used=16.00KiB
Metadata, DUP: total=1.00GiB, used=144.00KiB
GlobalReserve, single: total=16.00MiB, used=0.00B

2. btrfs 文件系统 show|sync Utilities

  1. 使用 btrfs filesystem show 命令显示文件系统的结构。
    语法如下:
# btrfs filesystem show [options|[path]|[uuid]]
1. If you omit the optional path and uuid, the command shows information about all the Btrfs file systems. The following example displays the structure of a Btrfs file system:
# btrfs filesystem show
Label: none  uuid: 11fdc4b4-fe4f-4a73-9d7c-35859edbcecd
	Total devices 1 FS bytes used 6.03MiB
	devid    1 size 10.00GiB used 2.02GiB path /dev/sda
  1. 使用 btrfs filesystem sync 命令强制文件系统同步。
    必须挂载文件系统。
    强制同步挂载在 /btrfs 上的文件系统:
# btrfs filesystem sync /btrfs 
FSSync '/btrfs'

3. btrfs 文件系统碎片整理实用程序

Btrfs 提供文件系统、文件或者目录的在线碎片整理。
在线碎片整理工具尽可能将数据重新组织成连续的块,以创建更大的可用磁盘空间部分并提高读写性能。
使用 btrfs 文件系统碎片整理命令对文件或者目录进行碎片整理。

# btrfs filesystem defragment [options] [file]|[dir] [...]

可用选项包括:

选项描述
-v输出详细信息
-c在进行碎片整理时压缩文件内容。
-r递归地对文件进行碎片整理。
-f碎片整理后刷新文件系统。
-s start仅从字节开始进行碎片整理。
-l len最多只能对 len 字节进行碎片整理。
-t size碎片整理文件至少只有 size 个字节。

我们可以通过在挂载文件系统时指定“-o autodefrag”选项来设置自动碎片整理。
如果我们使用“cp --reflink”选项创建了快照或者文件快照,请不要使用 2.6.37 版本之前的内核进行碎片整理。
这些早期内核中的 Btrfs 取消了数据的写时复制副本的链接。

4. btrfs 文件系统调整大小实用程序

Btrfs 提供文件系统的在线调整大小。
使用“btrfs filesystem resize”命令来调整文件系统的大小。
我们必须有可用空间来适应调整大小,因为该命令对底层设备没有影响。
语法如下:

btrfs filesystem resize [devid:][+/-][newsize][gkm]|[devid:]max [path]

参数说明:

    • newsize – 按 newsize 数量增加文件系统大小
    • newsize – 按newsize 量减少文件系统大小
  • newsize – 指定 newsize 数量
  • g、k 或者 m – 指定 newsize 的单位(GB、KB 或者 MB)。如果未指定单位,则参数默认为字节。
  • max – 指定文件系统占用所有可用空间

例如,要将文件系统的大小减少 2 GB:

# btrfs filesystem resize -2G /btrfs 
Resize '/btrfs/'' of '-2G'

5. btrfs 设备实用程序

使用 btrfs device 命令管理 Btrfs 文件系统上的设备。
“btrfs device scan”命令扫描物理设备以寻找 Btrfs 卷的成员。
此命令允许挂载多磁盘 Btrfs 文件系统,而无需在 mount 命令中指定所有磁盘。
我们不需要从命令行运行 btrfs 设备扫描,因为 udev 会在启动时自动运行 btrfs 设备扫描。

  1. 使用 btrfs device add 命令将设备添加到已挂载的文件系统中,如下例所示:
# btrfs device add /dev/sdd /btrfs
  1. 添加设备后使用 btrfs filesystem balance 命令:
# btrfs filesystem balance /btrfs
  1. 使用 btrfs device delete 命令从文件系统中删除设备:
# btrfs device delete /dev/sdd /btrfs

6. btrfs scrub工具

使用 btrfs scrub命令管理 Btrfs 文件系统上的擦洗。
默认情况下,擦洗在后台执行。
它尝试报告和修复文件系统上的坏块。
可用命令包括:

  • btrfs scrub start
  • btrfs scrub cancel
  • btrfs scrub resume
  • btrfs scrub status
  1. 使用 btrfs 擦洗启动命令在文件系统的所有设备或者单个设备上启动擦洗。
# btrfs scrub start /btrfs
  1. 使用 btrfs 清理状态命令获取清理作业的状态。
    以下示例包含有关文件系统中每个设备的详细清理信息:
# btrfs scrub status –dR /btrfs
  1. 使用 btrfs 擦洗取消命令取消正在运行的擦洗作业:
# btrfs scrub cancel /btrfs
  1. 使用 btrfs 擦洗恢复命令恢复先前取消或者中断的擦洗:
# btrfs scrub resume /btrfs

7. btrfs filesystem label

使用“btrfs filesystem label”命令显示文件系统标签。
例如:

# btrfs filesystem label /btrfs
Btrfs
日期:2020-09-17 00:14:18 来源:oir作者:oir