对还原点失败进行故障排除:代理或扩展的问题

本文提供故障排除步骤,可帮助解决与 VM 代理和扩展的通信相关的还原点错误。

如果本文未解决 Azure 问题,请访问 Microsoft Q & A 和 Stack Overflow 上的 Azure 论坛。 可以在这些论坛上发布问题。 还可提交 Azure 支持请求。 若要提交支持请求,请在 Azure 支持页上提交。

对还原点失败进行故障排除的分步指南

可按照下面列出的故障排除步骤解决大多数常见还原点失败问题:

步骤 1:检查 Azure VM 的运行状况

  • 确保 Azure VM 预配状态为“正在运行”:如果 VM 预配状态处于“已停止/已解除分配/正在更新”状态,则它会干扰还原点操作。 在 Azure 门户中,转到“虚拟机”>“概述”,并确保 VM 状态为“正在运行”,然后重试还原点操作。
  • 查看挂起的 OS 更新或重启:确保 VM 上没有挂起的 OS 更新或挂起的重启。

步骤 2:检查 Azure VM 来宾代理服务的运行状况

确保 Azure VM 来宾代理服务已启动并处于最新状态

  • 导航到 services.msc 并确保 Azure VM 来宾代理服务已启动并正在运行。 此外,请确保已安装最新版本。 了解详细信息
  • 通过门户、PowerShell、命令行接口或 Azure 资源管理器模板从 Azure 市场映像部署任何 Windows VM 时默认安装 Azure VM 代理。 创建部署到 Azure 的自定义 VM 映像时,可能需要手动安装代理
  • 查看支持矩阵,检查 VM 是否在受支持的 Windows 操作系统上运行。

步骤 3:检查 Azure VM 扩展的运行状况

  • 确保所有 Azure VM 扩展均处于“预配成功”状态:如果任何扩展处于失败状态,则可能会干扰还原点操作。
    • 在 Azure 门户中,转到“虚拟机”>“设置”>“扩展”>“扩展状态”,并检查所有扩展是否都处于“预配成功”状态。
    • 确保所有扩展问题都已解决,然后重试还原点操作。
  • 确保 COM+ 系统应用程序已启动并正在运行。 此外,分布式事务处理协调器服务应以“网络服务帐户”身份运行。

如果出现问题,请按照对 COM+ 和 MSDTC 问题进行故障排除中的故障排除步骤进行操作。

步骤 4:检查 Azure VM 快照扩展的运行状况

还原点使用 VM 快照扩展获取 Azure 虚拟机的应用程序一致性快照。 还原点在第一个还原点创建操作过程中安装扩展。

  • 确保 VMSnapshot 扩展未处于失败状态:请按照故障排除中的步骤验证并确保 Azure VM 快照扩展正常。

  • 检查防病毒软件是否在阻止扩展:某些防病毒软件可能阻止扩展执行。

    还原点失败时,请验证“事件查看器应用程序日志”中是否存在带有“错误应用程序名称: IaaSBcdrExtension.exe”的日志条目。 如果看到相关条目,则 VM 中配置的防病毒软件可能正在限制 VMSnapshot 扩展的执行。 通过在防病毒软件配置中排除以下目录进行测试,然后重试还原点操作。

    • C:\Packages\Plugins\Microsoft.Azure.RecoveryServices.VMSnapshot
    • C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.RecoveryServices.VMSnapshot
  • 检查是否需要网络访问权限:从 Azure 存储扩展存储库下载扩展包,并将扩展状态上传内容发布到 Azure 存储。 了解详细信息

    • 如果使用不受支持的代理版本,则需要允许从 VM 对该区域中的 Azure 存储进行出站访问。
    • 如果已使用来宾防火墙或代理阻止对 168.63.129.16 的访问,则不管采用上述哪种方法,扩展都会失败。 需要端口 80、443 和 32526。 了解详细信息
  • 确保已在来宾 VM 内启用 DHCP:必须这样做才能从 DHCP 获取主机或构造地址,以便还原点可以正常工作。 如果需要静态专用 IP,则应通过 Azure 门户或 PowerShell 进行配置,同时确保启用 VM 内的 DHCP 选项。 了解详细信息

  • 确保 VSS 编写器服务已启动并正在运行:请按照以下步骤排查 VSS 编写器问题

常见问题

DiskRestorePointUsedByCustomer - 磁盘还原点存在未完成的活动共享访问签名

错误代码:DiskRestorePointUsedByCustomer

错误消息:磁盘还原点存在未完成的活动共享访问签名。 请在删除还原点之前调用 EndGetAccess。

