XenApp and XenDesktop

配置与管理

本主题介绍配置和管理 Personal vDisk (PvD) 环境时需要考虑的项目,其中还包括最佳做法指导原则和任务描述。

对于包括使用 Windows 注册表的过程:

小心:

注册表编辑不当会导致严重问题,可能需要重新安装操作系统。Citrix 无法保证因注册表编辑器使用不当导致出现的问题能够得以解决。使用注册表编辑器需自担风险。在编辑注册表之前,请务必进行备份。

注意事项:个人虚拟磁盘大小

以下因素影响主个人虚拟磁盘卷的大小:

  • 用户将在其 PvD 上安装的应用程序的大小

    重新启动时,PvD 会确定应用程序区域 (UserData.v2.vhd) 中剩余的可用空间。如果可用空间低于 10%,应用程序区域将扩展到任何未使用的配置文件区域空间中(默认为驱动器 P: 上的可用空间)。添加到应用程序区域的空间大约占应用程序区域和配置文件区域中剩余的总可用空间的 50%。

    例如,如果 10 GB PvD 上的应用程序空间(默认大小为 5 GB)达到 4.7 GB,配置文件区域具有 3 GB 可用空间,则添加到应用程序区域的新增空间的计算方法如下:

    增加的空间 = (5.0-4.7)/2 + 3.0/2 = 1.65 GB

    添加到应用程序区域的空间只是一个大约值,因为会提供小额的补贴空间来存储日志以及用于开销。计算及可能的调整大小操作在每次重新启动时执行。

  • 用户配置文件的大小(如果未使用独立的配置文件管理解决方案)

    除应用程序所需的空间外,还应确保个人虚拟磁盘上有足够的可用空间来存储用户的配置文件。计算空间要求时请包括任何非重定向特殊文件夹(如“我的文档”和“我的音乐”)。可以从“控制面板”(sysdm.cpl) 获取现有配置文件的大小。

    某些配置文件重定向解决方案存储存根文件(标记文件)而非真实的配置文件数据。这些配置文件解决方案可能显示为最初未存储任何数据,但实际上每个存根文件占用文件系统中的一个文件目录条目;通常情况下,此数量大约为每个文件 4 KB。如果您采用此类解决方案,必须根据实际的配置文件数据(而非存根文件)来预估大小。

    企业文件共享应用程序(如 ShareFile 和 Dropbox)可能会将数据同步或下载到个人虚拟磁盘上的用户配置文件区域。如果您采用此类解决方案,预估大小时必须包括足够的空间来存储此数据。

  • 包含 PvD 清单的模板 VHD 占用的开销

    模板 VHD 包含 PvD 清单数据(与主映像内容对应的标记文件)。PvD 应用程序区域将基于此 VHD 创建。由于每个 sentinel 文件或文件夹由文件系统中的文件目录条目组成,因此,模板 VHD 内容将占用 PvD 应用程序空间,即使在最终用户安装任何应用程序之前也是如此。可以通过在创建清单后浏览主映像来确定模板 VHD 的大小。或者,也可以使用以下等式估算其大小:

    模板 VHD 大小 = (基础映像上的文件数) x 4 KB

    可以通过在基础 VM 映像中的驱动器 C: 上单击鼠标右键并选择属性来确定文件和文件夹的数量。例如,包含 25 万个文件的映像的模板 VHD 大小约为 1,024,000,000 字节(接近 1 GB)。此空间不可用于 PvD 应用程序区域中的应用程序安装。

  • PvD 映像更新操作的开销

    执行 PvD 映像更新操作期间,PvD 的根目录处(默认为 P:)必须有足够的可用空间,以便合并来自两个映像版本的变更以及用户对其 PvD 所做的更改。通常情况下,PvD 会预留几百 MB 空间用于此目的,但写入到 P: 驱动器的额外数据可能会占用这些预留的空间,致使没有足够的空间来成功完成映像更新。PvD 池统计数据脚本(位于 XenDesktop 安装介质上的 Support/Tools/Scripts 文件夹中)或 PvD 映像更新监视工具(位于 Support/Tools/Scripts\PvdTool 文件夹中)可以帮助识别目录中正在更新以及接近满载的 PvD 磁盘。

    如果存在防病毒产品,可能会影响运行清单或执行更新所需的时间。如果将 CtxPvD.exe 和 CtxPvDSvc.exe 添加到防病毒产品的排除列表,则可以提高性能。这些文件位于 C:\Program Files\Citrix\personal vDisk\bin 中。从防病毒软件执行的扫描中排除这些可执行文件最高可将清单和映像更新的性能提升十倍。

  • 非预期增长(非预期应用程序安装等)的开销

    考虑在总大小的基础上额外留出一定的空间(固定量或虚拟磁盘大小的百分比),用于用户在部署期间执行的任何非预期应用程序安装。

