更新虚拟磁盘

您经常需要更新现有的虚拟磁盘,以便映像中包含最新的软件和修补程序。每次更新虚拟磁盘时,都将创建该虚拟磁盘的新版本(VHDX 文件),以便在不更改基础虚拟磁盘映像的情况下捕获更改内容。

虚拟磁盘的更新过程包括以下操作:

  • 手动或自动创建新版本的虚拟磁盘。
  • 从设备(维护设备或更新设备)引导新创建的版本,对虚拟磁盘进行更改并保存所做的所有更改,然后关闭设备。
  • 将新版本提升到生产模式。

下图展示了虚拟磁盘更新版本的常规提升过程:

虚拟磁盘更新示意图

更新版本的可用性取决于该版本当前的提升模式(维护、测试或生产),以及尝试访问更新版本的设备类型(维护设备、更新设备、测试设备或生产设备)。

如果要更新使用个人虚拟磁盘映像的设备,请通过执行以下过程确保生产环境中的兼容性:

注意:要为使用个人虚拟磁盘的设备更新映像,必须在未连接个人虚拟磁盘的虚拟机上进行操作。否则,更新将保存到个人虚拟磁盘映像,而不是保存到虚拟机映像。

  1. 创建虚拟磁盘的新维护版本。
  2. 对维护版本进行任何必要的更新。
  3. 将新维护版本提升到测试模式。
  4. 启动 PvD 测试设备,然后验证是否已更新。
  5. 将测试版本提升到生产模式。

更新方案

支持以下虚拟磁盘更新方案:

  • 手动更新 - 管理员可以选择手动更新虚拟磁盘,方法是:创建该虚拟磁盘的新版本,然后使用维护设备将更新捕获到该版本中。可以通过在“虚拟磁盘版本”对话框中选择新建按钮来启动手动更新。“vDisk Versioning”(虚拟磁盘版本控制)对话框中的访问列将指示新创建的版本当前正处于维护模式。处于维护模式时,该版本只能供单个维护设备进行访问和更新。可以为一个虚拟磁盘分配多个维护设备。但在任何特定时刻,只能有一个设备引导并访问该版本的虚拟磁盘。在此期间,该维护设备具有独占的读取/写入权限。
  • 自动更新 - 创建自动更新可以节约管理时间和物理资源。更新可以根据需要或按计划启动,并且可以使用虚拟磁盘更新管理功能进行配置。如果要执行自动更新,“vDisk Versioning”(虚拟磁盘版本控制)对话框中的访问列将指示新创建的版本当前正处于维护模式。处于维护模式时,该版本只能供分配的唯一一个更新设备进行访问和更新(每个虚拟磁盘只能存在一个更新设备)。有关详细信息,请参阅自动执行虚拟磁盘更新

    注意:

    虚拟磁盘更新管理功能仅适用于标准映像模式下的虚拟磁盘。专有映像模式下的虚拟磁盘可以按照常规的软件分发工具过程进行更新。如果尝试针对虚拟磁盘更新管理功能注册专有映像模式的虚拟磁盘,或者切换已经注册的虚拟磁盘,将会引发错误。

  • 合并 - 合并 VHDX 差异磁盘文件可以节约磁盘空间并提高性能,具体取决于所选的合并选项。可以通过在“虚拟磁盘版本”对话框中选择“合并”按钮来手动启动合并更新,当达到最大虚拟磁盘版本数时,系统也会自动启动合并更新。

差异磁盘的 VHDX 链

版本控制简化了虚拟磁盘更新和管理任务,提供了更加灵活和稳健的虚拟磁盘管理方法。

虚拟磁盘包含 VHDX 基础映像文件、任何关联的 sidecar 文件以及所引用的 VHDX 差异磁盘构成的链(如果适用)。创建差异磁盘是为了捕获对基础磁盘映像所做的更改,使原始的基础磁盘保持不变。与基础磁盘关联的每个差异磁盘表示一个不同的版本。

下面介绍所使用的文件命名约定以及基础磁盘与引用该基础磁盘的所有版本之间的关系。

VHDX 链

注意:

应使用“虚拟磁盘版本”对话框并通过执行常规虚拟磁盘版本控制任务来创建和管理虚拟磁盘版本。

