Назад | Перейти на главную страницу

Openstack: В чем разница между nova migrate и nova evacuate?

На свободе я искал способ «очистить» гипервизор от всех его виртуальных машин. На клиентские документы nova, Я нашел следующие команды, связанные с этим:

и:

Я могу использовать команды из первой группы для перемещения серверов (также называемых виртуальными машинами) один за другим с одного гипервизора на другой. Аналогичным образом, используя команду из второй группы с гипервизором в качестве цели, все ее серверы перемещаются на другие гипервизоры. И тут возникает путаница.

В чем разница между командами «migrate» и «evacuate» (помимо немного разных аргументов) при использовании с работающим гипервизором?

Они делают одно и то же или внутри они разные, и я что-то упускаю? Следует ли использовать один в одних случаях, а другой - в других? Даже на глоссарий он говорит:

Итак, должно быть похоже. Но тогда почему оба существуют?

Справка nova немного сбивает с толку, поскольку в ней часто используется слово «сервер», когда на самом деле имеется в виду «экземпляр», и «хост», где имеется в виду «вычислительный узел». Терминология OpenStack изменилась за свою историю, и некоторые из используемых здесь терминов являются устаревшими.

Поэтому я немного поэкспериментировал, чтобы выяснить, что на самом деле делают эти команды. Я придумал:

Команды, которые работают с отказавшими вычислительными узлами:

  • nova evacuate перезапускает единственный экземпляр, который работал на вышедшем из строя вычислительном узле. По умолчанию OpenStack выбирает, какие вычислительные узлы получат экземпляр, но вычислительный узел можно выбрать с помощью --target-host.
  • nova host-evacuate перезапускается все экземпляры, которые работали на вышедшем из строя вычислительном узле. По умолчанию OpenStack выбирает, какие вычислительные узлы получат экземпляры, но вычислительный узел можно выбрать с помощью --target-host.

    В любом случае эвакуация не удастся, если вычислительный узел действительно работает.

Команды, которые работают с запущенными вычислительными узлами:

  • nova host-evacuate-live попытки жить мигрировать все экземпляры, работающие на вычислительном узле, на другие вычислительные узлы. По умолчанию OpenStack выбирает, какие вычислительные узлы получат экземпляры, но вычислительный узел можно выбрать с помощью --target-host.
  • nova host-servers-migrate переносит остановленные экземпляры с вычислительного узла. OpenStack выбирает, какие вычислительные узлы получат экземпляры.
  • nova live-migration live переносит один экземпляр на вычислительный узел. По умолчанию OpenStack выбирает, какие вычислительные узлы получат экземпляры, но вычислительный узел можно выбрать с помощью --target-host.
  • nova migrate переносит остановленный экземпляр с вычислительного узла. OpenStack выбирает, какой вычислительный узел получит экземпляр.

В документации Red Hat OpenStack немного лучше объяснение эвакуации и разница между этими командами, чем в исходной документации.