如果任何基础磁盘还原点上存在活动共享访问签名 (SAS),则无法删除还原点。 结束磁盘还原点上的共享访问,然后重试该操作。

OperationNotAllowed - 在“创建还原点”操作过程中对虚拟机进行了更改。

错误代码:OperationNotAllowed

错误消息:在“创建还原点”操作过程中对虚拟机进行了更改。 目前无法完成“创建还原点”操作。 请稍后再试。

如果在对 VM 模型并行进行更改(例如附加新磁盘或拆离现有磁盘),则还原点创建会失败。 这是为了确保所创建的还原点的数据完整性。 更新 VM 模型后,请重试还原点创建。

OperationNotAllowed - 不允许操作“创建还原点”,因为磁盘未成功分配。

错误代码:OperationNotAllowed

错误消息:不允许操作“创建还原点”,因为磁盘未成功分配。 请使用 excludeDisks 属性排除这些磁盘,然后重试。

如果附加到 VM 的任何磁盘未正确分配,则还原点会失败。 在为 VM 创建还原点创建之前,必须排除这些磁盘。 如果使用 ARM 处理器 API 创建还原点,若要排除磁盘,请在请求正文中将其标识符添加到 excludeDisks 属性。 如果使用 CLIPowerShell门户,请设置相应的参数。

OperationNotAllowed - 不支持创建包含共享磁盘的虚拟机的还原点。

错误代码:VMRestorePointClientError

错误消息:不支持创建包含共享磁盘的虚拟机的还原点。 可通过 excludeDisks 属性将此磁盘从还原点排除。

共享磁盘当前不支持还原点。 在为 VM 创建还原点创建之前,需要排除这些磁盘。 如果使用 ARM 处理器 API 创建还原点,若要排除磁盘,请在请求正文中将其标识符添加到 excludeDisks 属性。 如果使用 CLIPowerShell门户,请执行相应的步骤。

VMAgentStatusCommunicationError - VM 代理无法与计算服务通信

错误代码:VMAgentStatusCommunicationError

错误消息:VM 尚未报告 VM 代理或扩展的状态。

Azure VM 代理可能已停止、已过期、处于不一致状态或未安装。 这些状态会阻止创建还原点。

  • 在 Azure 门户中,转到“虚拟机”>“设置”>“属性”,并确保 VM“状态”为“正在运行”,且“代理状态”为“就绪”。 如果 VM 代理已停止或处于不一致状态,请重启代理。
    • 重启 Windows VM 的来宾代理。
    • 重启 Linux VM 的来宾代理。
  • 在 Azure 门户中,转到“虚拟机”>“设置”>“扩展”,并确保所有扩展都处于“预配成功”状态。 如果未处于该状态,请按照以下步骤解决问题。

VMRestorePointInternalError - 无法在创建 VM 快照期间创建还原点,因为出现内部执行错误。 请稍后重试此操作。内部

错误代码:VMRestorePointInternalError

错误消息:无法在创建 VM 快照期间创建还原点,因为出现内部执行错误。 请稍后重试操作。

注册还原点操作后,计算服务会与 VM 备份扩展通信来获取时间点快照,从而启动作业。 以下任何条件都可能阻止快照的触发。 如果未触发快照,则还原点创建会失败。 请按所列顺序完成以下故障排除步骤,然后重试操作:

原因 1:代理安装在 VM 中,但无响应(针对 Windows VM)

原因 2:VM 中安装的代理已过时(针对 Linux VM)

原因 3:无法检索快照状态或无法创建快照

原因 4:未设置 VM-Agent 配置选项(对于 Linux VM)

原因 5:应用程序控制解决方案正在阻止 IaaSBcdrExtension.exe

当其中一个扩展失败将 VM 状态置于预配失败状态时,也可能会发生此错误。 如果以上步骤未解决问题,请执行以下操作:

在 Azure 门户中,转到“虚拟机”>“设置”>“扩展”,并确保所有扩展都处于“预配成功”状态。 详细了解预配状态。

  • 如果任何扩展处于失败状态,则可能会干扰还原点操作。 确保扩展问题已解决,然后重试还原点操作。
  • 如果 VM 预配状态处于正在更新状态,则可能会干扰还原点操作。 确保它正常,然后重试还原点操作。

VMRestorePointClientError - 由于 COM+ 错误,还原点创建失败。

错误代码:VMRestorePointClientError

错误消息:由于 COM+ 错误,还原点创建失败。 请重启 Windows 服务“COM+ 系统应用程序”(COMSysApp)。 如果此问题一再出现,请重启 VM。

