Product Documentation

管理个人虚拟磁盘

Nov 06, 2015

使用个人虚拟磁盘的主机的存储

注意:可以使用 Personal vDisk 7.x 升级此功能。本版本中包含的新增功能和缺陷修复可通过下载获取。

创建主机时,应为虚拟机使用的磁盘定义存储位置。可以将用于存储用户配置文件和用户安装应用程序的个人虚拟磁盘与用于计算机操作系统的磁盘分隔开来。每台虚拟机都必须对这两种磁盘的存储位置具有访问权限。如果您为这两种磁盘使用本地存储,则本地存储必须可从同一虚拟机管理程序进行访问。为确保满足此要求,Studio 在您创建主机时仅提供兼容的存储位置。

可使用任何偏好的方法定期备份个人虚拟磁盘。虚拟磁盘是虚拟机管理程序的存储层中的标准卷,因此,您可以像备份任何其他卷一样备份它们。

将个人虚拟磁盘添加到现有主机

您可以在配置新 XenDesktop 站点时将个人虚拟磁盘添加到新主机。还可以将个人虚拟磁盘以及它们的存储添加到现有主机(而不是计算机目录)。

  1. 在 Studio 中,单击配置 > 托管,然后选择主机。
  2. 单击添加 Personal vDisk 存储,并指定存储位置。

在更新主映像时运行清单

安装 Virtual Delivery Agent 时,可以启用 Personal vDisk 功能供主映像使用。安装过程中以及安装完成对映像执行任何更新后,刷新磁盘清单并创建一个新快照非常重要。以下过程介绍了需要执行的步骤。

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

完成下述过程中的每个步骤后,最好生成一张映像快照。

  1. 通过执行以下操作升级主映像:安装任何应用程序或操作系统更新,然后在计算机上执行任何系统配置操作。 有关此步骤的其他信息在准备主映像主题中提供。

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

  2. 关闭计算机。 对于 Windows 7 计算机,请在 Citrix Personal vDisk 阻止关机时单击取消
  3. 在 Citrix Personal vDisk 对话框中,单击更新清单。 此步骤可能需要几分钟时间才能完成。
    重要:如果您中断了随后的关机过程(即使是对映像执行少量更新),Personal vDisk 的清单也不再与主映像一致。这将导致 Personal vDisk 功能停止运行。如果您中断了关闭过程,则必须重新启动计算机,将其关闭,然后在系统提示时再次单击更新清单
  4. 清单操作关闭计算机后,请生成一张主映像快照。

调整应用程序的可用空间

可以手动调整用于决定相对于驱动器 P: 的 VHD 大小的自动调整大小算法。通常,无需对此进行调整,因为 XenDesktop 自身动态地管理拆分。但举例而言,如果您知道用户将要安装的一些应用程序过大,致使 VHD 无法容纳,即使通过算法调整大小后亦如此,则您可以增加应用程序空间的初始大小以容纳用户安装的应用程序。您可以通过在注册表中编辑 VHD 的初始大小来调整空间。

建议您最好在计算机目录的主映像上执行此调整(即在将计算机目录中的桌面发布给用户之前)。或者,您可以在用户发现自己没有足够的空间来安装应用程序时调整虚拟桌面上 VHD 的大小,但您必须在每个受影响的虚拟桌面上分别重复此操作;您无法在已使用的计算机目录中调整此大小。

警告:注册表编辑不当会导致严重问题,可能导致需要重新安装操作系统。Citrix 无法保证因“注册表编辑器”使用不当导致出现的问题能够得以解决。使用“注册表编辑器”需自担风险。在编辑注册表之前,请务必进行备份。
  1. 在主映像或桌面上,找到位于 HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\personal vDisk\Config 中的注册表项。 您需要在此过程的其余步骤中使用其中的多个注册表项。
  2. 将 MinimumVHDSizeMB 设置为所需的 VHD 新初始大小 (MB)。 新大小必须大于现有大小,但小于物理磁盘的大小减去 PvDReservedSpaceMB 所得的值。
  3. 确保已将 PercentOfPvDForApps 设置为 50。 即个人虚拟磁盘上默认的空间分配百分比为 50%。 如果使用了任何其他值,将禁用动态调整大小算法。
  4. 将 EnableDynamicResizeOfAppContainer 设置为 1 可启用此算法。
  5. 如果要使用配置文件管理解决方案(例如 Citrix Profile Management),请确认已将 EnableUserProfileRedirection 设置为 0。 此值可确保将 P: 上的所有空间都分配给应用程序。
    重要:在 XenDesktop 7.1 中,执行映像更新时不会保留对 EnableUserProfileRedirection 注册表项所做的更改。如果您使用此版本的 XenDesktop,请在首次创建配置文件所源自的目录后设置该注册表项的值。以后将无法修改重定向行为。
如果要在虚拟桌面上而非计算机目录中执行此操作,将在重新启动桌面时调整大小。

禁用自动调整大小

