Для виртуализации операционных систем применяется серия подходов, которые по типу реализации подразделяются на программные и аппаратные.nnРассмотрим каждую из данных типов виртуализации по отдельности. Начнем с программных методов.nnДинамическая трансляция подразумевает под собой перехват команд гостевой операционной системы, вследствие чего гипервизор модифицирует их и возвращает гостевой ОС. Таким образом, гостевая операционная система фактически становится одним из приложений основной операционной системы, из-под которой она запущена. Гостевая система фактически считает, что работает на реальной физической платформе.nnПаравиртуализация — технология виртуализации, при которой гостевые операционные системы подготавливаются для исполнения в виртуализированной среде, для чего их ядро незначительно модифицируется. Операционная система взаимодействует с программой гипервизора, который предоставляет ей гостевой API. Делается это для того, чтобы различные виртуальные машины могли работать с аппаратурой не конфликтуя с другими виртуальными машинами. Метод паравиртуализации позволяет добиться более высокой производительности, чем метод динамической трансляции. Основным недостатком данного метода является то, что он применим лишь в том случае, если гостевые операционные системы имеют открытые исходные коды, которые можно модифицировать согласно лицензии. Или же гипервизор и гостевая операционная система разработаны одним производителем, с учётом возможности паравиртуализации гостевой системы (хотя при условии того, что под гипервизором может быть запущен гипервизор более низкого уровня, то и паравиртуализации самого гипервизора). Из плюсов можно выделить отсутствие необходимости использования полноценной операционной системы в качестве основной, достаточно использовать специальную систему (гипервизор). И, как следствие, аппаратные ресурсы используются виртуальными средами более эффективно, так как фактически работают напрямую, практически без посредничества основной операционной системы.nnn
Рисунок 1 Схема паравиртуализации
nВ случае полной виртуализации используются не модифицированные экземпляры гостевых операционных систем. С целью поддержки работы этих гостевых систем используют общий слой эмуляции поверх основной операционной системы. Подобная технология применяется, к примеру, в таких приложениях как VMware Workstation, Parallels Desktop, MS Virtual PC, Virtual Iron. Среди достоинств данного метода виртуализации можно выделить относительную простоту реализации. Данное решение является достаточно надежным и универсальным. Все функции управления берет на себя основная операционная система. Помимо преимуществ, есть и недостатки. Среди них — высокие дополнительные нагрузки на аппаратные ресурсы и достаточно слабая гибкость в использовании аппаратных средств.nnn
Рисунок 2 Схема полной виртуализации
nВстроенная виртуализация — новый метод, базирующийся на применении аппаратно-поддерживаемых возможностей виртуализации, что позволяет пользователям использовать любые версии ОС в сочетании с различными вариантами рабочих сред. По сути, встроенная виртуализация представляет собой полную виртуализацию, реализованную на аппаратном уровне. Данный подход был реализован в рамках проекта BlueStacks Multi-OS.n
n
Рисунок 3 Схема виртуализации операционной системы
nНаиболее распространенным, в данный момент, формой виртуализации является виртуализация операционной системы. Виртуальная операционная система представляет собой совмещение нескольких операционных систем, функционирующих на одной аппаратной основе. Основным достоинством данного метода является высокая эффективность использования аппаратных ресурсов. Схематически принцип работы представлен на рисунке 3.nnРезультатом виртуализации приложения является преобразование из требующего установки в операционной системы приложения в не требующее, автономное приложение. Программное обеспечение виртуализатора определяет при установке виртуализируемого приложении необходимые для работы компоненты операционной системы и эмулирует их. В результате данных действий создается специализированная среда для конкретного приложения, что обеспечивает полную изолированность работы запускаемого приложения. Для создания подобного приложения, виртуализируемое обеспечение помещается в специальную папку. При запуске виртуального приложения запускается само программное обеспечение и папка, являющаяся для него рабочей средой. Таким образом, создается некий барьер между приложением и операционной системой, что позволяет исключить возникновение конфликтов между программным обеспечением и операционной системой. Виртуализацию приложений осуществляют такие программы, как Citrix XenApp, SoftGrid и VMWare ThinApp.nnКлассический процесс программной виртуализации подразумевает под собой наличие основной операционной системы, поверх которой запускается платформа виртуализации. Именно эта платформа берет на себя работу по эмуляции аппаратных компонентов и управляет ресурсами в отношении гостевой системы.nnДанные методы достаточно сложны в реализации. Их основным недостатком является существенные потери производительности, связанные с потреблением ресурсов основной системой.nnТакже следует отметить факт значительного снижения безопасности, ведь вследствие получения контроля над базовой операционной системой, автоматически перехватывается контроль над гостевыми системами.nnВ отличии от программных методов, с помощью аппаратных средств виртуализации возможно получение изолированных гостевых система, управляемых гипервизором напрямую.nnАппаратный процесс виртуализации практически не имеет никаких кардинальных отличий от программного. По факту, это процесс виртуализации, подкрепленный аппаратной поддержкой.nnТакже следует рассмотреть основные типы виртуализации различных компонентов IT-инфраструктуры.nnКогда речь идет о виртуализации ресурсов подразумевается разделение одного физического сервера на несколько. Каждая отдельная часть отображается у пользователя как отдельный сервер. Данный метод реализуется на уровне ядра операционной системы. Основным достоинством подобного метода является тот факт, что виртуальные серверы, функционирующие на уровне ядра операционной системы, являются такими же быстродействующими, что позволяет запускать на одном физическом сервере сотни виртуальных.nnПримером реализации разделения ресурсов можно отнести проект OpenSolaris Network Virtualization and Resource Control, позволяющий создавать несколько виртуальных сетевых интерфейсов на основе одного физического.nnТакже данный процесс подразумевает слияние, распределение и объединение ресурсов. К примеру, симметричные мультипроцессорные системы объединяют множество процессоров; RAID и дисковые менеджеры объединяют множество дисков в один большой логический диск. Зачастую к данному подтипу также относятся сетевые файловые системы, абстрагированные от хранилищ данных, на которых они построены (Vmware VMFS, Solaris/OpenSolaris ZFS, NetApp WAFL).