База знаний VMmanager

Ошибка "Timed out during operation: cannot acquire state change lock" при остановке или запуске ВМ

Описание

Проблема проявляется в невозможности остановить или перезапустить виртуальную машину (ВМ). При выполнении этих операций в логе vmctl.log появляется ошибка:

libvirt.libvirtError: Timed out during operation: cannot acquire state change lock (held by monitor=remoteDispatchDomainBlockStatsFlags)

В большинстве случаев проблема проблема затрагивает только один кластер. Перезагрузка узла может временно восстановить его работу, но не устраняет причину сбоя.

Причина проблемы — нестабильная работа одного или нескольких физических сетевых соединений между узлами кластера и системой хранения данных (СХД). Потеря сетевых пакетов приводит к тому, что узлы теряют доступ к общему дисковому пространству. В результате служба libvirt не может завершить операции с ВМ из-за блокировок, возникающих по тайм-ауту при ожидании доступа к дискам ВМ.

Диагностика

Чтобы подтвердить причину проблемы:

  1. Подключитесь к серверу с платформой по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Проверьте лог vmctl.log:
    docker exec -it vm_box cat /var/log/vmctl.log
    Ожидаемый результат: присутствует ошибка cannot acquire state change lock.
    Пример вывода
      File "/usr/local/lib64/python3.9/site-packages/libvirt.py", line 2789, in setMetadata
        raise libvirtError('virDomainSetMetadata() failed')
    libvirt.libvirtError: Timed out during operation: cannot acquire state change lock (held by monitor=remoteDispatchDomainBlockStatsFlags)
  3. Проверьте наличие проблем на физических каналах подключения СХД. Если проблемы присутствуют, это подтверждает причину.

Решение

Чтобы решить проблему, устраните неисправности сетевого аппаратного обеспечения. Это восстановит стабильное сетевое соединение между кластером и СХД.

Может быть полезно

Связанные статьи:

Дата последнего обновления статьи: 04.12.2025. Статья подготовлена техническими писателями ISPsystem