Компьютеры и современные гаджеты

Аннотация: Информационные технологии принесли в жизнь современного общества множество полезных и интересных вещей. Каждый день изобретательные и талантливые люди придумывают все новые и новые применения компьютерам как эффективным инструментам производства, развлечения и сотрудничества. Множество различных программных и аппаратных средств, технологий и сервисов позволяют нам ежедневно повышать удобство и скорость работы с информацией. Все сложнее и сложнее выделить из обрушивающегося на нас потока технологий действительно полезные и научиться применять их с максимальной пользой. В этой лекции пойдет речь о еще одной невероятно перспективной и по-настоящему эффективной технологии, стремительно врывающейся в мир компьютеров – технологии виртуализации, которая занимает ключевое место в концепции "облачных" вычислений.

Цель данной лекции – получить сведения о технологиях виртуализации, терминологии, разновидностях и основных достоинствах виртуализации. Ознакомиться с основными решениями ведущих ИТ-вендоров. Рассмотреть особенности платформы виртуализации Microsoft.

Технологии виртуализации

Согласно статистике средний уровень загрузки процессорных мощностей у серверов под управлением Windows не превышает 10%, у Unix-систем этот показатель лучше, но тем не менее в среднем не превышает 20%. Низкая эффективность использования серверов объясняется широко применяемым с начала 90-х годов подходом "одно приложение - один сервер ", т. е. каждый раз для развертывания нового приложения компания приобретает новый сервер . Очевидно, что на практике это означает быстрое увеличение серверного парка и как следствие - возрастание затрат на его администрирование , энергопотребление и охлаждение, а также потребность в дополнительных помещениях для установки всё новых серверов и приобретении лицензий на серверную ОС.

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


Рис. 2.1.

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

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

В компьютерных технологиях под термином "виртуализация" обычно понимается абстракция вычислительных ресурсов и предоставление пользователю системы, которая "инкапсулирует" (скрывает в себе) собственную реализацию . Проще говоря, пользователь работает с удобным для себя представлением объекта, и для него не имеет значения, как объект устроен в действительности.

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

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

В 1999 г. компания VMware представила технологию виртуализации систем на базе x86 в качестве эффективного средства, способного преобразовать системы на базе x86 в единую аппаратную инфраструктуру общего пользования и назначения, обеспечивающую полную изоляцию, мобильность и широкий выбор ОС для прикладных сред. Компания VMware была одной из первых, кто сделал серьезную ставку исключительно на виртуализацию. Как показало время, это оказалось абсолютно оправданным. Сегодня WMware предлагает комплексную виртуализационную платформу четвертого поколения VMware vSphere 4, которая включает средства как для отдельного ПК, так и для центра обработки данных. Ключевым компонентом этого программного комплекса является гипервизор VMware ESX Server . Позднее в "битву" за место в этом модном направлении развития информационных технологий включились такие компании как Parallels (ранее SWsoft), Oracle ( Sun Microsystems), Citrix Systems (XenSourse).

Корпорация Microsoft вышла на рынок средств виртуализации в 2003 г. с приобретением компании Connectiх, выпустив свой первый продукт Virtual PC для настольных ПК. С тех пор она последовательно наращивала спектр предложений в этой области и на сегодня почти завершила формирование виртуализационной платформы, в состав которой входят такие решения как Windows 2008 Server R2 c компонентом Hyper-V, Microsoft Application Virtualization (App-v), Microsoft Virtual Desktop Infrastructure ( VDI ), Remote Desktop Services, System Center Virtual Machine Manager .

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

Повышенный интерес к технологиям виртуализации в настоящее время неслучаен. Вычислительная мощь нынешних процессоров быстро растет, и вопрос даже не в том, на что эту мощь расходовать, а в том, что современная "мода" на двухъядерные и многоядерные системы, проникшая уже и в персональные компьютеры (ноутбуки и десктопы), как нельзя лучше позволяет реализовать богатейший потенциал идей виртуализации операционных систем и приложений, выводя удобство пользования компьютером на новый качественный уровень. Технологии виртуализации становятся одним из ключевых компонентов (в том числе, и маркетинговых) в самых новых и будущих процессорах Intel и AMD , в операционных системах от Microsoft и ряда других компаний.

Преимущества виртуализации

Приведем основные достоинства технологий виртуализации:

  1. Эффективное использование вычислительных ресурсов . Вместо 3х, а то 10 серверов, загруженных на 5-20% можно использовать один, используемый на 50-70%. Кроме прочего, это еще и экономия электроэнергии, а также значительное сокращение финансовых вложений: приобретается один высокотехнологичный сервер, выполняющий функции 5-10 серверов. С помощью виртуализации можно достичь значительно более эффективного использования ресурсов, поскольку она обеспечивает объединение стандартных ресурсов инфраструктуры в единый пул и преодолевает ограничения устаревшей модели "одно приложение на сервер".
  2. Сокращение расходов на инфраструктуру : Виртуализация позволяет сократить количество серверов и связанного с ними ИТ-оборудования в информационном центре. В результате этого потребности в обслуживании, электропитании и охлаждении материальных ресурсов сокращаются, и на ИТ затрачивается гораздо меньше средств.
  3. Снижение затрат на программное обеспечение . Некоторые производители программного обеспечения ввели отдельные схемы лицензирования специально для виртуальных сред. Так, например, покупая одну лицензию на Microsoft Windows Server 2008 Enterprise, вы получаете право одновременно её использовать на 1 физическом сервере и 4 виртуальных (в пределах одного сервера), а Windows Server 2008 Datacenter лицензируется только на количество процессоров и может использоваться одновременно на неограниченном количестве виртуальных серверов.
  4. Повышение гибкости и скорости реагирования системы : Виртуализация предлагает новый метод управления ИТ-инфраструктурой и помогает ИТ-администраторам затрачивать меньше времени на выполнение повторяющихся заданий - например, на инициацию, настройку, отслеживание и техническое обслуживание. Многие системные администраторы испытывали неприятности, когда "рушится" сервер. И нельзя, вытащив жесткий диск, переставив его в другой сервер, запустить все как прежде… А установка? поиск драйверов, настройка, запуск… и на все нужны время и ресурсы. При использовании виртуального сервера - возможен моментальный запуск на любом "железе", а если нет подобного сервера, то можно скачать готовую виртуальную машину с установленным и настроенным сервером, из библиотек, поддерживаемых компаниями разработчиками гипервизоров (программ для виртуализации).
  5. Несовместимые приложения могут работать на одном компьютере . При использовании виртуализации на одном сервере возможна установка linux и windows серверов, шлюзов, баз данных и прочих абсолютно несовместимых в рамках одной не виртуализированной системы приложений.
  6. Повышение доступности приложений и обеспечение непрерывности работы предприятия : Благодаря надежной системе резервного копирования и миграции виртуальных сред целиком без перерывов в обслуживании вы сможете сократить периоды планового простоя и обеспечить быстрое восстановление системы в критических ситуациях. "Падение" одного виртуального сервера не ведет к потере остальных виртуальных серверов. Кроме того, в случае отказа одного физического сервера возможно произвести автоматическую замену на резервный сервер. Причем это происходит не заметно для пользователей без перезагузки. Тем самым обеспечивается непрерывность бизнеса.
  7. Возможности легкой архивации . Поскольку жесткий диск виртуальной машины обычно представляется в виде файла определенного формата, расположенный на каком-либо физическом носителе, виртуализация дает возможность простого копирования этого файла на резервный носитель как средство архивирования и резервного копирования всей виртуальной машины целиком. Возможность поднять из архива сервер полностью еще одна замечательная особенность. А можно поднять сервер из архива, не уничтожая текущий сервер и посмотреть положение дел за прошлый период.
  8. Повышение управляемости инфраструктуры : использование централизованного управления виртуальной инфраструктурой позволяет сократить время на администрирование серверов, обеспечивает балансировку нагрузки и "живую" миграцию виртуальных машин.

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

