Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Гипервизор (или монитор виртуальной машины , VMM , виртуализатор ) компьютерное программное обеспечение , микропрограммное обеспечение или аппаратное обеспечение , которое создает и запускает виртуальные машины . Компьютер, на котором гипервизор запускает одну или несколько виртуальных машин, называется хост-машиной , а каждая виртуальная машина называется гостевой машиной . Гипервизор представляет гостевые операционные системы виртуальной операционной платформой и управляет работой гостевых операционных систем. Несколько экземпляров различных операционных систем могут совместно использовать виртуализированные аппаратные ресурсы: например,Экземпляры Linux , Windows и macOS могут работать на одной физической машине x86 . Это контрастирует с виртуализацией на уровне операционной системы , где все экземпляры (обычно называемые контейнерами ) должны совместно использовать одно ядро, хотя гостевые операционные системы могут отличаться по пространству пользователя , например, разные дистрибутивы Linux с одним и тем же ядром.

Термин гипервизор представляет собой вариант супервизора , традиционный термин для ядра в качестве операционной системы : гипервизор является руководителем контролеров, [1] с гипер- , используемой в качестве более сильного варианта супер- . [a] Термин датируется примерно 1970 годом; [2] в более ранней системе CP / CMS (1967) вместо этого использовался термин « управляющая программа» .

Классификация [ править ]

Гипервизоры типа 1 и типа 2

В своей статье 1974 года, формальные требования к виртуализируемой Третьему поколению Архитектуры , Джеральд Дж Popek и Роберт П. Голдбергу классифицированы два типа гипервизора: [3]

Тип 1, нативные или голые гипервизоры
Эти гипервизоры запускаются непосредственно на аппаратном обеспечении хоста для управления оборудованием и гостевыми операционными системами. По этой причине их иногда называют гипервизорами без покрытия. Первые гипервизоры, разработанные IBM в 1960-х годах, были собственными гипервизорами. [4] К ним относятся тестовое программное обеспечение SIMMON и операционная система 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 Kernel основе Virtual Machine (KVM) и FreeBSD «s bhyve являются модули ядра [7] , которые эффективно преобразующие операционной системы хоста на тип-1 гипервизора. [8] В то же время, поскольку дистрибутивы Linux и FreeBSD по-прежнему являются операционными системами общего назначения с приложениями, конкурирующими друг с другом за ресурсы виртуальных машин, KVM и bhyve также могут быть отнесены к гипервизорам второго типа. [9]

Истоки мэйнфреймов [ править ]

Первыми гипервизорами, обеспечивающими полную виртуализацию, были тестовый инструмент SIMMON и одноразовая исследовательская система IBM CP-40 , которая начала производиться в январе 1967 года и стала первой версией операционной системы IBM CP / CMS . CP-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 анонсировала свою серию System / 370 в 1970 году без функции виртуальной памяти, необходимой для виртуализации, но добавила ее в августовском объявлении о расширенных функциях 1972 года. Виртуализация была представлена ​​во всех последующих системах (все современные мэйнфреймы IBM, такие как линейка zSeries , сохраняют обратную совместимость с линейкой IBM S / 360 1960-х годов). Объявление 1972 года также включало VM / 370 , повторную реализацию CP / CMS для S / 370. В отличие от CP / CMS , IBM предоставила поддержку этой версии (хотя она все еще распространялась в виде исходного кода для нескольких выпусков). ВМ означает виртуальную машину, подчеркивая, что все, а не только некоторые, аппаратные интерфейсы виртуализированы. И VM, и CP / CMS получили признание и быстрое развитие в университетах, корпоративных пользователях и поставщиках систем разделения времени , а также в IBM. Пользователи играли активную роль в продолжающейся разработке, предвосхищая тенденции, наблюдаемые в современных проектах с открытым исходным кодом . Однако в серии спорных и ожесточенных битв разделение времени проиграло пакетной обработке из- за политической борьбы IBM, и VM оставалась «другой» операционной системой мэйнфреймов IBM на протяжении десятилетий, уступая MVS . Он получил всплеск популярности и поддержки с 2000 в качестве г / VM продукта, например , в качестве платформы для Linux на IBM Z .

Как упоминалось выше, программа управления виртуальной машиной включает в себя обработчик вызовов гипервизора, который перехватывает инструкции DIAG («Диагностика», код операции x'83 '), используемые в виртуальной машине. Это обеспечивает быстрое невиртуализированное выполнение доступа к файловой системе и других операций (DIAG - это зависящая от модели привилегированная инструкция, не используемая в обычном программировании и, следовательно, не виртуализированная. Поэтому она доступна для использования в качестве сигнала для "хостовая" операционная система). При первой реализации в версии 3.1 CP / CMS такое использование DIAG обеспечивало интерфейс операционной системы, аналогичный инструкции вызова супервизора System / 360 (SVC), но не требовал изменения или расширения системной виртуализации SVC.

В 1985 году IBM представила гипервизор PR / SM для управления логическими разделами (LPAR).

Поддержка операционной системы [ править ]