方法:配置个人虚拟磁盘大小和分配

可以通过设置 VHD 的初始大小手动调整用于决定相对于驱动器 P: 的 VHD 大小的自动调整大小算法。例如,如果您知晓用户将安装大量应用程序,但这些应用程序过大,无法安装在 VHD 上,即使通过算法调整大小之后也是如此,则此操作将非常有用。在此情况下,可以增加应用程序空间的初始大小,以容纳用户安装的应用程序。

更可取的做法是调整主映像上的 VHD 的初始大小。或者,当用户没有足够的空间来安装应用程序时,也可以调整虚拟桌面上 VHD 的大小。但是,必须在每个受影响的虚拟桌面上分别重复此操作;无法调整已创建目录中的 VHD 初始大小。

请确保 VHD 足够大,能够存储防病毒定义文件,这些文件通常都非常大。

查找并设置 HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\personal vDisk\Config 中的注册表项。(请勿修改此注册表项中的其他设置。)所有设置必须在主映像上指定(MinimumVHDSizeInMB 除外,可以在单台计算机上更改此设置);在主映像上指定的设置在下一次映像更新时应用。

  • MinimumVHDSizeMB

    指定个人虚拟磁盘的应用程序部分 (C:) 的最低大小(以 MB 为单位)。新大小必须大于现有大小,但小于磁盘大小减去 PvDReservedSpaceMB 所得的值。

    增大此值会将虚拟磁盘上配置文件部分中的可用空间分配给 C:。如果使用的值小于当前 C: 驱动器的大小,或者如果 EnableDynamicResizeOfAppContainer 设置为 0,则将忽略此设置。

    默认值 = 2048

  • EnableDynamicResizeOfAppContainer

    启用或禁用动态调整大小算法。

    • 设置为 1 时,当 C: 上的可用空间下降到 10% 以下时,应用程序空间(位于 C: 上)将自动调整大小。允许使用的值为 1 和 0。需要重新启动才能使调整的大小生效。
    • 设置为 0 时,将根据 7.x 之前的 XenDesktop 版本中使用的方法确定 VHD 的大小。

    默认值 = 1

  • EnableUserProfileRedirection

    启用或禁用将用户的配置文件重定向到虚拟磁盘。

    • 设置为 1 时,PvD 将用户的配置文件重定向到个人虚拟磁盘驱动器(默认情况下为 P:)。配置文件通常重定向到 P:\Users,与标准 Windows 配置文件相对应。此重定向会保留配置文件,以防需要重置 PvD 桌面。

    • 如果设置为 0,虚拟磁盘上的所有空间减去 PvDReservedSpaceMB 所得的值将分配给 C:,即虚拟磁盘应用程序部分,并且虚拟磁盘驱动器 (P:) 在 Windows 资源管理器中处于隐藏状态。Citrix 建议在使用 Citrix Profile Management 或其他漫游配置文件解决方案时通过将此值设置为 0 来禁用重定向。

      此设置会将配置文件保留在 C:\Users 中(而非将其重定向到虚拟磁盘),并使漫游配置文件解决方案能够处理配置文件。

      此值可确保将 P: 上的所有空间都分配给应用程序。

      本主题做以下假设,即将此值设置为 0 时,配置文件管理解决方案已准备就绪。如果漫游配置文件解决方案未准备就绪,则建议不要禁用配置文件重定向,因为后续的 PvD 重置操作会导致删除配置文件。

    更新映像时请勿更改此设置,因为此设置不会更改现有配置文件的位置,但会将个人虚拟磁盘上的所有空间分配给 C: 并隐藏 PvD。

    请在部署目录前配置此值。部署目录后无法更改此值。

    重要:自 XenDesktop 7.1 以来,执行映像更新时不会保留对此值所做的更改。在第一次创建配置文件的来源目录时设置密钥值。以后将无法修改重定向行为。

    默认值 = 1

  • PercentOfPvDForApps

    设置虚拟磁盘的应用程序部分 (C:) 与配置文件部分之间的拆分。如果将 EnableDynamicResizeOfAppContainer 设置为 0,则创建新 VM 时以及执行映像更新期间会使用此值。

    仅当将 EnableDynamicResizeOfAppContainer 设置为 0 时,更改 PercentOfPvDForApps 设置才会产生差别。默认情况下,将 EnableDynamicResizeOfAppContainer 设置为 1(启用),这意味着仅当 AppContainer(您看到的是 C 驱动器)接近满载时,也就是可用空间低于 10% 时,才得以扩展(即动态扩展)。

    增大 PercentOfPvDForApps 时仅增大允许 Apps 部分扩展到的最大空间。该操作不会立即预配空间。您还必须在主映像中配置拆分分配,所配置的设置将在下次映像更新时应用。

    如果已在将 EnableDynamicResizeOfAppContainer 设置为 1 的情况下生成计算机目录,请在主映像中将此设置更改为 0,以便下次更新时应用,并配置一个恰当的分配拆分。只要请求的拆分大小大于当前为 C 驱动器分配的大小,则始终应用该大小。

    如果您希望保持对空间拆分的完整控制,应将此值设置为 0。这允许您完整控制 C 驱动器的大小,而不依赖占用的空间低于阈值的用户扩展该驱动器。

    默认值:50%(为两部分分配相等的空间)

  • PvDReservedSpaceMB

    指定虚拟磁盘上为存储 Personal vDisk 日志及其他数据而保留的空间大小(以 MB 为单位)。

    如果您的部署包含 XenApp 6.5(或更早的版本)并使用应用程序流技术推送,请根据 Rade 缓存的大小增大此值。

    默认值 = 512

  • PvDResetUserGroup

    仅适用于 XenDesktop 5.6 - 允许指定的用户组重置个人虚拟磁盘。之后的 XenDesktop 版本使用委派管理员实现此目的。

