本页面简要介绍了 FlexCache 功能。
FlexCache 简介
NetApp FlexCache 可加快数据访问速度,缩短 WAN 延迟时间,并降低读取密集型工作负载的 WAN 带宽费用,尤其是在客户端反复访问相同数据时。创建 FlexCache 卷时,该卷会充当现有(源)卷的远程缓存。此缓存仅存储源卷中经常访问的热数据。
当 FlexCache 卷收到针对其中包含的热数据的读取请求时,它会比源卷更快地做出响应,因为数据到达客户端的距离更短。如果 FlexCache 卷收到对不常访问的冷数据的读取请求,它会从源卷检索所需数据并存储,然后处理客户端请求。随后对该数据的读取请求将直接从 FlexCache 卷中提供。在首次请求后,数据不再需要通过网络传输,也不再需要从负载过重的系统提供。
虽然应用可以写入 FlexCache 卷,但这些写入会发送到源卷,以保持缓存一致性。
通过将 FlexCache 与 Google Cloud NetApp Volumes 集成,您可以在 Google 网络中预配缓存卷,从而提高混合云环境的性能。此功能通过将数据从本地数据中心缓存到云端,支持将工作负载过渡到混合云。
NetApp Volumes 中的卷不能用作源卷。
FlexCache 具有以下特征:
写入行为
FlexCache 可确保您从源站或其任何缓存中读取的数据始终是最新的。为了在可将数据写入来源或任何缓存的环境中管理写入操作,FlexCache 提供了以下策略来处理这些写入操作。
围绕主题撰写
环绕写入是默认的缓存设置。建议在读取密集型工作负载的环境中使用,或在仅写入小文件的环境中使用。
当数据写入 FlexCache 卷时,写入操作会传递到源卷。缓存会在源确认写入后确认写入。写入文件会使该文件的缓存副本失效,并且缓存会在下次访问时再次检索该文件。
此策略可为缓存数据提供类似于 LAN 的读取延迟。不过,写入吞吐量取决于与来源的网络连接。如果源服务器与缓存之间的网络出现故障,用户仍然可以访问缓存中的数据。
回写
回写仅适用于特定工作负载。它可为大型文件的密集写入提供快速写入速度。对于需要向多个文件进行多次小写入的工作负载,不建议使用回写,因为管理来源与所有缓存之间的数据一致性的开销会显著降低性能。
在为 FlexCache 启用回写之前,请先查看 ONTAP FlexCache 回写指南,了解架构影响,并检查您的环境是否符合文档中记录的工作负载配置文件。除非您能验证工作负载适合回写,否则建议选择透写。
用户可以选择性地启用写回支持。启用写回后,客户端可以以类似于 LAN 的性能将大量数据写入缓存。 然后,缓存会将这些更改发送到源服务器。由于客户端向缓存的写入速度可能超过向源发送数据的速率,因此缓存会暂时存储更改,直到这些更改完全刷新到源。在客户端向文件写入数据的期间,源服务器和所有其他缓存都会阻止对该文件的读取调用,直到写入操作完成。
回写策略可为缓存数据提供类似 LAN 的读取和写入性能。不过,如果缓存或来源失去连接,所有读取和写入操作都会被阻止。
因访问时间更新而导致缓存失效
ONTAP 提供了一个名为 -atime-update 的卷级字段,用于管理使用 READ、READLINK 和 READDIR 读取的文件和目录的访问时间更新。
源卷或缓存卷上的访问时间更新可能会触发文件失效,从而降低缓存效果,并导致文件访问速度缓慢和延迟时间较长。为防止出现此问题,请使用 ONTAP volume modify -atime-update 命令在源卷上停用访问时间更新。在需要访问时间反映最近读取操作的场景中,请使用 volume modify -atime-update-period 命令定义停止更新访问时间的时间段。例如,将其设置为 86400 秒会导致每天仅更新一次访问时间。
NetApp Volumes 中的 FlexCache 卷会继承来源的 -atime-update 设置,这可能会增加缓存失效次数。因此,我们建议您在源卷上停用访问时间更新。
全局文件锁定
全局文件锁定会在所有缓存和源卷中的文件上强制执行拒绝读取和独占字节范围锁定。如果您的工作流程必须严格强制执行这些锁定,以保持数据一致性或防止访问冲突,请启用全局文件锁定。
注意事项
仅当缓存与源之间具有可靠的连接时,才启用全局文件锁定。连接不稳定可能会导致修改延迟或暂停,如果 FlexCache 卷处于离线状态,则会导致超时。
性能影响:启用全局文件锁定会增加延迟时间,因为每次缓存读取都会触发对源的锁定验证请求,从而增加往返时间 (RTT)。
可用性影响:如果某个缓存卷离线,则所有其他缓存卷对该缓存卷中文件的读取都会被阻止,并且对源卷的修改会暂停,直到所有 FlexCache 卷都恢复在线状态。
由于全局文件锁定会影响系统性能和可靠性,因此除非工作流程明确需要,否则请保持禁用状态。
CIFS 更改通知
SMB 协议提供了一种机制,用于将其他客户端对卷所做的更改通知给 SMB 客户端。这样,Windows 文件资源管理器等应用就可以更新其视图,而无需轮询卷。对于交互式用户通过 Windows 资源管理器访问 SMB 卷上的文件的缓存,此可选功能非常有用。否则,应停用此功能以减少通知负载。
缓存预填充
FlexCache 通过在首次从源读取数据时缓存数据来加快读取访问速度,并有助于确保缓存一致性,使源和所有缓存保持同步。因此,初始文件访问具有类似 WAN 的读取性能,但后续读取速度与本地读取一样快。
如果您知道缓存中需要哪些特定数据,可以使用缓存预填充。预填充功能可让您指示缓存先提取特定文件和文件夹,然后再首次使用它们,从而加快首次访问时的读取速度。
如需启动预填充作业,您必须向缓存提供文件或目录路径列表。您还可以选择启用递归,以便提取子目录中的所有内容。
预填充作业的执行时间可能会因要预填充的数据量以及缓存与来源之间的网速而异。借助 FlexCache,您可以监控预填充作业的状态,了解其是仍在运行还是已完成。