Несколько факторов привели к возрождению около 2005 года использования технологии виртуализации среди Unix , Linux и других Unix-подобных операционных систем: [11]

  • Расширение аппаратных возможностей, позволяющее каждой отдельной машине выполнять больше одновременной работы
  • Усилия по контролю затрат и упрощению управления за счет консолидации серверов
  • Необходимость управления крупными многопроцессорными и кластерными установками, например, в фермах серверов и фермах рендеринга
  • Повышенная безопасность, надежность и независимость устройств от архитектур гипервизора.
  • Возможность запускать сложные, зависимые от ОС приложения на другом оборудовании или в различных ОС.

Основные поставщики Unix, включая HP , IBM , SGI и Sun Microsystems , продавали виртуализированное оборудование еще до 2000 года. Как правило, это были большие и дорогие системы (в диапазоне многомиллионных долларов на верхнем уровне), хотя виртуализация также была доступна. на некоторых системах низкого и среднего уровня, таких как серверы IBM pSeries , машины серии HP Superdome и серверы Sun / Oracle серии T CoolThreads.

Хотя Solaris всегда была единственной ОС гостевого домена, официально поддерживаемой Sun / Oracle на их гипервизоре логических доменов , с конца 2006 года Linux (Ubuntu и Gentoo) и FreeBSD были перенесены для работы поверх гипервизора (и все могут работать одновременно на одном процессоре, как полностью виртуализированные независимые гостевые ОС). Wind River " Carrier Grade Linux " также работает на гипервизоре Sun. [12] Полная виртуализация на SPARCПроцессоры оказались простыми: с момента своего создания в середине 1980-х годов Sun сознательно очищала архитектуру SPARC от артефактов, которые могли бы препятствовать виртуализации. (Сравните с виртуализацией на процессорах x86 ниже.) [13]

HPE предоставляет виртуальные машины HP Integrity (Integrity VM) для размещения нескольких операционных систем на своих системах Integrity на базе процессоров 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), в системах System / 390 , zSeries , pSeries и iSeries . Для IBM Power Systems гипервизор POWER (PHYP) - это встроенный («голый») гипервизор во встроенном ПО, обеспечивающий изоляцию между разделами LPAR. Емкость процессора предоставляется логическим разделам либо выделенным образом, либо на основе прав, когда неиспользуемая емкость собирается и может быть повторно выделена для загруженных рабочих нагрузок. Для групп LPAR можно управлять мощностью процессора, как если бы они находились в «пуле» - IBM называет эту возможность несколькими пулами общих процессоров (MSPP) и реализует ее на серверах с POWER6.процессор. Распределение емкости LPAR и MSPP можно динамически изменять. Память выделяется каждому LPAR (при инициализации LPAR или динамически) и управляется по адресу гипервизором POWER. Для адресации в реальном режиме операционными системами (AIX, Linux, IBM i) процессоры POWER ( POWER4и далее) разработали возможности виртуализации, в которых аппаратное смещение адреса оценивается с помощью смещения адреса ОС для получения адреса физической памяти. Адаптеры ввода / вывода (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» в виртуальной машине IBM . На самом деле все это одно и то же - системный вызов базового гипервизора. Некоторые микроядра, такие как Mach и L4 , достаточно гибкие, так что возможна « паравиртуализация » гостевых операционных систем.

Встроенные системы [ править ]

Встроенные гипервизоры , ориентированные на встроенные системы и определенные среды операционных систем реального времени (RTOS), разработаны с различными требованиями по сравнению с настольными и корпоративными системами, включая надежность, безопасность и возможности реального времени . Ограниченность ресурсов многих встраиваемых систем, особенно мобильных систем с батарейным питанием, предъявляет дополнительные требования к небольшому объему памяти и низким накладным расходам. Наконец, в отличие от повсеместного распространения архитектуры x86 в мире ПК, в мире встроенных систем используется более широкий спектр архитектур и менее стандартизованные среды. Поддержка виртуализации требует защиты памяти (в виде блока управления памятью).или, по крайней мере, блок защиты памяти) и различие между пользовательским режимом и привилегированным режимом , которое исключает большинство микроконтроллеров . Это по-прежнему оставляет x86 , MIPS , ARM и PowerPC широко используемыми архитектурами во встроенных системах среднего и высокого уровня. [14]

Поскольку производители встраиваемых систем обычно имеют исходный код своих операционных систем, им меньше нужна полная виртуализация в этом пространстве. Вместо этого преимущества в производительности паравиртуализации обычно делают ее предпочтительной технологией виртуализации. Тем не менее, ARM и MIPS недавно добавили полную поддержку виртуализации в качестве опции IP и включили ее в свои последние высокопроизводительные процессоры и версии архитектуры, такие как ARM Cortex-A15 MPCore и ARMv8 EL2.

Другие различия между виртуализацией в серверных / настольных и встроенных средах включают требования к эффективному совместному использованию ресурсов между виртуальными машинами, широкую полосу пропускания, связь между виртуальными машинами с малой задержкой, глобальное представление планирования и управления питанием, а также детальный контроль информации потоки. [15]

Последствия для безопасности [ править ]

