问题现象(介绍)
每小时都会收到此错误,但是错误中提到的虚拟机无法从备份运行或不再可用。
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中手动删除了已安装的虚拟机,这导致无效的记录保留在管理服务器数据库中。
解决方法
1.注意错误消息中显示的机器的GUID。
2.创建一个具有此内容的脚本,并将此GUID放在标记的位置:
import acrort
import logging
import 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)
3.将此脚本保存到名为delete_resource_resource.py的文件中;
4.使用WinSCP,连接到Acronis虚拟设备:
1. 安装WinSCP实用程序,您可以从http://winscp.net/eng/download.php获得该实用程序。WinSCP(Windows Secure CoPy)是Microsoft Windows的免费开放源代码SFTP,SCP和FTP客户端。
2. 转到VA控制台,然后按CTRL + SHIFT + F2切换到命令行界面。在虚拟设备的命令行中,输入以下命令:
/bin/sshd
3. 在安装它的计算机上启动WinSCP实用程序。
4. 在主机字段中,键入您的虚拟设备IP,与vSphere控制台中的相同。默认的login:password是root:root。
5. 协议应设置为SCP,然后单击登录。
6. 您将获得一个窗口,其中包含设备的所有目录(类似于Windows Commander的界面)。
5.将delete_resource_resource.py脚本复制到Appliance虚拟机。
6.在设备控制台中,执行:acropsh delete_resource_resource.py
7.重新启动。