每次将虚拟磁盘置为“维护模式”时,系统都将创建一个新版本的 VHDX 差异磁盘并将文件名中的数字递增,如下表所示。

  VHDX 文件名 属性文件名 锁定文件文件名
基础映像 win7dev.vhdx win7dev.pvp win7dev.lok
版本 1 win7dev.1.vhdx win7dev.1.pvp win7dev.1.lok
版本 2 win7dev.2.vhdx win7dev.2.pvp win7dev.2.lok
版本 N win7dev.N.vhdx win7dev.N.pvp win7dev.N.lok

手动更新虚拟磁盘映像

通过“虚拟磁盘版本”对话框,可以手动创建新版本的虚拟磁盘基础映像。

注意:

要自动完成更新过程,应通过虚拟磁盘更新管理功能进行配置(请参阅 自动执行虚拟磁盘更新)。

此操作过程有以下要求:

  • 已经为所更新的虚拟磁盘分配维护设备。
  • 该虚拟磁盘的所有版本当前均不处于维护模式。

注意:

要为使用个人虚拟磁盘的设备更新映像,必须在未连接个人虚拟磁盘的虚拟机上进行操作。否则,更新将保存到个人虚拟磁盘映像,而不是保存到虚拟机映像。

创建新版本

  1. 在控制台中,右键单击设备集合或虚拟磁盘池中要创建新版本的虚拟磁盘,然后从上下文菜单中选择“版本”。此时将显示“虚拟磁盘版本”对话框。

    注意:

    确认虚拟磁盘当前未处于专有映像模式。

  2. 单击新建。新版本将显示在对话框中,其访问设置为“维护”,更新类型方式设置为手动。
  3. 从维护设备引导虚拟磁盘,安装或删除应用程序,添加修补程序并完成其他任何必要的更新,然后关闭维护设备。(可选)可以测试更新是否成功。

    注意:

    如果要启动测试或维护设备,系统将显示一个启动菜单,用户可以选择要从中启动的虚拟磁盘或虚拟磁盘版本,但该设备为 PvD 测试设备时除外。

  4. 右键单击虚拟磁盘,然后从显示的上下文菜单中选择“提升…”菜单选项(有关提升版本的详细信息,请参阅提升更新版本)。
  5. 选择将此维护版本提升到测试模式或直接提升到生产模式。如果选择提升到生产模式,请将此版本在生产中的可用性设置为立即可用或计划可用的时间。
  6. 单击确定提升该版本并结束维护阶段。

合并 VHDX 差异磁盘

合并 VHDX 差异磁盘文件可以节约磁盘空间并提高性能,具体取决于所选的合并方式。

在虚拟磁盘达到 5 个版本后,Citrix 建议将这些版本合并为一个新的基础映像或整合的差异磁盘。

合并方式包括:

  • 合并为新的基础映像
  • 合并为整合的差异磁盘

注意:

仅当未定义维护版本或虚拟磁盘处于专有映像模式时,才会合并为一个虚拟磁盘。合并虚拟磁盘的过程将从磁盘链的顶端开始,沿着磁盘链一直进行到基础磁盘映像。不能为合并的虚拟磁盘指定起始磁盘。

合并为新的基础映像

执行生成新基础映像的完整合并时,差异磁盘链将与基础映像磁盘合并在一起,构成一个单独的基础磁盘。该新磁盘是磁盘链中的下一个版本,其文件扩展名为 .VHDX。通过此方式,可以对基础映像进行最快速的磁盘访问,在性能比磁盘空间重要的情况下,建议采用此方式(每次执行合并时都将创建新的基础磁盘)。

提示:

在虚拟磁盘上执行采用 VHDX 文件格式的合并基础操作后,生成的合并基础 VHDX 文件可能小于原始的基础 VHDX 文件。如果删除了特定虚拟磁盘版本中的文件,因而这些文件在合并的基础 VHDX 中不再可用,则会出现此行为。有关详细信息,请参阅 Citrix 知识中心

合并为整合的差异磁盘

部分合并方式将基础磁盘之上的 VHDX 差异磁盘链(但不包括基础磁盘)合并在一起,构成一个新的差异磁盘。新差异磁盘具有相同的父基础磁盘映像,其扩展名为 .avhdx。与完整合并相比,此方式占用的磁盘空间更少,合并过程更快。