如果 COM+ 服务未运行,或者此服务有任何错误,还原点操作会失败。 重启 COM+ 系统应用程序,然后重启 VM 并重试还原点操作。

VMRestorePointClientError - 由于 COM+ 内存配额中的可用内存不足,还原点创建失败。

错误代码:VMRestorePointClientError

错误消息:由于 COM+ 内存配额中的可用内存不足,还原点创建失败。 请重启 Windows 服务“COM+ 系统应用程序”(COMSysApp)。 如果此问题一再出现,请重启 VM。

如果 COM+ 服务中的内存不足,还原点操作会失败。 重启 COM+ 系统应用程序服务,VM 通常会释放内存。 重启后,重试还原点操作。

VMRestorePointClientError - 由于 VSS 编写器处于错误状态,还原点创建失败。

错误代码:VMRestorePointClientError

错误消息:由于 VSS 编写器处于错误状态,还原点创建失败。 重启 VSS 编写器服务并重启 VM。

还原点创建会调用 VSS 编写器以将内存中 IO 刷新到磁盘,然后拍摄快照以实现应用程序一致性。 如果 VSS 编写器处于错误状态,则会影响还原点创建操作。 重启 VSS 编写器服务并重启 VM,然后重试操作。

VMRestorePointClientError - 由于安装 Visual C++ Redistributable for Visual Studio 2012 时出错,还原点创建失败。

错误代码:VMRestorePointClientError

错误消息:由于安装 Visual C++ Redistributable for Visual Studio 2012 时出错,还原点创建失败。 请安装 Microsoft Visual C++ Redistributable for Visual Studio 2012。 如果安装遇到问题或如果已安装该组件,会出现此问题,请重启 VM 以清除安装问题。

还原点操作需要 Visual C++ Redistributable for Visual Studio 2021。 下载 Visual C++ Redistributable for Visual Studio 2012 并重启 VM,然后重试还原点操作。

VMRestorePointClientError - 由于已达到一个或多个磁盘 Blob 的最大允许快照限制,还原点创建失败。 请删除此 VM 的某些现有还原点,然后重试。

错误代码:VMRestorePointClientError

错误消息:由于已达到一个或多个磁盘 Blob 的最大允许快照限制,还原点创建失败。 请删除此 VM 的某些现有还原点,然后重试。

VM 的各个还原点集合和资源组的还原点数量不能超过 500 个。 若要创建新的还原点,请删除现有的还原点。

VMRestorePointClientError - 还原点创建失败,出现错误“COM+ 无法与 Microsoft 分布式事务处理协调器通信”。

错误代码:VMRestorePointClientError

错误消息:还原点创建失败,出现错误“COM+ 无法与 Microsoft 分布式事务处理协调器通信”。

按照以下步骤解决此错误:

  • 从提升的命令提示符打开 services.msc
  • 确保“分布式事务处理协调器”服务的“登录身份”值设置为“网络服务”,并且服务正在运行。
  • 如果此服务未能启动,请重新安装此服务。

VMRestorePointClientError - 由于 VM 资源不足,还原点创建失败。

错误代码:VMRestorePointClientError

错误消息:由于 VM 资源不足,还原点创建失败。 请通过更改 VM 大小来增加 VM 资源,然后重试操作。 若要重设虚拟机大小,请参阅 https://azure.microsoft.com/blog/resize-virtual-machines/

创建还原点需要有足够的计算资源可用。 如果在创建还原点时遇到以上错误,则需要重设 VM 大小,然后选择更高 VM 大小。 按照如何重设 VM 大小中的步骤进行操作。 重设 VM 大小后,重试还原点操作。

VMRestorePointClientError - 由于虚拟机未建立网络连接,还原点创建失败。

错误代码:VMRestorePointClientError

错误消息:由于虚拟机未建立网络连接,还原点创建失败。 请确保 VM 具有网络访问权限。 请将 Azure 数据中心 IP 范围加入允许列表,或设置代理服务器用于网络访问。 有关详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=800034。 如果已经在使用代理服务器,请确保代理服务器设置配置正确。

触发还原点创建后,计算服务会开始与 VM 快照扩展通信以获取时间点快照。 以下任何条件都可能阻止快照的触发。 如果未触发快照,则还原点可能失败。 完成以下故障排除步骤,然后重试操作:

