Udostępnij za pośrednictwem


Использование Hyper-V в "Windows 8"

В этой статье мы поговорим о поддержке виртуализации в клиентской версии ОС Windows. Первоначально эта технология была предназначена для Windows Server и оказалась очень удачной. Мы хотели включить виртуализацию в основной набор сценариев для специалистов, использующих Windows. Два наиболее распространенных сценария, на которых мы сосредоточили внимание, — это сценарий для разработчиков программного обеспечения, работающих на нескольких платформах, клиентах и серверах, и сценарий для ИТ-специалистов, которым требуются оптимальные возможности управления виртуализированными клиентами и серверами. Эту статью написал Мэтью Джон, руководитель программы в нашей группе Hyper-V. Учтите, что, когда речь идет о любых функциях, мы в данном случае обсуждаем разработку, а не формирование конечного пакета, поскольку такой отбор выполняется на значительно более поздней стадии проекта. – Стивен 
P.S. Мы не планировали публиковать так много статей подряд, и теперь вернемся к более рациональному темпу. Сожалеем, если мы непреднамеренно установили слишком высокий уровень ожиданий. Мы сейчас постоянно заняты работой над сайтом BUILD!

Многим из вас (неважно, кто вы — разработчики программного обеспечения, ИТ-администраторы или просто заинтересованные пользователи) требуется запускать несколько операционных систем и, как правило, на множестве разных компьютеров. Не у всех из нас есть доступ к местам, в которых размещены все эти компьютеры, и поэтому виртуализация — это именно то решение, которое поможет сэкономить место и время.

Создавая Windows 8, мы работали над тем, чтобы входившая в два последних выпуска Windows Server технология виртуализации компьютеров Hyper-V могла функционировать и в клиентских версиях ОС. В двух словах, Hyper-V позволяет одновременно запускать несколько 32-разрядных или 64-разрядных операционных систем x86 на одном компьютере. Вместо того чтобы работать непосредственно на компьютере, операционные системы запускаются внутри виртуальной машины (VM).

Технология Hyper-V позволяет разработчикам без труда поддерживать несколько тестовых сред и предоставляет простой механизм для быстрого переключения между этими средами без дополнительных затрат на оборудование. Например, мы выпускаем предварительно настроенные виртуальные машины, содержащие старые версии Internet Explorer для поддержки веб-разработчиков. ИТ-администратор получает дополнительное преимущество контроля четности виртуальных машин и общие возможности управления через Hyper-V в Windows Server и клиентской версии Windows. Мы также знаем, что многие из вас используют виртуализацию, чтобы попробовать что-то новое без необходимости внесения рискованных изменений на активно используемом ПК.

Введение в Hyper-V

Для Hyper-V требуется 64-разрядная система с преобразованием адресов второго уровня (SLAT). Функция SLAT присутствует в текущем поколении 64-разрядных процессоров Intel и AMD. Также потребуется 64-разрядная версия Windows 8 и не менее 4 ГБ ОЗУ. Hyper-V поддерживает создание как 32-разрядных, так и 64-разрядных операционных систем в виртуальных машинах.

Динамическая память Hyper-V позволяет выполнять и отменять распределение памяти, необходимой для виртуальной машины (пользователь задает минимум и максимум), в динамическом режиме и делить неиспользуемую память между виртуальными машинами. На компьютере с 4 ГБ ОЗУ можно запустить 3 или 4 виртуальных машины, но для 5 и более виртуальных машин потребуется больший объем ОЗУ. С другой стороны, можно создавать большие виртуальные машины с 32 процессорами и 512 ГБ ОЗУ.

В Windows предусмотрены два механизма взаимодействия пользователя с виртуальными машинами: консоль виртуальной машины и подключение к удаленному рабочему столу.

Консоль виртуальной машины (которую также называют VMConnect) — это консольное представление виртуальной машины. Она обеспечивает отдельное представление монитора виртуальной машины с разрешением до 1600 x 1200 в 32-разрядной цветопередаче. Эта консоль предоставляет пользователю возможность наблюдать за процессом загрузки виртуальной машины.

Для более эффективного взаимодействия можно подключиться к виртуальной машине, используя подключение к удаленному рабочему столу (RDC). В этом случае виртуальная машина использует возможности, предоставляемые физическим ПК пользователя. Например, если используются несколько мониторов, виртуальная машина может отображать графическое изображение на всех этих мониторах. Подобным же образом, если на ПК имеется многоточечный сенсорный интерфейс, виртуальная машина может использовать этот интерфейс для обеспечения сенсорного взаимодействия. Виртуальная машина также предлагает полный набор мультимедийных возможностей, используя для этого динамики и микрофон физического компьютера. Кроме того, корневая ОС (то есть основная ОС Windows, которая управляет виртуальными машинами) может использовать свои папки и буфер обмена совместно с виртуальными машинами. И наконец, с помощью подключения к удаленному рабочему столу можно присоединить USB-устройство непосредственно к виртуальной машине.