其他设置:

  • Windows 更新服务 - 确保在主映像中将 Windows 更新设置为“从不检查更新”,将 Windows 更新服务设置为“已禁用”。如果需要在 PvD 上运行 Windows 更新服务,将其设置为“从不检查更新”有助于阻止在关联的计算机上安装更新。

    Windows 8 应用商店需要运行此服务才能安装现代风格的应用程序。

  • Windows 更新 - 包括 Internet Explorer 更新,必须在主映像上应用。

  • 更新要求重新启动 - 应用于主映像的 Windows 更新可能要求多次重新启动才能完全安装,具体取决于这些更新提供的修补程序类型。请务必先正确重新启动主映像以全面完成应用到该映像的任何 Windows 更新的安装,然后再创建 PvD 清单。

  • 应用程序更新 - 更新主映像上安装的应用程序以节省用户虚拟磁盘上的空间。此设置还可避免重复更新每个用户的虚拟磁盘上的应用程序。

注意事项:主映像上的应用程序

某个软件可能与 PvD 组成用户环境的方式相冲突,因此,必须将其安装在主映像上(而不是单台计算机上)以避免这些冲突。此外,尽管某些其他软件并不会与 PvD 操作冲突,Citrix 还是建议将其安装在主映像上。

必须安装在主映像上的应用程序:

  • 代理和客户端(例如,System Center Configuration Manager Agent、App-V 客户端、Citrix Receiver)
  • 用于安装或修改早期启动驱动程序的应用程序
  • 用于安装打印机或扫描仪软件/驱动程序的应用程序
  • 用于修改 Windows 网络堆栈的应用程序
  • VMware Tools 和 XenServer Tools 等 VM 工具