警告:注册表编辑不当会导致严重问题,可能导致需要重新安装操作系统。Citrix 无法保证因“注册表编辑器”使用不当导致出现的问题能够得以解决。使用“注册表编辑器”需自担风险。在编辑注册表之前,请务必进行备份。
  1. 在主映像或桌面上,将 EnableDynamicResizeOfAppContainer 设置为 0。 此注册表项位于 HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\personal vDisk\Config 中。

防病毒产品

如果在桌面上安装了防病毒产品,请确保 VHD 足够大,能够存储防病毒定义文件,这些文件通常都非常大。

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

更改个人虚拟磁盘的分配

重要:在 Provisioning Services 中,可以在计算机目录中更改个人虚拟磁盘分配到的桌面。执行此操作时,必须首先在 Studio 中将桌面置于维护模式,在 Provisioning Services 中进行重新分配,然后等待桌面向 Delivery Controller 重新注册,最后再将桌面退出维护模式。有关在计算机目录中重新分配桌面的说明,请参阅 Provisioning Services 文档。

备份和还原个人虚拟磁盘

XenDesktop 介质上提供的两个 PowerShell 脚本允许您备份和还原个人虚拟磁盘。这些脚本位于 Support\Tools\Scripts 文件夹中:

  • migration-backup.ps1 可以捕获每个用户与其计算机目录中个人虚拟磁盘之间的映射,并将此信息存储在 .xml 文件中。
  • migration-restore.ps1 使用该 .xml 文件在计算机目录中重新创建用户桌面。
重要:在执行备份和还原之前,请注意以下问题:
  • 这些脚本使用虚拟机管理程序 API,因此必须在执行脚本的 Delivery Controller 上安装虚拟机管理程序的 PowerShell 管理单元
  • 从有权访问创建计算机目录所在的 Delivery Controller 运行脚本
  • 以下虚拟机管理程序平台支持这些脚本:Citrix XenServer、Microsoft Hyper-V 和 VMware ESX

备份计算机目录

使用 migration-backup.ps1 备份包含个人虚拟磁盘的任何计算机目录。此脚本将要求提供计算机目录的名称以及虚拟机管理程序的连接信息。然后对计算机目录中所有用户分配的计算机进行迭代,并且将存储每个计算机的个人虚拟磁盘存储和已分配用户之间的映射。此映射信息可在一个 .xml 文件中找到。请注意:

  • 在更改计算机目录时执行备份
  • 可以在计算机目录中的计算机处于活动状态时进行备份。

该 .xml 文件的结构如下:

             

PvDMigration.hypervisor.Type支持 VMware ESX、Citrix XenServer 和 Microsoft Hyper-V。

PvDMigration.PVD存储有关个人虚拟磁盘的存储位置和与其关联的用户的信息。

PvDMigration.PVD.DiskId是执行备份时所在的虚拟机管理程序上的虚拟磁盘的唯一标识符。

PvDMigration.PVD.DiskName是 .vhd 或 .vmdk 文件的名称。

PvDMigration.PVD.SRName是执行备份时存储提供程序的名称。

PvDMigration.PVD.SRID是执行备份时所在的虚拟机管理程序上的存储提供程序的唯一标识符。

PvDMigration.PVD.UserName是与此虚拟磁盘关联的用户的名称。

PvDMigration.PVD.UserSid是与此虚拟磁盘关联的用户的 SID。

PvDMigration.PVD.State指示此虚拟磁盘的状态。此状态可以为已备份已处理。初始备份之后为已备份。.xml 文件用于从备份中还原之后,该状态将更改为已处理

还原计算机目录

重要:在执行还原之前,请注意以下问题:
  • 只能还原与备份的计算机目录共享同一主映像的计算机目录
  • 必须通过更新创建备份的计算机目录所在的主映像清单来创建新的主映像。

使用 migration-restore.ps1 可还原包含个人虚拟磁盘的任何计算机目录。此脚本所需的输入如下:

  • 在备份过程中创建的 .xml 文件。
  • 要还原的计算机目录的名称。
  • 未连接的个人虚拟磁盘的存储位置的名称。此信息已在 .xml 文件中列出。
  • 虚拟机管理程序连接信息。

migration-restore.ps1 可以找出计算机目录中任何未分配的计算机,并将用户分配给这些计算机。另外还将用户的个人虚拟磁盘连接到这些计算机。

方案

根据用户的数量,还原其虚拟磁盘的方式有所不同。本部分接下来将介绍一些示例方案。

方案 1 - 使用新的计算机名称还原计算机目录及其个人虚拟磁盘

