现象
每隔一小时就会收到如题的错误,但是错误中提到的虚拟机无法从备份运行或不再可用。
The virtual machine with ID "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" is not found.
------------------------
Error code: 22
Module: 309
LineInfo: 0x8D165E86FB81959B
Fields: {"$module":"run_vm_from_image_glxa64_12960","CommandID":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"}
Message: TOL: Failed to execute the command. Deleting machine running from backup
------------------------
Error code: 8
Module: 405
LineInfo: 0x819984CC28268FDC
Fields: {"$module":"run_vm_from_image_glxa64_12960"}
Message: Failed to unpublish virtual machine 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'.
------------------------
Error code: 40
Module: 405
LineInfo: 0x7F192B1D80695076
Fields: {"$module":"run_vm_from_image_glxa64_12960"}
Message: Failed to find a virtual machine with ID 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' in the data management layer (DML).
------------------------
Error code: 27
Module: 252
LineInfo: 0xDE1E6947B7A08AC2
Fields: {"$module":"run_vm_from_image_glxa64_12960","TraceLevel":"1"}
Message: DML: An object with ID ' Root (Common::Guid) = XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
[PrimaryKey (NIL)]
' cannot be found.
原因
没有通过 Acronis Cyber Backup 控制台操作得情况下,从 vSphere 中手动删除了已安装的虚拟机,这导致无效的记录保留在 Acronis 管理服务器数据库中。
解决方法
请记录错误消息中显示的机器的 GUID。
创建具有以下内容的脚本文件,然后将此 GUID 放置在机器的 GUID 的位置:
import acrortimport loggingimport os def _create_pattern(typename, path, plan_id): pattern = [ ('^Is', 'string', typename), (path, 'guid', plan_id) ] return pattern def delete_by_id(mms, class_name, path, plan_id): mms.dml.delete(pattern=acrort.plain.Unit(flat=_create_pattern(class_name, path, plan_id))) mms = acrort.connectivity.Connection('mms', client_session_data={'identity_disabled':True}) object_id = 'machine's GUID' delete_by_id(mms, 'Resources::Resource', '.ID', object_id)delete_by_id(mms, 'RunVmFromImage::VMResurrection', '.ID', object_id)将此脚本保存到名为delete_resource_resource.py的文件中
用 WinSCP连接到 Acronis Virtual Appliance:
用 WinSCP 实用程序连接 Appliance
安装 WinSCP 实用程序,可以从 http://winscp.net/eng/download.php 获得该实用程序。 WinSCP(Windows Secure CoPy)是 Microsoft Windows 的免费开源 SFTP,SCP 和 FTP 客户端。
转到 Virtual Appliance 控制台,然后按 CTRL + SHIFT + F2切换到命令行界面。 在虚拟设备的命令行中,输入以下命令:
/bin/sshd在安装 WinSCP 实用程序的计算机上启动它。
在主机字段中,键入 Virtual Appliance 与 vSphere 控制台中的相同的 IP 地址。 默认的登录信息是root:root。
协议应设置为 SCP,然后单击登录。
将获得一个窗口,包含了 Appliance 的所有目录(类似于 Windows Commander 的界面)
Windows agent for VMware 的解决方法
将之前创建好的名为 delete_resource_resource.py 的脚本文件复制到 Windows 系统
执行
acropsh delete_resource_resource.py
acropsh.exe 命令的默认位置是 C:\Program Files\Acronis\PyShell\bin重启机器
将之前创建好的名为 delete_resource_resource.py 的脚本文件复制到 Appliance
在 Appliance 的控制台,执行以下命令
acropsh delete_resource_resource.py重启 Appliance后问题解决。