- это полностью изолированный программный контейнер, который работает с собственной ОС и приложениями, подобно физическому компьютеру. Виртуальная машина действует так же, как физический компьютер, и содержит собственные виртуальные (т.е. программные) ОЗУ, жесткий диск и сетевой адаптер .

ОС не может различить виртуальную и физическую машины. То же самое можно сказать о приложениях и других компьютерах в сети. Даже сама виртуальная машина считает себя "настоящим" компьютером. Но несмотря на это виртуальные машины состоят исключительно из программных компонентов и не включают оборудование. Это дает им ряд уникальных преимуществ над физическим оборудованием.


Рис. 2.2.

Рассмотрим основные особенности виртуальных машин более детально:

  1. Совместимость . Виртуальные машины, как правило, совместимы со всеми стандартными компьютерами. Как и физический компьютер, виртуальная машина работает под управлением собственной гостевой операционной системы и выполняет собственные приложения. Она также содержит все компоненты, стандартные для физического компьютера (материнскую плату, видеокарту, сетевой контроллер и т.д.). Поэтому виртуальные машины полностью совместимы со всеми стандартными операционными системами, приложениями и драйверами устройств. Виртуальную машину можно использовать для выполнения любого программного обеспечения, пригодного для соответствующего физического компьютера.
  2. Изолированность . Виртуальные машины полностью изолированы друг от друга, как если бы они были физическими компьютерами Виртуальные машины могут использовать общие физические ресурсы одного компьютера и при этом оставаться полностью изолированными друг от друга, как если бы они были отдельными физическими машинами. Например, если на одном физическом сервере запущено четыре виртуальных машины, и одна из них дает сбой, это не влияет на доступность оставшихся трех машин. Изолированность - важная причина гораздо более высокой доступности и безопасности приложений, выполняемых в виртуальной среде, по сравнению с приложениями, выполняемыми в стандартной, невиртуализированной системе.
  3. Инкапсуляция . Виртуальные машины полностью инкапсулируют вычислительную среду. Виртуальная машина представляет собой программный контейнер, связывающий, или "инкапсулирующий" полный комплект виртуальных аппаратных ресурсов, а также ОС и все её приложения в программном пакете. Благодаря инкапсуляции виртуальные машины становятся невероятно мобильными и удобными в управлении. Например, виртуальную машину можно переместить или скопировать из одного местоположения в другое так же, как любой другой программный файл. Кроме того, виртуальную машину можно сохранить на любом стандартном носителе данных: от компактной карты Flash-памяти USB до корпоративных сетей хранения данных.
  4. Независимость от оборудования . Виртуальные машины полностью независимы от базового физического оборудования, на котором они работают. Например, для виртуальной машины с виртуальными компонентами (ЦП, сетевой картой, контроллером SCSI) можно задать настройки, абсолютно не совпадающие с физическими характеристиками базового аппаратного обеспечения. Виртуальные машины могут даже выполнять разные операционные системы (Windows, Linux и др.) на одном и том же физическом сервере. В сочетании со свойствами инкапсуляции и совместимости, аппаратная независимость обеспечивает возможность свободно перемещать виртуальные машины с одного компьютера на базе x86 на другой, не меняя драйверы устройств, ОС или приложения. Независимость от оборудования также дает возможность запускать в сочетании абсолютно разные ОС и приложения на одном физическом компьютере.

Рассмотрим основные разновидности виртуализации, такие как:

  • виртуализация серверов (полная виртуализация и паравиртуализация)
  • виртуализация на уровне операционных систем,
  • виртуализация приложений,
  • виртуализация представлений.

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

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

VMware vSphere - флагманский продукт компании VMware безусловного лидера по доли рынка виртуализации уже много лет подряд. Имеет широкий функционал и специально создана для дата центров предоставляющих облачные решения и компаний строящих частные облака различных масштабов. Имеет продуманный интерфейс и большое количество технической документации. Если у вас мало опыта в работе с виртуализацией эта система будет хорошим выбором для вас. Лицензируется по количеству физических процессоров в облаке независимо от количества ядер. В виду обширного функционала и множества модулей данная система достаточно требовательна к ресурсам необходимым для ее работы.

WMware Esxi - является бесплатным аналогом VMware vSphere . Так как данный гипервизор бесплатен он обладает более скромным функционалом, однако вполне достаточным для реализации большинства типовых задач виртуализации и управления частным облаком. Так же достаточно прост в использовании

Hyper - V - продукт компании Microsoft разработанный как дополнение к OS Windows server , начиная с версии 2008 года. Так же существует в виде отдельного продукта, однако использующий для работы OS Windows server . Данный гипервизор достаточно прост в настройке и эксплуатации, и разумеется, поддерживает все версии OS Windows для гостевых машин, однако производитель не гарантирует работу многих OS Linux . Обращаем внимание, что сам гипервизор распространяется по бесплатной лицензии, но для работы требует платной OS Windows .