[无法检索快照状态或无法创建快照]。(#the-snapshot-status-cant-be-retrieved-or-a-snapshot-cant-be-taken)

VMRestorePointClientError - 还原点创建失败,因为在 VM 上触发了并发“创建还原点”操作。

错误代码:VMRestorePointClientError

错误消息:还原点创建失败,因为在 VM 上触发了并发“创建还原点”操作。

最近的还原点创建失败,因为已在创建现有还原点。 在完全创建当前还原点之前,无法创建新还原点。 在触发另一个还原点创建操作之前,请确保当前正在进行的还原点创建操作已完成。

若要检查正在进行的还原点,请执行以下步骤:

  1. 登录到 Azure 门户,选择“所有服务”。 进入“恢复服务”并选择“还原点集合”。 此时会显示还原点集合的列表。
  2. 从还原点集合的列表中,选择在其中创建还原点的还原点集合。
  3. 选择“设置”>“还原点”以查看所有还原点。 如果还原点正在进行,请等待它完成。
  4. 重试创建新还原点。

DiskRestorePointClientError - 找不到与 DiskEncryptionSet 关联的密钥保管库。

错误代码:DiskRestorePointClientError

错误消息:找不到与 DiskEncryptionSet 关联的密钥保管库。 资源可能因创建还原点失败已被删除。 请在重新创建名称相同的缺失资源后重试该操作。

如果要为具有加密磁盘的 VM 创建还原点,则必须确保存储密钥的密钥保管库可用。 我们使用相同的密钥来创建加密还原点。

BadRequest - 可以使用 api-version“2021-03-01”或更高版本发出此请求

错误代码:BadRequest

错误消息:可以使用 api-version“2022-03-01”或更高版本发出此请求。

只有 API 版本 2022-03-01 或更高版本才支持还原点。 如果使用 REST API 创建和管理还原点,请在调用还原点 API 时使用指定 API 版本。

InternalError/InternalExecutionError/InternalOperationError - 发生内部执行错误。 请稍后重试。

错误代码:InternalError/InternalExecutionError/InternalOperationError

错误消息:发生内部执行错误。 请稍后重试。

触发还原点创建后,计算服务会开始与 VM 快照扩展通信以获取时间点快照。 以下任何条件都可能阻止快照的触发。 如果未触发快照,则还原点可能失败。 请按所列顺序完成以下故障排除步骤,然后重试操作:

  • 原因 1:代理安装在 VM 中,但无响应(针对 Windows VM)

  • 原因 2:VM 中安装的代理已过时(针对 Linux VM)

  • 原因 3:无法检索快照状态或无法创建快照

  • 原因 4:计算服务因资源组锁定而无权删除旧的还原点

  • 原因 5:扩展版本/位与正在运行的 Windows 版本不匹配,或者以下模块已损坏:

    C:\Packages\Plugins\Microsoft.Azure.RecoveryServices.VMSnapshot\<extension version>\iaasvmprovider.dll

    若要解决此问题,请检查该模块是否与 regsvr32.exe 的 x86(32 位)/x64(64 位)版本兼容,然后执行以下步骤:

    1. 在受影响的 VM 中,转到“控制面板”>“程序和功能”。
    2. 卸载适用于 Visual Studio 2013 的 Visual C++ 可再发行程序包 x64。
    3. 在 VM 中重新安装 Visual C++ Redistributable for Visual Studio 2013。 要进行安装,请执行以下步骤:
      1. 转到文件夹:C:\Packages\Plugins\Microsoft.Azure.RecoveryServices.VMSnapshot\<LatestVersion>。
      2. 搜索并运行 vcredist2013_x64 文件,以进行安装。
    4. 重试还原点操作。

OSProvisioningClientError - 由于错误,还原点操作失败。 有关详细信息,请参阅还原点预配错误消息详细信息

错误代码:OSProvisioningClientError

错误消息:OS 预配未在分配的时间内完成。 映像中已连续多次发生此错误。 请确保已正确准备(通用化)映像。

此错误从 IaaS VM 报告。 按照错误消息中所述执行所需操作,然后重试操作。

AllocationFailed - 由于错误,还原点操作失败。 有关详细信息,请参阅还原点预配错误消息详细信息

错误代码:AllocationFailed

错误消息:分配失败。 如果尝试将新 VM 添加到可用性集,或更新/重新调整可用性集中现有 VM 的大小,请注意,此类可用性集分配的作用域为单个群集,群集的容量可能不足。 详细了解如何提高分配成功可能性。

此错误从 IaaS VM 报告。 按照错误消息中所述执行所需操作,然后重试操作。

原因和解决方案

代理安装在 VM 中,但无响应(针对 Windows VM)

解决方案

VM 代理可能已损坏或服务可能已停止。 重新安装 VM 代理可帮助获取最新版本。 此外,还有助于与服务重新开始通信。

  1. 确定 Azure 来宾代理服务是否在 VM 服务 (services.msc) 中运行。 尝试重启 Azure 来宾代理服务并启动还原点操作。
  2. 如果服务中未显示 Azure 来宾代理服务,请在“控制面板”中转到“程序和功能”,确定是否已安装 Azure 来宾代理服务。
  3. 如果“程序和功能”中显示了 Azure 来宾代理,请将其卸载。
  4. 下载并安装最新版本的代理 MSI。 必须拥有管理员权限才能完成安装。
  5. 检查服务中是否显示了 Azure 来宾代理服务。
  6. 重试还原点操作。

此外,检查是否在 VM 中安装了 Microsoft .NET 4.5。 VM 代理需要使用 .NET 4.5 来与服务通信。

VM 中安装的代理已过时(针对 Linux VM)

解决方案

对于 Linux VM,与代理或扩展相关的大多数失败都是由于影响过时的 VM 代理的问题所造成的。 若要解决此问题,请遵循以下通用准则:

  1. 按照更新 Linux VM 代理的说明进行操作。

    注意

    强烈建议 只通过分发存储库更新代理。 建议不要直接从 GitHub 下载代理代码并将其更新。 如果分发没有可用的最新代理,请联系分发支持部门,了解如何安装最新代理。 若要检查最新代理,请转到 GitHub 存储库中的 Azure Linux 代理 页。

  2. 运行以下命令,确保 Azure 代理可在 VM 上运行:ps -e

    如果该进程未运行,请使用以下命令进行重启:

    • 对于 Ubuntu/Debian:
    sudo systemctl start walinuxagent
    
    • 对于其他 Linux 分发版:
    sudo systemctl start waagent
    
  3. 配置自动重新启动代理

  4. 重试还原点操作。 如果仍然失败,请从 VM 收集以下日志:

    • /var/lib/waagent/*.xml
    • /var/log/waagent.log
    • /var/log/azure/*

如果需要 waagent 的详细日志记录,请执行以下步骤:

  1. /etc/waagent.conf 文件中,找到以下行:Enable verbose logging (y|n)。
  2. Logs.Verbose 值从 n 更改为 y
  3. 保存更改,然后遵循本部分前面所述的步骤重启 waagent。

未设置 VM-Agent 配置选项(对于 Linux VM)

配置文件 (/etc/waagent.conf) 可控制 waagent 的操作。 配置文件选项 Extensions.Enable 和 Provisioning.Agent 应分别设置为 y 和 auto,以使还原点正常工作。 有关 VM-Agent 配置文件选项的完整列表,请参阅 https://github.com/Azure/WALinuxAgent#configuration-file-options

应用程序控制解决方案正在阻止 IaaSBcdrExtension.exe

如果运行的是 AppLocker(或其他应用程序控制解决方案),且规则基于发布者或路径,则它们可能会阻止 IaaSBcdrExtension.exe 可执行文件运行。

解决方案

从 AppLocker(或其他应用程序控制软件)中排除 /var/lib 路径或 IaaSBcdrExtension.exe 可执行文件

无法检索快照状态或无法创建快照

还原点依赖于向基础存储帐户发出快照命令。 还原点失败的原因可能是它无法访问存储帐户,也可能是快照任务的执行被延迟。

解决方案

以下状态可能导致快照任务失败:

原因 解决方案
由于在远程桌面协议 (RDP) 中关闭了 VM,VM 状态报告不正确。 如果在 RDP 中关闭了 VM,请检查门户,确定 VM 状态是否正确。 如果不正确,请在门户中使用 VM 仪表板上的“关闭”选项来关闭 VM。
VM 无法从 DHCP 获取主机或结构地址。 必须在来宾内启用 DHCP,才能使还原点正常工作。 如果 VM 无法从 DHCP 响应 245 获取主机或结构地址,则无法下载或运行任何扩展。 如果需要静态专用 IP,则应通过 Azure 门户或 PowerShell 进行配置,同时确保启用 VM 内的 DHCP 选项。 详细了解如何通过 PowerShell 设置静态 IP 地址。

删除恢复点资源组中的锁

  1. 登录 Azure 门户

  2. 转到“所有资源”,选择采用还原点集合资源组。

  3. 在“设置”部分,选择“锁”以显示锁。

  4. 若要移除锁定,请选择“删除”。

    Screenshot of Delete lock in Azure portal.