Прекращение работы ВМ с ошибкой "Lost connection with qemu process"
1. Описание проблемы:
Виртуальная машина внезапно прекратила работу. В лог-файлах содержатся следующие события:
-
На менеджере управления в лог-файле /var/log/ovirt-engine/engine.log ошибка Lost connection with qemu process
-
На гипервизоре в лог-файле /var/log/vdsm/vdsm.log службы
vdsmd
ошибка Changed state to Down: Lost connection with qemu process
2. Диагностика
Одна из причин такой ошибки — остановка машины OOM-киллером в случае критической нехватки RAM и SWAP. Чтобы убедиться, нужно проверить:
-
На гипервизоре общесистемный лог-файл /var/log/messages:
-
если был вызван OOM-киллер, в логах должна быть запись, похожая на CPU 6/KVM invoked oom-killer
-
в случае завершения процесса OOM-киллером, должна присутствовать запись
kernel: Out of memory: Kill process 82664 (qemu-kvm) score 353 or sacrifice child
-
-
На гипервизоре лог-файл /var/log/audit, в котором должна присутствовать запись, похожая на virt=kvm op=stop reason=failed с указанием имени виртуальной машины.
Чтобы убедиться, что остановленный процесс соответствует PID гостевой виртуальной машины, необходимо в лог-файле /var/log/audit найти запись о запуске ВМ, запись должна иметь вид
virt=kvm op=start reason=booted vm="VirtualMachineName" uuid=579dd002-a81d-48b0-8281-6b94fa94e2d2 vm-pid=82664
Найти запись можно по имени ВМ или PID, который был остановлен OOM-киллером
3. Как избежать
-
Измените оптимизацию памяти кластера. Для этого необходимо перейти в
, выбрать целевой кластер и нажать кнопку Изменить. На вкладке Оптимизация необходимо изменить параметр Оптимизация памяти, например, уменьшив разрешённое перераспределение физической памяти с 200% до 150%. -
Увеличьте файл-подкачки на хосте до объёма, который сможет удовлетворить текущим запросам кластера. Если настройка Оптимизация памяти выставлена в 200%, то SWAP должен быть как минимум вдвое объёмнее общей физической памяти хостов.
-
Уменьшите максимум памяти у виртуальных машин, чтобы динамическое расширение памяти (memory ballooning) не заняло весь объём физической памяти и SWAP.