OpenVZ - полностью бесплатная система виртуализации реализованная на ядре Linux . Как большинство Linux систем имеет хорошие показатели продуктивности и потребляемым ресурсам и отлично работает с любыми дистрибутивами Linux в качестве ОС гостевых машин. Однако не поддерживает OS Windows , за счет чего данная система виртуализации не может считаться универсальной.

KVM - система виртуализации так же основана на ядре Linux и распространяющаяся по свободной лицензии. Имеет очень хорошие показатели эффективности по количеству потребляемых ресурсов. Имеет большую функциональность и достаточно универсальна с точки зрения операционных систем гостевых машин, так как поддерживает абсолютно все ОС. Для настройки и поддержки в чистом виде требует определенных знаний и навыков работы с Unix системами. Однако существует множество графических интерфейсов в качестве дополнений к гипервизору с различными способами лицензирования от свободно распространяемых до платных версий.

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

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

Система виртуализации

Поддерживаемые ОС

Преимущества

Недостатки

Лицензия

VMware vSphere

Win/Lin

Легкая в использовании. Широкий функционал

Потребление ресурсов.

Платная. По количеству процессоров

WMware Esxi

Win/Lin

Легкая в использовании

Не самый широкий функционал.

Бесплатная

OpenVZ

Linux

Эффективное потребление ресурсов

Поддерживается только Linux

Бесплатная

Win /Lin

Эффективное потребление ресурсов. Поддерживает все ОС

Бесплатная

Hyper -V

Windows

Легкаявиспользовании

Поддерживается только Windows . Потребление ресурсов

Бесплатная. Работает на платной ОС

Win/Lin

Высокая эффективность. Открытый исходный код.

Требует знаний Unix систем для настройки и управления

Бесплатная

Linux

Высокая эффективность

Не поддерживает Windows

Бесплатная

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

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

История технологий виртуализации насчитывает уже более сорока лет. Однако после периода их триумфального применения в 70--80-х годах прошлого века, в первую очередь на мэйнфреймах IBM, эта концепция отошла на второй план при создании корпоративных информационных систем. Дело в том, что сама концепция виртуализации связана с созданием вычислительных центров коллективного пользования, с необходимостью применения единого комплекса аппаратных средств для формирования нескольких различных логически независимых систем. А с середины 80-х в компьютерной отрасли начала доминировать децентрализованная модель организации информационных систем на базе мини-компьютеров, а потом x86-серверов.

Виртуализация для архитектуры x86

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

Нужно сразу подчеркнуть, что хотя в идеях x86-виртуализации в теоретическом плане вроде бы ничего неизвестного ранее не было, речь шла о качественно новом для ИТ-отрасти явлении по сравнению с ситуацией 20-летней давности. Дело в том, что в аппаратно-программной архитектуре мэйнфреймов и Unix-компьютеров вопросы виртуализации сразу решались на базовом уровне. Система же x86 строилась совсем не в расчете на работу в режиме датацентров, и ее развитие в направлении виртуализации — это довольно сложный эволюционный процесс со множеством разных вариантов решения задачи.

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

Использование средств x86-виртуализации началось в конце 90-х с рабочих станций: одновременно с увеличением числа версий клиентских ОС постоянно росло и количество людей (разработчиков ПО, специалистов по технической поддержке, экспертов по софту), которым нужно было на одном ПК иметь сразу несколько копий различных ОС.

  • Виртуализация для серверной инфраструктуры стала применяться немного позднее, и связано это было прежде всего с решением задач консолидации вычислительных ресурсов. Но тут сразу сформировалось два независимых направления: ·
  • поддержка неоднородных операционных сред (в том числе для работы унаследованных приложений). Этот случай наиболее часто встречается в рамках корпоративных информационных систем. Технически проблема решается путем одновременной работы на одном компьютере нескольких виртуальных машин, каждая из которых включает экземпляр операционной системы. Но реализация этого режима выполняется с помощью двух принципиально разных подходов: полной виртуализации и паравиртуализации; ·
  • поддержка однородных вычислительных сред, что наиболее характерно для хостинга приложений провайдерами услуг. Конечно, тут можно использовать и вариант виртуальных машин, но гораздо эффективнее создание изолированных контейнеров на базе одного ядра ОС.

Следующий жизненный этап технологий x86-виртуализации стартовал в 2004--2006 гг. и был связан с началом их массового применения в корпоративных системах. Соответственно если раньше разработчики в основном занимались созданием технологий исполнения виртуальных сред, то теперь на первый план стали выходить задачи управления этими решениями и их интеграции в общую корпоративную ИТ-инфрастуктуру. Одновременно обозначилось заметное повышение спроса со стороны персональных пользователей (но если в 90-х это были разработчики и тестеры, то сейчас речь уже идет о конечных пользователях -- как профессиональных, так и домашних).

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

  • разработка и тестирование ПО; ·
  • моделирование работы реальных систем на исследовательских стендах; ·
  • консолидация серверов с целью повышения эффективности использования оборудования; ·
  • консолидация серверов в рамках решения задач поддержки унаследованных приложений; ·
  • демонстрация и изучение нового ПО; ·
  • развертывание и обновление прикладного ПО в условиях действующих информационных систем; ·
  • работа конечных пользователей (преимущественно домашних) на ПК с разнородными операционными средами.

Базовые варианты виртуализации ПО

Мы уже говорили ранее, что проблемы разработки виртуализационных технологий во многом связаны с преодолением унаследованных особенностей программно-аппаратной архитектуры x86. И для этого существует несколько базовых методов.

