云缓存概述

云缓存是一项功能,适用于配置文件和 ODFC 容器,以提供复原和高可用性。 云缓存使用本地装载的容器为远程存储提供程序提供定期更新。 云缓存旨在使用户免受短期或间歇性本地(内部区域、邻近性)存储问题的隔离。 根据配置,在使用不同区域中的远程存储提供程序时,还可以将其用作业务连续性或灾难恢复(BCDR)计划的一部分。 使用云缓存可将性能和存储要求放在虚拟机上,以适应本地缓存所需的额外 I/O 操作和存储。

云缓存注意事项:

  • 云缓存根据条目的顺序 CCDLocations使用存储提供程序。
  • 存储提供程序应按邻近度顺序列出,然后按首选项列出。
  • 当从存储提供程序冻结数据时,仅使用一个 (1) 访问接口。
  • 无论在数据 解除冻结期间使用哪个提供程序,数据都会写入所有存储提供程序。
  • 存储提供程序的性能(延迟、利用率、瓶颈)会影响其与本地副本的同步状态。
  • 从本地缓存更新中隐藏的一个(1)或更多提供程序可能是性能不佳的存储提供程序的指示器。
  • PingTest-NetConnection 命令结果 与事务 I/O 不同 ,并且是 存储提供程序执行方式或可执行方式的不良 指标。

Figure 1: Cloud Cache Overview

图 1: 显示云缓存组件的详细关系图

云缓存组件

本地缓存

云缓存能够使用户免受远程存储提供程序的连接问题,因为用于用户配置文件的容器是创建并存储在虚拟机(本地缓存)本地的。 首次登录期间,FSLogix 将为用户 C:\ProgramData\FSLogix\Cache 创建容器,并将容器装载到虚拟机。 接下来,FSLogix 为用户配置文件设置所有必要的重定向。 然后,用户配置文件服务将用户配置文件创建到本地缓存中。 写入用户配置文件的所有数据都暂时作为块级缓存对象存储在同一目录中。 然后,这些块级缓存对象将提交到本地缓存。 在创建块级缓存对象之前,将通过代理文件在内存中处理对用户配置文件的写入。

在第 2或第 N 次登录期间,FSLogix 会尝试查找并装载存储在虚拟机上的任何以前本地缓存 VHD(s)。 查找本地缓存是默认配置设置,可能不需要,因为它可能会导致磁盘空间不足事件。 有关更多设置,请查看云缓存设置参考页。

Figure 2: Cloud Cache Local Cache

图 2: 云缓存本地缓存

远程存储提供程序(冻结、刷新、克隆)

云缓存在用户会话期间从本地缓存中运行用户的配置文件,并且必须使用一个或多个远程存储提供程序进行配置,如前 CCDLocations所述。 这些远程存储提供程序存储本地缓存的副本,并在当前会话和后续登录期间使用。如果在用户会话期间所有提供程序都变得 不正常 ,则本地缓存将继续运行并增长1 ,直到一个或多个提供程序返回到 正常 状态。

1 本地缓存只会增长到设置中指定的 SizeInMBs 容器的最大大小。

水合物

当本地缓存不包含文件系统请求的数据时,云缓存会将来自 1 个远程存储提供程序的数据冻结(读取和复制)到本地缓存。 在填充用户配置文件的本地缓存时,此操作也是登录过程的一部分。

刷新

刷新操作通常以三种方式发生。

  1. 在延迟异步操作中,云缓存会同时刷新所有存储提供程序的更改,因为每个提供程序在其自己的线程上刷新。 FSLogix 不会限制此操作,并且利用的吞吐量与系统允许的吞吐量一样多。
  2. 当一个或多个提供程序不包含所有更新时,用户的注销将延迟2 ,直到所有提供程序都处于同一顺序。
  3. 在用户会话期间,与任何存储提供程序的连接变得不正常时,FSLogix 会将所有更改排入队列,然后在它们返回到正常状态时将其刷新到提供程序。

2 使用该值配置 HealthyProvidersRequiredForUnregister 云缓存的方式,延迟用户的注销。

克隆

当云缓存确定存储提供程序不在同一序列时,将执行完整的 VHD(x) 克隆。 在此操作期间,所有挂起的写入都会保存在本地缓存中,直到所有存储提供程序都处于同一顺序。 完成后,刷新操作将开始向存储提供程序发送新数据。

索引(计时写入缓存)

云缓存使用本地缓存中的索引。 计时写入缓存是表示尚未提交到本地缓存的写入的文件。 这些文件使用数字扩展名进行说明。 将索引提交到本地缓存后,该索引将转换为缓存对象。

每当虚拟机意外关闭或重新启动时,都必须考虑索引文件。 这些文件表示尚未提交到本地缓存的数据,并可能导致数据丢失;最坏的情况是损坏的容器。 在非持久性或多会话环境中,一旦虚拟机从意外事件中恢复,用户通常不会连接到同一虚拟机。 在这些情况下,未正确提交并刷新到存储提供程序的数据可能会丢失,并导致用户配置文件容器出现问题。

代理文件

云缓存使用代理文件的概念,表示为 Profile_%username%.vhd 它不是真正的 VHD 文件。 代理文件用作收集和处理发往本地缓存的所有 I/O 写入的方法。 I/O 写入在内存中缓冲,并通过代理文件进行跟踪,然后再将其写出为缓存目录中的块级缓存对象。 虽然代理文件的大小与本地缓存文件的大小相同,但磁盘上的实际大小为零,因为不会将数据写入此文件。

Figure 3: Cloud Cache Proxy File

图 3: 云缓存代理文件

辅助文件

云缓存利用两个 (2) 个辅助文件来维护本地缓存的控制和顺序。

注意

这些辅助文件由 FSLogix 使用,不应在产品外部打开或使用。 这些文件中的任何相关信息将通过日志文件或事件日志条目提供。

锁定文件

锁文件是其名称可能暗示的文件,用于确定哪个虚拟机在容器上具有 I/O 锁。 云缓存使用此信息来确定给定提供程序的容器所有权。 将 Cloud Cache 与 ProfileType 一起使用设置为“3”(多个或并发会话)时,锁定文件机制至关重要。

元文件

元文件是一个多用途文件,用于跟踪容器的状态。 在元文件中,云缓存使用序列号系统来确定哪个提供程序具有最新的数据。

存储提供程序

FSLogix 不是存储提供程序,而是依赖于存储提供程序的基础体系结构。 有关存储提供程序 FSLogix 支持的详细信息,请查看容器存储选项

后续步骤