Виртуализация на практике: предпосылки к использованию и особенности применения

1 июнь, 2006 - 15:14Сергей Грицачук

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

Построение виртуальных машин – дело не новое, как уже неоднократно подчеркивалось в массовой литературе, многочисленных презентациях и СМИ. Фактически, когда речь заходит о виртуализации от Intel, прежде всего имеются в виду не столько прогрессивные технологии в области вычислительных машин, сколько уже существующие идеи, применяемые в персональных системах. Впрочем, стоит уточнить – не только персональные: Intel четко разграничивает свои инновации, снабжая аббревиатуру VT (Virtualization Technology) дополнительным суффиксом. Так, говоря о VT-I, подразумевают использование виртуализации на базе Itanium, а о VT-x – исключительно платформы x86.

Впрочем, такого рода подход не является чем-то совершенно особенным, поскольку подобные нововведения в область персональных компьютеров со стороны «больших» машин наблюдаются уже давно: фактически речь идет о наследовании технологий. Достаточно вспомнить, как однопользовательские ПК превратились в устройства, способные обслуживать нескольких клиентов. Или же перенос UNIX-like-систем, появление многопроцессорности и др. Это и неудивительно, поскольку путь развития и совершенствования персональных ЭВМ во многом повторяет путь, ранее пройденный конструкторами электронных вычислителей с момента их возникновения.

Немного истории

Итак, в самом начале от персонального компьютера требовалось исключительно выполнение необходимого пользователю ПО, причем достаточным условием считалась вообще возможность работать – ни о каком комфорте или быстродействии речь вообще не шла. Через некоторое время стало очевидно, что они все-таки важны, и программисты при написании ПО в тот период ставили во главу угла оптимальность кода, добиваясь от своего детища максимальной компактности (сказывались малые объемы памяти и емкость носителей) в сочетании с приемлемой скоростью работы приложения.

Дальнейшее совершенствование программных продуктов основывалось исключительно на оптимизации кода под вновь создаваемые процессоры и продолжалось до тех пор, пока на рынок не вышли высокопроизводительные 32-разрядные CPU, память и накопители достаточно большого объема. Вместе с ними стали появляться и многозадачные операционные системы, позволяющие благодаря наличию защищенного режима памяти выполнять несколько задач одновременно. Примерно тогда же началось повсеместное внедрение графических оболочек и надстроек, предлагающих пользователю «дружественный, удобный и интуитивно понятный интерфейс», что не могло не сказаться на оперативности выполняемых работ. Причем стала заметной нехватка вычислительных ресурсов, и это потребовало от разработчиков «железа» дополнительных усилий по наращиванию быстродействия.

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

В конце концов эта «гонка вооружений» привела к прекращению наращивания частот процессоров (что было обусловлено технологическими возможностями) и внедрению многоядерности (мультипроцессорности). Современные системы, построенные на таких CPU и ориентированные на персональное применение, оказались весьма производительными, более того – избыточный запас вычислительной мощности породил новую проблему – простоя и неэффективного использования ресурсов.

Предпосылки

Действительно, для большинства решаемых рядовым потребителем задач нехарактерна загрузка системы «под завязку», обычно при нормальной однопользовательской работе ресурсы современных платформ задействованы в лучшем случае всего лишь на 10–15%, что подтверждалось многочисленными исследованиями. Такое положение вещей не могло считаться приемлемым, причем особенно остро это сказывалось в производственно-корпоративном секторе, где затраты на обслуживание нескольких фактически находящихся в состоянии недозагрузки компьютеров чрезмерно повысились, поэтому следующим шагом в развитии персональных платформ стало внедрение виртуализации.

Виртуализация на практике предпосылки к использованию и особенности применения
Виртуализация в действии: во время интернет-серфинга и прослушивания интернет-радио на второй ВМ продолжается офисная работа в удаленном режиме

Несмотря на то что разнообразные аспекты использования VT в рамках предприятия или цифрового офиса регулярно раскрываются во всех источниках массовой информации, конечному пользователю довольно непросто объяснить, в чем именно может заключаться выгода от применения новой технологии на рабочей станции. Разумеется, проще всего объяснить понятие виртуализации для серверных решений (разработка проектов под несколько операционных систем, отладка Web-ресурсов, виртуальные серверы на площадках у провайдеров интернет-услуг), где они позволяют достичь значительной экономии средств и упростить обслуживание систем.

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

Методика тестирования

Для осуществления экспериментов были выбраны две платформы – на одной из них, построенной на основе чипсета Intel 875P, тестировалось исключительно программное решение виртуализации, вторая же, на чипсете Intel 975, обладала функциями аппаратной поддержки VT на уровне процессора и чипсета. Для обоих стендов использовались ОС Windows XP Professional SP2 и Windows Media Center Edition, ПО VMware версии 5.5.1 и тестовый пакет SYSmark2004, применявшийся для моделирования и оценки производительности в режиме «офисная работа».

Для создания ситуации, близкой к реальной, были разработаны две модели функционирования, базирующиеся на трех виртуальных машинах: на одной (WinXP SP2) имитировалась офисная работа, на второй (Win MCE) – с медиаконтентом (прослушивание музыки, демонстрация слайд-шоу), на третьей осуществлялся интернет-серфинг.

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

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

Кроме того, для внесения реализма в процессе тестирования проводились обновления ПО и антивирусных баз из Сети, а в режиме серфинга – прослушивание интернет-радиостанций.

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

Особо любознательные читатели могут отметить тот факт, что используемая в тестах виртуальная машина Vmware Workstation не обладает полной (по заявлению производителей этого ПО) поддержкой аппаратных функций виртуализации, но мы решили проверить, будут ли наблюдаться ощутимые отличия в производительности ВМ на платформе с аппаратной поддержкой технологии VT.

Результаты и выводы

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

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

Результаты быстродействия для офисной ВМ приведены в диаграммах. Весьма интересен тот факт, что применение антивирусного ПО (в случае заражения виртуальной машины, ориентированной под задачи интернет-серфинга) практически не отразилось на функционировании остальных машин, причем даже в самом нагруженном режиме ресурсы реального процессора никогда не использовались на 100% (в основном – 74–92%), чего нельзя сказать о программной эмуляции – загрузка CPU колебалась между 89 и 100%.

В заключении хотелось бы отметить один немаловажный момент, характерный для домашнего применения, – использование в качестве игровой платформы. Мы провели небольшой тест, рассчитанный на игровое применение ПК с виртуальной машиной, причем на последней выполнялась только одна задача – имитация офисной работы, а игровое 3D-приложение было запущено на хост-машине. В такой ситуации компьютер с программной реализацией ВМ оказался почти неработоспособным – ни играть, ни работать было практически невозможно, тогда как ПК с аппаратной поддержкой виртуализации справился с задачей, однако загрузка процессора составила 100%, и при работе в офисных приложениях наблюдался некоторый дискомфорт.

Известно, что на сегодняшний день поддержка 3D-ускорителей не реализована в полной мере ни одной виртуальной машиной, хотя такие исследования уже проводятся и некоторые разработчики даже демонстрировали первые решения в этой области, правда, достаточно сырые. Скорее всего серьезные улучшения здесь наступят с появлением новой версии VT – VT Directed I/O (VT-d), поддерживающей аппаратную реализацию разделения устройств ввода/вывода средствами самого чипсета.

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