应该安装在主映像上的应用程序:

  • 分发给大量用户的应用程序。在每种情况下,都请在部署之前关闭应用程序更新:
    • 使用批量许可的企业应用程序,例如 Microsoft Office、Microsoft SQL Server
    • 常见应用程序,例如 Adobe Reader、Firefox 和 Chrome
  • 大型应用程序(例如 SQL Server、Visual Studio)和应用程序框架(例如 .NET)

以下建议和限制适用于用户在具有个人虚拟磁盘的桌面上安装的应用程序。如果用户具有管理权限,则不能强制执行其中某些建议和限制:

  • 用户不应卸载主映像上的应用程序并在其个人虚拟磁盘上重新安装相同的应用程序。
  • 更新或卸载主映像上的应用程序时应小心谨慎。在映像上安装某个版本的应用程序时,用户可能会安装一个需要此版本的加载项应用程序(例如插件)。如果存在此类依赖项,则更新或卸载该映像上的应用程序可能会导致加载项无法正常使用。例如,在主映像上安装 Microsoft Office 2010 后,用户在其个人虚拟磁盘中安装 Visio 2010。以后升级主映像上的 Office 可能会导致本地安装的 Visio 不可用。
  • 不支持具有依赖于硬件的许可证的软件(通过硬件保护装置或基于签名的硬件)。

注意事项:Provisioning Services

同时使用 Provisioning Services 和 PvD 时:

  • 必须将 Soap Service 帐户添加到 Citrix Studio 的“管理员”节点,并且必须具有“计算机管理员”或权限更高的角色。这样可确保在将 Provisioning Services (PVS) 虚拟磁盘提升到生产模式时将 PvD 桌面置于“正在准备”状态。
  • 必须使用 Provisioning Service 版本控制功能来更新 Personal vDisk。将版本提升到生产模式时,Soap Service 会将 PvD 桌面置于“正在准备”状态。
  • 个人虚拟磁盘的大小应始终大于 Provisioning Services 写入缓存磁盘的大小(否则,Provisioning Services 可能错误地选择个人虚拟磁盘用作其写入缓存)。
  • 创建交付组后,可以使用 PvD 映像更新监视工具或 resize 和 poolstats 脚本 (personal-vdisk-poolstats.ps1) 监视个人虚拟磁盘。

正确设置写入缓存磁盘的大小。正常操作期间,PvD 捕获大多数用户写入(更改)并将其重定向到个人虚拟磁盘。这表示您可以降低 Provisioning Services 写入缓存磁盘的大小。但是,当 PvD 不活动时(例如执行映像更新操作期间),小型 Provisioning Services 写入缓存磁盘可能会填满数据,导致计算机崩溃。

Citrix 建议根据 Provisioning Services 最佳做法来确定 Provisioning Services 写入缓存磁盘的大小,并且添加大小等于主映像上的模板 VHD 大小两倍的额外空间(以适应合并要求)。合并操作需要所有这些空间的可能性非常低,但仍存在这种可能性。

使用 Provisioning Services 部署包含启用 PvD 的计算机的目录时:

  • 请按照 Provisioning Services 文档中的指导进行操作。
  • 可以通过编辑 Studio 中的连接,更改电源操作限制设置;请参阅下文。
  • 如果更新 Provisioning Services 虚拟磁盘,请在安装/更新应用程序和其他软件并重新启动虚拟磁盘后,运行 PvD 清单,然后关闭 VM。然后,将新版本提升到生产模式。目录中的 PvD 桌面应自动进入“正在准备”状态。如果没有进入此状态,请检查 Soap Service 帐户在 Controller 上是否具有计算机管理员权限或更高权限。

利用 Provisioning Services 测试模式功能,您可以创建包含使用已更新主映像的计算机的目录。如果测试确认了测试目录的可行性,则可以将其提升为生产模式。

注意事项:Machine Creation Services