В целях хранения данных можно добавить несколько жестких дисков к контроллерам IDE или SCSI, доступным в виртуальной машине. При этом можно использовать виртуальные жесткие диски (VHD- или VHDX-файлы) или физические диски, передаваемые непосредственно в виртуальную машину. Виртуальные жесткие диски могут также находиться на удаленном файловом сервере, что облегчает обслуживание и совместное использование общего набора предварительно настроенных жестких дисков участниками рабочей группы.

Реализованная в Hyper-V возможность динамического перемещения хранилища позволяет виртуальным машинам сохранять значительную степень независимости от основного хранилища. С помощью этой функции можно перемещать хранилище виртуальной машины с одного локального диска на другой, на USB-устройство хранения или удаленный файловый ресурс, не останавливая виртуальную машину. Я считаю, что эта функция очень полезна при быстрых развертываниях: когда мне срочно нужна виртуальная машина, я запускаю ее из библиотеки виртуальных машин, которая находится на файловом ресурсе, а затем переношу хранилище этой виртуальной машины на локальный диск моего компьютера.

Другая замечательная функция Hyper-V — возможность делать моментальные снимки виртуальной машины, когда она запущена. Моментальные снимки сохраняют все данные о виртуальной машине, что позволяет вернуться к предыдущему моменту времени из ее «жизни». Это хорошее средство для решения сложных проблем. В то же время виртуальные машины с Hyper-V предлагают все преимущества управления, доступные в Windows. Центр обновления Windows предоставляет исправления для компонентов Hyper-V, поэтому вам не нужно настраивать дополнительные процессы обслуживания. Кроме того, при установке Hyper-V система Windows сохраняет все присущие ей возможности.

Однако использование виртуализации имеет свои ограничения. Функции или приложения, которые зависят от особого оборудования, не будут работать в виртуальной машине должным образом. Например, Windows BitLocker и Measured Boot, для работы которых необходим доверенный платформенный модуль (TPM), могут неправильно функционировать в виртуальной машине. Кроме того, игры и приложения, для которых требуется обработка с помощью графических процессоров (без предоставления резерва программного обеспечения), также могут работать неправильно. Помимо сказанного, возможны проблемы в работе приложений, использующих таймеры с интервалом менее 10 мс, то есть чувствительных к задержкам высокоточных приложений, например приложений для микширования живой музыки, когда эти приложения выполняются в виртуальной машине. Корневая ОС также работает поверх уровня виртуализации Hyper-V, но отличается тем, что имеет прямой доступ ко всему оборудованию. Вот почему приложения с особыми требованиями к оборудованию продолжают без проблем работать в корневой ОС, но при выполнении в той же корневой ОС чувствительных к задержкам высокоточных приложений по-прежнему могут возникать неполадки.

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

Далее приводится краткий обзор работы Hyper-V в Windows 8.

Ваш браузер не поддерживает видео HTML5.

Загрузите это видео, чтобы просмотреть его в своем мультимедиа-проигрывателе:
MP4, высокое качество | MP4, низкое качество

Поддержка возможностей связи в виртуальной машине через беспроводные сетевые карты

Как вы уже видели в демонстрации, для создания коммутатора внешней сети достаточно просто выбрать физический сетевой адаптер (сетевую карту) в раскрывающемся списке и нажать «ОК». Этот метод отлично работал с Windows Server Hyper-V, но, чтобы добиться подобных результатов в Windows 8, нам пришлось решить совершенно новую задачу — научить его работать с беспроводными сетевыми картами.

Проблема

Виртуальный коммутатор в Hyper-V является «коммутатором второго уровня». Это означает, что он коммутирует (т. е. определяет маршрут для конкретных пакетов Ethernet) при помощи MAC-адреса, уникальным образом определяющего каждую (физическую и виртуальную) карту сетевого адаптера. MAC-адреса исходного и конечного компьютеров передаются в каждом пакете Ethernet, что позволяет коммутатору второго уровня определить, куда следует отправлять входящий пакет. Внешний виртуальный коммутатор подключен к внешней сети через физическую сетевую карту. Пакеты Ethernet от виртуальной машины, предназначенные для передачи во внешнюю сеть, отправляются через эту физическую сетевую карту. Это означает, что данная физическая сетевая карта должна иметь возможность передавать трафик от всех виртуальных машин, подключенных к этому виртуальному коммутатору. А это в свою очередь означает, что пакеты, передаваемые через эту сетевую карту, будут содержать несколько MAC-адресов (по одному для виртуальной сетевой карты каждой виртуальной машины). Эта возможность поддерживается проводными физическими сетевыми картами (посредством перевода сетевой карты в неизбирательный режим), но не поддерживается беспроводными сетевыми картами, поскольку канал беспроводной связи, устанавливаемый сетевой картой Wi-Fi, и его точка доступа разрешают передачу пакетов Ethernet только с MAC-адресом сетевой карты Wi-Fi. Другими словами, при текущей архитектуре виртуального коммутатора Hyper-V не может использовать сетевые карты Wi-Fi для внешнего коммутатора.

