Итак Windows 8 представлена официально и начинается ее активное распространение. Соответственно, по крайней мере, перед некоторыми из нас вскоре встанет вопрос: стоит ли обновлять имеющуюся ОС?
Действительно, предустановленной на новый ПК (даже самый обычный, а не современный гибрид-трансформер) Windows 8 наверняка не будет вызывать большого отторжения, т. к. ее «настольная» часть мало чем отличается от Windows 7. Отсутствие кнопки Пуск можно легко компенсировать одной из сторонних утилит, многие из которых умеют практически полностью скрывать Metro, так что сталкиваться с новым интерфейсом (который я по-прежнему считаю неуместным на настольном компьютере или обычном ноутбуке) придется совсем редко. А некоторые новые функции Windows 8 несомненно полезны: безопасная загрузка, усовершенствованные аварийные инструменты, новый менеджер задач, дифференцированная работа с беспроводными сетями и т. д.
Но с точки зрения нынешнего пользователя Windows 7 ситуация далеко не столь однозначна. Да, Windows 8 более современна, на доли или единицы процентов быстрее, в ней присутствуют некоторые дополнительные полезности, но ведь переход на нее потребует не только денег, но и времени (которые во многих случаях суть одно и то же) — на изучение, освоение новых приемов, обустройство рабочей среды, решение проблем совместимости привычного ПО. В форумах нередко можно встретить мнение вроде того, что, мол, ничего страшного, быстро привыкаешь — вопрос: ради чего?
На самом деле в Windows 8 есть некоторые возможности, способные потрафить даже самому консервативному пользователю ПК. И это, конечно, совсем не Metro, который (вместе с API WinRT) безусловно является самым принципиальным изменением в Windows 8, но актуальным лишь для сравнительно небольших устройств с сенсорным экраном, в первую очередь, — планшетов. Есть более практичные новинки, одна из которых — встроенная система виртуализации на основе гипервизора Hyper-V.
Клиентские гипервизоры
Технология Hyper-V пришла в Windows 8 из Windows Server. Формально она призвана заменить морально устаревший Virtual PC и XP Mode, но на самом деле имеет несколько иное позиционирование и больше отличий, чем сходств. Hyper-V называют просто гипервизором, хотя этот термин (синоним — монитор виртуальных машин, VMM) распространяется на все системы виртуализации. Поэтому во избежание путаницы их делят на две категории — Type 1 и Type 2. Гипервизоры первого типа также называют bare-metal, т. е. работающими непосредственно на «железе», без родительской ОС общего назначения. Сюда относятся Microsoft Hyper-V, VMware ESX/ESXi, Citrix XenServer, Xen, KVM. Второй тип, соответственно, функционирует как приложение в рамках родительской ОС и использует различные ее механизмы. Примеры — VMware Workstation/Player, Oracle VirtualBox.
Гипервизоры первого типа технологически более сложны, но и более эффективны в том плане, что обеспечивают минимум накладных расходов, а также максимальную изоляцию виртуальных машин (ВМ). Потому они и завоевали признание в серверной среде. Однако это не значит, что им не найдется применений на клиентском ПК. К примеру, в качестве типичного сценария обычно рассматривают использование двух ВМ — персональной и рабочей. В первой пользователь делает что ему заблагорассудится, во второй применяются жесткие политики безопасности и другие ограничения, т. к. она обеспечивает доступ к данным компании. Изоляция ВМ практически исключает перекрестное заражение вирусами, троянцами и пр. В случае же гипервизора второго типа, к примеру, хитроумный перехватчик клавиатурного набора, проникший в родительскую ОС, потенциально может стащить информацию и из ВМ.
Поэтому класс «клиентских гипервизоров» сформировался еще несколько лет назад, по мере совершенствования технологий виртуализации, прежде всего аппаратной поддержки. Его типичными представителями были NxTop компании Virtual Computer и XenClient фирмы Citrix. Сегодня обе технологии принадлежат Citrix и скомбинированы в различных решениях, все больше нацеливаемых на корпоративный рынок. Почему нужно говорить именно об отдельном классе ПО? Потому что серверные решения мало приспособлены для функционирования на ПК и применения обычными пользователями. Ведь для клиентских решений требуется не только поддержка массового оборудования, но и специфические интерфейсные решения для работы в рамках одного ПК, тогда как серверная модель предполагает почти исключительно удаленный доступ.
Microsoft вполне недвусмысленно называет встроенный в Windows 8 гипервизор Client Hyper-V, однако его отличия от серверного Hyper-V гораздо меньше, чем, скажем, у XenClient от XenServer. Дело в том, что тогда как Citrix пришлось с нуля реализовать интерфейсную часть, а также виртуализацию видеоадаптера, чтобы обеспечить поддержку 3D в одной из ВМ, задача Microsoft была гораздо проще в силу изначально своеобразной архитектуры Hyper-V:
Как видно, гипервизор Microsoft все-таки предполагает родительскую, или корневую ОС (иногда также говорят «раздел»), в которую он, фактически встроен. Эта ОС, соответственно, находится на особом положении, в частности, хотя она отчасти и виртуализована (в чем можно убедиться по некоторым характерным признакам), но все же имеет доступ к видеоакселератору и многому другому оборудованию. Для сравнения, архитектура XenClient выглядит следующим образом:
В действительности здесь также присутствует привилегированная ВМ, обозначенная как Control Domain, но она специализированная, предназначенная только для организации доступа к остальным пользовательским ВМ. В случае же Client Hyper-V корневая ОС предполагается основной рабочей, т. к. только в ней будет полноценно работать графический акселератор и обеспечиваться максимальная производительность.
Заметным отличием клиентского Hyper-V от серверного является его способность работы с беспроводными адаптерами. В серверной среде эта возможность не востребована, потому и не поддерживается, но для клиентской — норма жизни. Сложность же возникает оттого, что сетевая инфраструктура Hyper-V основывается на виртуальном коммутаторе, который дифференцирует пакеты по MAC-адресам виртуальных адаптеров. Эта схема прекрасно работает при организации внутренней сети, а также при обеспечении доступа вовне через проводной физический адаптер:
Но по Wi-Fi-каналу передавать пакеты с различными MAC-адресами нельзя, поэтому стандартную схему пришлось несколько скорректировать. Конкретнее, в нее добавили еще одного посредника в виде сетевого моста:
Мост просто сопоставляет IP-адрес виртуальной сетевой карты с ее MAC-адресом, что и обеспечивает корректную маршрутизацию пакетов, которые поступают из внешней сети. Естественно, создается и настраивается мост автоматически, как только пользователь выберет соответствующие настройки.
Client Hyper-V
Hyper-V входит в 64-разрядные Windows 8 Pro и Enterprise и является опциональным компонентом. Соответственно, вначале его нужно установить, после чего он сразу же автоматически активируется (после обязательной перезагрузки):
Для его работы, однако, необходимо выполнение нескольких условий. Формально говорится о 4 ГБ RAM, хотя, вполне возможно, он запустится и на меньшем объеме — память нужна не столько самому гипервизору, сколько виртуальным машинам.
Действительно принципиальным требованием является процессор с поддержкой виртуализации и технологии SLAT (Second Level Address Translation). Для серверного гипервизора SLAT не является обязательным условием и нужна только для работы RemoteFX. Последняя технология в Client Hyper-V не поддерживается, но, видимо, SLAT используется для оптимизации общей производительности в отсутствие эффективной виртуализации 3D-акселератора в ВМ.
Данному требованию удовлетворяют все сравнительно новые чипы Intel и AMD, к примеру практически все i3/i5/i7 — в их случае искомое называется VT-x с EPT (NPT у AMD). Проверить присутствие соответствующих технологий можно в спецификациях процессоров на сайте производителя и именно с этого стоит начать, подбирая конфигурацию нового компьютера. Однако надо иметь в виду, что они также должны быть включены в BIOS, при этом VT-x с EPT, к примеру, нередко скрываются под общим названием «технология виртуализации». Поэтому более надежную проверку соблюдения всех условий уже готовой системы можно выполнить с помощью специальных утилит.
Забавно, что официальная утилита самой Microsoft до сих пор несовместима с Windows 8:
Но, к счастью, есть и альтернативные. Вот вариант Intel и вариант AMD:
В данном случае VT-x with EPT вроде бы не поддерживается (вопреки информации из спецификации процессора), но это лишь следствие того, что Hyper-V на данном компьютере уже активирован. Это косвенно также свидетельствует в пользу того, что корневая ОС все-таки виртуализуется. Кстати, то что технология виртуализации уже задействована гипервизором, делает невозможным параллельное использование другой системы виртуализации — и VMware Workstation/Player, и Oracle VirtualBox сообщат о невозможности установки. С другой стороны, VMware Workstation 9 допускает использование Hyper-V в ВМ, хотя такой сценарий официально и не поддерживается.
Пожалуй, наиболее универсальный способ выяснения присутствия необходимых технологий виртуализации — утилита Coreinfo Марка Руссиновича. Ее нужно запустить с административными полномочиями и с ключом -v.
В отсутствие (по любой причине) поддержки SLAT пункт Платформа Hyper-V в списке опциональных компонентов будет просто недоступен, соответственно, установить Hyper-V не удастся.
В арсенале Intel имеется еще одна технология виртуализации — VT-d, но Hyper-V (и серверный, и клиентский) ее пока не задействует. В отличие, к примеру, от XenClient, которому она необходима как раз для поддержки 3D-графики в одной из ВМ. Но, как говорилось выше, Microsoft того же результата добивается иным способом.
Иcпользование
После того, как Hyper-V установлен, работа в нем осуществляется из Диспетчера Hyper-V (Hyper-V Manager):
Сам сервер не требует особой настройки, разве что стоит продумать где будут храниться файлы виртуальных машин и дисков и, при необходимости, скорректировать местоположение. Делается это в Параметрах Hyper-V:
Также я бы сразу рекомендовал создать необходимые виртуальные коммутаторы. Можно организовать три типа сети:
- частная объединит только виртуальные машины;
- внутренняя добавит к ним и физический хост;
- внешняя обеспечивает ВМ доступ за пределы хоста и для этого должна подключаться к физическому сетевому адаптеру.
Какая-то настройка требуется только в последнем случае — нужно выбрать правильный адаптер (если их несколько), который обеспечит доступ в локальную сеть или Интернет.
После этого можно создавать виртуальные машины. Данным процессом управляет специальный мастер, который и проведет пользователя через основные этапы.
В процессе предоставляется минимум настроек, кроме того нужно обратить внимание, что, в отличие от других систем виртуализации, не указывается тип будущей гостевой ОС. Т. е. на все случаи жизни предлагается примерно одно и то же виртуальное оборудование. Его, впрочем, можно несколько скорректировать в Параметрах ВМ. Чаще всего может потребоваться добавить «устаревший» сетевой адаптер (для совместимости с некоторыми гостевыми ОС), скорректировать параметры динамической памяти (подробнее об этом ниже), добавить виртуальные процессоры, подключить дополнительные виртуальные жесткие диски или изменить их тип (по умолчанию создаются динамические, тогда как фиксированные обеспечивают чуть лучшую производительность, а разностные позволяют сохранить неизменным исходный виртуальный диск).
Настроив все необходимые параметры можно приступать к установке гостевой ОС. Официально в качестве последних Hyper-V поддерживает все клиентские и серверные версии Windows, начиная, соответственно, с XP и 2003, а также CentOS 6.0—6.2, RHEL 6.0—6.2 и SLES 11 SP2. Подразумевается, что все эти ОС корректно опознают виртуальное оборудование и, кроме того, для них доступны интеграционные компоненты Hyper-V, которые обеспечивают ряд дополнительных драйверов и поддержку специфических операций. Это, впрочем, не означает, что нельзя установить другие ОС. Некоторое время назад Microsoft передала код, необходимый для взаимодействия с Hyper-V, Linux-сообществу и стала одним из официальных разработчиков свободной ОС. Таким образом, сегодня некоторые дистрибутивы уже готовы к работе в среде Hyper-V без дополнительных усилий, в частности, это относится к последним версиям Ubuntu (12.04 и 12.10 точно), хотя в моем случае параметры IP пришлось устанавливать вручную, получить их по DHCP почему-то не удавалось. Но затем все пошло абсолютно гладко:
Непосредственно работать с ВМ можно двумя способами:
- с помощью стандартной консоли Virtual Machine Connection, которая, ввиду ограниченности (в ней не будет работать звук, через буфер обмена копируются только текст и пр.), рекомендуется исключительно для инсталляции и настройки гостевой ОС;
- через Remote Desktop Connection, в котором можно воспользоваться всеми преимуществами протокола RDP и различными мелкими удобствами.
В последнем случае, естественно, нужно предварительно разрешить удаленный доступ в гостевой ОС. К сожалению, как уже говорилось, RemoteFX в Client Hyper-V не поддерживается, поэтому ускорение графики возможно только в корневой ОС. В гостевых этот недостаток отчасти компенсируется именно возможностями RDP, который обеспечивает поддержку некоторых графических эффектов, а также передачу звука, перенаправление USB-устройств, обмен файлами между хостом и ВМ через буфер обмена и пр.
В полной мере эти возможности раскрываются, если в качестве гостевой ОС также выступает Windows 8. В этом случае будет поддерживаться сенсорный интерфейс с мультитачем (при наличии соответствующего оборудования), появится меню со специфическими командами.
Дополнительные возможности
Перекочевав из серверной среды, Client Hyper-V потерял некоторые «корпоративные» возможности. Кроме уже упоминавшейся технологии RemoteFX, исчезли кластеры, живая миграция, реплики и пр. Из нетривиальных функций сохранилась возможность перемещения виртуальной машины в другое место (к примеру, на новый жесткий диск) без необходимости ее выключения:
Сохранилась также динамическая память. Данная возможность подразумевает корректировку объема оперативной памяти ВМ в зависимости от ее текущих потребностей и настроек. Как всегда для ее функционирования требуется соблюдения ряда условий. Во-первых, гостевая ОС должна поддерживать горячее добавление памяти. Это справедливо для большинства современных ОС, как серверных, так и клиентских, в частности — для всех Windows, начиная с Vista SP1. Во-вторых, должны быть установлены интеграционные компоненты. Среди последних важную роль играет драйвер динамической памяти:
Он забирает на себя свободный объем RAM и возвращает ее гипервизору для последующего перераспределения.
Динамическую память необходимо особо включать для каждой ВМ, при этом можно настроить подробные параметры:
В частности, под «весом памяти» нужно понимать важность, ценность конкретной ВМ. Чем выше этот параметр, тем меньше шансов, что память будет забираться, и тем скорее она при возможности будет добавляться. Проконтролировать действие механизма динамической памяти можно различными способами, к примеру, с помощью специальной вкладки в диспетчере Hyper-V:
Также стоит обратить внимание на возможности сохранения состояния ВМ, создания снимков ВМ для простого отката к предыдущим состояниям. Функция импорта позволяет легко копировать и переносить файлы ВМ, а затем быстро подключать ее к Hyper-V.
Резюме
Несмотря на ряд ограничений, клиентский Hyper-V имеет те же возможности масштабирования, что и серверный. Кроме того, виртуальные машины полностью совместимы и без проблем переносятся. Это, в частности, позволяет использовать для тестирования и отладки ВМ персональный компьютер, чтобы не «засорять» производственный виртуализованный сервер.
Сохранение архитектуры и общей организации Hyper-V в Windows 8 также свидетельствуют о том, что клиентская виртуализация Microsoft больше ориентирована на ИТ-профессионалов и разработчиков, чем на обычных пользователей. В отличие от XP Mode из Windows 7, где публикация приложений позволяла практически полностью скрыть ВМ, в Windows 8 пользователю придется работать непосредственно с ВМ и разбираться в ее возможностях и ограничениях. По большому счету, нынешний Client Hyper-V не вполне соответствует идее клиентских гипервизоров. Все-таки это серверная технология, просто слегка адаптированная для ПК.
С другой стороны, серверное происхождение Client Hyper-V является и его сильной стороной. Высокая масштабируемость, поддержка (уникальная для клиентских решений) динамической памяти и некоторых других технологий свидетельствует об отлаженности и большом «запасе прочности».
VMware Workstation и Oracle VirtualBox, безусловно, более «клиентские» чем Hyper-V. К их преимуществам можно отнести 3D-графику в ВМ (хотя у Oracle она не слишком хороша) и более широкую и удобную поддержку USB-периферии. Кроме того, у обоих продуктов более скромные системные запросы, в частности, они могут работать и в 32-разрядных ОС, хотя с точки зрения эффективности управления памятью 64-разрядные предпочтительнее. Microsoft большую часть пробелов может заполнить с помощью технологии RemoteFX, но пока ее намерения неясны.
Тем не менее, даже со всеми оговорками Hyper-V в составе Windows 8 для многих окажется приятным «подарком» и наверняка найдет немало применений.