使用 Machine Creation Services (MCS) 部署包含启用 PvD 的计算机的目录时:

  • 请按照 XenDesktop 文档中的指导进行操作。
  • 创建主映像后运行 PvD 清单,然后关闭 VM(如果不关闭 VM,PvD 无法正常运行。)然后,创建主映像的快照。
  • 在“创建计算机目录”向导中,指定个人虚拟磁盘大小和驱动器盘符。
  • 创建交付组后,可以使用 PvD 映像更新监视工具或 resize 和 poolstats 脚本 (personal-vdisk-poolstats.ps1) 监视个人虚拟磁盘。
  • 可以通过编辑 Studio 中的连接,更改电源操作限制设置;请参阅下文。
  • 如果您更新主映像,请在更新映像上的应用程序和其他软件后运行 PvD 清单,然后关闭 VM。然后,创建主映像的快照。
  • 使用 PvD 映像更新监视工具或 personal-vdisk-poolstats.ps1 脚本验证将使用更新后的主映像且启用 PvD 的每个 VM 上是否有足够的空间。
  • 更新计算机目录后,PvD 桌面进入“正在准备”状态,因为它们各自分别处理新主映像中的更改。这些桌面根据在计算机更新过程中指定的前滚策略进行更新。
  • 使用 PvD 映像更新监视工具或 personal-vdisk-poolstats.ps1 脚本监视处于“正在准备”状态的 PvD。

方法:排除虚拟磁盘中的文件和文件夹

使用规则文件从虚拟磁盘排除文件和文件夹。可以在部署个人虚拟磁盘期间执行此项操作。规则文件按 custom_*_rules.template.txt 格式命名并存储在 \config 文件夹中。各个文件中的注释提供了其他文档。

方法:更新主映像时运行清单

如果启用 PvD 并在安装后对主映像进行了更新,之后应刷新磁盘的清单(称为“运行清单”)并创建新快照,这一点很重要。

由于管理员(而非用户)管理主映像,因此,如果您安装的某个应用程序将二进制文件放在管理员的用户配置文件中,则共享虚拟桌面(包括基于池计算机目录以及使用 PvD 的池计算机目录的共享虚拟桌面)的用户将无法使用此应用程序。用户必须自己安装此类应用程序。

建议在完成下述过程中的每个步骤后为映像创建快照。

  1. 通过执行以下操作升级主映像:安装任何应用程序或操作系统更新,然后在计算机上执行任何系统配置操作。

    对于以要通过 Personal vDisk 部署的 Windows XP 为基础的主映像,请确认未打开任何对话框(例如,确认软件安装情况的消息或使用未签名驱动程序的提示)。此环境中主映像上打开的对话框将阻止 VDA 注册到 Delivery Controller。可以使用“控制面板”防止显示使用未签名应用程序的提示。例如,导航到“系统”>“硬件”>“驱动程序签名”,然后选择忽略警告对应的选项。

  2. 关闭计算机。对于 Windows 7 计算机,请在 Citrix Personal vDisk 阻止关机时单击取消。

  3. 在 Citrix Personal vDisk 对话框中,单击更新清单。此步骤可能需要几分钟时间才能完成。

    重要:如果您中断了随后的关机过程(即使是对映像执行少量更新),Personal vDisk 的清单也不再与主映像一致。这将导致 Personal vDisk 功能停止运行。如果您中断了关闭过程,则必须重新启动计算机,将其关闭,然后在系统提示时再次单击更新清单。

  4. 清单操作关闭计算机后,请生成一张主映像快照。

可以将清单导出到网络共享,然后再将此清单导入到主映像。有关详细信息,请参阅导出和导入 PvD 清单。

方法:配置连接限制设置

Citrix Broker Service 控制提供桌面和应用程序的计算机的电源状态。Broker Service 可以通过一个 Delivery Controller 控制多个虚拟机管理程序。Broker 电源操作控制 Controller 与虚拟机管理程序之间的交互。为了避免虚拟机管理程序过载,向更改计算机电源状态的操作分配优先级,并使用限制机制将其发送到虚拟管理程序。以下设置影响限制。可以通过在 Studio 中编辑连接(“高级”页面)指定这些值。

