共用方式為


Какие процесcоры получает виртуальная машина внутри Hyper-V?

Недавно коллеги прислали ссылки на интересный спор признаных специалистов по разным системам виртуализации Антона Жбанкова и Андрея Маркелова, о том какие процессоры виртуальная машина получает при работе под Red Hat Enterprise Virtualization и vSphere. Получается, что внутри старых версий RHEV виртуальная машины получала по умолчанию процессор Pentium II. Это не позволяло виртуальным машинам задействовать инструкции новых поколений процессоров и вело к неэффективной работе. В случае использования более новой версии RHEV появляется возможность выбрать более современную модель процессоров.

В связи с этим возникает вопрос, а как обстоят дела с процессорами виртуальных машин при использовании Hyper-V?

Представим, что у нас есть физический хост Hyper-V со следующими характеристиками процессора, ОЗУ и материнской платы:

cpuz-host cpuz-host_1 cpuz-host_2 cpuz-host_3 cpuz-host_4

Теперь представим что мы хотим объединить этот физический хост еще с одним или несколькими хоставми в кластер Failover Cluster. Если все узлы кластера у нас одиаковые, то мы автоматически получим внутри виртуальной машины Windows 7 следующие характеристики виртуального оборудования.

 

cpuz_guest_full cpuz_guest_full1 cpuz_guest_full2 cpuz_guest_full3

 

Виртуальная машина получает такой же процессор как и хостовая ОС. Изменения видны лишь в материнской плате. ОС внутри виртуальной машины может воспользоваться всеми преимуществами оптимизированных инструкций современных процессоров.

Рассмотрим следующий случай. Представим, что в кластере у нас есть физические узлы с разными версиями процессоров. Такое явление хоть и не сильно распространено, но все же встречается. Происходит это, потому что обычно мало кто закупает все узлы кластера сразу. С течение лет узлы, добавляемые в кластер Hyper-V, могут начать различаться. Стоит отметить, что в кластер можно объединять только процессоры одного производителя. Либо Intel, либо AMD. Для того чтобы виртуальная машина могла мигрировать с помощью Live migration c одного физического узла на другой, отличающийся процессором, необходимо чтобы внутри виртуальной машины был процессор инструкции которого могут быть реализованы процессорами обоих физических узлов участвующих в миграции. То есть некий общий знаменатель возможностей процессоров узлов кластера. Для получения такого “общего” процессора виртуальная машина должна быть помечена специальным флагом под названием “Migrate to physical computer with different processor version”. Установить этот флаг можно в свойствах виртуальной машины. В результате она автоматически получит немного другой процессор и следующие виртуальные компоненты.

 

virtual_machine_properties_migrate_diffrent_processor cpuz_migrate cpuz_migrate1 cpuz_migrate2 cpuz_migrate3

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

Перейдем к другому случаю. Что если нам в целях совместимости в виртуальной машине, нужно запустить какую либо устаревшую версию ОС. Все очень просто в свойствах виртуальной машины ставим флаг “Run an older operating system such as Windows NT”. После этого модель процессора в виртуальной машине снова поменяется. Никаких больше процессоров Intel Core 2 Quad получаем более старый и простой процессор Intel Core 2. Впрочем, старые операционные системы все равно не могут воспользоваться преимуществами новых процессоров, так что Intel Core 2 как раз то что надо для таких ОС.

 

virtual_machine_properties_windows_nt cpuz_guest_nt cpuz_guest_nt_1 cpuz_guest_nt_2 cpuz_guest_nt_3

 

Как видите никакой магии в этом процессе нет. Все достаточно просто, понятно и надежно. Hyper-V автоматически подбирает наиболее подходящий с точки зрения быстродействия и возможностей процессор для виртульной машины.

Comments

  • Anonymous
    January 01, 2003
    "Сейчас идет работа над тем чтобы отдавать в виртуальные машины до 8-ми ядер." Круто! Ждём :-) А для 2003-ей линейки поддержка более чем 2-ух виртуальных процессоров в гостевой системе  будет реализована когда-нибудь? А то, насколько я вижу, 4 процессора сейчас поддерживаются даже для Linux с  последними IC (v 2.1), а 2003-ий сервер, проверенная и надёжная как танк ОС обделёна вниманием. Непорядок, надо поправить :-)

  • Anonymous
    January 01, 2003
    Почему же не бывает. Физически один 4-х ядерный процессор установить можно, значит бывает. Сейчас идет работа над тем чтобы отдавать в виртуальные машины до 8-ми ядер.

  • Anonymous
    January 01, 2003
    "Представим, что у нас есть физический хост Hyper-V со следующими характеристиками процессора" Попробовал представить физический хост Hyper-V с одним четырёхъядерным процессором, не получилось, НЕ БЫВАЕТ. Я пока вижу, что для двухпроцессорного сервера с четырёхядерными процессорами можно отдавать в гостевую виртуальную машину  hyper-v не более, чем 50% CPU физического хоста.  А в случае с шестиядерными процессорами получим max 33.3%? Во что тут упираемся, и будет ли это пофикшено в будущем?

  • Anonymous
    January 01, 2003
    Андрей, Здравствуй! Прочитал, подумал, проверил:) Хост: 2*Xeon 5620 Гостевая: ipicture.ru/.../eSbu8mmh5Z.jpg P.S. Кстати Ты готовишься к Платформе 2011? ;)

  • Anonymous
    August 05, 2010
    Гуд.

  • Anonymous
    August 19, 2010
    The comment has been removed

  • Anonymous
    August 19, 2010
    Может я чего то пропустил, но первые скрины (физического хоста) процессор xeon 5350, а на вторых (из виртуальной машины Win7) Quad Q6700, хотя написано, что должны быть одинаковы...

  • Anonymous
    November 26, 2010
    >Получается, что внутри старых версий RHEV виртуальная машины получала по умолчанию >процессор Pentium II. Нет, детектор процессора внутри ВМ видел пентиум 2, но работал ВМ совсем не как под пентиум 2. >Это не позволяло виртуальным машинам задействовать инструкции новых поколений >процессоров и вело к неэффективной работе. опять неверно. на этих ВМ, якобы получивших пентиум 2, прекрасно работали и работают такие программы как exchange 2010, SAP b1, mssql2008, и в VDI - автокад, фотошоп и т.д. >В случае использования более новой версии RHEV появляется возможность выбрать более >современную модель процессоров. в более новой версии добавилась поддержка более новых процессоров, появившихся на рынке после выхода первого релиза. плюс теперь ВМ показывают правильный процессор в сторонних программах-анализаторах.