更新虚拟磁盘

您经常需要更新现有的虚拟磁盘,以便映像中包含最新的软件和修补程序。每次更新虚拟磁盘时,都会创建该虚拟磁盘的新版本。此文件被视为 Hyper-V 虚拟硬盘驱动器,扩展名为 .vhdx。这一新版本无需更新基础虚拟磁盘映像即可用于捕获变更。

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

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

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

虚拟磁盘更新示意图

更新版本的可用性取决于该版本的当前提升,例如,维护、测试或生产。可用性还取决于尝试访问它的设备类型,例如,维护设备、更新设备、测试设备或生产设备。

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

注意: 如果要为使用个人虚拟磁盘的设备更新映像,则必须在没有个人虚拟磁盘的虚拟机上执行此操作。否则,更新将保存到个人虚拟磁盘映像,而不是保存到虚拟机映像。

  1. 创建虚拟磁盘的维护版本。
  2. 对维护版本进行任何必要的更新。
  3. 将新维护版本提升到测试模式。
  4. 启动个人虚拟磁盘测试设备,并确认更新。
  5. 将测试版本提升到生产模式。

更新方案

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

  • 手动更新 – 通过创建一个版本来手动更新虚拟磁盘;使用维护设备捕获对该版本进行的更新。在虚拟磁盘版本对话框中,通过单击新建来启动手动更新。虚拟磁盘版本对话框中的访问列将指示新创建的版本处于维护模式。处于维护模式时,单个维护设备将更新此版本。可以为一个虚拟磁盘分配多个维护设备。但在任何特定时刻,只能有一个设备引导并访问该版本的虚拟磁盘。在此期间,该维护设备具有独占的读取/写入访问权限。
  • 自动更新 - 创建自动更新可以节约管理时间和物理资源。更新可以根据需要或按计划启动,并且可以使用虚拟磁盘更新管理功能进行配置。如果要执行自动更新,虚拟磁盘版本对话框中的访问列将指示新创建的版本处于维护中。在维护模式下,此版本由其分配到的设备进行更新(每个虚拟磁盘只能存在一个更新设备)。

    注意:

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

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

差异磁盘的 VHDX 链

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

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

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

VHDX 链

注意:

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

每次将虚拟磁盘置于维护模式时,都将创建 VHDX 差异磁盘的新版本。文件名的编号将递增。下表说明了这些链序列:

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

对于版本 4 和版本 N,合并的基础 VHDX 和 AVHDX 文件将合并并使用 VHDX 扩展名。

手动更新虚拟磁盘映像

使用“虚拟磁盘版本”对话框创建虚拟磁盘的基础映像的版本。

注意:

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

此操作过程有以下要求:

  • 已将维护设备分配给要更新的虚拟磁盘。
  • 此虚拟磁盘的版本未处于维护模式。

注意:

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

创建版本

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

    注意:

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

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

    注意:

    启动测试或维护设备时,使用引导菜单从虚拟磁盘进行选择,或选择要从其引导的虚拟磁盘的版本。如果该设备为个人虚拟磁盘测试设备,此过程将不起作用。

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

合并 VHDX 差异磁盘

合并 VHDX 差异磁盘文件可以节约磁盘空间并提高性能,具体取决于所选的合并方式。在虚拟磁盘达到 5 个版本后,Citrix 建议将这些版本合并为一个新的基础映像或整合的差异磁盘。

合并方式包括:

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

注意:

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

合并为新的基础映像

完全合并到新基础映像会将差异磁盘和基础映像磁盘链合并为一个新基础磁盘,该基础磁盘表示链中文件扩展名为 VHDX 的下一个版本。此方法可对基础映像进行最快的磁盘访问。在性能比磁盘空间更重要的情况下,Citrix 建议采用此过程。请考虑为在每次执行合并时创建新的基础磁盘。

提示:

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

合并为整合的差异磁盘

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

场属性对话框的虚拟磁盘版本选项卡中自动整合差异磁盘。设置虚拟磁盘数量上限,当达到该数目时,将自动执行合并。该虚拟磁盘的可用性取决于在该选项卡上选择的模式,即生产、维护或测试。

注意:

当存储空间有限或者远程位置之间的带宽受限时,Citrix 建议整合合并的差异磁盘。在这些情况下,无法复制大型映像。

合并差异磁盘

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

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

提升更新后的版本

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

  • 维护
  • 测试
  • 生产

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

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

以自动更新方式完成更新后,将根据 Post Update(更新后)设置来提升新版本。完成自动更新后,使用虚拟磁盘版本对话框的提升按钮版本来提升该版本。

如果新版本中存在问题,请从测试模式还原为维护模式(如果不存在任何活动会话)。也可以从生产模式还原为测试或维护模式。关闭任何已启动的设备,然后再还原到另一个版本。

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

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

注意:

访问字段为空时,系统会将此版本视为已发布到生产环境,但此版本并不是用来引导设备的版本。

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

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

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

为实现自动更新,目标设备的类必须与虚拟磁盘的类匹配。要在目标设备中用较新的虚拟磁盘替换较旧的虚拟磁盘,这两个虚拟磁盘的类和类型必须匹配。实现中可以存在多个重复的虚拟磁盘实例。也可以将虚拟磁盘分配给一个或多个目标设备。例如,对于 Citrix Provisioning 服务器,Least Busy(最空闲)和 First Available(第一个可用)引导行为。进一步限定由新虚拟磁盘替换的旧虚拟磁盘。

提示:

切勿从同一个 Provisioning 服务器将类型相同的多个虚拟磁盘分配给同一个目标设备。此过程适用于使用自动磁盘映像更新功能的环境。

安排虚拟磁盘更新

使用应用虚拟磁盘更新以计划更新。服务器检测到这些更新时将进行应用。或者,您可以在虚拟磁盘的自动更新选项卡上选择 Schedule the next vDisk update(计划下次虚拟磁盘更新)。如果选择 Schedule the next vDisk update(计划下次虚拟磁盘更新),则必须指定当前日期或之后的日期。如果不这样做,虚拟磁盘将不会更新。

虚拟磁盘更新计时

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

要设置计时器,请在每个站点的其中一个服务器上创建 Windows 计时器。此过程调用 PowerShell Mcli-Run ApplyAutoUpdate 命令或 Mcli Run ApplyAutoUpdate 命令。此命令将扫描站点并更新所有符合条件的虚拟磁盘。计时器可能每天执行一次。只要您添加新虚拟磁盘版本,系统就会自动执行这些更新。

自动添加替换虚拟磁盘

要自动将替换虚拟磁盘添加到站点,请将其放在所要替换的虚拟磁盘的存储目录中。更新过程完成后,将扫描站点的各个存储,以查找站点中未定义的虚拟磁盘。自动将虚拟磁盘添加到站点并分配给类别相匹配的目标设备:

  • 如果虚拟磁盘与存储目录中的现有虚拟磁盘的类别类型相同。
  • 如果虚拟磁盘标记为主版本或次要版本,并且内部版本号大于现有虚拟磁盘。

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

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

自动更新虚拟磁盘

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

    a. 启用自动更新。

    b. 运行 ApplyAutoUpdate 确定是立即应用更新还是在计划的日期应用更新。

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

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

    注意:

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

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

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

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

    a. 仅当此虚拟磁盘替换另一个虚拟磁盘时才启用自动更新。

    b. 如果启用了自动更新,请确定是否立即应用更新。或者,您可以通过运行 ApplyAutoUpdate 来计划检查更新的时间。

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

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

  5. 如果其他场站点要求更新虚拟磁盘,请向这些站点提供替换虚拟磁盘。请按照步骤 4 中所述的信息操作。与其他场站点的原始虚拟磁盘相同的存储中需要此更新的虚拟磁盘。请参阅本文前面的“自动添加替换虚拟磁盘”。

  6. 配置更新检查。更新后的虚拟磁盘包含更高版本的主版本号、次要版本号和内部版本号,它们符合使用以下方式之一的条件:

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

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

自动执行虚拟磁盘更新