在此方案中,将还原整个计算机目录以及其中连接到计算机的个人虚拟磁盘。将为这些计算机提供新名称。虚拟机管理程序或存储主机发生故障时或将用户迁移到新的基础结构时可能需要此方案。

  1. 运行 migration-backup.ps1 捕获 .xml 文件中的用户到个人虚拟磁盘的映射。
  2. 使用备份解决方案将原始计算机目录中的个人虚拟磁盘移动或捕获至磁盘:
    • VMware ESX 或 Microsoft Hyper-V:个人虚拟磁盘位于 Delivery Controller 指定的存储上,该存储位于包含虚拟磁盘所连接计算机的名称的文件夹中。
    • Citrix XenServer:个人虚拟磁盘位于 Delivery Controller 指定的存储根目录中。每个虚拟磁盘的名称为 GUID。
  3. 使用存储备份解决方案从原始计算机目录中还原个人虚拟磁盘:
    • ESX 或 Hyper-V:将虚拟磁盘置于新存储资源的新文件夹中。或者,将虚拟磁盘保留在新存储资源上的原始路径中。
    • XenServer:将虚拟磁盘置于新存储资源的根目录中。
  4. 从用于创建失败的计算机目录的主映像中创建 Provisioning Services 虚拟磁盘或 Machine Creation Services 快照。
  5. 从虚拟磁盘或快照的“开始”菜单中运行更新清单
  6. 使用与失败的(原始)计算机目录不同的命名约定在 Studio 中重新创建计算机目录。此操作将生成新计算机的目录,每个计算机均具有 XenDesktop 数据库可识别的新个人虚拟磁盘。
  7. 确认已将重新创建的计算机目录分配给正确的交付组。
  8. 确认桌面组处于维护模式且其中的计算机已关闭。
  9. 编辑备份脚本生成的 .xml 文件:

    • ESX 或 Hyper-V:如果在步骤 3 中将虚拟磁盘还原到新存储资源上的新文件夹,对于该文件中的每个PVD部分,请将DiskName中的文件夹名称替换为还原的虚拟磁盘的位置。如果将虚拟磁盘还原到新存储上的原始路径,请跳过此步骤。
    • XenServer:请跳过此步骤。
  10. 在 Delivery Controller 上,运行 migration-restore.ps1,其中指定了 .xml 文件的名称及存储备份虚拟磁盘的位置。

方案 2 - 重复使用现有计算机名称还原计算机目录及其个人虚拟磁盘

在此方案中,将还原整个计算机目录以及其中连接到计算机的个人虚拟磁盘。将重复使用现有(失败的)计算机名称。虚拟机管理程序或存储主机发生故障时可能需要执行此方案。

  1. 运行 migration-backup.ps1 捕获用户到个人虚拟磁盘的映射。
  2. 使用备份解决方案将原始计算机目录中的个人虚拟磁盘移动或捕获至磁盘:
    • ESX 或 Hyper-V:个人虚拟磁盘位于 Delivery Controller 指定的存储上,该存储位于包含虚拟磁盘所连接计算机名称的文件夹中。
    • XenServer:个人虚拟磁盘位于 Delivery Controller 指定的存储根目录中。每个虚拟磁盘的名称为 GUID。
  3. 使用存储备份解决方案从原始计算机目录中还原个人虚拟磁盘:
    • ESX 或 Hyper-V:将虚拟磁盘置于新存储资源的新文件夹中。
    • XenServer:将虚拟磁盘置于新存储资源的根目录中。
  4. 从用于创建失败的计算机目录的主映像中创建 Provisioning Services 虚拟磁盘或 Machine Creation Services 快照。
  5. 从虚拟磁盘或快照的“开始”菜单中运行更新清单
  6. 使用与失败的计算机目录相同的命名约定在 Studio 中重新创建计算机目录。此操作将生成新计算机的目录,每个计算机均具有 XenDesktop 数据库可识别的新个人虚拟磁盘。
  7. 确认已将重新创建的计算机目录分配给正确的交付组。
  8. 确认桌面组处于维护模式且其中的计算机已关闭。
  9. 编辑备份脚本生成的 .xml 文件:

    • ESX 或 Hyper-V:对于该文件中的每个PVD部分,请将DiskName中的文件夹名称替换为还原的虚拟磁盘的位置。
    • XenServer:请跳过此步骤。
  10. 在 Delivery Controller 上运行 migration-restore.ps1 脚本,使用修改的 .xml 文件作为输入。该脚本无需移动虚拟磁盘便可对其进行连接。
  11. 确认已成功还原用户的数据。

方案 3 - 在计算机目录中还原个人虚拟磁盘的子集。

在此方案中,计算机目录中的一些但并非全部个人虚拟磁盘发生故障并得到还原。目录中的虚拟机未发生故障。

  1. 运行 migration-backup.ps1 捕获 .xml 文件中的用户到个人虚拟磁盘的映射。
  2. 在该 .xml 文件中,计算机目录中的每个用户均对应一个PVD部分。对于无需还原个人虚拟磁盘的所有用户,请从该文件中删除这些用户及其关联的部分。
  3. 使用备份解决方案从原始计算机目录中还原个人虚拟磁盘,如其他方案之一中所述:
    • 要使用新的计算机名称,请采用方案 1。
    • 要保留计算机名称,请采用方案 2。
  4. 确保目录中存在足够的未分配计算机。根据需要添加计算机。每个要还原虚拟磁盘的用户均需要新的计算机。
  5. 确认桌面组处于维护模式且其中的计算机已关闭。
  6. 在 Delivery Controller 上运行 migration-restore.ps1,使用修改的 .xml 文件作为输入。
  7. 确认已成功还原用户的数据。