Виртуализация VMware

VMware Технологии

VMware

Технология VMware основана на ключевой концепции полной виртуализации. Либо в среде рабочего стола с помощью гипервизора типа II , либо в серверной среде с помощью гипервизора типа I VMware реализует полную виртуализацию. В обоих случаях возможна полная виртуализация посредством прямого выполнения нечувствительных инструкций и двоичной трансляции чувствительных инструкций или аппаратных ловушек, что позволяет виртуализовать архитектуру, подобную x86.

Полная виртуализация и двоичная трансляция

Широко используется VMware, поскольку она стремится виртуализировать архитектуры x86, которые работают без изменений поверх своих гипервизоров. С внедрением аппаратной виртуализации полная виртуализация становится возможной за счёт поддержки оборудования. Но раньше гостевые операционные системы x86, не модифицированные в виртуализированной среде, могли выполняться только с использованием динамической двоичной трансляции.

Поскольку набор чувствительных инструкций не является подмножеством привилегированных инструкций, архитектура архитектуры x86 не удовлетворяет первой теореме виртуализации. Из-за этого отличается поведение, когда такие инструкции не выполняются в кольце 0, что является нормальным для среды виртуализации, где гостевая ОС работает в кольце 1. В основном создаётся ловушка и метод, с помощью которого она управляет дифференциацией решение, в котором применяется виртуализация для x86. При динамической двоичной трансляции ловушка обнаруживает трансляцию прерываний или инструкций-нарушителей в соответствующий набор инструкций, который устанавливает ту же цель без создания исключений. Кроме того, для увеличения производительности соответствующий набор инструкций кэшируется, поэтому перевод больше не важен для дальнейших встреч с теми же инструкциями.

VMware: полная виртуализация

Рисунок — Эталонная модель полной виртуализации

Основное преимущество этого подхода заключается в том, что гости могут работать в виртуализированной среде без изменений, что является важной функцией для операционной системы, исходный код которой не существует. Двоичный перевод переносим для полной виртуализации. Так же, как и перевод инструкций во время выполнения, возникают дополнительные накладные расходы, которых нет в других методах, таких как паравиртуализация или виртуализация с аппаратной поддержкой. Напротив, двоичная трансляция осуществляется только для подмножества набора инструкций, в то время как остальные управляются посредством прямого выполнения на основном оборудовании. Это каким-то образом снижает влияние на производительность двоичной трансляции.

Читайте также:  Azure DevOps: руководство для начинающих

Преимущества двоичного перевода

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

Недостатки двоичного перевода

  • Во время выполнения это требует много времени.
  • Это требует больших накладных расходов на производительность.
  • Он использует кеш кода для хранения переведённых наиболее часто используемых инструкций для повышения производительности, но увеличивает использование памяти вместе с затратами на оборудование.
  • Производительность полной виртуализации на архитектуре x86 составляет от 80 до 95 процентов производительности хост-машины.
Оцените статью
bestprogrammer.ru
Добавить комментарий