Использование технологии гипервизора вредоносными программами и руткитами, устанавливающими себя в качестве гипервизора под операционной системой, известное как гиперджекинг , может затруднить их обнаружение, поскольку вредоносная программа может перехватить любые операции операционной системы (например, ввод пароля) без антивирусное программное обеспечение обязательно его обнаруживает (поскольку вредоносное ПО работает под всей операционной системой). Реализация концепции якобы произошла в лабораторном рутките SubVirt (разработанный совместно Microsoft и исследователями из Мичиганского университета [16] ), а также во вредоносной программе Blue Pill.упаковка. Однако такие утверждения были оспорены другими, которые утверждали, что можно было бы обнаружить наличие руткита на основе гипервизора. [17]

В 2009 году исследователи из Microsoft и Университета штата Северная Каролина продемонстрировали антируткит уровня гипервизора под названием Hooksafe, который может обеспечить общую защиту от руткитов режима ядра . [18]

Заметки [ править ]

  1. ^ super- происходит от латинского, означающего «над», а гипер- от родственного слова в древнегреческом (ὑπέρ), также означающего « над» или « над» .

Ссылки [ править ]

  1. ^ Бернард Голден (2011). Виртуализация для чайников . п. 54 .
  2. ^ "Как появился термин" гипервизор "?" .
  3. ^ Попек, Джеральд Дж .; Голдберг, Роберт П. (1974). «Формальные требования к виртуализируемым архитектурам третьего поколения». Коммуникации ACM . 17 (7): 412–421. DOI : 10.1145 / 361011.361073 .
  4. ^ Мейер, Шеннон (2008). «Виртуализация систем IBM: серверы, системы хранения и программное обеспечение» (PDF) . С. 2, 15, 20 . Проверено 22 декабря 2015 года .
  5. ^ "Архитектура antsleOS - Документы antsle" . docs.antsle.com . Проверено 28 июня 2018 года .
  6. ^ https://www.ibm.com/support/knowledgecenter/POWER6/iphb2/iphb2hypervisor.htm
  7. ^ Декстер, Майкл. "Практический бхиве" . CallForTesting.org . Проверено 24 сентября 2013 года .
  8. ^ Грациано, Чарльз (2011). «Анализ производительности гипервизоров Xen и KVM для размещения проекта Xen Worlds Project» . Кандидатские диссертации и диссертации . Государственный университет Айовы . Проверено 29 января 2013 года .
  9. ^ Pariseau, Бет (15 апреля 2011). «KVM возрождает споры о гипервизорах типа 1 и типа 2» . SearchServerVirtualization . TechTarget . Проверено 29 января 2013 года .
  10. ^ См. Историю CP / CMS для моделирования виртуального оборудования при разработке системы / 370
  11. Лофтус, Джек (19 декабря 2005 г.). «Виртуализация Xen быстро становится« убийственным приложением »с открытым исходным кодом » . TechTarget . Проверено 26 октября 2015 года .
  12. ^ «Wind River для поддержки революционного многопоточного процессора нового поколения UltraSPARC T1» . Новости Wind River (пресс-релиз). Аламеда, Калифорния. 1 ноября 2006 . Проверено 26 октября 2015 года .
  13. ^ Фрич, Лотар; Хусейки, Рани; Алькассар, Аммар. Дополнительные и альтернативные технологии для доверенных вычислений (TC-Erg./-A.), Часть 1, исследование от имени Федерального ведомства по информационной безопасности Германии (BSI) (PDF) (Отчет).
  14. Перейти ↑ Strobl, Marius (2013). Виртуализация для надежных встроенных систем . Мюнхен: GRIN Publishing GmbH. С. 5–6. ISBN 978-3-656-49071-5. Проверено 7 марта 2015 года .
  15. ^ Гернот Heiser (апрель 2008). «Роль виртуализации во встроенных системах» . Proc. 1-й семинар по изоляции и интеграции во встроенных системах (IIES'08) . С. 11–16. Архивировано из оригинального 21 марта 2012 года . Проверено 8 апреля 2009 года .
  16. ^ «SubVirt: внедрение вредоносных программ с виртуальными машинами» (PDF) . Мичиганский университет , Microsoft . 3 апреля 2006 . Проверено 15 сентября 2008 года .
  17. ^ "Развенчание мифа о Голубых таблетках" . Virtualization.info. 11 августа 2006 . Проверено 10 декабря 2010 года .
  18. ^ Ван, Чжи; Цзян, Сюйсянь; Цуй, Вэйдун; Нин, Пэн (11 августа 2009 г.). Противодействие руткитам ядра с помощью облегченной защиты от хуков (PDF) . Труды 16-й конференции ACM по компьютерной и коммуникационной безопасности . CCS '09. Чикаго, Иллинойс, США: ACM . CiteSeerX 10.1.1.147.9928 . DOI : 10.1145 / 1653662.1653728 . ISBN   978-1-60558-894-0. Проверено 11 ноября 2009 года .

Внешние ссылки [ править ]

  • Гипервизоры и виртуальные машины: идеи реализации на архитектуре x86
  • Сравнение производительности гипервизоров , VMware