Я всегда думал, что живая миграция между серверами AMD и Intel не поддерживается ни одним из основных гипервизоров. Однако сегодня я наткнулся на KVM FAQ который говорит, что KVM поддерживает это. По факту, есть демо делал это еще в 2008 году.
С 2008 года прошло 3 года. Мне интересно, поддерживает ли какой-либо из основных гипервизоров (ESXi, Xen, Hyper-V и т.д.) теперь живую миграцию между серверами AMD и Intel?
ESX / ESXi жестяная банка быть сильно настроенным (с использованием целого набора «расширенных настроек» и настроек битов ЦП виртуальной машины), чтобы разрешить vmotion между AMD и Intel - проблема в том, что это вызывает более серьезную проблему, которую он устраняет.
Причина, по которой ESX / ESXi не допускает этого «из коробки», заключается в том, что разные семейства ЦП предлагают разные возможности ЦП, которые в случае ESX / ESXi передаются виртуальным машинам, чтобы их можно было использовать должным образом. Теперь, если виртуальная машина на современном процессоре Intel считает, что может использовать, например, команды SSE4.2, а затем vMotioned к процессору, который не поддерживает эти возможности, вы получите серьезный сбой.
Способ обойти это - установить базовый уровень «наивысшего общего знаменателя», то есть в кластере вы выбираете наименее способный из доступных ЦП и предоставляете его функции только виртуальным машинам, игнорируя функции, доступные более новым, более мощным процессорам, что позволяет виртуальным машинам двигаться.
Если вы вручную подрезаете все разницы в возможностях между процессорами AMD и Intel, чтобы найти абсолютную базовую спецификацию процессора, то вы, конечно, сможете перемещать виртуальные машины между этими чипами без риска сбоя, я вообще не знаю KVM, извините, но я предполагаю, что вот как это позволяет. Обратной стороной этого является то, что вы не разрешаете своим виртуальным машинам использовать какие-либо более продвинутые функции ЦП, доступные для современных чипов, поэтому они могут перемещаться, но они будут медленнее и менее функциональны.
Надеюсь, это поможет вам понять, почему это не часто используемый или, на мой взгляд, мудрый путь.
OpenVZ - это виртуализация на основе контейнеров для Linux. Вы можете переносить 32-битные «виртуальные машины» или контейнеры между 32-битными и 64-битными хостами, но, очевидно, вы не можете перенести 64-битную виртуальную машину на 32-битный хост. Подробнее здесь.
Это очень быстро (собственная аппаратная скорость для виртуальных машин), но не может запускать виртуальные машины MS.