Полная виртуализация (Full, Native Virtualization) . Используются немодифицированные экземпляры гостевых операционных систем, а для поддержки работы этих ОС служит общий слой эмуляции их исполнения поверх хостовой ОС, в роли которой выступает обычная операционная система (рис. 1). Такая технология применяется, в частности, в VMware Workstation, VMware Server (бывший GSX Server, Parallels Desktop, Parallels Server, MS Virtual PC, MS Virtual Server, Virtual Iron. К достоинствам данного подхода можно причислить относительную простоту реализации, универсальность и надежность решения; все функции управления берет на себя хост-ОС. Недостатки - высокие дополнительные накладные расходы на используемые аппаратные ресурсы, отсутствие учета особенностей гостевых ОС, меньшая, чем нужно, гибкость в использовании аппаратных средств.

Паравиртуализация (paravirtualization). Модификация ядра гостевой ОС выполняется таким образом, что в нее включается новый набор API, через который она может напрямую работать с аппаратурой, не конфликтуя с другими виртуальными машинами (ВМ; рис. 2). При этом нет необходимости задействовать полноценную ОС в качестве хостового ПО, функции которого в данном случае исполняет специальная система, получившая название гипервизора (hypervisor). Именно этот вариант является сегодня наиболее актуальным направлением развития серверных технологий виртуализации и применяется в VMware ESX Server, Xen (и решениях других поставщиков на базе этой технологии), Microsoft Hyper-V. Достоинства данной технологии заключаются в отсутствии потребности в хостовой ОС -- ВМ устанавливаются фактически на “голое железо”, а аппаратные ресурсы используются эффективно. Недостатки - в сложности реализации подхода и необходимости создания специализированной ОС-гипервизора.

Виртуализация на уровне ядра ОС (operating system-level virtualization). Этот вариант подразумевает использование одного ядра хостовой ОС для создания независимых параллельно работающих операционных сред (рис. 3). Для гостевого ПО создается только собственное сетевое и аппаратное окружение. Такой вариант используется в Virtuozzo (для Linux и Windows), OpenVZ (бесплатный вариант Virtuozzo) и Solaris Containers. Достоинства - высокая эффективность использования аппаратных ресурсов, низкие накладные технические расходы, отличная управляемость, минимизация расходов на приобретение лицензий. Недостатки - реализация только однородных вычислительных сред.

Виртуализация приложений подразумевает применение модели сильной изоляции прикладных программ с управляемым взаимодействием с ОС, при которой виртуализируется каждый экземпляр приложений, все его основные компоненты: файлы (включая системные), реестр, шрифты, INI-файлы, COM-объекты, службы (рис. 4). Приложение исполняется без процедуры инсталляции в традиционном ее понимании и может запускаться прямо с внешних носителей (например, с флэш-карт или из сетевых папок). С точки зрения ИТ-отдела такой подход имеет очевидные преимущества: ускорение развертывания настольных систем и возможность управления ими, сведение к минимуму не только конфликтов между приложениями, но и потребности в тестировании приложений на совместимость. Фактически именно такой вариант виртуализации используется в Sun Java Virtual Machine, Microsoft Application Virtualization (ранее называлось Softgrid), Thinstall (в начале 2008 г. вошла в состав VMware), Symantec/Altiris.

Вопросы выбора виртуализационного решения

Сказать: “продукт A - это решение для виртуализации ПО” -- совсем не достаточно для понимания реальных возможностей “А”. Для этого нужно детальнее посмотреть на различные характеристики предлагаемых продуктов.

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

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

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

Основные игроки рынка x86-виртуализации

Рынок средств виртуализации начал формироваться менее десяти лет назад и сегодня приобрел вполне определенные очертания.

Созданная в 1998 г. компания VMware является одним из пионеров в использовании технологий виртуализации для компьютеров архитектуры x86 и занимает сегодня лидирующую позицию на этом рынке (по некоторым оценкам, ее доля составляет 70--80%). С 2004 г. она является дочерним предприятием корпорации ECM, но на рынке работает автономно под собственной торговой маркой. По данным EMC, штат сотрудников VMware вырос за это время с 300 до 3000 человек, а объемы продаж ежегодно увеличивались вдвое. Согласно официально объявленным сведениям, сейчас ежегодный доход компании (от продажи продуктов виртуализации и оказания сопутствующих услуг) приближается к 1,5 млрд. долл. Эти данные хорошо отражают общее повышение рыночного спроса на средства виртуализации.

Сегодня WMware предлагает комплексную виртуализационную платформу третьего поколения VMware Virtual Infrastructure 3, которая включает средства как для отдельного ПК, так и для центра обработки данных. Ключевым компонентом этого программного комплекса является гипервизор VMware ESX Server. Компании могут также воспользоваться бесплатным продуктом VMware Virtual Server, на базе которого предлагается выполнять пилотные проекты.

Parallels - это новое (с января 2008 г.) название компании SWsoft, которая также является ветераном рынка технологийвиртуализации . Ее ключевой продукт - Parallels Virtuozzo Containers, решение по виртуализации на уровне ОС, позволяющее запускать на одном Windows- или Linux-сервере множество изолированных контейнеров (виртуальных серверов). Для автоматизации бизнес-процессов хостинг-провайдеров предлагается средство Parallels Plesk Control Panel. В последние годы компания активно развивает направление средств виртуализации настольных систем - Parallels Workstation (для Windows и Linux) и Parallels Desktop for Mac (для Mac OS на компьютерах архитектуры x86). В 2008 г. она объявила о выпуске нового продукта - Parallels Server, поддерживающего серверный механизм виртуальных машин с использованием разных ОС (Windows, Linux, Mac OS).

Корпорация Microsoft вышла на рынок средств виртуализации в 2003 г. с приобретением компании Connectiх, выпустив свой первый продукт Virtual PC для настольных ПК. С тех пор она последовательно наращивала спектр предложений в этой области и на сегодня почти завершила формирование виртуализационной платформы , в состав которой входят следующие компоненты. ·

  • Серверная виртуализация. Здесь предлагается два различных технологических подхода: с помощью Microsoft Virtual Server 2005 и нового решения Hyper-V Server (пока оно представлено бета-версией). ·
  • Виртуализация для ПК. Выполняется с помощью бесплатно распространяемого продукта Microsoft Vitrual PC 2007. ·
  • Виртуализация приложений. Для таких задач предлагается система Microsoft SoftGrid Application Virtualization (ранее называлась SoftGrid). ·
  • Презентационная виртуализация. Реализуется с помощью Microsoft Windows Server Terminal Services и в целом представляет собой давно известный режим терминального доступа. ·
  • Интегрированное управление виртуальными системами. В решении этих задач ключевая роль отводится выпущенному в конце прошлого года System Center Virtual Machine Manager.

Компания Sun Microsystems предлагает многоуровневый набортехнологий : традиционная ОС, управление ресурсами, виртуализация ОС, виртуальные машины и домены на уровне аппаратуры (hard partitions). Эта последовательность выстроена по принципу повышения уровня изоляции приложений (но одновременно снижается гибкость решения). Все виртуализационные технологии Sun реализованы в рамках операционной системы Solaris. В аппаратном плане везде есть поддержка архитектуры x64, хотя системы на базе UltraSPARC изначально лучше заточены на данные технологии. В качестве виртуальных машин могут использоваться и другие операционные системы, в том числе Windows и Linux.

Корпорация Citrix Systems является признанным лидером в сфере инфраструктур удаленного доступа к приложениям. Она серьезно усилила свои позиции в области виртуализационных технологий, купив в 2007 г. за 500 млн. долл. компанию XenSource, разработчика Xen -- одной из ведущих технологий виртуализации операционных систем . Как раз накануне этой сделки XenSource представила новую версию своего флагманского продукта XenEnterprise на базе ядра Xen 4. Данное приобретение вызвало некоторое смятение в ИТ-отрасли, поскольку Xen является открытым проектом и заложенные в него технологии лежат в основе коммерческих продуктов таких поставщиков, как, например, Sun, Red Hat и Novell. Определенная неясность в позиции Citrix в будущем продвижении Xen, в том числе в маркетинговом плане, сохраняется до сих пор. На первую половину 2008 г. запланирован выпуск первого продукта компании на базе технологии Xen - Citrix XenDesktop (для виртуализации ПК). Затем ожидается представление обновленного варианта XenServer.

В ноябре 2007-го о своем выходе на рынок средств виртуализации объявила Oracle, представив ПО под названием Oracle VM для виртуализации серверных приложений этой корпорации и других производителей. Новое решение включает серверный программный компонент с открытым исходным кодом и интегрированную консоль управления на базе браузера, предназначенную для создания и администрирования виртуальных пулов серверов, работающих в системах на базе архитектур x86 и x86-64. Эксперты усмотрели в этом нежелание Oracle поддерживать пользователей, которые запускают ее продукты в виртуальных средах других производителей. Известно, что решение Oracle VM реализовано на базе гипервизора Xen. Уникальность данного шага Oracle заключается в том, что это, кажется, первый случай в истории компьютерной виртуализации, когда фактически технология подстраивается не под операционную среду, а под конкретные приложения.

Рынок виртуализации глазами IDC

Рынок средств виртуализации архитектуры x86 находится на этапе бурного развития, и его структура еще не устоялась. Это усложняет проведение оценок его абсолютных показателей и сравнительного анализа представленных тут продуктов. Подтверждением данного тезиса служит опубликованный в ноябре прошлого года отчет IDC “Enterprise Virtualization Software: Customer Needs and Strategies” (“Корпоративное программное обеспечение виртуализации: потребности заказчиков и стратегии”). Наибольший интерес в этом документе представляет вариант структуризации серверного виртуализационного ПО, в котором IDC выделяет четыре основных компонента (рис. 5).

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

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

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

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

В плане общего анализа ситуации на рынке IDC выделяет три лагеря участников. Первый водораздел проходит между теми, кто виртуализирует на верхнем уровне ОС (SWsoft и Sun) и на нижнем уровне ОС (VMware, XenSource, Virtual Iron, Red Hat, Microsoft, Novell). Первый вариант позволяет создавать самые эффективные с точки зрения производительности и дополнительных затрат на ресурсы решения, но реализующие только однородные вычислительные среды. Второй дает возможность запускать на одном компьютере несколько ОС разного типа. Внутри второй группы IDC проводит еще одну границу, разделяющую поставщиков автономных продуктов виртуализации (VMware, XenSource, Virtual Iron) и производителей операционных систем, в состав которых входят средства виртуализации (Microsoft, Red Hat, Novell).

С нашей точки зрения, предложенная IDC структуризация рынка является не очень точной. Во-первых, почему-то IDC не выделяет наличие двух принципиально разных типов виртуальных машин - с использованием хост-ОС (VMware, Virtual Iron, Microsoft) и гипервизора (VMware, XenSource, Red Hat, Microsoft, Novell). Во-вторых, если говорить о гипервизоре, то тут полезно отличать тех, кто использует собственные базовые технологии (VMware, XenSource, Virtual Iron, Microsoft), и тех, кто лицензирует чужие (Red Hat, Novell). И, наконец, нужно сказать, что SWsoft и Sun имеют в своем арсенале не только технологии виртуализации на уровне ОС, но и средства поддержки виртуальных машин.

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

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

Сам термин «виртуализация» в компьютерных технологиях появился в шестидесятых годах прошлого века вместе с термином «виртуальная машина», означающим продукт виртуализации программно-аппаратной платформы. В то время виртуализация была, скорее, интересной технической находкой, чем перспективной технологией. Разработки в сфере виртуализации в шестидесятых-семидесятых годах проводились только компанией IBM. С появлением в компьютере IBM M44/44X экспериментальной системы пэйджинга, впервые был употреблен термин «виртуальная машина» (virtual machine), который заменил более ранний термин «псевдо машина» (pseudo machine). Затем в мэйнфреймах IBM серии System 360/370, можно было использовать виртуальные машины для сохранения предыдущих версий операционных систем. До конца девяностых годов никто кроме IBM так и не решался использовать эту оригинальную технологию всерьез. Однако в девяностых годах стали очевидны перспективы подхода виртуализации: с ростом аппаратных мощностей, как персональных компьютеров, так и серверных решений, вскоре представится возможность использовать несколько виртуальных машин на одной физической платформе.

В 1997 году компания Connectix выпускает первую версию Virtual PC для платформы Macintosh, а в 1998 году VMware патентует свои техники виртуализации. Компания Connectix впоследствии была куплена корпорацией Microsoft, а VMware корпорацией EMC, и на данный момент обе эти компании являются двумя основными потенциальными конкурентами на рынке технологий виртуализации в будущем. Потенциальными - потому что сейчас VMware безоговорочный лидер на этом рынке, однако у Microsoft, как всегда, есть козырь в рукаве.

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

Понятие виртуализации условно можно разделить на две фундаментально различающиеся категории:

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

Виртуализация платформ

Под виртуализацией платформ понимают создание программных систем на основе существующих аппаратно-программных комплексов, зависящих или независящих от них. Система, предоставляющая аппаратные ресурсы и программное обеспечение, называется хостовой (host), а симулируемые ей системы - гостевыми (guest). Чтобы гостевые системы могли стабильно функционировать на платформе хостовой системы, необходимо, чтобы программное и аппаратное обеспечение хоста было достаточно надежным и предоставляло необходимый набор интерфейсов для доступа к его ресурсам. Есть несколько видов виртуализации платформ, в каждом из которых осуществляется свой подход к понятию «виртуализация». Виды виртуализации платформ зависят от того, насколько полно осуществляется симуляция аппаратного обеспечения. До сих пор нет единого соглашения о терминах в сфере виртуализации, поэтому некоторые из приведенных далее видов виртуализации могут отличаться от тех, что предоставят другие источники.

Виды виртуализации платформ:

  1. Полная эмуляция (симуляция) .

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

    Примеры продуктов для создания эмуляторов: Bochs, PearPC, QEMU (без ускорения), Hercules Emulator.

  2. Частичная эмуляция (нативная виртуализация) .

    В этом случае виртуальная машина виртуализует лишь необходимое количество аппаратного обеспечения, чтобы она могла быть запущена изолированно. Такой подход позволяет запускать гостевые операционные системы, разработанные только для той же архитектуры, что и у хоста. Таким образом, несколько экземпляров гостевых систем могут быть запущены одновременно. Этот вид виртуализации позволяет существенно увеличить быстродействие гостевых систем по сравнению с полной эмуляцией и широко используется в настоящее время. Кроме того, в целях повышения быстродействия в платформах виртуализации, использующих данный подход, применяется специальная «прослойка» между гостевой операционной системой и оборудованием (гипервизор), позволяющая гостевой системе напрямую обращаться к ресурсам аппаратного обеспечения. Гипервизор, называемый также «Монитор виртуальных машин» (Virtual Machine Monitor) - одно из ключевых понятий в мире виртуализации. Применение гипервизора, являющегося связующим звеном между гостевыми системами и аппаратурой, существенно увеличивает быстродействие платформы, приближая его к быстродействию физической платформы.

    К минусам данного вида виртуализации можно отнести зависимость виртуальных машин от архитектуры аппаратной платформы.

    Примеры продуктов для нативной виртуализации: VMware Workstation, VMware Server, VMware ESX Server, Virtual Iron, Virtual PC, VirtualBox, Parallels Desktop и другие.

  3. Частичная виртуализация , а также «виртуализация адресного пространства» («address space virtualization»).

    При таком подходе, виртуальная машина симулирует несколько экземпляров аппаратного окружения (но не всего), в частности, пространства адресов. Такой вид виртуализации позволяет совместно использовать ресурсы и изолировать процессы, но не позволяет разделять экземпляры гостевых операционных систем. Строго говоря, при таком виде виртуализации пользователем не создаются виртуальные машины, а происходит изоляция каких-либо процессов на уровне операционной системы. В данный момент многие из известных операционных систем используют такой подход. Примером может послужить использование UML (User-mode Linux), в котором «гостевое» ядро запускается в пользовательском пространстве базового ядра (в его контексте).

  4. Паравиртуализация .

    При применении паравиртуализации нет необходимости симулировать аппаратное обеспечение, однако, вместо этого (или в дополнение к этому), используется специальный программный интерфейс (API) для взаимодействия с гостевой операционной системой. Такой подход требует модификации кода гостевой системы, что, с точки зрения сообщества, Open Source не так и критично. Системы для паравиртуализации также имеют свой гипервизор, а API-вызовы к гостевой системе, называются «hypercalls» (гипервызовы). Многие сомневаются в перспективах этого подхода виртуализации, поскольку в данный момент все решения производителей аппаратного обеспечения в отношении виртуализации направлены на системы с нативной виртуализацией, а поддержку паравиртуализации приходится искать у производителей операционных систем, которые слабо верят в возможности предлагаемого им средства. В настоящее время провайдерами паравиртуализации являются компании XenSource и Virtual Iron, утверждающие, что быстродействие паравиртуализации выше.

  5. Виртуализация уровня операционной системы .

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

    Примеры виртуализации уровня ОС: Linux-VServer, Virtuozzo, OpenVZ, Solaris Containers и FreeBSD Jails.

  6. Виртуализация уровня приложений .

    Этот вид виртуализации не похож на все остальные: если в предыдущих случаях создаются виртуальные среды или виртуальные машины, использующиеся для изоляции приложений, то в данном случае само приложение помещается в контейнер с необходимыми элементами для своей работы: файлами реестра, конфигурационными файлами, пользовательскими и системными объектами. В результате получается приложение, не требующее установки на аналогичной платформе. При переносе такого приложения на другую машину и его запуске, виртуальное окружение, созданное для программы, разрешает конфликты между ней и операционной системой, а также другими приложениями. Такой способ виртуализации похож на поведение интерпретаторов различных языков программирования (недаром интерпретатор, Виртуальная Машина Java (JVM), тоже попадает в эту категорию).

    Примером такого подхода служат: Thinstall, Altiris, Trigence, Softricity.

Виртуализация ресурсов

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

Виды виртуализации ресурсов:

  1. Объединение, агрегация и концентрация компонентов .

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

    • многопроцессорные системы, представляющиеся нам как одна мощная система,
    • RAID-массивы и средства управления томами, комбинирующие несколько физических дисков в один логический,
    • виртуализация систем хранения, используемая при построении сетей хранения данных SAN (Storage Area Network),
    • виртуальные частные сети (VPN) и трансляция сетевых адресов (NAT), позволяющие создавать виртуальные пространства сетевых адресов и имен.
  2. Кластеризация компьютеров и распределенные вычисления (grid computing) .

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

  3. Разделение ресурсов (partitioning) .

    При разделении ресурсов в процессе виртуализации происходит разделение какого-либо одного большого ресурса на несколько однотипных объектов, удобных для использования. В сетях хранения данных это называется зонированием ресурсов («zoning»).

  4. Инкапсуляция .

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

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

Где применяется виртуализация

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

  1. Консолидация серверов .

    В данный момент приложения, работающие на серверах в IT-инфраструктуре компаний, создают небольшую нагрузку на аппаратные ресурсы серверов (в среднем 5-15 процентов). Виртуализация позволяет мигрировать с этих физических серверов на виртуальные и разместить их все на одном физическом сервере, увеличив его загрузку до 60-80 процентов и, повысив тем самым коэффициент использования аппаратуры, что позволяет существенно сэкономить на аппаратуре, обслуживании и электроэнергии.

  2. Разработка и тестирование приложений .

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

  3. Использование в бизнесе .

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

  4. Использование виртуальных рабочих станций .

    С приходом эры виртуальных машин будет бессмысленно делать себе рабочую станцию с ее привязкой к аппаратуре. Теперь создав однажды виртуальную машину со своей рабочей или домашней средой, можно будет использовать её на любом другом компьютере. Также можно использовать готовые шаблоны виртуальных машин (Virtual Appliances), которые решают определенную задачу (например, сервер приложений). Концепция такого использования виртуальных рабочих станций может быть реализована на основе хост-серверов для запуска на них перемещаемых десктопов пользователей (нечто подобное мэйнфреймам). В дальнейшем эти десктопы пользователь может забрать с собой, не синхронизируя данные с ноутбуком. Этот вариант использования также предоставляет возможность создания защищенных пользовательских рабочих станций, которые могут быть использованы, например, для демонстрации возможностей программы заказчику. Можно ограничить время использования виртуальной машины - и по прошествии этого времени виртуальная машина перестанет запускаться. В этом варианте использования заложены большие возможности.

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

Как работает виртуализация сегодня

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

10 причин использовать виртуальные машины

  1. Экономия на аппаратном обеспечении при консолидации серверов .

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

  2. Возможность поддержания старых операционных систем в целях обеспечения совместимости .

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

  3. Возможность изолировать потенциально опасные окружения .

    Если какое-то приложение или компонент вызывает сомнения в его надежности и защищенности, можно использовать его на виртуальной машине без опасности повредить жизненно важные компоненты системы. Такую изолированную среду называют также «песочницей» (sandbox). Помимо этого, можно создавать виртуальные машины, ограниченные политиками безопасности (например, машина перестанет запускаться через две недели).

  4. Возможность создания требуемых аппаратных конфигураций .

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

  5. Виртуальные машины могут создавать представления устройств, которых у вас нет .

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

  6. На одном хосте может быть запущено одновременно несколько виртуальных машин, объединенных в виртуальную сеть .

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

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

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

  8. Виртуальные машины повышают мобильность .

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

  9. Виртуальные машины могут быть организованы в «пакеты приложений» .

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

  10. Виртуальные машины более управляемы .

    При использовании виртуальных машин существенно повышается управляемость в отношении создания резервных копий, создания снимков состояний виртуальных машин («снапшотов») и восстановлений после сбоев.

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

  1. Невозможность эмуляции всех устройств .

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

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

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

  3. Некоторые платформы виртуализации требовательны к конкретному аппаратному обеспечению .

    В частности, замечательная платформа компании VMware, ESX Server, была бы и вовсе замечательной, если бы не предъявляла жестких требований к аппаратному обеспечению.

  4. Хорошие платформы виртуализации стоят хороших денег .

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

Несмотря на перечисленные и вполне устранимые недостатки, виртуализация продолжает набирать обороты, и в 2007 году ожидается существенное расширение, как рынка платформ виртуализации, так и средств управления виртуальными инфраструктурами. За последние несколько лет интерес к виртуализации вырос в разы, что можно увидеть по статистике Google Trends:

Статистика тренда «виртуализация»

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

Что ждет виртуализацию в будущем

2006 год стал для технологий виртуализации ключевым: множество новых игроков пришли на этот рынок, множество релизов платформ виртуализации и средств управления, а также немалое количество заключенных партнерских соглашений и альянсов, говорят о том, что в будущем технология окажется очень и очень востребованной. Рынок средств виртуализации находится в заключительной стадии своего формирования. Множество производителей аппаратного обеспечения заявили о поддержки технологий виртуализации, а это верный залог успеха любой новой технологии. Виртуализация становится ближе к людям: упрощаются интерфейсы для использования виртуальных машин, появляются, не закрепленные пока официально, соглашения об использовании различных средств и техник, упрощается миграция с одной виртуальной платформы на другую. Безусловно, виртуализация займет свою нишу в списке необходимых технологий и инструментальных средств при проектировании IT-инфраструктуры предприятий. Обычные пользователи также найдут свое применение виртуальным машинам. С ростом производительности аппаратных платформ настольных компьютеров появится возможность поддерживать на одной машине несколько пользовательских окружений и переключаться между ними.

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

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

Вопрос 56

Системы виртуализации ОС. Основные понятия, паравиртуализация, аппаратная виртуализация, гипервизор. Примеры применения.

Виртуализация - это технология, обеспечивающая абстрагирование процессов и их представления от вычислительных ресурсов. Понятие виртуализации далеко не новое и было введено ещё в 60-х годах компанией IBM .

Можно выделить следующие разновидности виртуализации:

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

    Виртуализация приложений . Виртуализация приложений подразумевает эмуляцию ресурсов операционной системы (реестра, файлов, и т.д.). Данная технология позволяет использовать на одном компьютере, а точнее в одной и той же операционной системе несколько несовместимых между собой приложений одновременно. Виртуализация приложений реализуется на базе продукта Microsoft Application Virtualization (AppV). AppV позволяет пользователям запускать одно и тоже заранее сконфигурированное приложение или группу приложений с сервера. При этом приложения будут работать независимо друг от друга, не внося никаких изменений в операционную систему. Причем всё это происходит прозрачно для пользователя, как будто он работает с обычным локально-установленным приложением.

    Виртуализация представлений . Виртуализация представлений подразумевает эмуляцию интерфейса пользователя. Т.е. пользователь видит приложение и работает с ним на своём терминале, хотя на самом деле приложение выполняется на удалённом сервере, а пользователю передаётся лишь картинка удалённого приложения. В зависимости от режима работы пользователь может видеть удалённый рабочий стол и запущенное на нём приложение, либо только само окно приложения. Это реализуется на базе Microsoft Terminal Services и на базе решений Citrix.

    Виртуализация уровня операционной системы . Виртуализация уровня операционной системы подразумевает изоляцию служб в рамках одного экземпляра ядра операционной системы. Это реализуется на базе Parallels (SWsoft) Virtuozzo и применяется чаще всего хостинговыми компаниями.

Что может виртуализация:

    Запуск множества операционных систем одновременно.

    Гарантированная изоляция ОС друг от друга.

    Возможность гибкого разделения ресурсов между машинами.

Преимущества виртуализации:

    Повышение изоляции.

    Ограничение одной или группы тесно связанных служб собственной виртуальной машиной.

    Снижение вероятности сбоев от взаимного влияния программ.

    Безопасность.

    Распределение задач администрирования - возможность ограничить права каждого администратора только самыми необходимыми.

    Снижение потенциальных вредных последствий взлома каких-либо из служб.

    Распределение ресурсов - каждая машина получает столько ресурсов, сколько ей необходимо, но не более того.

    Приоритезация задач.

    Выделение память по требованию.

    Гибкое распределение сетевого трафика между машинами.

    Распределение дисковых ресурсов.

    Постоянная доступность.

    Есть возможность live-миграции машин.

    Плавный апгрейд критических серверов.

    Повышение качества администрирования.

    Возможность выполнения регрессионных тестов.

    Возможность экспериментирования и исследования.

Принципы и виды виртуализации:

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

Примеры : Bochs, PearPC, QEMU, Microsoft VirtualPC for MAC.

    Паравиртуализация и портирование - модификация ядра гостевой ОС выполняется таким образом, что в нее включается новый набор API, через который она может напрямую работать с аппаратурой, не конфликтуя с другими виртуальными машинами. При этом нет необходимости задействовать полноценную ОС в качестве хостового ПО, функции которого в данном случае исполняет специальная система, получившая название гипервизора (hypervisor). Данный вид виртуализации является аппаратным.

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

Гипервизор также может (но не обязан) предоставлять работающим под его управлением на одном хост-компьютере ОС средства связи и взаимодействия между собой (например, через обмен файлами или сетевые соединения) так, как если бы эти ОС выполнялись на разных физических компьютерах.

Гипервизор сам по себе в некотором роде является минимальной операционной системой (микроядром или наноядром ). Он предоставляет запущенным под его управлением операционным системам сервис виртуальной машины, виртуализируя или эмулируя реальное (физическое) аппаратное обеспечение конкретной машины, и управляет этими виртуальными машинами, выделением и освобождением ресурсов для них. Гипервизор позволяет независимое «включение», перезагрузку, «выключение» любой из виртуальных машин с той или иной ОС. При этом операционная система, работающая в виртуальной машине под управлением гипервизора, может, но не обязана «знать», что она выполняется в виртуальной машине, а не на реальном аппаратном обеспечении. Слово «гипервизор» появилось интересным образом: когда-то очень давно, операционная система носила название «supervisor», а программное обеспечение, находящееся «под супервизором», получило название «гипервизор».

Типы гипервизора:

    Автономный гипервизор (Тип 1)

Имеет свои встроенные драйверы устройств, модели драйверов и планировщик и поэтому не зависит от базовой ОС. Так как автономный гипервизор работает непосредственно на оборудовании, то он более производителен.

Пример: VMware ESX

    На основе базовой ОС (Тип 2, V)

Это компонент, работающий в одном кольце с ядром основной ОС (кольцо 0). Кольца защиты - архитектура информационной безопасности и функциональной отказоустойчивости, реализующая аппаратное разделение системного и пользовательского уровней привилегий.

Гостевой код может выполняться прямо на физическом процессоре, но доступ к устройствам ввода-вывода компьютера из гостевой ОС осуществляется через второй компонент, обычный процесс основной ОС - монитор уровня пользователя.

Примеры : Microsoft Virtual PC, VMware Workstation, QEMU, Parallels, VirtualBox .

    Гибридный (Тип 1+)

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

Примеры : Microsoft Virtual Server, Sun Logical Domains, Xen, Citrix XenServer, Microsoft Hyper-V

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

Цель изменения интерфейса заключается в сокращении доли времени выполнения гостя, отведённого на выполнение операций, которые являются существенно более трудными для запуска в виртуальной среде по сравнению с не виртуальной средой. Паравиртуализация предоставляет специально установленные обработчики прерываний, чтобы позволить гостю (гостям) и хосту принять и опознавать эти задачи, которые иначе были бы выполнены в виртуальном домене (где производительность меньше). Таким образом, успешная паравиртуализированная платформа может позволить монитору виртуальных машин (VMM) быть проще (путём перевода выполнения критически важных задач, с виртуального домена к хосту домена) и/или уменьшить общие потери производительности машинного выполнения внутри виртуального гостя.

Впервые термин возник в проекте Denali, а после того, как это слово применили исследователи из компьютерной лаборатории Кембриджского университета в проекте Xen, оно окончательно утвердилось в терминологии. Приставка «пара» в слове паравиртуализация ничего не обозначает, просто авторам данной идеи понадобился новый термин .

      Достоинства: отсутствие потребности в хостовой ОС. Виртуальная машина устанавливаются фактически на “голое железо”, а аппаратные ресурсы используются эффективно.

      Недостатки: сложность реализации подхода и необходимость создания специализированной ОС-гипервизора.

Примеры : Xen, UML, lguest, Microsoft Hyper-V, KVM, VMware ESX Server.

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

    • Достоинства: высокая эффективность использования аппаратных ресурсов, низкие накладные технические расходы, отличная управляемость, минимизация расходов на приобретение лицензий.

      Недостатки: реализация только однородных вычислительных сред.

Примеры : FreeVPS, iCore Virtual Accounts, Linux-VServer, OpenVZ, Parallels Virtuozzo Containers, Zones, FreeBSD, Jail, sysjail, WPARs, Solaris Containers.

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

    • Достоинства: относительная простота реализации, универсальность и надежность решения; все функции управления берет на себя хост-ОС.

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

Примеры : VMware Workstation, VMware Server, Parallels Desktop, Parallels Server, Microsoft VirtualPC, Microsoft Virtual Server, Microsoft Hyper-V, QEMU с модулем kqemu, KVM, Virtual Iron.

    Слой совместимости

Под слоем совместимости можно понимать программный продукт, позволяющий запускать непредназначенные для рабочей среды программы. Например, Wine позволяет работать с программами Windows в операционной системе Linux .

Примеры: Cygwin, Wine.

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
Компьютеры и современные гаджеты