虚拟磁盘更新管理功能仅适用于标准映像模式下的虚拟磁盘。专有映像模式下的虚拟磁盘将按照常规的软件分发工具过程进行更新。尝试针对虚拟磁盘更新管理功能注册专有映像模式的虚拟磁盘,或者切换已经注册的虚拟磁盘,将会引发错误。在控制台中,虚拟磁盘更新管理功能用于配置使用虚拟机 (VM) 自动进行虚拟磁盘更新。虚拟磁盘自动更新将按照预定计划进行,也可以在管理员从控制台直接调用更新时随时进行。此功能支持从 WSUS 和 SCCM ESD 服务器检测并交付的更新。

在控制台树结构中展开“站点”节点时,将显示虚拟磁盘更新管理功能。展开后,虚拟磁盘更新管理功能包括以下托管组件:

  • 主机
  • 虚拟磁盘
  • 任务

为虚拟磁盘更新管理功能配置站点需要执行以下操作:

  1. 指定该站点中的一个 Provisioning 服务器来处理更新。请参阅启用自动虚拟磁盘更新
  2. 配置一个虚拟主机池来实现虚拟磁盘自动更新。请参阅使用虚拟主机连接向导注意: 支持的虚拟机管理程序类型包括:Citrix Hypervisor、Microsoft SCVMM/Hyper-V 和 VMwarevSphere/ESX。
  3. 创建并配置一个用于更新虚拟磁盘的 ESD VM。请参阅创建并配置 ESD 更新 VM
  4. 配置虚拟磁盘以实现自动更新。请参阅使用托管虚拟磁盘设置向导
  5. 创建和管理更新任务。请参阅使用更新任务向导注意: 配置虚拟磁盘更新管理任务的用户必须具有创建、修改和删除 Active Directory 帐户所需的权限。
  6. 在控制台中的任务对象上单击鼠标右键,然后选择立即运行更新菜单选项,以运行更新任务。更新 VM 将引导、安装更新,并在需要时重新启动。更新任务成功完成后,虚拟机将自动关闭。可以从控制台树中的虚拟磁盘更新管理 > 虚拟磁盘 > (虚拟磁盘名称) > 已完成更新状态下查看更新状态。也可以使用事件查看器或在 WSUS 中查看更新状态。

在将站点配置为使用虚拟磁盘更新管理功能后,可以使用以下方法更新托管虚拟磁盘:

  • 计划 - Image Update Service 将根据更新任务中定义的计划自动更新虚拟磁盘。
  • 用户调用 – 从控制台的立即运行更新菜单选项中选择托管虚拟磁盘。此选项要求您手动启动更新设备,然后在更新完成后停止更新设备。

自动执行虚拟磁盘更新时,请注意以下事项:

  • 虚拟磁盘更新过程将自动启动(计划),或者当管理员在托管虚拟磁盘上单击鼠标右键并选择立即运行更新菜单选项时启动。
  • Citrix Provisioning 将创建一个版本 (VHDX),并将该版本置于维护模式(读取/写入)。
  • 虚拟机将引导分配的虚拟磁盘。如果配置了计划更新,虚拟磁盘更新管理功能将自动执行引导。对于用户调用更新,管理员将调用该更新。
  • 所有更新都将自动进行并捕获到 VHDX 文件的新版本中。
  • 更新虚拟磁盘后,虚拟机将自动关闭。
  • 虚拟磁盘将从维护模式提升为测试或生产模式。新虚拟磁盘版本的可用性取决于运行更新任务向导时选择的访问模式。或者,在更新任务属性完成选项卡上选择模式(维护、测试或生产)时。在该版本进入生产模式后,目标设备在下次引导该虚拟磁盘时将可以访问该版本。

启用自动虚拟磁盘更新

要启用自动虚拟磁盘更新,请执行以下操作:

  1. 在控制台中的“站点”上单击鼠标右键,然后选择属性菜单选项。此时将显示站点属性对话框。
  2. 虚拟磁盘更新选项卡上,选中在此站点上启用自动虚拟磁盘更新旁边的框。
  3. 选择要为此站点运行虚拟磁盘更新的服务器,然后单击确定

此时托管虚拟磁盘将在此站点上自动更新。然后,必须将虚拟主机连接配置为允许执行自动更新。请参阅配置虚拟主机连接来实现虚拟磁盘自动更新

配置虚拟主机连接来实现虚拟磁盘自动更新

