本页面简要介绍了 FlexCache 功能。
FlexCache 简介
NetApp FlexCache 可加快数据访问速度,缩短 WAN 延迟时间,并降低读取密集型工作负载的 WAN 带宽费用,尤其是在客户端反复访问相同数据时。创建 FlexCache 卷时,该卷会充当现有(源)卷的远程缓存。此缓存仅存储源卷中经常访问的热数据。
当 FlexCache 卷收到针对其中包含的热数据的读取请求时,它会比源卷更快地做出响应,因为数据到达客户端的距离更短。如果 FlexCache 卷收到对不常访问的冷数据的读取请求,它会从源卷检索所需数据并存储,然后处理客户端请求。随后对该数据的读取请求将直接从 FlexCache 卷中提供。在首次请求后,数据不再需要通过网络传输,也不再需要从负载过重的系统提供。
虽然应用可以写入 FlexCache 卷,但这些写入会发送到源卷以保持缓存一致性。
通过将 FlexCache 与 Google Cloud NetApp Volumes 集成,您可以在 Google 网络中预配缓存卷,从而提高混合云环境的性能。此功能通过将本地数据中心的数据缓存到云端,支持将工作负载过渡到混合云。
NetApp Volumes 中的卷不能用作源卷。
FlexCache 具有以下功能:
写入行为
当数据写入 FlexCache 卷时,写入操作会传递到源卷。缓存会在源确认写入后确认写入。 写入文件会使该文件的缓存副本失效,并且缓存会在下次访问时再次检索该文件。
因访问时间更新而导致的缓存失效
ONTAP 提供了一个名为 -atime-update
的卷级字段,用于管理使用 READ
、READLINK
和 READDIR
读取的文件和目录的访问时间更新。
源卷或缓存卷上的访问时间更新可能会触发文件失效,从而降低缓存效果,并导致文件访问速度缓慢和延迟时间较长。为防止出现此问题,请使用 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