В лекции рассматриваются следующие вопросы:
Виртуализация – это предоставление набора вычислительных ресурсов или их логического объединения, абстрагированное от аппаратной реализации, и обеспечивающее при этом логическую изоляцию друг от друга вычислительных процессов, выполняемых на одном физическом ресурсе. Это процесс создания виртуальной версии чего-либо.
В широком смысле понятие виртуализации представляет собой сокрытие настоящей реализации какого-либо процесса или объекта от истинного его представления для того, кто им пользуется. Продуктом виртуализации является нечто удобное для использования, на самом деле, имеющее более сложную или совсем иную структуру, отличную от той, которая воспринимается при работе с объектом. Пользователь работает с удобным для себя представлением объекта, и для него не имеет значения, как объект устроен в действительности.
Виртуализация может применяться к:
Виртуализация серверов - это запуск на одном физическом сервере нескольких виртуальных серверов. Сервера представляют собой приложения, запущенные на хостовой операционной системе, которые эмулируют физические устройства сервера.
При виртуализации программное обеспечение используется для имитации наличия оборудования и создания виртуальной компьютерной системы.
В основе виртуализации лежит возможность одного компьютера выполнять работу нескольких компьютеров благодаря распределению его ресурсов по нескольким средам. С помощью виртуальных серверов и виртуальных настольных компьютеров можно разместить несколько ОС и несколько приложений в едином местоположении. Таким образом, физические и географические ограничения перестают иметь какое-либо значение. Помимо энергосбережения и сокращения расходов благодаря более эффективному использованию аппаратных ресурсов, виртуальная инфраструктура обеспечивает высокий уровень доступности ресурсов, более эффективную систему управления, повышенную безопасность и усовершенствованную систему восстановления в критических ситуациях.
При виртуализации программное обеспечение используется для имитации наличия оборудования и создания виртуальной компьютерной системы. Благодаря этому компании могут запускать несколько виртуальных систем, а также несколько операционных систем и приложений на одном сервере. Это может обеспечить экономию от масштаба и повышение эффективности.
Виртуальная машина (ВМ) — это строго изолированный контейнер ПО, содержащий ОС и приложение. Это программная или аппаратная среда, которая скрывает настоящую реализацию какого-либо процесса или объекта от его видимого представления. На каждой виртуальной машине может быть установлена операционная система, на которую могут быть установлены приложения и службы.
Виртуальная машина действует так же, как физический компьютер, и содержит собственные виртуальные (т.е. программные) ОЗУ, жесткий диск и сетевой адаптер.
Каждая автономная ВМ полностью независима.
Наличие нескольких ВМ на одном компьютере обеспечивает возможность работы на одном физическом сервере (узле) нескольких ОС и приложений.
ОС не может различить виртуальную и физическую машины. То же самое можно сказать о приложениях и других компьютерах в сети. Даже сама виртуальная машина считает себя "настоящим" компьютером. Но, несмотря на это виртуальные машины состоят исключительно из программных компонентов и не включают оборудование.
Тонкий слой ПО, называемый гипервизором, отделяет виртуальные машины от физического сервера и по мере необходимости динамически выделяет вычислительные ресурсы каждой виртуальной машине.
Гипервизор также обеспечивает изоляцию операционных систем друг от друга, защиту и безопасность, разделение ресурсов между различными запущенными ОС и управление ресурсами.
Основные свойства ВМ:
Под виртуализацией платформ понимают создание программных систем на основе существующих аппаратно-программных комплексов, зависящих или независящих от них.
Система, предоставляющая аппаратные ресурсы и программное обеспечение, называется хостовой (host), а симулируемые ей системы — гостевыми (guest).
Чтобы гостевые системы могли стабильно функционировать на платформе хостовой системы, необходимо, чтобы программное и аппаратное обеспечение хоста было достаточно надежным и предоставляло необходимый набор интерфейсов для доступа к его ресурсам.
Есть несколько видов виртуализации платформ, в каждом из которых осуществляется свой подход к понятию «виртуализация». Виды виртуализации платформ зависят от того, насколько полно осуществляется симуляция аппаратного обеспечения.
Виды виртуализации платформ:
1. Полная эмуляция (симуляция) (рисунок 12.1).
При таком виде виртуализации виртуальная машина полностью виртуализует все аппаратное обеспечение при сохранении гостевой операционной системы в неизменном виде. Такой подход позволяет эмулировать различные аппаратные архитектуры. Например, можно запускать виртуальные машины с гостевыми системами для x86-процессоров на платформах с другой архитектурой.
Такие эмуляторы также применяют для низкоуровневой отладки операционных систем. Основной минус данного подхода заключается в том, что эмулируемое аппаратное обеспечение существенно замедляет быстродействие гостевой системы, что делает работу с ней очень неудобной, поэтому, кроме как для разработки системного программного обеспечения, а также образовательных целей, такой подход мало где используется.
Примеры продуктов для создания эмуляторов: Bochs (бокс, свободная программа для эмуляции аппаратного обеспечения IBM PC), PearPC, QEMU (без ускорения), Hercules Emulator (эмулирует центральный процессор и небольшое количество периферийных устройств).
Рисунок 12.1 – Полная эмуляция
2. Частичная эмуляция (нативная виртуализация) (Full, Native Virtualization) (рисунок 12.2).
В этом случае виртуальная машина виртуализует лишь необходимое количество аппаратного обеспечения, чтобы она могла быть запущена изолированно. Такой подход позволяет запускать гостевые операционные системы, разработанные только для той же архитектуры, что и у хоста. Таким образом, несколько экземпляров гостевых систем могут быть запущены одновременно.
Виртуализация, при которой используются немодифицированные экземпляры гостевых операционных систем, а для поддержки работы этих ОС служит общий слой эмуляции их исполнения поверх хостовой ОС, в роли которой выступает обычная операционная система.
Эта модель использует виртуальную машину, которая выступает как посредник между гостевой операционной системой и реальным оборудованием. Слово "посредник" в данном случае играет ключевую роль, поскольку VMM (гипервизор) располагается между гостевой ОС и реальным оборудованием. Некоторые инструкции защищенного режима должны перехватываться и обрабатываться внутри гипервизора, поскольку аппаратура не доступна непосредственно из операционных систем, доступ к ней предоставляется через гипервизор.
Этот вид виртуализации позволяет существенно увеличить быстродействие гостевых систем по сравнению с полной эмуляцией и широко используется в настоящее время. В целях повышения быстродействия в платформах виртуализации, использующих данный подход, применяется гипервизор, позволяющая гостевой системе напрямую обращаться к ресурсам аппаратного обеспечения.
К минусам данного вида виртуализации можно отнести зависимость виртуальных машин от архитектуры аппаратной платформы, высокие дополнительные накладные расходы на используемые аппаратные ресурсы, отсутствие учета особенностей гостевых ОС, меньшая, чем нужно, гибкость в использовании аппаратных средств.
К достоинствам данного подхода можно причислить относительную простоту реализации, универсальность и надежность решения; все функции управления берет на себя хост - ОС.
Рисунок 12.2 – Нативная виртуализация
Примеры продуктов для нативной виртуализации: VMware Workstation, VMware Server, VMware ESX Server, Virtual Iron, Virtual PC, VirtualBox, Parallels Desktop и др.
3. Паравиртуализация (рисунок 12.3).
При применении паравиртуализации нет необходимости симулировать аппаратное обеспечение, однако, вместо этого (или в дополнение к этому), используется специальный программный интерфейс (API) для взаимодействия с гостевой операционной системой. Такой подход требует модификации кода гостевой системы.
Паравиртуализация – виртуализация, при которой производится модификация ядра гостевой ОС, выполняется таким образом, что в нее включается новый набор API (application programming interface), через который она может напрямую работать с аппаратурой, не конфликтуя с другими виртуальными машинами.
Системы для паравиртуализации также имеют свой гипервизор, а API-вызовы к гостевой системе, называются «hypercalls» (гипервызовы).
При этом нет необходимости задействовать полноценную ОС в качестве хостового ПО, функции которого в данном случае исполняет специальная система, получившая название гипервизора (hypervisor). Именно этот вариант является сегодня наиболее актуальным направлением развития серверных технологий виртуализации и применяется в VMware ESX Server, Xen (и решениях других поставщиков на базе этой технологии), Microsoft Hyper-V. Достоинства данной технологии заключаются в отсутствии потребности в хостовой ОС – ВМ устанавливаются фактически на "голое железо", а аппаратные ресурсы используются эффективно. Недостатки — в сложности реализации подхода и необходимости создания специализированной ОС-гипервизора.
В настоящее время провайдерами паравиртуализации являются компании XenSource и Virtual Iron, утверждающие, что быстродействие паравиртуализации выше.
Рисунок 12.3 - Паравиртуализация
Источники:
1. ИНТУИТ. Технологии виртуализации. – URL: https://www.intuit.ru/studies/courses/3508/750/lecture/27408?page=1
2. Виртуализация серверов. – URL: https://helpiks.org/6-33816.html