我可以将 dm-cache 配置为仅缓存小文件吗?

我可以将 dm-cache 配置为仅缓存小文件吗?

由于预算问题,我们正在一个小型非政府组织中部署 Active Directory 域控制器斜线文件服务器,使用 Ubuntu Server/Samba 和传统 HDD。

在下载和上传 Windows 漫游配置文件时,我担心传统旋转硬盘的 4K 随机访问率太低。因此,我正在考虑购买一个非常小的 SSD 用于缓存。网络带宽为 1G,因此超过 ~100MBps 的带宽都是浪费,因此较大的文件(更连续地访问)应该从 SSD 缓存中排除。

我们可以配置 dm-cache 以仅在缓存 SSD 上缓存低于特定文件大小的文件吗?

答案1

因此,回答我自己的问题:我在 dm-cache 的文档中找到了所需的信息,更准确地说是在 中cache-policies.txt

根据文献,dm-cache 开箱即用,可区分随机传输和顺序传输. 引用cache-policies.txt

消息和构造函数参数对是:

  • 顺序阈值<#nr_sequence_ios>'
  • 随机阈值<#nr_random_ios>'
  • ‘阅读促进调整’
  • ‘写入促销调整’
  • ‘放弃提升调整’

顺序阈值表示在将流视为顺序之前所需的连续 I/O 数量。随机阈值是必须看到中间的非连续 I/O 数量,才能再次将流视为随机。

顺序和随机阈值分别默认为 512 和 4。

较大的连续 io 最好留在原始设备上,因为主轴往往具有良好的带宽。io_tracker 会计算连续的 I/O,以尝试确定 io 何时处于这些连续模式之一。

这与文件级别的区分(原始问题要求)不同,因为可能随机读取碎片大文件的块也会被缓存。但这是一个同样可行的(而且确实更强大)的解决方案。因此,原始问题错误地假设缓存解决方案适用于文件;实际上它在文件系统级别上起作用

相关内容