SDB:禁用 btrfsmaintenance

跳转到:导航搜索


情况

希望禁用自动驱动器维护,而选择手动维护。

流程

禁用计划维护

/etc/sysconfig/btrfsmaintenance 中,您可以将以下内容设置为“none”以禁用平衡和擦除:

BTRFS_BALANCE_PERIOD="none"
BTRFS_SCRUB_PERIOD="none"

对于 Leap 15+ 和 Tumbleweed,有一个 systemd 单元 btrfsmaintenance-refresh.service,它会在更改 /etc/sysconfig/btrfsmaintenance 时被调用(通过 systemd 路径单元 btrfsmaintenance-refresh.path)。此单元会自动刷新 systemd 定时器/cron 作业。

fstrim.timer

/etc/sysconfig/btrfsmaintenance 中所述,还有 fstrim.timer,它不是 btrfsmaintenance 的一部分。要禁用它:

# systemctl disable fstrim.timer
# systemctl stop fstrim.timer

卸载 btrfsmaintenance

如果您不想使用位于 /usr/share/btrfsmaintenance 的 btrfsmaintenance 脚本,您可以简单地卸载:

zypper rm btrfsmaintenance

为了防止它被重新安装:

zypper al btrfsmaintenance

执行手动维护

平衡

"如果有很多已分配但未使用的的数据或元数据块,平衡可能会回收一部分已分配的空间。这是在单个设备文件系统上运行平衡的主要原因。"

使用默认的 openSUSE 分区和默认的 btrfsmaintenance 设置,btrfs-balance.sh 等效于:

btrfs filesystem df /
btrfs balance start -dusage=0 /
btrfs balance start -v -dusage=5 /
btrfs balance start -v -dusage=10 /
btrfs balance start -musage=0 /
btrfs balance start -v -musage=3 /
btrfs filesystem df /

您可以将其添加到名为“balance”的文件中,位于 /root/bin 目录中,并运行以下命令使其可执行:

chmod +x /root/bin/balance

擦除

"btrfs scrub 用于擦除 btrfs 文件系统,它将读取所有设备上的所有数据和元数据块并验证校验和。如果可用正确的副本,它将自动修复损坏的块。"

如果没有 RAID 镜像您的数据,从而提供该“正确副本”,擦除命令除了告诉您存在问题之外,什么也做不了。

使用默认设置,btrfs-scrub.sh 等效于:

btrfs scrub start -Bd /

修剪

/usr/lib/systemd/system/fstrim.service 调用:

fstrim -Av

这将“修剪 /etc/fstab 中提及的,且设备支持 discard 操作的所有已挂载的文件系统”。

"对于大多数桌面和服务器系统,每周一次的修剪频率就足够了。"

参见

相关文章

外部链接