Product Documentation

工具

Mar 17, 2016

可以使用以下工具和实用程序自定义、加快和监视 PvD 操作。

自定义规则文件

利用 PvD 提供的自定义规则文件,可以采用以下方式修改 PvD 映像更新的默认行为:
  • PvD 上的文件的可见性
  • 如何合并对文件所做的更改
  • 文件是否可写入

有关自定义规则文件及 CoW 功能的详细说明,请参阅位于以下位置的文件中的注释:安装了 PvD 的 VM 上的 C:\ProgramData\Citrix\personal vDisk\Config。 名为 custom_* 的文件介绍了相关规则及其启用方法。

resize 和 poolstats 脚本

提供了两个用于监视和管理 PvD 大小的脚本,位于 XenDesktop 安装介质中的 Support\Tools\Scripts 文件夹中。 还可以使用 PvD 映像更新监视工具,位于 Support\Tools\Scripts\PvdTool 文件夹中;有关详细信息,请参阅 http://blogs.citrix.com/2014/06/02/introducing-the-pvd-image-update-monitoring-tool/

使用 resize-personalvdisk-pool.ps1 可增大某个目录的所有桌面中的 PvD 的大小。 必须在运行 Studio 的计算机上为您的虚拟机管理程序安装以下管理单元或模块:
  • XenServer 需要 XenServerPSSnapin
  • vCenter 需要 vSphere PowerCli
  • System Center Virtual Machine Manager 需要 VMM 控制台

使用 personal-vdisk-poolstats.ps1 可检查映像更新的状态以及一组 PvD 中的应用程序和用户配置文件的空间。 在更新映像之前运行此脚本可检查任何桌面的空间是否已不足,有助于防止更新失败。 此脚本需要在 PvD 桌面上启用 Windows Management Instrumentation (WMI-In) 防火墙。 可以在主映像上或通过 GPO 启用该防火墙。

如果映像更新失败,则“Update”(更新)列中的条目将指出原因。

重置应用程序区域

如果桌面损坏(由于安装损坏的应用程序或某些其他原因所致),可以将 PvD 的应用程序区域恢复到出厂默认(空)状态。 重置操作会使用户配置文件数据保持不变。

要重置 PvD 的应用程序区域,请使用以下方法之一:
  • 以管理员身份登录用户的桌面。 启动命令提示窗口并运行命令 C:\Program Files\Citrix\Personal vDisk\bin\CtxPvD.exe -s Reset
  • 在 Citrix Director 中找到用户的桌面。 单击重置个人虚拟磁盘,然后单击确定

导出和导入 PvD 清单

映像更新过程是将新映像推向 PvD 桌面的不可或缺部分,其中包括调整现有个人虚拟磁盘以用于新基础映像。 对于使用 Machine Creations Services (MCS) 的部署,可以将清单从活动 VM 导出到网络共享,然后再将其导入到主映像中。 在主映像中使用此清单计算差额。 尽管不强制使用导出/导入清单功能,但是此功能可以改善整个映像更新过程的性能。

要使用导出/导入清单功能,您必须是管理员。 如需要,请使用“net use”对用于导出/导入的文件共享进行身份验证。用户上下文必须可以访问用于导出/导入的任何文件共享。
  • 要导出清单,请在包含 VDA(版本最低为 7.6)且启用 PvD 的计算机上以管理员身份运行导出命令。

    Ctxpvdsvc.exe exportinventory “<导出位置的路径>”

    软件会检测当前清单的位置,并将清单导出到指定位置上名为“ExportedPvdInventory”的文件夹中。 下面是命令输出摘录:
    C:\Program Files\Citrix\personal vDisk\bin> .\CtxPvDSvc.exe exportinventory  \\share location\ExportedInventory Current inventory source location C:\CitrixPvD\Settings\Inventory\VER-LAS ... Exporting current inventory to location \\ …. ... Deleting any pre-existing inventory folder at \\ …. .Successfully exported current inventory to location \\ …. Error code = OPS 
  • 要导入之前导出的清单,请在主映像上以管理员身份运行导入命令:

导入

在主映像上以管理员身份运行导入命令。

Ctxpvdsvc.exe importinventory “<导出清单的路径>”

<导出清单的路径> 应为清单文件的完整路径,通常为 <网络位置\ExportedPvdInventory>。

从导入位置获取清单(之前使用 exportinventory 选项导出清单的位置)并将清单导入到主映像上的清单存储。 下面是命令输出摘录:
C:\Program Files\Citrix\personal vDisk\bin> .\CtxPvDSvc.exe importinventory  \\share location\ExportedInventory\ExportedPvdInventory Importing inventory \\share location\ExportedInventory\ExportedPvdInventory … Successfully added inventory \\share location\ExportedInventory\ExportedPvdInventory to the  store at c:\ProgramData\Citrix\personal vDisk\InventoryStore
导出后,网络共享应包含以下文件名。 导入后,主映像上的清单存储中应包含相同的文件名。
  • Components.DAT
  • files_rules
  • folders_rules
  • regkey_rules
  • RINGTHREE.DAT
  • S-1-5-18.DAT
  • SAM.DAT
  • SECURITY.DAT
  • SNAPSHOT.DAT
  • SOFTWARE.DAT
  • SYSTEM.CurrentControlSet.DAT
  • VDCATALOG.DAT
  • vDiskJournalData

备份和还原

