Виртуализация оборудования - это виртуализация из компьютеры как законченные аппаратные платформы, определенные логические абстракции их компонентов или только функциональные возможности, необходимые для работы различных операционных систем. Виртуализация скрывает физические характеристики вычислительной платформы от пользователей, вместо этого представляя абстрактную вычислительную платформу. Первоначально программное обеспечение, которое управляло виртуализацией, называлось «управляющей программой», но со временем предпочтение было отдано терминам «гипервизор » или «монитор виртуальной машины».
Термин «виртуализация» был придуман в 1960-х годах для обозначения виртуальной машины (иногда называемой «псевдо-машиной»), термин, который сам восходит к экспериментальной системе IBM M44 / 44X. В последнее время создание виртуальных машин и управление ими стали называть «виртуализацией платформы» или «виртуализацией серверов».
Виртуализация платформы выполняется на данной аппаратной платформе программным обеспечением хоста (управляющей программой), которое создает смоделированную компьютерную среду, виртуальную машину (ВМ), для своего гостевого программного обеспечения. Гостевое программное обеспечение не ограничивается пользовательскими приложениями; многие хосты позволяют запускать полные операционные системы. Гостевое программное обеспечение работает так, как если бы оно работало непосредственно на физическом оборудовании, с некоторыми примечательными оговорками. Доступ к физическим системным ресурсам (таким как сетевой доступ, дисплей, клавиатура и дисковое хранилище ) обычно управляется на более строгом уровне, чем хост-процессор и системная память. Гости часто ограничены в доступе к определенным периферийным устройствам или могут быть ограничены подмножеством собственных возможностей устройства, в зависимости от политики доступа к оборудованию, реализованной хостом виртуализации.
Виртуализация часто приводит к снижению производительности как в отношении ресурсов, требуемых для запуска гипервизора, так и в плане снижения производительности на виртуальной машине по сравнению с запуском собственного ПО на физической машине.
Однако, когда несколько виртуальных машин одновременно работают на одном физическом хосте, каждая виртуальная машина может демонстрировать различную и нестабильную производительность, которая в значительной степени зависит от наложенной рабочей нагрузки в системе другими виртуальными машинами. Эту проблему можно решить с помощью соответствующих методов установки для временной изоляции виртуальных машин..
Существует несколько подходов к виртуализации платформы.
Примеры вариантов использования виртуализации:
В полной виртуализации виртуальная машина имитирует достаточно оборудования, чтобы позволить немодифицированному гостю "ОС, разработанная для изолированного выполнения того же набора инструкций . Этот подход был впервые применен в 1966 году с IBM CP-40 и CP-67, предшественниками семейства VM.
В виртуализации с аппаратной поддержкой аппаратное обеспечение обеспечивает поддержку архитектуры, которая упрощает создание монитора виртуальных машин и позволяет изолированно запускать гостевые ОС. Аппаратная виртуализация была впервые представлена в IBM System / 370 в 1972 году для использования с VM / 370, первой операционной системой виртуальных машин.
В 2005 и 2006 годах Intel и AMD предоставили дополнительное оборудование для поддержки виртуализации. Sun Microsystems (теперь Oracle Corporation ) добавила аналогичные функции в свои процессоры UltraSPARC T-Series в 2005 году.
В 2006 году 32- и 64-разрядные версии первого поколения Было обнаружено, что поддержка оборудования x86 редко дает преимущества в производительности по сравнению с программной виртуализацией.
При паравиртуализации виртуальная машина не обязательно имитирует оборудование, но вместо этого (или в дополнение) предлагает специальный API это можно использовать только путем изменения «гостевой» ОС. Для этого должен быть доступен исходный код «гостевой» ОС. Если доступен исходный код, достаточно заменить конфиденциальные инструкции вызовами API-интерфейсов VMM (например, «cli» на «vm_handle_cli ()»), затем повторно скомпилировать ОС и использовать новые двоичные файлы. Этот системный вызов гипервизора называется «гипервызовом» в TRANGO и Xen ; он реализуется с помощью аппаратной инструкции DIAG («диагностировать») в CMS IBM под VM (откуда возник термин гипервизор).
В виртуализации на уровне операционной системы физический сервер виртуализируется на уровне операционной системы, что позволяет нескольким изолированным и безопасным виртуализированным серверам работать на одном физическом сервере. «Гостевые» операционные среды используют тот же запущенный экземпляр операционной системы, что и хост-система. Таким образом, то же самое ядро операционной системы также используется для реализации «гостевых» сред, и приложения, работающие в данной «гостевой» среде, рассматривают его как автономную систему.
A аварийного восстановления (DR) часто считается хорошей практикой для платформы аппаратной виртуализации. Аварийное восстановление среды виртуализации может обеспечить высокую степень доступности в широком диапазоне ситуаций, нарушающих нормальные бизнес-операции. В ситуациях, когда важна непрерывная работа платформ виртуализации оборудования, план аварийного восстановления может обеспечить выполнение требований к производительности оборудования и обслуживанию. План аварийного восстановления аппаратной виртуализации включает в себя как аппаратную, так и программную защиту различными методами, в том числе описанными ниже.