使用虚拟磁盘更新管理功能时,将从要用于与 Citrix Provisioning 进行通信的虚拟池中选择一个指定的虚拟机管理程序服务器。通过运行虚拟主机连接向导来创建指定的虚拟机管理程序。如果要在备用端口上运行 vCenter 服务器,必须对注册表进行以下修改,才能从 Citrix Provisioning 连接到 vCenter 服务器:

  • HKLM\Software\Citrix\Citrix Provisioning 下创建一个名为 PlatformEsx 的注册表项
  • 在注册表项 PlatformEsx 中创建一个名为 ServerConnectionString 的字符串,并将其设置为 http://{0}:PORT#/sdk。如果使用端口 300,请将 ServerConnectionString 设置为 http://{0}:300/sdk

配置虚拟主机连接:

  1. 在 Citrix Provisioning 控制台中虚拟磁盘更新管理节点下的主机上单击鼠标右键,然后选择添加主机… 选项。此时将显示虚拟主机连接向导
  2. 单击下一步开始操作。此时将显示 Hypervisor 页面。
  3. 单击此池使用的虚拟机管理程序类型旁边的单选按钮,然后单击下一步。选项包括 Citrix XenServer、Microsoft、SCVMM/Hyper-V 或 vSphere/ESX。此时将显示名称/说明页面。
  4. 输入虚拟主机连接的名称和说明(可选),然后单击下一步
  5. 输入服务器要与之通信的主机名或 IP 地址。如果选择了 ESX 虚拟机管理程序,可以选择性地指定连接主机时要使用的数据中心。注意:如果之前输入后又删除了主机名/IP 地址,则可能需要几分钟时间才能重新输入该主机名/IP 地址。
  6. 单击下一步。此时将显示凭据页面。
  7. 输入连接到此主机时需要使用的相应凭据,然后单击下一步。指定以下内容:用户名 - 具有访问虚拟主机池服务器所需的相应权限的帐户名称。密码 - 与此帐户名称结合使用的密码。密码的最大字符数必须为 32。此时将显示确认页面。
  8. 检查设置以确保准确无误,然后单击完成。可以在虚拟主机连接属性对话框中查看或修改虚拟主机池属性。

“常规”选项卡

字段 说明
类型 虚拟主机连接向导运行过程中选择的虚拟主机连接类型。此字段无法修改。
名称 Citrix Provisioning 引用此虚拟主机连接时使用的名称。
说明 此虚拟主机连接的简要说明。
主机 由 Citrix Provisioning 使用的虚拟主机连接服务器的主机名或 IP 地址。要使用其他端口连接 ESX 服务器,在“服务器地址”字段中,输入完整的连接字符串,并包括正确的端口号。连接字符串的格式为 http://server_name:port/sdk注意: 如果要在备用端口上运行 vCenter 服务器,必须对注册表进行以下修改,才能从 Citrix Provisioning 连接到 vCenter 服务器:创建新的注册表项 HKLM\Software\Citrix\CitrixProvisioning\PlatformEsx。或者,在注册表项 PlatformEsx 中创建一个名为 ServerConnectionString 的字符串,并将其设置为 http://{0}:PORT#/sdk。如果使用端口 300,请将 ServerConnectionString 设置为 http://{0}:300/sdk
数据中心 可选。如果选择了 ESX 虚拟机管理程序,可以选择性地指定连接主机时要使用的数据中心。

“凭据”选项卡

字段 说明
更新限制 连接到虚拟主机服务器时需要使用的帐户用户名。
密码 与用户名关联的帐户密码。密码的最大字符数必须为 32。
“验证连接”按钮 单击此按钮可验证所输入的用户名和密码是否有效,并允许与虚拟主机池服务器进行通信。

“高级”选项卡

字段 说明
更新限制 控制可并行处理更新的虚拟机数。任何其他更新都会进行排队,并在虚拟机完成处理后启动。
更新超时 允许对映像执行更新的最大时间量。如果在达到超时期限时仍未完成更新,则将取消该更新。
关闭超时 等待虚拟机关机的最长时间。如果虚拟机在达到超时期限之前尚未关闭,服务器将强制关闭该虚拟机。
端口 设置 IP 端口号。此字段对 VMware vSphere/ESX 不可用。