要配置连接限制值,请执行以下操作:

  1. 在 Studio 导航窗格中选择配置 > 托管。
  2. 选择连接,然后在操作窗格中选择编辑连接。
  3. 可以更改以下值:
    • 同步操作(所有类型) - 允许同时进行的最大电源操作数。此设置同时指定虚拟机管理程序连接的绝对值和百分比。使用两个值中的较小值。

      默认值:绝对值 100,20%

    • 同步个人虚拟磁盘清单更新 - 允许同时进行的最大个人虚拟磁盘电源操作数。此设置同时指定连接的绝对值和百分比。使用两个值中的较小值。

      默认值:绝对值 50,25%

      计算绝对值:确定最终用户存储支持的 IOPS 总数 (TIOPS)(此值由制造商指定或通过计算机得出)。每个 VM 使用 350 次 IOPS (IOPS/VM),确定在给定时间存储上应该活动的 VM 数。通过使用 IOPS 总数除以 IOPS/VM 计算此值。

      例如,如果最终用户存储为 14000 IPS,则活动 VM 数为 14000 IOPS / 350 IOPS/VM = 40。

    • 每分钟最大新操作数 - 每分钟可以发送给虚拟机管理程序的最大新电源操作数。以绝对值形式提供。

      默认值 = 10

为帮助找出部署中有关这些设置的最佳值,请遵循以下说明:

  1. 使用默认值测量测试目录的映像更新所需的总响应时间。此值是指映像更新开始时间 (T1) 与目录中的最后一台计算机上的 VDA 向 Controller 注册的时间 (T2) 之间的差。总响应时间 = T2 - T1。
  2. 测量映像更新期间虚拟机管理程序存储的每秒钟输入/输出操作数 (IOPS)。此数据可用作优化基准。(默认值可能是最佳设置;但是,系统也可能会达到最大 IOPS,此时需要降低设置值。)
  3. 请按照下文所述更改“同步个人虚拟存储清单更新”值(所有其他设置保持不变)。
    1. 将此值增加 10,并在每次更改后测量总响应时间。继续将此值增加 10 并测试结果,直到总响应时间降低或无变化。
    2. 如果前一步的结果显示通过增加值未得到改善,则以 10 为增量降低此值,并在每次降低后测量总响应时间。重复此步骤,直到总响应时间保持不变或未得到进一步改善。此值很可能就是最佳的 PvD 电源操作值。
  4. 获得 PvD 电源操作设置值后,调整“同步操作(所有类型)”值和“每分钟最大新操作数”值,每次调整一个。按照以上所述过程(按增量增加或降低)测试其他值。

方法:具有 PvD 的 System Center Configuration Manager 2007

System Center Configuration Manager (Configuration Manager) 2012 无需任何特殊配置,可以像安装其他主映像应用程序那样安装。下列信息仅适用于 System Center Configuration Manager 2007。不支持 Configuration Manager 2007 之前的 Configuration Manager 版本。

要在 PvD 环境中使用 Configuration Manager 2007 代理软件,请完成以下步骤。

  1. 在主映像上安装客户端代理。
    1. 在主映像上安装 Configuration Manager 客户端。
    2. 停止并禁用 ccmexec 服务(SMS 代理)。
    3. 按如下所示从本地计算机证书存储中删除 SMS 或客户端证书:
      • 混合模式:证书(本地计算机)\SMS\证书
      • 本机模式
        • 证书(本地计算机)\个人\证书
        • 删除证书颁发机构颁发的客户端证书(通常为内部公钥基础结构)
    4. 删除或重命名 C:\Windows\smscfg.ini。
  2. 删除唯一标识客户端的信息。
    1. (可选)删除或移动 C:\Windows\System32\CCM\Logs 中的日志文件。
    2. 安装 Virtual Delivery Agent(如果以前未安装)并创建 PvD 清单。
    3. 关闭主映像,创建快照,然后使用此快照创建计算机目录。
  3. 验证 Personal vDisk 并启动服务。在每个 PvD 桌面首次启动后执行一次这些步骤。例如,可以使用域 GPO 完成此操作。
    • 通过检查是否存在注册表项 HKLM\Software\Citrix\personal vDisk\config\virtual 来确认 PvD 处于活动状态。
    • 将 ccmexec 服务(SMS 代理)设置为“自动”并启动该服务。Configuration Manager 客户端与 Configuration Manager 服务器联系,并检索新的唯一证书和 GUID。