Виртуализа́ция в вычислениях — процесс представления набора вычислительных ресурсов, или их логического объединения, который даёт какие-либо преимущества перед оригинальной конфигурацией. Это новый виртуальный взгляд на ресурсы, не ограниченных реализацией, географическим положением или физической конфигурацией составных частей. Обычно виртуализированные ресурсы включают в себя вычислительные мощности и хранилище данных.
Примером виртуализации являются симметричные мультипроцессорные компьютерные архитектуры, которые используют более одного процессора. Операционные системы обычно конфигурируются таким образом, чтобы несколько процессоров представлялись как единый процессорный модуль. Вот почему программные приложения могут быть написаны для одного логического (виртуального) вычислительного модуля, что значительно проще, чем работать с большим количеством различных процессорных конфигураций.
Концепция виртуальной среды
Новое направление виртуализации, которое дает общую целостную картину всей инфраструктуры сети с помощью техники агрегации.
Типы виртуализации
Виртуализация — это общий термин, охватывающий абстракцию ресурсов для многих аспектов вычислений. Типы виртуализации приводятся ниже.[1]
Программная виртуализация
Динамическая трансляция
При динамической трансляции (бинарной трансляции) проблемные команды гостевой OC перехватываются гипервизором. После того как эти команды заменяются на безопасные, происходит возврат управления гостевой ОС.
Паравиртуализация
Паравиртуализация — техника виртуализации, при которой гостевые операционные системы подготавливаются для исполнения в виртуализированной среде, для чего их ядро незначительно модифицируется. Операционная система взаимодействует с программой гипервизора, который предоставляет ей гостевой API, вместо использования напрямую таких ресурсов, как таблица страниц памяти.
Метод паравиртуализации позволяет добиться более высокой производительности, чем метод динамической трансляции.
Метод паравиртуализации применим лишь в том случае, если гостевые ОС имеют открытые исходные коды, которые можно модифицировать согласно лицензии, или же гипервизор и гостевая ОС разработаны одним производителем с учетом возможности паравиртуализации гостевой ОС (хотя при условии того, что под гипервизором может быть запущен гипервизор более низкого уровня, то и паравиртуализации самого гипервизора).
Впервые термин возник в проекте Denali.
Аппаратная виртуализация
Преимущества
- Упрощение разработки программных платформ виртуализации за счет предоставления аппаратных интерфейсов управления и поддержки виртуальных гостевых систем. Это уменьшает трудоемкость и время на разработку систем виртуализации.
- Возможность увеличения быстродействия платформ виртуализации. Управление виртуальными гостевыми системами осуществляет напрямую небольшой промежуточный слой программного обеспечения, гипервизор, что дает увеличение быстродействия.
- Улучшается защищённость, появляется возможность переключения между несколькими запущенными независимыми платформами виртуализации на аппаратном уровне. Каждая из виртуальных машин может работать независимо, в своем пространстве аппаратных ресурсов, полностью изолированно друг от друга. Это позволяет устранить потери быстродействия на поддержание хостовой платформы и увеличить защищенность.
- Гостевая система становится не привязана к архитектуре хостовой платформы и к реализации платформы виртуализации. Технология аппаратной виртуализации делает возможным запуск 64-битных гостевых систем на 32-битных хостовых системах (с 32-битными средами виртуализации на хостах).
Реализации:
Технологии:
Области применения виртуализации
Виртуализация уровня ОС
- Виртуализация на уровне операционной системы — виртуализирует физический сервер на уровне ОС, позволяя запускать изолированные и безопасные виртуальные серверы на одном физическом сервере. Эта технология не позволяет запускать ОС с ядрами, отличными от типа ядра базовой ОС. При виртуализации на уровне операционной системы не существует отдельного слоя гипервизора. Вместо этого сама хостовая операционная система отвечает за разделение аппаратных ресурсов между несколькими виртуальными серверами и поддержку их независимости друг от друга.
Виртуальные машины
- Виртуальная машина — это окружение, которое представляется для «гостевой» операционной системы, как аппаратное. Однако на самом деле это программное окружение, которое эмулируется программным обеспечением хостовой системы. Эта эмуляция должна быть достаточно надёжной, чтобы драйверы гостевой системы могли стабильно работать. При использовании паравиртуализации, виртуальная машина не эмулирует аппаратное обеспечение, а, вместо этого, предлагает использовать специальное API.
- Примеры применения
- тестовые лаборатории и обучение: Тестированию в виртуальных машинах удобно подвергать приложения, влияющие на настройки операционных систем, например инсталляционные приложения. За счёт простоты в развёртывании виртуальных машин, они часто используются для обучения новым продуктам и технологиям.
- распространение предустановленного ПО: многие разработчики программных продуктов создают готовые образы виртуальных машин с предустановленными продуктами и предоставляют их на бесплатной или коммерческой основе. Такие услуги предоставляют Vmware VMTN или Parallels PTN
Виртуализация серверов
- размещение нескольких логических серверов в рамках одного физического (консолидация)
- объединение нескольких физических серверов в один логический для решения определенной задачи. Пример: Oracle Real Application Cluster, grid-технология, кластеры высокой производительности.
Кроме того, виртуализация сервера упрощает восстановление вышедших из строя систем на любом доступном компьютере, вне зависимости от его конкретной конфигурации.
Виртуализация рабочих станций
Виртуализация ресурсов
- Разделение ресурсов (partitioning). Виртуализация ресурсов может быть представлена как разделение одного физического сервера на несколько частей, каждая из которых видна для владельца в качестве отдельного сервера. Не является технологией виртуальных машин, осуществляется на уровне ядра ОС.
В системах с гипервизором второго типа обе ОС (гостевая и гипервизора) отнимают физические ресурсы, и требует отдельного лицензирования. Виртуальные серверы, работающие на уровне ядра ОС, почти не теряют в быстродействии, что дает возможность запускать на одном физическом сервере сотни виртуальных, не требующих дополнительных лицензий (например как сейчас делает Microsoft)
Разделяемое дисковое пространство или пропускной канал сети на некоторое количество меньших составляющих, легче используемых ресурсов того же типа.
Например, к реализации разделения ресурсов можно отнести OpenSolaris Network Virtualization and Resource Control (Проект Crossbow), позволяющий создавать несколько виртуальных сетевых интерфейсов на основе одного физического.
- Агрегация, распределение или добавление множества ресурсов в большие ресурсы или объединение ресурсов. Например, симметричные мультипроцессорные системы объединяют множество процессоров; RAID и дисковые менеджеры объединяют множество дисков в один большой логический диск; RAID и сетевое оборудование использует множество каналов, объединённых так, чтобы они представлялись, как единый широкополосный канал. На мета-уровне компьютерные кластеры делают все вышеперечисленное. Иногда сюда же относят сетевые файловые системы абстрагированные от хранилищ данных на которых они построены, например, Vmware VMFS, Solaris/OpenSolaris ZFS, NetApp WAFL
Виртуализация приложений
- Виртуализация приложений — процесс использования приложения преобразованного из требующего установки в ОС в не требующий (требуется только запустить). Для виртуализации приложений программное обеспечение виртуализатора определяет при установке виртуализуемого приложения, какие требуются компоненты ОС и их эмулирует, таким образом, создаётся необходимая специализированная среда для конкретно этого виртуализируемого приложения и, тем самым, обеспечивается изолированность работы этого приложения. Для создания виртуального приложения виртуализируемое помещается в контейнер, оформленный, как правило, в виде папки. При запуске виртуального приложения запускается виртуализируемое приложение и контейнер, являющийся для него рабочей средой. Рабочая среда запускается и предоставляет локальные ранее созданные ресурсы, которое включает в себя ключи реестра, файлы и другие компоненты, необходимые для запуска и работы приложения. Такая виртуальная среда работает как прослойка между приложением и операционной системой, что позволяет избежать конфликтов между приложениями. Виртуализацию приложений обеспечивают, например, программы SoftGrid[2] и VMWare ThinApp
- Достоинства
- изолированность исполнения приложений: отсутствие несовместимостей и конфликтов;
- каждый раз в первозданном виде: не загромождается реестр, нет конфигурационных файлов — необходимо для сервера;
- меньшие ресурсозатраты по сравнению с эмуляцией всей ОС.
Примечания
- Виртуальные машины 2007. КомпьютерПресс 9’2007
- Джон Сэвилл — Виртуальные приложения SoftGrid. — 25.12.07
См. также
Ссылки
- Обзор методов, архитектур и реализаций виртуализации (Linux), www.ibm.com
- Виртуальные машины 2007.Наталия Елманова, Сергей Пахомов, КомпьютерПресс 9’2007
- Что такое виртуализация? Юрий Медведев, PC Magazine, 16.07.2007
- Виртуализация серверов
- Виртуализация серверов. Нейл Макаллистер, InfoWorld
- Виртуализация серверов стандартной архитектуры. Леонид Черняк, Открытые системы
- Альтернативы лидерам в канале 2009 г, 17 августа 2009
- Аппаратная виртуализация
- Технологии аппаратной виртуализации, ixbt.com
- Спирали аппаратной виртуализации. Александр Александров, Открытые системы