Схема, показывающая корневой раздел и виртуальную машину, размещенную на компьютере 1; и корневой раздел, и виртуальная машина подключены к компьютеру 2 через (в указанном порядке): виртуальную сетевую карту в корневом разделе (MAC-адрес: A), подключенную к виртуальному внешнему коммутатору, который в свою очередь подключен к физической проводной сетевой карте (MAC-адрес: Ph1), а эта карта подключена к физической сетевой карте на компьютере 2 (MAC-адрес: Ph2); через виртуальную сетевую карту на виртуальной машине (MAC-адрес: B), подключенную к виртуальному внешнему коммутатору, который в свою очередь подключен к физической проводной сетевой карте (MAC-адрес: Ph1), а эта карта подключена к физической сетевой карте на компьютере 2 (MAC-адрес: Ph2).Рисунок 1. Установка сетевого подключения между виртуальной машиной и внешним компьютером посредством проводного соединения

Решение

Чтобы обойти данное ограничение, мы использовали решение Microsoft Bridging (мост), которое заключается в реализации прокси-сервера ARP (для IPv4) и прокси-сервера поиска соседей (для IPv6) для замены MAC-адреса виртуальной сетевой карты MAC-адресом адаптера Wi-Fi для исходящих пакетов. Мост поддерживает внутреннее сопоставление между IP-адресом виртуальной сетевой карты и ее MAC-адресом, обеспечивающее отправку пакетов, которые поступают из внешней сети, на соответствующие виртуальные сетевые карты.

Hyper-V использует мост при создании виртуального коммутатора, поэтому при создании виртуального коммутатора с помощью адаптера Wi-Fi Hyper-V выполняет следующие действия:

  1. Создает мост с одним адаптером, подключенный к адаптеру Wi-Fi
  2. Создает внешний виртуальный коммутатор
  3. Отдает внешнему виртуальному коммутатору команду использовать мост вместо прямого подключения через адаптер Wi-Fi

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

Схема, показывающая корневой раздел и виртуальную машину, размещенную на компьютере 1; и корневой раздел, и виртуальная машина подключены к компьютеру 2 через (в указанном порядке): виртуальную сетевую карту в корневом разделе (MAC-адрес: A), подключенную к виртуальному внешнему коммутатору, который в свою очередь подключен к мосту Microsoft Bridge (трансляция MAC-адресов), подключенному к сетевой карте Wi-Fi (MAC-адрес: Ph1), а эта карта подключена к физической сетевой карте (MAC-адрес: Ph2) на компьютере 2. Также через виртуальную сетевую карту на виртуальной машине (MAC-адрес: B), подключенную к виртуальному внешнему коммутатору, который в свою очередь подключен к мосту Microsoft Bridge (трансляция MAC-адресов), подключенному к сетевой карте Wi-Fi (MAC-адрес: Ph1), а эта карта подключена к физической сетевой карте (MAC-адрес: Ph2) на компьютере 2.
Рисунок 2. Установка сетевого подключения между виртуальной машиной и внешним компьютером посредством соединения Wi-Fi

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

--Мэтью Джон

Comments

  • Anonymous
    September 15, 2011
    Странно что виртуальная машина на виндоус 7 отказалась принимать виндоус 8. Хотелось бы чтобы 8 версия понимала все предыдущие версии Ос а так же ОС сторонних разработчиков.
  • Anonymous
    September 15, 2011
    Странно что виртуальная машина на виндоус 7 отказалась принимать виндоус 8. Хотелось бы чтобы 8 версия понимала все предыдущие версии Ос а так же ОС сторонних разработчиков.
  • Anonymous
    September 15, 2011
    Странно что виртуальная машина на виндоус 7 отказалась принимать виндоус 8. Хотелось бы чтобы 8 версия понимала все предыдущие версии Ос а так же ОС сторонних разработчиков.
  • Anonymous
    September 16, 2011
    AleXandrik, зато хорошо iso 8-ки поняла windows 7 usb download tool, в связке с vhd дало мне возможность попробовать 8-ку без каких-либо рисков;).
  • Anonymous
    October 31, 2011
    Надеюсь, что улучшения коснуться и виртуальной машины, т.к. конкурентные программы во многих случаях работают лучше, есть над чем работать. Но сама технология Hyper-V очень перспективна и надеюсь на дальнейшее её развитие в лучшую сторону.
  • Anonymous
    February 29, 2012
    в Windows 8 Consumer Preview Hyper-V отказывается работать - после включения компонента происходит перезагрузка, затем 2 варианта событий:Windows загружается до рыбки и перезагружается моментальноЗагрузка Windows зависает на рыбке Итог одинаковый: возврат к предыдущему состоянию