Ошибка System Center Virtual Machine Manager, с которой недавно столкнулся. Заключается в том, что виртуальная машина находится в непонятном состоянии, а при попытке произвести с ней какие-либо действия выдается сообщение об ошибке.
В сообщении говорится, что один из компонентов машины (в моем случае виртуальный DVD привод) заблокирован другим заданием и для продолжения работы необходимо блокировку снять.
На первый взгляд все довольно просто, надо лишь найти нужное задание и отменить его. Однако по указанному в сообщении ID найти задание не удалось. Не помогло и удаление заблокированного привода через Hyper-V Manager, поскольку даже при его отсутствии ошибка осталась. Что интересно, виртуальная машина продолжала нормально работать и на самом хосте ошибок не наблюдалось, т.е. проблема была именно в VMM.
Как удалось выяснить, проблема известная, хотя и не очень распространенная. Для ее устранения надо подключиться к SQL серверу, на котором находится база данных VMM. База называется VirtualManagerDB, а блокировки хранятся в таблице с названием dbo.tbl_VMM_Lock. Найти нужную блокировку можно, выполнив примерно такой запрос:
SELECT *
FROM VirtualManagerDB.dbo.tbl_VMM_Lock
WHERE OBJECTID like ‘923b5585-3acc-407e-9535-09f0091d318d’
Здесь OBJECTID — это идентификатор устройства, указанный в сообщении об ошибке. Значение LockType равно 1, что означает наличие блокировки.
Для снятия блокировки надо установить значение LockType равным 4. Сделать это можно следующим запросом:
UPDATE VirtualManagerDB.dbo.tbl_VMM_Lock
SET LockType=4
WHERE TaskID = ’01af3faf-cd55-483e-8868-5c8fb2a3b408′
Затем надо еще раз проверить состояние блокировки. Как видите, теперь значение LockType равно 4, значит блокировка снята и виртуальной машиной снова можно управлять.
Причину возникновения данной ошибки точно определить не удалось, возможно проблема возникла в процессе миграции ВМ с сервера на сервер.