Гипервизор - Hypervisor
А гипервизор (или монитор виртуальной машины, VMM, виртуализатор) компьютер программного обеспечения, прошивка или оборудование что создает и запускает виртуальные машины. Компьютер, на котором гипервизор запускает одну или несколько виртуальных машин, называется хост-машина, и каждая виртуальная машина называется гостевая машина. Гипервизор предоставляет гостевым операционным системам виртуальная операционная платформа и управляет запуском гостевых операционных систем. Несколько экземпляров различных операционных систем могут совместно использовать виртуализированные аппаратные ресурсы: например, Linux, Windows, и macOS все экземпляры могут работать на одном физическом x86 машина. Это контрастирует с виртуализация на уровне операционной системы, где все экземпляры (обычно называемые контейнеры) должны совместно использовать одно ядро, хотя гостевые операционные системы могут отличаться пространство пользователя, например, разные Дистрибутивы Linux с таким же ядром.
Период, термин гипервизор это вариант руководитель, традиционный термин для ядро из Операционная система: гипервизор является супервизором супервизоров,[1] с участием гипер- используется как более сильный вариант супер-.[а] Термин датируется примерно 1970 годом;[2] в более раннем CP / CMS (1967) система, термин Программа управления был использован вместо.
Классификация
В своей статье 1974 г. Формальные требования для виртуализируемых архитектур третьего поколения, Джеральд Дж. Попек и Роберт П. Голдберг классифицировал два типа гипервизора:[3]
- Тип 1, собственные или голые гипервизоры
- Эти гипервизоры запускаются непосредственно на аппаратном обеспечении хоста для управления оборудованием и гостевыми операционными системами. По этой причине их иногда называют оголенный метал гипервизоры. Первые гипервизоры, разработанные IBM в 1960-х годах, были собственными гипервизорами.[4] К ним относятся тестовое программное обеспечение Симмон и CP / CMS операционная система (предшественник IBM z / VM ). Современные аналоги включают AntsleOS,[5] Microsoft Hyper-V и Системное программное обеспечение Xbox One, Nutanix AHV, XCP-ng, Oracle VM Server для SPARC, Oracle VM Server для x86, Гипервизор POWER[6] и VMware ESXi (ранее ESX) и Xen.
- Тип 2 или размещенные гипервизоры
- Эти гипервизоры работают в обычной операционной системе (ОС), как и другие компьютерные программы. Гостевая операционная система работает как процесс на хосте. Гипервизоры типа 2 абстрагируют гостевые операционные системы от основной операционной системы. Parallels Desktop для Mac, QEMU, VirtualBox, VMware Player и VMware Workstation являются примерами гипервизоров типа 2.
Различие между этими двумя типами не всегда очевидно. Например, Linux Виртуальная машина на основе ядра (KVM) и FreeBSD с бхиве находятся модули ядра[7] которые эффективно преобразуют операционную систему хоста в гипервизор типа 1.[8] В то же время, поскольку Дистрибутивы Linux и FreeBSD по-прежнему являются операционными системами общего назначения с приложениями, конкурирующими друг с другом за ресурсы виртуальных машин, KVM и bhyve также могут быть отнесены к гипервизорам второго типа.[9]
Истоки мэйнфреймов
Первые гипервизоры, обеспечивающие полная виртуализация были инструментом тестирования Симмон и одноразовое исследование IBM CP-40 система, которая начала производиться в январе 1967 года и стала первой версией IBM CP / CMS Операционная система. СР-40 бежал на S / 360-40 который был изменен в IBM Кембриджский научный центр для поддержки динамической трансляции адресов - функции, обеспечивающей виртуализацию. До этого времени компьютерное оборудование было виртуализировано только до такой степени, чтобы позволить нескольким пользовательским приложениям работать одновременно, например, в CTSS и IBM M44 / 44X. С CP-40 аппаратное обеспечение государство надзора был виртуализирован, что позволило нескольким операционным системам работать одновременно в отдельных виртуальная машина контексты.
Программисты вскоре внедрили CP-40 (как CP-67 ) для IBM System / 360-67, первая производственная компьютерная система, способная полная виртуализация. IBM впервые поставила эту машину в 1966 году; он включал оборудование таблицы перевода страниц для виртуальной памяти и другие методы, которые позволяли полная виртуализация всех задач ядра, включая ввод-вывод и обработку прерываний. (Обратите внимание, что его "официальная" операционная система, злополучная TSS / 360, не использовала полную виртуализацию.) И CP-40, и CP-67 начали промышленное использование в 1967 году. CP / CMS был доступен клиентам IBM с 1968 до начала 1970-х годов в виде исходного кода без поддержки.
CP / CMS составляли часть попытки IBM создать надежную совместное времяпровождение системы для мэйнфрейм компьютеры. За счет одновременного запуска нескольких операционных систем гипервизор повысил надежность и стабильность системы: даже если одна операционная система выйдет из строя, другие будут продолжать работать без перебоев. Действительно, это даже позволяло бета или экспериментальные версии операционных систем - или даже нового оборудования[10] — для развертывания и отладки, не подвергая опасности стабильную основную производственную систему и не требуя дорогостоящих дополнительных систем разработки.
IBM объявила о своем Система / 370 серии 1970 г. без виртуальная память функция, необходимая для виртуализации, но добавленная в августовском объявлении о расширенных функциях 1972 года. Виртуализация была представлена во всех последующих системах (все современные мэйнфреймы IBM, такие как zСерия линия, сохраняет обратную совместимость с линейкой IBM S / 360 1960-х годов). Объявление 1972 года также включало VM / 370, повторная реализация CP / CMS для S / 370. в отличие CP / CMS, IBM предоставила поддержку этой версии (хотя она все еще распространялась в виде исходного кода для нескольких выпусков). VM означает Виртуальная машина, подчеркивая, что все, а не только некоторые, аппаратные интерфейсы виртуализированы. И VM, и CP / CMS получили раннее признание и быстрое развитие университетов, корпоративных пользователей и совместное времяпровождение поставщиков, а также внутри IBM. Пользователи играли активную роль в постоянном развитии, предвосхищая тенденции, наблюдаемые в современных Открытый исходный код проекты. Однако в серии спорных и ожесточенных битв разделение времени проиграло пакетная обработка из-за политической борьбы IBM, и VM оставалась "другой" операционной системой мэйнфреймов IBM в течение десятилетий, проигрывая MVS. С 2000 года он снова стал популярным и получил поддержку. z / VM продукт, например, в качестве платформы для Linux на IBM Z.
Как упоминалось выше, программа управления виртуальной машиной включает вызов гипервизора обработчик, который перехватывает инструкции DIAG ("Диагностика", код операции x'83 '), используемые в виртуальной машине. Это обеспечивает быстрое невиртуализированное выполнение доступа к файловой системе и других операций (DIAG - это привилегированная инструкция, зависящая от модели, не используется в обычном программировании и, следовательно, не виртуализирована. Поэтому она доступна для использования в качестве сигнала для "хостовая" операционная система). При первом внедрении в CP / CMS в версии 3.1 использование DIAG обеспечивало интерфейс операционной системы, аналогичный Система / 360 Инструкция по вызову супервизора (SVC), но это не потребовало изменения или расширения системной виртуализации SVC.
В 1985 году IBM представила PR / SM гипервизор для управления логические разделы (LPAR).
Поддержка операционной системы
Несколько факторов привели к возрождению примерно в 2005 году использования виртуализация технологии среди Unix, Linux, и другие Unix-подобный операционные системы:[11]
- Расширение возможностей оборудования, позволяющее каждой отдельной машине выполнять больше одновременной работы
- Усилия по контролю затрат и упрощению управления за счет консолидации серверов
- Необходимость контролировать большие мультипроцессор и кластер установки, например в серверные фермы и рендерить фермы
- Повышенная безопасность, надежность и независимость устройства, возможная от архитектур гипервизора
- Возможность запускать сложные, зависимые от ОС приложения на другом оборудовании или в различных ОС.
Основные поставщики Unix, включая HP, IBM, SGI и Sun Microsystems, продавали виртуализированное оборудование еще до 2000 года. Как правило, это были большие и дорогие системы (в диапазоне многомиллионных долларов на высоком уровне), хотя виртуализация также была доступна в некоторых системах низкого и среднего уровня, таких как IBM pSeries серверы, HP Superdome серийные машины и солнце /Oracle Серверы CoolThreads серии T.
Несмотря на то что Солярис всегда была единственной ОС гостевого домена, официально поддерживаемой Sun / Oracle на их Логические домены гипервизор, по состоянию на конец 2006 г.[Обновить], Linux (Ubuntu и Gentoo) и FreeBSD были перенесены для работы поверх гипервизора (и могут работать одновременно на одном процессоре, как полностью виртуализированные независимые гостевые ОС). Wind River »Linux операторского класса "также работает на гипервизоре Sun.[12] Полная виртуализация на SPARC Процессоры оказались простыми: с момента своего создания в середине 1980-х годов Sun сознательно очищала архитектуру SPARC от артефактов, которые могли бы препятствовать виртуализации. (Сравните с виртуализацией на процессорах x86 ниже.)[13]
HPE предоставляет Виртуальные машины HP Integrity (Integrity VM) для размещения нескольких операционных систем на их Itanium системы обеспечения целостности. Itanium может работать HP-UX, Linux, Windows и OpenVMS, и эти среды также поддерживаются как виртуальные серверы на платформе HP Integrity VM. В операционной системе HP-UX размещен уровень гипервизора Integrity VM, который позволяет использовать многие важные функции HP-UX и обеспечивает существенное различие между этой платформой и другими массовыми платформами, такими как горячая замена процессора, горячая замена памяти и динамическое ядро. обновления без перезагрузки системы. Хотя гипервизор Integrity VM в значительной степени использует HP-UX, он на самом деле представляет собой гибрид, который работает на «голом железе» во время выполнения гостевых систем. Настоятельно не рекомендуется запускать обычные приложения HP-UX на хосте Integrity VM,[кем? ] поскольку Integrity VM реализует собственные политики управления памятью, планирования и ввода-вывода, которые настроены для виртуальных машин и не так эффективны для обычных приложений. HPE также обеспечивает более жесткое разделение своих систем Integrity и HP9000 с помощью VPAR и nPar технология, первая из которых предлагает разделение общих ресурсов, а вторая предлагает полную изоляцию ввода-вывода и обработки. Гибкость среды виртуальных серверов (VSE) уступила место ее более частому использованию в новых развертываниях.[нужна цитата ]
IBM предоставляет технологию разделов виртуализации, известную как логическое разделение (LPAR) на Система / 390, zСерия, pSeries и iSeries системы. Для IBM Power Systems гипервизор POWER (PHYP) является встроенным гипервизором (без операционной системы) и обеспечивает изоляцию между разделами LPAR. Емкость процессора предоставляется логическим разделам либо выделенным образом, либо на основе прав, когда неиспользуемая емкость собирается и может быть повторно выделена для загруженных рабочих нагрузок. Процессорной мощностью групп LPAR можно управлять, как если бы они находились в «пуле» - IBM называет эту возможность несколькими пулами общих процессоров (MSPP) и реализует ее на серверах с МОЩНОСТЬ6 процессор. Распределение емкости LPAR и MSPP можно динамически изменять. Память выделяется каждому LPAR (при инициации LPAR или динамически) и управляется по адресу гипервизором POWER. Для адресации в реальном режиме операционными системами (AIX, Linux, IBM i) МОЩНОСТЬ процессоры (МОЩНОСТЬ4 и далее) разработали возможности виртуализации, в которых аппаратное смещение адреса оценивается с помощью смещения адреса ОС для получения адреса физической памяти. Адаптеры ввода / вывода (I / O) могут принадлежать исключительно LPAR или совместно использоваться LPAR через раздел устройства, известный как Virtual I / O Server (VIOS). Гипервизор Power обеспечивает высокий уровень надежности, доступности и удобства обслуживания (RAS), облегчая горячее добавление / замену многих частей (в зависимости от модели: процессоры, память, адаптеры ввода-вывода, нагнетатели, блоки питания, диски, системные контроллеры и т. Д. )
Аналогичные тенденции наблюдались с серверными платформами x86 / x86-64, где Открытый исходный код такие проекты как Xen возглавили усилия по виртуализации. К ним относятся гипервизоры, построенные на ядрах Linux и Solaris, а также пользовательские ядра. Поскольку эти технологии охватывают от больших систем до настольных компьютеров, они описаны в следующем разделе.
системы x86
Начиная с 2005 года, поставщики ЦП добавили в свои продукты поддержку аппаратной виртуализации, например: Intel VT-x (кодовое имя Vanderpool) и AMD-V (кодовое название Pacifica).
Альтернативный подход требует модификации гостевой операционной системы для выполнения системных вызовов гипервизора, а не выполнения машинных инструкций ввода-вывода, которые гипервизор имитирует. Это называется паравиртуализация в Xen, "гипервызов" в Parallels Workstation, и "DIAGNOSE code" в IBM ВМ. На самом деле все это одно и то же - системный вызов базового гипервизора. Некоторые микроядра, такие как Мах и L4 достаточно гибкие, чтобы "паравиртуализация "гостевых операционных систем".
Встроенные системы
Встроенные гипервизоры, таргетинг встроенные системы и некоторые операционная система реального времени (RTOS), разработаны с различными требованиями по сравнению с настольными и корпоративными системами, включая надежность, безопасность и в реальном времени возможности. Ограниченность ресурсов многих встраиваемых систем, особенно мобильных систем с батарейным питанием, предъявляет дополнительные требования к небольшому объему памяти и низким накладным расходам. Наконец, в отличие от повсеместного распространения архитектуры x86 в мире ПК, во встраиваемом мире используется более широкий спектр архитектур и менее стандартизованные среды. Для поддержки виртуализации требуется защита памяти (в виде блок управления памятью или хотя бы блок защиты памяти) и различие между пользовательский режим и привилегированный режим, что исключает большинство микроконтроллеры. Это все еще оставляет x86, MIPS, РУКА и PowerPC как широко распространенные архитектуры во встроенных системах среднего и высокого уровня.[14]
Поскольку производители встраиваемых систем обычно имеют исходный код для своих операционных систем, им меньше требуется полная виртуализация в этом пространстве. Вместо этого преимущества производительности паравиртуализация сделать это обычно предпочтительной технологией виртуализации. Тем не менее, ARM и MIPS недавно добавили полную поддержку виртуализации в качестве опции IP и включили ее в свои последние высокопроизводительные процессоры и версии архитектуры, такие как ARM Cortex-A15 MPCore и ARMv8 EL2.
Другие различия между виртуализацией в серверных / настольных и встроенных средах включают требования к эффективному совместному использованию ресурсов виртуальными машинами, широкую полосу пропускания, связь между виртуальными машинами с малой задержкой, глобальное представление планирования и управления питанием, а также детальный контроль информации. потоки.[15]
Последствия для безопасности
Использование технологии гипервизора вредоносное ПО и руткиты устанавливая себя как гипервизор под операционной системой, известный как гиперджекинг, может усложнить их обнаружение, поскольку вредоносная программа может перехватить любые операции операционной системы (например, ввод пароля) без необходимости ее обнаружения антивирусным программным обеспечением (поскольку вредоносная программа работает под всей операционной системой). Реализация концепции якобы произошла в SubVirt лабораторный руткит (разработан совместно Microsoft и университет Мичигана исследователи[16]), а также в Вредоносная программа Blue Pill упаковка. Однако такие утверждения были оспорены другими, которые утверждали, что можно было бы обнаружить наличие руткита на основе гипервизора.[17]
В 2009 году исследователи из Microsoft и Университет штата Северная Каролина продемонстрировал антируткит на уровне гипервизора под названием Hooksafe который может обеспечить общую защиту от режима ядра руткиты.[18]
Примечания
- ^ супер- происходит от латинского, что означает «выше», а гипер- из родственный срок в Древнегреческий (ὑπέρ), что также означает над или над.
Рекомендации
- ^ Бернар Голден (2011). Виртуализация для чайников. п.54.
- ^ «Как появился термин« гипервизор »?».
- ^ Попек, Джеральд Дж .; Голдберг, Роберт П. (1974). «Формальные требования к виртуализируемым архитектурам третьего поколения». Коммуникации ACM. 17 (7): 412–421. Дои:10.1145/361011.361073.
- ^ Мейер, Шеннон (2008). «Виртуализация IBM Systems: серверы, системы хранения и программное обеспечение» (PDF). стр.2, 15, 20. Получено 22 декабря, 2015.
- ^ "Архитектура antsleOS - Документы Антсле". docs.antsle.com. Получено 28 июня, 2018.
- ^ https://www.ibm.com/support/knowledgecenter/POWER6/iphb2/iphb2hypervisor.htm
- ^ Декстер, Майкл. "Практический бхиве". CallForTesting.org. Получено 24 сентября, 2013.
- ^ Грациано, Чарльз (2011). «Анализ производительности гипервизоров Xen и KVM для размещения проекта Xen Worlds Project». Кандидатские диссертации и диссертации. Государственный университет Айовы. Получено 29 января, 2013.
- ^ Паризо, Бет (15 апреля 2011 г.). «KVM возрождает споры о гипервизорах типа 1 и типа 2». SearchServerVirtualization. TechTarget. Получено 29 января, 2013.
- ^ Увидеть История CP / CMS для виртуально-аппаратного моделирования при разработке Система / 370
- ^ Лофтус, Джек (19 декабря 2005 г.). "Виртуализация Xen быстро становится смертоносным приложением с открытым исходным кодом'". TechTarget. Получено 26 октября, 2015.
- ^ «Wind River для поддержки революционного многопоточного процессора нового поколения UltraSPARC T1». Новости Wind River (Пресс-релиз). Аламеда, Калифорния. 1 ноября 2006 г.. Получено 26 октября, 2015.
- ^ Фрич, Лотар; Хусейки, Рани; Алькассар, Аммар. Дополнительные и альтернативные технологии для доверенных вычислений (TC-Erg./-A.), Часть 1, исследование от имени Федерального ведомства по информационной безопасности Германии (BSI) (PDF) (Отчет).
- ^ Штробль, Мариус (2013). Виртуализация для надежных встроенных систем. Мюнхен: GRIN Publishing GmbH. С. 5–6. ISBN 978-3-656-49071-5. Получено 7 марта, 2015.
- ^ Гернот Хайзер (Апрель 2008 г.). «Роль виртуализации во встроенных системах». Proc. 1-й семинар по изоляции и интеграции во встроенных системах (IIES'08). С. 11–16. Архивировано из оригинал 21 марта 2012 г.. Получено 8 апреля, 2009.
- ^ «SubVirt: внедрение вредоносного ПО с виртуальными машинами» (PDF). университет Мичигана, Microsoft. 3 апреля 2006 г.. Получено 15 сентября, 2008.
- ^ "Развенчание мифа о голубых таблетках". Virtualization.info. 11 августа 2006 г.. Получено 10 декабря, 2010.
- ^ Ван, Чжи; Цзян, Сюйсянь; Цуй, Вэйдун; Нин, Пэн (11 августа 2009 г.). Противодействие руткитам ядра с помощью облегченной защиты от хуков (PDF). Материалы 16-й конференции ACM по компьютерной и коммуникационной безопасности. CCS '09. Чикаго, Иллинойс, США: ACM. CiteSeerX 10.1.1.147.9928. Дои:10.1145/1653662.1653728. ISBN 978-1-60558-894-0. Получено 11 ноября, 2009.