bcache 可以永远拥有非零脏缓存吗?

bcache 可以永远拥有非零脏缓存吗?

我在 SSD 上创建了基于 Raspberry Pi 的 bcache,并使用基于 HDD 的 RAID 1 阵列。在向 RAID 填充几 TB 的内容后,bcache 显示 10% 的脏缓存。这是预料之中的,因为我已经/sys/block/bcache0/bcache/cache_mode设置了writeback。然而,它无限期地保持在 10%。该设备连续运行数天,没有任何活动。我什至尝试强制刷新缓存

echo 0 > /sys/block/bcache0/bcache/writeback_percent

其设置正确,但没有启动磁盘活动,如 所示iostat,脏缓存仍保持在 10%。

这是否意味着 bcache 有问题?我应该担心吗?或者这种行为有什么解释吗?

答案1

这似乎是预期的行为。

回写模式通常是安全的,因为缓存设备已记录。 Bcache 将在(意外)重新启动后重写所有脏数据到持久性后备设备,事实上,作为其设计的一部分,bcache 甚至不会在关闭时完成写入脏数据,它将始终启动脏数据并继续写回脏数据并可靠地完成文件系统事务。仅当支持设备已确认所有写入的数据时,缓存数据才会被标记为干净。

从:https://wiki.archlinux.org/title/Talk:Bcache#Whole_article_revamp

相关内容