之路教程 https://onitr oad .com

启动 btrfs 擦洗

以下示例在挂载在 /btrfs 上的 Btrfs 文件系统上启动清理。

# btrfs scrub start /btrfs
scrub started on /btrfs, fsid ba60ac96-1628-4656-b68b-c7327ff49179 (pid=11164)

使用 btrfs 清理状态命令获取清理作业的状态。
一种选择是可用的:

  • -d - 为文件系统的每个设备打印单独的统计信息。

下面是一个在健康文件系统上的 btrfs 清理状态命令示例。
如果文件系统损坏,我们会在输出中看到更正的错误。

# btrfs scrub status /btrfs
scrub status for ba60ac96-1628-4656-b68b-c7327ff49179
	scrub started at Fri Mar 30 14:29:47 2018 and finished after 00:00:02
	total bytes scrubbed: 325.29MiB with 0 errors

使用上面命令中的“-d”选项,我们可以获得每个设备级别的状态,如下例所示。

# btrfs scrub status /btrfs -d
scrub status for ba60ac96-1628-4656-b68b-c7327ff49179
scrub device /dev/sda (id 1) history
	scrub started at Fri Mar 30 14:29:47 2018 and finished after 00:00:02
	total bytes scrubbed: 325.29MiB with 0 errors
如何使用“btrfs scrub”命令来管理 Btrfs 文件系统上的擦洗

我们可以通过触发文件系统清理作业来启动对整个文件系统的检查。
清理作业默认在后台运行,并扫描整个文件系统的完整性。
它会自动尝试报告和修复沿途发现的任何坏块。
清理作业只处理实际分配的数据,而不是遍历整个磁盘驱动器。
根据分配的磁盘空间,这比执行磁盘的整个表面扫描要快得多。

清理涉及从所有磁盘读取所有数据并验证校验和。
如果任何值不正确,可以通过从另一个驱动器读取块的良好副本来更正数据。
清理代码也会在读取时自动扫描。
建议我们每周清理一次高使用率的文件系统,每月清理一次所有其他文件系统。

以下是可用 btrfs 擦洗命令的列表:

# btrfs scrub
usage: btrfs scrub [command] [options] [path]|[device]
    btrfs scrub start [-BdqrRf] [-c ioprio_class -n ioprio_classdata] [path]|[device]
        Start a new scrub. If a scrub is already running, the new one fails.
    btrfs scrub cancel [path]|[device]
        Cancel a running scrub
    btrfs scrub resume [-BdqrR] [-c ioprio_class -n ioprio_classdata] [path]|[device]
        Resume previously canceled or interrupted scrub
    btrfs scrub status [-dR] [path]|[device]
        Show status of running or finished scrub
verify checksums of data and metadata

取消/恢复 btrfs 清理作业

我们还可以取消正在运行的清理作业。
进度保存在擦洗进度文件中,我们可以稍后继续擦洗。
要取消擦洗:

# btrfs scrub cancel /btrfs

要恢复已取消或者中断的清理作业:

# btrfs scrub resume /btrfs

擦洗恢复命令与擦洗启动命令具有相同的选项。
Btrfs 以 30 秒的间隔存储根 ID 生成的最后两分钟。
即使文件系统没有变化,Btrfs 也会继续滚动这些代。

如果清理没有纠正错误,我们可以使用以下挂载选项回滚到已知良好的 B 树,因为树的其余部分由于写时复制而可用:

# mount -o recovery /dev/sda /btrfs

btrfs 擦洗实用程序:示例

使用 btrfs 清理启动命令在文件系统的所有设备或者单个设备上启动清理。
语法如下:

# btrfs scrub start [-BdqrR] [-c ioprio_class ...

选项说明:

选项描述
-B不要在后台运行并在完成后打印统计信息。
-d为文件系统的每个设备打印单独的统计信息。 此选项与 -B 选项结合使用。
-q以安静模式运行,忽略错误消息和统计信息。
-r以只读模式运行,不纠正任何错误。
-R原始打印模式。 打印完整数据而不是摘要。
-c ioprio_class设置 IO 优先级类(参见 ionice 手册页)。
-n ioprio_classdata设置 IO 优先级类数据(参见 ionice 手册页)。
日期:2020-09-17 00:13:44 来源:oir作者:oir