veeam恢复报错

Veeam 恢复虚拟机报错问题记录

报错信息

在使用 Veeam 进行虚拟机恢复到 VMware 环境时,遇到如下错误:

restore job failed Error : A specified parameter was not correct: spec.vmProfi

这是 Veeam 与 VMware vSphere API 交互时的典型报错,通常由于传递给 VMware 的 restore spec(恢复参数)中,vmProfile 参数不符合要求或缺失,spec.vmProfi 实际是 spec.vmProfile 被日志截断了。

注意:由于当前环境中 vSphere 和 Veeam 版本一致,因此初步判断并不符合常见的版本兼容性问题。

日志排查

进入以下目录查看恢复作业日志:

C:\ProgramData\Veeam\Backup\恢复虚拟机名称\

日志中的关键报错信息如下:

Error Incompatible VM profile detected (VirtualMachineConfigSpec.spec) Error A specified parameter was not correct: spec.vmProfile

问题分析

根据资料查询,报错含义如下:

  1. Veeam 执行 CreateVMTask 时失败

    • at Veeam.Backup.VI.ViSoap.CSoapConnection.CreateVirtualDevice
    • 说明在给还原 VM 配置虚拟磁盘或 VM 配置项时失败。
  2. Veeam 继续报 VM profile 不兼容

    • Incompatible VM profile detected
    • 确认是 VMware 端校验 spec.vmProfile 时被拒绝。

关键线索

  • 同样的恢复操作,在几天前还成功执行过。
  • 这次恢复过程与以往一致,选择了:
    • 其他位置恢复
    • 其他资源池
    • 其他磁盘位置
    • 更改虚拟机名称

环境变更

回忆到:上一次成功恢复后,VMware 平台的 资源池被拆除并重建

结论

造成报错的根本原因:

  1. Veeam 备份时,记录了 VM 的 资源池 ID 以及 vmProfile / storage policy 绑定
  2. 资源池被删除重建后,即使名字相同,底层 ID(MOID)profile ID 已经发生变化。
  3. Veeam 还原时,使用的是老的 ResourcePool ID 和 vmProfileId,调用 vSphere API 时,这些 ID 无法匹配到当前的资源池和 profile,因此抛出错误:
A specified parameter was not correct: spec.vmProfile

为什么以前能还原?

  • 资源池未变更时,老的 profile ID 仍然在 vSphere 中有效,Veeam 使用原 ID 能正常完成还原。
  • 重建资源池后,原有 profile ID 失效,导致 restore job 中的参数变成“无效 profile”。

解决方案

方法一(本次采用)

  • 恢复时 不要指定其他硬盘,使用 原硬盘 即可,Veeam 会忽略无效的 vmProfile。

方法二

  • 重新搭建 Veeam 备份链,生成新的 restore spec,避免引用无效的资源池和 profile。

方法三

  • 升级 Veeam 至最新版本,新版本对资源池和 profile 的适配逻辑进行了优化,能自动识别并适配当前环境,避免类似问题。

备注:生产环境中,建议定期评估资源池、存储策略(profile)与备份方案的一致性,避免因 ID 变更造成恢复失败。

posted @ 2025-03-17 15:06  MiyauchiRenge  阅读(105)  评论(0)    收藏  举报