Виртуализация платформ представляет собой среду для создания и использования виртуальных машин поверх реального аппаратно-программного комплекса. Виртуальная машина – это некий виртуальный набор аппаратных ресурсов, которые в целом являются виртуальным компьютером. На него можно устанавливать операционные системы и программы; можно интегрировать его в сеть реальных компьютеров; можно пользоваться им как локальным веб-сервером. Таким образом, виртуальная машина является полным аналогом реального компьютера. Виртуализация платформ лежит в основе создания эмуляторов платформ, виртуализации операционных систем и приложений. Система, на которой запускается виртуальная машина и которая предоставляет свои аппаратно-программные ресурсы для виртуальной машины, называется хостовой (host), а сама виртуальная машина называется гостевой (guest). Для обеспечения стабильного функционирования гостевой системы, хостовая система должна быть достаточно надежной, располагать достаточным количеством ресурсов и предоставлять необходимый набор интерфейсов для доступа к ним.
Классификация виртуализации носит условный характер, так как различия между разными видами виртуализации порой весьма размыты, а многие реализации виртуализации можно отнести сразу к нескольким видам. В зависимости от степени виртуализации аппаратных ресурсов, виртуализацию платформ делят на такие виды :
1. Полная эмуляция (симуляция)
Этот вид виртуализации построен на основе полной эмуляции всего аппаратного обеспечения определенной платформы. Такой подход позволяет эмулировать различные апаратные архитектуры. Например, на платформе x86 это позволяет запустить операционную систему, разработанную для процессоров IBM PowerPC. Продукты, которые обеспечивают данный вид виртуализации, должны позволять запускать оригинальные гостевые операционные системы на платформе, для которой эти системы не были написаны. Другими словами, они позволяют выполнять код любой платформы на любой платформе.
Полная эмуляция часто используется для разработки программного обеспечения под новые процессоры, которые еще не реализованы физически; ее применяют для низкоуровневой отладки операционных систем, так как такие эмуляторы позволяют отслеживать все инструкции виртуального процессора, что нельзя сделать в системах, которые частично или полностью используют реальный процессор.
Главным и основным минусом такого подхода виртуализации является очень низкое быстродействие гостевой системы (в 100—1000 раз меньше, чем физического компьютера), так как происходит полная эмуляция всех инструкций виртуального процессора, а инструкции физического процессора совсем не используются. Поэтому полная эмуляция практически нигде не используется, кроме как в разработке системного программного обеспечения и образовательных целях.
Примеры продуктов для полной эмуляции : Bochs, PearPC, QEMU (без акселерации), Hercules Emulator.
2. Частичная эмуляция (нативная виртуализация или встроенная виртуализация)
Частичная виртуализация базируется на принципе эмуляции только необходимого количества ресурсов, чтобы виртуальная машина могла быть запущена изолировано. Например, при полной эмуляции различных архитектур, гостевая система работает с определенной специфической системой команд процессора, отличной от системы команд процессора хостовой системы. Каждую команду процессору гостевой системы нужно транслировать в соответствующую команду хостовой системы, что невероятно уменьшает быстродействие. При использовании нативной виртуализации никакой трансляции команд не происходит, так как гостевая операционная система разработана под ту же архитектуру, на которой работает хостовая система. Это позволяет значительно повысить быстродействие гостевой системы и максимально приблизить его к быстродействию реальной системы.
Для повышения быстродействия нативной виртуализации применяется специализированная программная прослойка – гипервизор. Гипервизор является посредником между гостевой операционной системой и физическим аппаратным обеспечением. Он позволяет гостевой системе напрямую обращаться к аппаратным ресурсам, что и является секретом высокого быстродействия данного вида виртуализации. Гипервизор является одним из ключевых понятий в мире виртуализации.
Частичная эмуляция является самым распространенным видом виртуализации в наше время. Основным ее недостатком является зависимость виртуальных машин от конкретной аппаратной архитектуры.
Примеры продуктов для полной эмуляции : VMware Workstation, VMware Server, VMware ESX Server, Virtual Iron, Microsoft Hyper-V Server, Microsoft Virtual PC, Sun VirtualBox, Parallels Desktop и другие.
3. Частичная виртуализация и виртуализация адресного пространства
Подход частичной виртуализации заключается в симулировании нескольких экземпляров аппаратного обеспечения (особенно часто используется виртуализация адресного пространства). Это позволяет совместно использовать ресурсы и изолировать процессы, но не позволяет создавать экземпляры гостевых систем. Грубо говоря, при частичной виртуализации виртуальные машины не создаются, а происходит изоляция некоторых ресурсов и процессов на уровне хостовой операционной системы. Каждая гостевая система является приложением, запущенным как процесс внутри изолированного адресного пространства.
Недостатком частичной виртуализации является невозможность разделить гостевую и хостовую системы, так как они выполняются внутри ядра хостовой системы.
Примером такого вида виртуализации может служить UML (User-mode Linux), при котором гостевое ядро запускается внутри основного ядра и выполняется в его контексте.
4. Паравиртуализация
Метод паравиртуализации не вынуждает эмулировать аппаратное обеспечение, однако требует от гостевой системы наличия специального программного интерфейса для взаимодействия с хостовой системой. Такой подход требует значительной модификации ядра гостевой, так как все взаимодействие ее с аппаратным обеспечением сводится к совершению специальных вызовов (гипервызововов) к хостовой системе. При этом хостовая система должна иметь гипервизор, который принимает и обрабатывает гипервызовы из гостевой системы. Быстродействие гостевых систем с паравиртуализацией считается максимальным. В отличие от нативной виртуализации, в случае паравиртуализации нет нужды эмулировать BIOS, процессор, жесткие диски и другие устройства. Это и дает выигрыш в производительности паравиртуализированых систем на уровне 5 – 15% по сравнению с нативными. Но за такой прирост производительности нужно расплачиваться понижением гибкости (не всегда найдется нужная модифицированная операционная система) и безопасности (в следствии близости гостевых систем к аппаратному уровню могут возникать различные коллизии) таких решений.
Несколько лет назад многие сомневались в преимуществах систем с паравиртуализацией, так как их прирост производительности невелик, а необходимость модифицировать ядро гостевой операционной системы создает значительные трудности. Если в OpenSource сообществе модификация исходных кодов операционной системы является обыкновенной задачей, то производителям ОС с закрытым исходным кодом нужно или предоставлять специалистам по нативной виртуализации исходные коды для их модификации под гипервызовы, или самим разрабатывать версию своей ОС с поддержкой паравиртуализации. Но с ростом популярности виртуализации, появлением в современных процессорах встроенной поддержки технологий виртуализации (Intel VT-x (Intel Virtualization Technology) и AMD-V(AMD Virtualization)), решений для паравиртуализации в чистом виде практически не осталось. Все они поддерживают паравиртуализацию, нативную виртуализацию и их смесь. Это позволяет запускать практически любую операционную систему : системы, которые имеют модифицированное ядро, запускаются в режиме паравиртуализации, а системы с оригинальным ядром – в режиме нативной виртуализации.
Главным игроком на рынке паравиртуализации сейчас является компания XenSource.
5. Виртуализация уровня операционной системы
Данный метод позволяет в рамках одной операционной системы выделить ресурсы для выполнения независимых гостевых операционных систем. Каждая гостевая система имеет изолированную от хостовой системы среду выполнения, что обеспечивает достаточную безопасность. Другими словами, виртуализация уровня операционной системы позволяет разбить физические ресурсы компьютера на независимые разделы, которые называются контейнерами или песочницами (sandboxes), только средствами операционной системы.
Виртуализация на уровне операционных систем чаще всего используется при организации систем для хостинга, когда нужно в рамках одной операционной системы предоставлять клиентам несколько виртуальных серверов. Яркими примерами такого вида виртуализации являются такие программные продукты, как Linux-VServer, OpenVZ, Virtuozzo, FreeBSD Jails, Solaris Containers.
6.Виртуализация уровня приложений
Виртуализация приложений значительно отличается от всех остальных видов виртуализации. Целевое приложение (а не вся операционная система) помещается в специальный контейнер, которой эмулирует работу операционной системы с данным приложением. Контейнер содержит все необходимые приложению ресурсы : системные файлы, файлы реестра и конфигурационные файлы. При этом в контейнер помещаются исключительно файлы, необходимые для нормальной работы целевого приложения, что делает размеры контейнера минимальными. Использование изолированного контейнера для виртуализации окружения, необходимого для запуска целевого приложения, позволяет решать конфликты несовместимости программ между собой или между операционными системами. Например, благодаря виртуализации приложений становится возможным установить и запустить несколько экземпляров одной программы разных версий (Microsoft Office 2003 и Microsoft Office 2007 могут одновременно работать без каких-либо конфликтов или Adobe Photoshop CS2 может работать рядом с Adobe Photoshop CS4). Данный метод также позволяет запускать программные продукты, предназначенные для более поздних версий операционной системы в более ранних версиях с сохранением полной совместимости (например, программу для Windows Vista становится возможным запустить в Windows 2000).
Примерами виртуализации приложений являются следующие программные продукты : Microsoft SoftGrid, VMware ThinApp, Altiris Software Virtualization Solution.
Popularity: 39% [?]
Виртуализация
Hyper-V, Microsoft Virtualization, VMware ESX, VMware Virtualization, Xen, Виртуализация
Распечатать запись

Loading ...
Последние комментарии