Работа с сетью в Hyper-V

Поговорим о том, как Hyper-V работает с сетью. Что это означает для основной ОС, расположенной в parent partition, и для виртуальных машин, расположенных в child partitions?

Начнем с того, что Hyper-V работает с сетью совсем не так, как это было в Virtual Server 2005 или Virtual PC.

Для начала посмотрим, что мы имеем после установки Windows Server 2008 на системе с одним сетевым интерфейсом. В Network Connections мы увидим следующую картину:

И ваша ОС работает следующим образом:

Однако, как только вы установите роль Hyper-V и создадите виртуальную сеть (virtual network), ваша ОС начнет работать следующим образом:

Как вы видите, parent partition теперь использует виртуальный сетевой интерфейс для того, чтобы соединяться с физической сетью. Если вы теперь посмотрите в Network Connections — то увидите, что к физическому сетевому интерфейсу добавился виртуальный:

К изначальному физическому сетевому интерфейсу не привязано никаких служб, провайдеров или протоколов — кроме Microsoft Virtual Network Switch Protocol. А все остальные протоколы и службы теперь привязаны к виртуальному сетевому интерфейсу.

Стоит отметить несколько моментов:

  • Виртуальный сетевой интерфейс, который появился в Network Connections, получил точно такое же имя, как привязанный к нему virtual switch.
  • В Hyper-V вы можете создать внутреннюю (Internal) виртуальную сеть, которая добавит виртуальный сетевой интерфейс в parent partition, но не создаст привязки к какому-либо физическому сетевому интерфейсу.
  • В отличии от Virtual Server, Hyper-V жестко привязывает виртуальный сетевой интерфейс к соответствующему физическому интерфейсу при создании Virtual network switch. Это имеет свои плюсы и минусы. Преимущество такого подхода — в том, что те физические интерфейсы, которые не используются с Hyper-V, остаются не затронуты никоим образом. Так что снимаются любые вопросы производительности или совместимости. (Очевидно, что даже если ни одна виртуальная машина не использует некий виртуальный интерфейс, который привязан к соответствующему физическому интерфейсу, производительность канала между parent partition и физической сетью немного падает за счет появления дополнительного шага между используемыми виртуальным и физическим интерфейсами). Недостаток описанного подхода — в том, что при создании или удалении virtual network switch в Hyper-V связь на физическом интерфейсе временно пропадает, так как заново выполняется привязка всех протоколов и служб.

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

  • Для любой системы с Hyper-V рекомендуется иметь минимум два физических интерфейса! Использование лаптопов с одним интерфейсом допускается, но рекомендуется лишь для демонстрационных целей.
  • Всегда выделяйте один физический интерфейс для управления ОС. К такому management interface не привязываются виртуальные интерфейсы. Он используется лишь для удаленной работы с parent partition.
  • Под виртуальные машины также выделяйте как минимум один физический интерфейс. Не жадничайте, сеть может стать узким местом при одновременном использовании общего физического интерфейса несколькими виртуальными машинами.
  • Если ваши виртуальные машины используют внешнее хранилище по протоколу iSCSI — используйте и для этой цели выделенный интерфейс (или несколько).
  • Подключайте Management interface исключительно в локальную сеть. В идеале, соединение с Интернетом должно быть доступно только виртуальным машинам.

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