重要:这两个脚本不会将 PvD 移至新存储位置。 您必须通过另外某种方法执行该操作。
可以利用产品安装介质上提供的两个 PowerShell 脚本(在 Support\Tools\Scripts 文件夹中)来备份和还原个人虚拟磁盘。 使用备份和还原脚本可将现有 PvD 和用户关联从一个目录迁移到其他目录。 如果要更改 PvD 存储,则运行备份和还原脚本将非常有用。 备份脚本会创建一个包含现有目录中的元数据的 .xml 文件。 该元数据中包含存储上的 PvD 的当前位置以及与 PvD 的用户关联。 还原脚本使用该 .xml 文件将 PvD 与新目录关联,并将正确的用户分配给 PvD。
  • migration-backup.ps1 可以捕获每个用户与其计算机目录中个人虚拟磁盘之间的映射,并将此信息存储在 .xml 文件中
  • migration-restore.ps1 使用该 .xml 文件在计算机目录中重新创建用户桌面
在执行备份和还原之前,请注意以下问题:
  • 这些脚本使用虚拟机管理程序 API,因此,必须在执行脚本的 Controller 上安装虚拟机管理程序的 PowerShell 管理单元
  • 从一个有权访问用来创建计算机目录的 Controller 的位置运行脚本
  • 以下虚拟机管理程序平台支持这些脚本:Citrix XenServer、Microsoft Hyper-V 和 VMware ESX

备份计算机目录

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

使用 migration-backup.ps1 备份包含个人虚拟磁盘的任何计算机目录。 此脚本将要求提供计算机目录的名称以及虚拟机管理程序的连接信息。 然后对计算机目录中所有用户分配的计算机进行迭代,并且将存储每个计算机的个人虚拟磁盘存储和已分配用户之间的映射。 此信息位于 .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:个人虚拟磁盘位于 Controller 指定的存储上,该存储位于包含虚拟磁盘所连接计算机的名称的文件夹中。
    • Citrix XenServer:个人虚拟磁盘位于 Controller 指定的存储的根目录中。 每个虚拟磁盘的名称为 GUID。
  3. 使用存储备份解决方案从原始计算机目录中还原个人虚拟磁盘:
    • ESX 或 Hyper-V:将虚拟磁盘置于新存储资源的新文件夹中。 或者,将虚拟磁盘保留在新存储资源上的原始路径中。
    • XenServer:将虚拟磁盘置于新存储资源的根目录中。
  4. 从用于创建失败的计算机目录的主映像中创建 Provisioning Services 虚拟磁盘或 Machine Creation Services 快照。
  5. 从虚拟磁盘或快照的“开始”菜单中运行更新清单
  6. 使用与失败的(原始)计算机目录不同的命名约定在 Studio 中重新创建计算机目录。 此操作将生成新计算机的目录,每台计算机均具有站点数据库可识别的新个人虚拟磁盘。
  7. 确认已将重新创建的计算机目录分配给正确的交付组。
  8. 确认交付组处于维护模式且其中的计算机已关闭。
  9. 编辑备份脚本生成的 .xml 文件:
    • ESX 或 Hyper-V:如果在步骤 3 中将虚拟磁盘还原到新存储资源上的新文件夹,对于该文件中的每个 PVD 部分,请将 DiskName 中的文件夹名称替换为还原的虚拟磁盘的位置。 如果将虚拟磁盘还原到新存储上的原始路径,请跳过此步骤。
    • XenServer:请跳过此步骤。
  10. 在 Controller 上,运行 migration-restore.ps1,并指定 .xml 文件的名称以及存储备份虚拟磁盘的位置。

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

在此方案中,将还原整个计算机目录以及其中连接到计算机的个人虚拟磁盘。 将重复使用现有(失败的)计算机名称。 虚拟机管理程序或存储主机发生故障时,可能需要执行此方案。
  1. 运行 migration-backup.ps1 捕获用户到个人虚拟磁盘的映射。
  2. 使用备份解决方案将原始计算机目录中的个人虚拟磁盘移动或捕获至磁盘:
    • ESX 或 Hyper-V:个人虚拟磁盘位于 Controller 指定的存储上,该存储位于包含虚拟磁盘所连接计算机的名称的文件夹中。
    • XenServer:个人虚拟磁盘位于 Controller 指定的存储的根目录中。 每个虚拟磁盘的名称为 GUID。
  3. 使用存储备份解决方案从原始计算机目录中还原个人虚拟磁盘:
    • ESX 或 Hyper-V:将虚拟磁盘置于新存储资源的新文件夹中。
    • XenServer:将虚拟磁盘置于新存储资源的根目录中。
  4. 从用于创建失败的计算机目录的主映像中创建 Provisioning Services 虚拟磁盘或 Machine Creation Services 快照。
  5. 从虚拟磁盘或快照的“开始”菜单中运行更新清单
  6. 使用与失败的计算机目录相同的命名约定在 Studio 中重新创建计算机目录。 此操作将生成新计算机的目录,每台计算机均具有站点数据库可识别的新个人虚拟磁盘。
  7. 确认已将重新创建的计算机目录分配给正确的交付组。
  8. 确认桌面组处于维护模式且其中的计算机已关闭。
  9. 编辑备份脚本生成的 .xml 文件:
    • ESX 或 Hyper-V:对于该文件中的每个 PVD 部分,请将 DiskName 中的文件夹名称替换为还原的虚拟磁盘的位置。
    • XenServer:请跳过此步骤。
  10. 在 Controller 上运行 migration-restore.ps1 脚本,并使用修改的 .xml 文件作为输入。 该脚本无需移动虚拟磁盘便可对其进行连接。
  11. 确认已成功还原用户的数据。

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

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