可以从“场属性”对话框的“虚拟磁盘版本”选项卡配置差异磁盘的自动整合。在此选项卡上,选择最大虚拟磁盘数。当达到该数目时,将自动执行合并,虚拟磁盘的可用性取决于在该选项卡上所选择的模式(生产、维护或测试)。

注意:

当磁盘存储空间有限或者远程位置之间的带宽有限(因而无法复制大型映像)时,建议采用整合差异磁盘合并方式。

合并差异磁盘

  1. 在控制台中,右键单击虚拟磁盘,然后选择版本菜单选项。此时将显示虚拟磁盘版本对话框。
  2. 单击合并按钮。此时将显示“合并”对话框。
  3. 选择执行合并更新还是合并基础合并。
    • 要将所有差异磁盘合并到一个差异磁盘(而不是基础磁盘映像),请选择合并更新选项。
    • 要将所有差异磁盘完全合并到一个新的基础磁盘,请选择合并基础选项。
  4. 合并完毕后,选择该版本的访问模式(生产、维护或测试)。如果未选择访问模式,则虚拟磁盘模式默认为自动范围(在“场属性”的“虚拟磁盘版本”选项卡中指定)。
  5. 单击确定开始合并过程。

完成合并过程所需的时间因选择的合并方式以及要合并的差异磁盘数而异。成功完成合并后,新版本将显示在“虚拟磁盘版本”对话框中。如果选择完整合并,“类型”列将显示合并基础,如果选择部分合并,该列则显示合并。

提升更新后的版本

虚拟磁盘的更新版本在提升到生产模式前不能供生产设备使用。更新版本提升阶段包括:

  • 维护
  • 测试
  • 生产

每次创建新版本后,“访问”设置将自动设置为“维护”,以允许维护设备进行更新(读/写)。完成更新后,可以将此版本从维护模式提升到测试模式(只读)以供测试设备进行测试,也可以直接提升到生产模式,以供所有目标设备使用。

以手动方式完成更新后,可以通过“虚拟磁盘版本”对话框的提升按钮将新版本提升到测试或生产模式。如果选择提升到生产模式,可以设置发布日期和时间,也可以接受默认值“立即”。

以自动更新方式(虚拟磁盘更新管理功能)完成更新后,将根据运行“更新任务向导”时所选择的 Post Update(更新后)设置来提升新版本。完成自动更新后,也可以使用“虚拟磁盘版本”对话框的提升按钮来设置提升。

如果存在问题,可以将新版本从测试模式还原为维护模式(如果不存在活动的会话),或者从生产模式还原为测试或维护模式(还原前必须关闭所有已引导的设备)。

要使生产设备能够在新版本提升到生产模式后对其进行访问,还应满足以下条件:

  • “访问”设置必须为“默认值”或“覆盖”。
  • 如果计划了更新的发布时间,则必须达到该日期和时间。
  • 更新的版本必须可供站点中的所有服务器使用。
  • “虚拟磁盘版本”对话框中引导生产设备的版本设置为最新发布版本(状态为“默认值”)。

注意:

如果“访问”设置显示为空白,则系统将此版本视为已发布到生产环境,但不是当前选择用来引导设备的版本。

更新目标设备上的虚拟磁盘

本文档介绍如何更改多个目标设备上的虚拟磁盘,且无须手动重新配置这些目标设备。文档先介绍关于此过程的一般信息,然后描述分步过程。

设置虚拟磁盘的“类”和“类型”属性

为实现自动更新,目标设备的类必须与虚拟磁盘的类匹配。要在目标设备中用较新的虚拟磁盘替换较旧的虚拟磁盘,这两个虚拟磁盘的类和类型必须匹配。由于在实现中可能存在多个重复的虚拟磁盘实例,并且可能会将这些虚拟磁盘分配给一个或多个目标设备(如果采用 Provisioning Server“最空闲”和“第一个可用”引导方式),因此必须进一步限定将由新虚拟磁盘替换的旧虚拟磁盘。这正是使用虚拟磁盘“类型”属性的原因。如果要使用自动磁盘映像更新功能,切勿从同一个 Provisioning Server 将类型相同的多个虚拟磁盘分配给同一个目标设备。

计划虚拟磁盘更新

