4.14. 启用 NFS 内容的客户端缓存
FS-Cache 是客户端中的一个持久的本地缓存。文件系统可以使用它通过网络检索数据并将其缓存在本地磁盘上。这有助于最小化网络流量。
4.14.1. NFS 缓存如何工作 复制链接链接已复制到粘贴板!
网络文件系统(NFS)缓存利用 FS-Cache 提高网络文件系统性能,减少服务器负载,并通过缓存后端和透明集成启用高效的本地数据检索。
下图显示了 FS-Cache 的工作原理:
FS-Cache 旨在对系统的用户和管理员尽可能透明。在服务器上使用 FS-Cache 文件系统可以直接与客户端的本地缓存交互,而无需创建过度挂载的文件系统。使用 NFS 时,挂载选项指示客户端挂载启用了 FS-cache 的 NFS 共享。挂载点会导致内核模块 cachefiles 自动上传。cachefilesd 守护进程与内核模块进行通信来实施缓存。
FS-Cache 不会改变通过网络工作的文件系统的基本操作。它只是为文件系统提供一个永久位置,以便其可以缓存数据。例如,客户端仍然可以挂载 NFS 共享,无论是否启用了 FS-Cache。此外,缓存的 NFS 可以处理不适合缓存的文件(无论是单独还是全部)。由于文件可以被部分缓存,因此不必提前完全读取。FS-Cache 还会隐藏客户端文件系统驱动程序的缓存中发生的所有输入/输出(I/O)错误。
要提供缓存服务,FS-Cache 需要一个缓存后端,cachefiles 服务。FS-Cache 需要挂载的基于块的文件系统,该文件系统支持块映射(bmap)和扩展属性作为其缓存后端:
- XFS
- ext3
- ext4
FS-Cache 无法任意缓存任何文件系统,无论是通过网络还是通过其他方式:必须更改共享文件系统的驱动程序,以允许与 FS-Cache、数据存储或检索以及元数据配置和验证进行交互。FS-Cache 需要来自缓存文件系统的 索引密钥 和 一致性数据 来支持持久性:使用索引密钥匹配文件系统对象来缓存对象,使用一致性数据来确定缓存对象是否仍然有效。
使用 FS-Cache 是各种因素之间的一种折衷。如果 FS-Cache 被用来缓存 NFS 流量,则它可能使客户端减慢,但可以通过满足本地读请求而无需消耗网络带宽,来大大减少网络和服务器负载。