Можно ли выполнить живую миграцию виртуальной машины между зонами доступности?

Проблема: Живая миграция виртуальной машины между зонами доступности не осуществляется. В журнале логов /var/log/nova/nova-conductor.log регистрируются сообщения вида:

WARNING nova.scheduler.utils [...] Failed to compute_task_migrate_server: No valid host was found

И в журнале логов /var/log/nova/nova-scheduler.log:

INFO nova.scheduler.host_manager [...] Host filter only checking host [...] and node [hostname]INFO nova.filters [...] Filter AvailabilityZoneFilter returned 0 hosts

Окружение:

  • Платформа под управлением OpenStack (все версии)
  • Nova

Причина:

Живая миграция виртуальной машины возможна в пределах зоны доступности, но только с использованием интерфейса командной строки. Как мы видим, исходный хост и хост назначения являются частью разных зон доступности.

  • Исходный хост:

    $ openstack compute service list | grep [UUID]| 50 | nova-compute | [UUID] | Test-AZ | enabled | up | 2020-XX-XXTYY:YY:YY.000000 |
    
  • Хост назначения:

    $ openstack compute service list | grep [UUID]| 69 | nova-compute | [UUID] | nova | enabled | up | 2020-XX-XXTYY:YY:YY.000000 |
    

Решение:

Живая миграция между различными зонами доступности работает с использованием параметра --force для живой миграции. Миграция виртуальной машины с использованием параметра --force может принудительно обойти nova-scheduler и переместить виртуальную машину на указанный хост:

https://docs.openstack.org/nova/latest/admin/availability-zones.html

Дополнительная информация:

С дополнительной информацией о зонах доступности можно ознакомиться в официальной документации OpenStack.