要安排应用自动更新的时间,请使用虚拟磁盘“自动更新”选项卡上的“服务器检测到虚拟磁盘更新时立即应用更新”或“将下次虚拟磁盘更新时间安排在”单选按钮。如果选择“将下次虚拟磁盘更新时间安排在”,必须指定当前日期或之后的日期,否则,虚拟磁盘将不会更新。

虚拟磁盘更新计时

您可以设置更新虚拟磁盘的计时器。这意味着虚拟磁盘将在指定时间(例如,设备不活跃时)分配给类匹配的所有设备。

为此,应在每个站点的其中一个服务器上创建一个 Windows 计时器,该计时器将调用 PowerShell Mcli-Run ApplyAutoUpdate 命令或 Mcli Run ApplyAutoUpdate 命令(有关详细信息,请参阅 PowerShell 管理员指南或 MCLI 程序员指南)。该命令将扫描站点并更新已配置为更新且符合条件的所有虚拟磁盘。因为该命令仅更新需要更新的虚拟磁盘,所以计时器可以每天执行并在每次添加虚拟磁盘的新版本时自动执行更新。

自动添加替换虚拟磁盘

要自动将替换虚拟磁盘添加到站点,请将其放在所要替换的虚拟磁盘的存储目录中。更新过程完成后,将扫描站点的各个存储,以查找站点中未定义的虚拟磁盘。如果在存储目录中找到与现有虚拟磁盘具有相同类和类型,且主版本号、次要版本号和内部版本号高于现有虚拟磁盘的虚拟磁盘,该虚拟磁盘将自动添加到站点中,并分配给类匹配的目标设备。

替换虚拟磁盘必须包含自上一个合并基础(含)以来的所有版本,如果不存在合并基础,则必须包含自上一个基础以来的所有版本。需要将所包含版本的所有 VHDX、AVHDX 和 PVP 文件放置在存储目录中。

如果替换虚拟磁盘具有多个版本,应随虚拟磁盘提供清单文件 (XML)。要创建清单文件,请执行虚拟磁盘导出。要减少需提供的文件数,请在“虚拟磁盘版本”对话框中删除弃用的版本,然后再执行虚拟磁盘导出。

自动更新虚拟磁盘

  1. 对于原始虚拟磁盘,请选择“自动更新”选项卡,然后设置以下虚拟磁盘属性:

    a. 启用自动更新。

    b. 选择是在检查更新完成后或运行 Run ApplyAutoUpdate 命令时立即应用更新还是在计划的日期应用更新。

    c. 输入虚拟磁盘的类和类型。

    d. 输入虚拟磁盘的主版本号、次要版本号和内部版本号。

    注意:

    创建虚拟磁盘时,会将“序列号”字段设置为随机的全局唯一标识符 (GUID)。此字段仅提供信息,您可以编辑此字段。它不用于处理自动更新。

  2. 对于使用要更新的虚拟磁盘的目标设备,请选择“常规”选项卡,然后在“目标设备属性”中将“类”设置为原始虚拟磁盘的类值。

  3. 确保替换虚拟磁盘与原始虚拟磁盘位于相同的存储中。

  4. 对于替换虚拟磁盘,请选择“自动更新”选项卡,然后设置以下虚拟磁盘属性:

    a. 仅在此虚拟磁盘稍后可以由其他虚拟磁盘替换时启用自动更新。

    b. 如果启用了自动更新,请选择是在检查更新完成后或运行 Run ApplyAutoUpdate 命令时立即应用更新还是在计划的日期应用更新。

    c. 输入类和类型,与为原始虚拟磁盘输入的值相同。

    d. 输入虚拟磁盘的主版本号、次要版本号和内部版本号,此虚拟磁盘的版本要高于原始虚拟磁盘。

  5. 如果虚拟磁盘更新需要在其他场站点中完成,您可以提供步骤 4 中描述的替换虚拟磁盘设置并将其置于其他场站点的原始虚拟磁盘所在的存储中。此内容之前在本文档的“自动添加替换虚拟磁盘”中有介绍。

  6. 配置更新检查。将使用主版本号、次要版本号和内部版本号更高的虚拟磁盘更新所找到的符合更新条件的所有虚拟磁盘。可以使用以下任一方法执行此操作:

    • 在“虚拟磁盘池”上单击鼠标右键,选择“检查自动更新”菜单选项,然后在确认对话框中单击“确定”按钮。

      或者

    • 按照本文档前面的介绍设置计时器。