Menu Close
Settings Close

Language and Page Formatting Options

第 9 章 FS-Cache 入门

FS-Cache 是一种持久的本地缓存,文件系统可以使用它通过网络检索数据,并将其缓存在本地磁盘上。这有助于最小化网络流量,以便用户从通过网络挂载的文件系统访问数据(例如 NFS)。

9.1. FS-Cache 概述

下图显示了 FS-Cache 的工作原理:

图 9.1. FS-Cache 概述

FS-Cache 概述

FS-Cache 旨在对系统的用户和管理员尽可能透明。与 Solaris 上的 cachefs 不同,FS-Cache 允许服务器上的文件系统直接与客户端的本地缓存进行交互,而不创建过度挂载的文件系统。使用 NFS 时,挂载选项指示客户端挂载启用了 FS-cache 的 NFS 共享。挂载点将导致两个内核模块的自动上传:fscachecachefilecachefilesd 守护进程与内核模块进行通信来实施缓存。

FS-Cache 不会改变通过网络工作的文件系统的基本操作 - 它只是为文件系统提供了一个永久的位置,它可以在该位置缓存数据。例如,客户端仍然可以挂载 NFS 共享,无论是否启用了 FS-Cache。此外,缓存的 NFS 可以处理不能全部放入缓存的文件(无论是单独的还是总体的),因为文件可以部分缓存,且不必预先完全读取。FS-Cache 还会隐藏发生在客户端文件系统驱动程序的缓存中的所有 I/O 错误。

要提供缓存服务,FS-Cache 需要一个 缓存后端。缓存后端是配置来提供缓存服务的存储驱动程序,即 cachefile。在这种情况下,FS-Cache 需要一个挂载的基于块的文件系统,该文件系统支持 bmap 和扩展属性(例如 ext3)来作为其缓存后端。

支持 FS-Cache 缓存后端所需的功能的文件系统包括以下文件系统的 Red Hat Enterprise Linux 9 实现:

  • ext3(启用了扩展属性)
  • ext4
  • XFS

FS-Cache 不能任意缓存任何文件系统,不论是通过网络还是通过其他方式:必须更改共享文件系统的驱动程序,来允许与 FS-Cache、数据存储/检索以及元数据设置和验证进行交互。FS-Cache 需要来自缓存文件系统的 索引密钥一致性数据 来支持持久性:使用索引密钥匹配文件系统对象来缓存对象,使用一致性数据来确定缓存对象是否仍然有效。

注意

在 Red Hat Enterprise Linux 9 中,不会默认安装 cachefilesd 软件包,需要手动安装。