什么是挂载选项 space_cache=v2?

什么是挂载选项 space_cache=v2?

“使用 BTRFS 进行 Debian 12 Bookworm 最小安装”作者:JustAGuy Linux 于 8:28他为SSD设置了一个选项,

mount -o ... space_cache=v2 ...

有什么选择space_cache=v2?什么时候该用,什么时候不该用?我没有看到它记录在man mount.

答案1

你可以看到spache_cache记录在这里,但需要注意的一件事是从 4.5 版本开始它是默认值。 Debian 12 发布内核版本 6.1。所以它只是详细说明默认值。

space_cache, space_cache=<version>,nospace_cache (nospace_cache 自:3.2 起,space_cache=v1 和 space_cache=v2 自 4.5 起,默认:space_cache=v2)

控制可用空间缓存的选项。将块组可用空间读入内存时,可用空间缓存极大地提高了性能。然而,管理空间缓存会消耗一些资源,包括少量的磁盘空间。

可用空间缓存有两种实现方式。最初的版本称为 v1,曾经是安全的默认版本,但已被 v2 取代。 v1 空间缓存可以在挂载时使用 nospace_cache 禁用,而无需清除。

在非常大的文件系统(许多 TB)和某些工作负载上,v1 空间缓存的性能可能会急剧下降。 v2 实现添加了一个称为自由空间树的新 B 树,解决了这个问题。一旦启用,v2 空间缓存将始终被使用,除非清除,否则无法禁用。使用clear_cache,space_cache=v1 或clear_cache,nospace_cache 来执行此操作。如果启用 v2,则 v1 空间缓存将被清除(在第一次挂载时),并且不支持 v2 的内核将只能以只读模式挂载文件系统。在未挂载的文件系统上,可以通过“btrfs check --clear-space-cache”清除缓存(两个版本)。

自 v4.19 起,btrfs-check(8) 和 mkfs.btrfs 命令具有完整的 v2 可用空间缓存支持。

如果未明确指定版本,则将选择默认实现,即 v2。

相关内容