FlexCache 概览

本页面简要介绍了 FlexCache 功能。

FlexCache 简介

NetApp FlexCache 可加快数据访问速度,缩短 WAN 延迟时间,并降低读取密集型工作负载的 WAN 带宽费用,尤其是在客户端反复访问相同数据时。创建 FlexCache 卷时,该卷会充当现有(源)卷的远程缓存。此缓存仅存储源卷中经常访问的热数据。

当 FlexCache 卷收到针对其中包含的热数据的读取请求时,它会比源卷更快地做出响应,因为数据到达客户端的距离更短。如果 FlexCache 卷收到对不常访问的冷数据的读取请求,它会从源卷检索所需数据并存储,然后处理客户端请求。随后对该数据的读取请求将直接从 FlexCache 卷中提供。在首次请求后,数据不再需要通过网络传输,也不再需要从负载过重的系统提供。

虽然应用可以写入 FlexCache 卷,但这些写入会发送到源卷以保持缓存一致性。

通过将 FlexCache 与 Google Cloud NetApp Volumes 集成,您可以在 Google 网络中预配缓存卷,从而提高混合云环境的性能。此功能通过将本地数据中心的数据缓存到云端,支持将工作负载过渡到混合云。

NetApp Volumes 中的卷不能用作源卷。

FlexCache 具有以下功能:

写入行为

当数据写入 FlexCache 卷时,写入操作会传递到源卷。缓存会在源确认写入后确认写入。 写入文件会使该文件的缓存副本失效,并且缓存会在下次访问时再次检索该文件。

因访问时间更新而导致的缓存失效

ONTAP 提供了一个名为 -atime-update 的卷级字段,用于管理使用 READREADLINKREADDIR 读取的文件和目录的访问时间更新。

源卷或缓存卷上的访问时间更新可能会触发文件失效,从而降低缓存效果,并导致文件访问速度缓慢和延迟时间较长。为防止出现此问题,请使用 ONTAP volume modify -atime-update 命令在源卷上停用访问时间更新。

NetApp Volumes 中的 FlexCache 卷会继承来源的 -atime-update 设置,这可能会增加缓存失效次数。因此,我们建议您在源卷上停用访问时间更新。

全局文件锁定

全局文件锁定(默认处于停用状态)可防止跨所有相关缓存文件进行读取。启用此选项后,系统会暂停对源卷的修改,直到所有 FlexCache 卷都处于联机状态。只有当您能够控制缓存与源之间的连接可靠性时,才应启用此功能,因为如果 FlexCache 卷处于离线状态,修改可能会暂停或超时。

CIFS 更改通知

SMB 协议提供了一种机制,用于将其他客户端对卷所做的更改通知给 SMB 客户端。这样,Windows 文件资源管理器等应用就可以更新其视图,而无需轮询卷。此可选功能适用于以下缓存:交互式用户通过 Windows 资源管理器访问 SMB 卷上的文件。否则,应停用此功能以减少通知负载。

缓存预填充

虽然 NetApp Volumes 不提供用于预先填充缓存的 API 支持,但您可以从客户端预热缓存。此过程涉及读取文件,以确保其数据已加载到缓存中。

以下标签页显示了用于预热不同客户端操作系统缓存的命令。这些命令通常还会预先预热目录列表。

Linux 或 UNIX 客户端

如需预热缓存,请执行以下操作:

find DIR_PATH -type f -print -exec sh -c 'cat "$1" > /dev/null' sh {} \;

Windows 客户端

如需预热缓存,请执行以下操作:

for /f "delims=" %i in ('dir /b /s /a-d DIR_PATH') do @type "%i" >NUL

如需加快预填充流程,请考虑使用 XCP 等数据迁移工具。

使用 XCP 读取数据并填充缓存:

   xcp -md5 -q SERVER:/PATH
  

后续步骤

规划 FlexCache 卷