1. Обзор технологии виртуализации Intel® VT.
В узком смысле Intel® VT в основном предоставляет технологии виртуализации для процессоров, наборов микросхем и сетей.
2. Виртуализация процессора
В настоящее время основными технологиями виртуализации ЦП являются VT-x/VT-i от Intel и AMD-V от AMD.
Существует два основных типа технологии виртуализации процессоров Intel:
Полная платформа виртуализации серверов включает в себя следующие части снизу вверх:
Гипервизор — это виртуальный уровень, расположенный между виртуальной машиной и базовым физическим оборудованием. Он включает в себя загрузчик, уровень абстракции оборудования платформы x86, а также планировщик памяти и ЦП. Он отвечает за планирование ресурсов нескольких виртуальных машин, работающих на нем. это. VMM — это процесс, который однозначно соответствует виртуальной машине верхнего уровня и отвечает за виртуализацию набора команд, памяти, прерываний и основных устройств ввода-вывода.
При запуске виртуальной машины ядро виртуальной машины в гипервизоре загружает VMM. Виртуальная машина работает непосредственно на VMM и взаимодействует с гипервизором через интерфейс VMM. В архитектурах KVM и Xen виртуальный уровень называется Hypervisor, то есть VMM = Hypervisor.
Основной особенностью современных компьютерных процессоров является иерархическое выполнение инструкций. Цель этого состоит в том, чтобы ошибки на уровне пользовательских приложений не приводили к сбою всей системы.
Различные типы процессоров разделены на разные уровни. Например, IBM PowerPC и SUN SPARC разделены на два уровня: Core и User, имеет дополнительный супервизор и всего три уровня.
Процессор X86, рассматриваемый в этой статье, разделен на 4 уровня: Ring0-Ring3. Нам нужно только обратить внимание на два уровня: уровень привилегий (Ring 0) и уровень пользователя (Ring1-Ring3).
Для невиртуализированных обычных операционных систем Ring 0 — это самый высокий уровень привилегий с прямым контролем доступа к физической памяти и аппаратным ресурсам ввода-вывода. Разрешения Ring 1, 2 и 3 последовательно уменьшаются. Они не могут выполнять набор команд на уровне системы ядра и имеют только права прямого управления доступом к виртуальной памяти. Соответственно, инструкции, выполняемые в кольце 0, называются «привилегированными инструкциями»; инструкции, выполняемые на других уровнях, называются «непривилегированными инструкциями».
Распространенные операционные системы, такие как Linux и Windows, работают на кольце 0, а приложения пользовательского уровня — на кольце 3. Если программа с низким уровнем привилегий выполняет привилегированную инструкцию, это вызовет «ловушку» (Trap) состояния ядра и выдаст исключение.
Когда этот механизм иерархической изоляции применяется к платформе виртуализации, чтобы соответствовать характеристикам «управляемости ресурсов» VMM (монитор виртуальной машины, монитор виртуальной машины), VMM должен находиться на уровне кольца 0, чтобы контролировать все аппаратные ресурсы и выполнять Привилегированные системные вызовы самого высокого уровня. Гостевая ОС операционной системы виртуальной машины будет понижена до уровня Ring 1, а приложения гостевой ОС будут работать на уровне Ring 3.
Таким образом, гостевая ОС будет вызывать «ловушку» при выполнении привилегированных инструкций. Если VMM сможет нормально перехватывать исключения, моделировать инструкции, выдаваемые гостевой ОС, и выполнять их, цель будет достигнута. Это механизм удаления и эмуляции привилегий, используемый серией IBM Power.
Мы вызываем некоторые операционные инструкции в операционной системе, которые включают вызов основных общедоступных ресурсов системы, в конфиденциальные инструкции. Большие серверные процессоры, такие как архитектуры PowerPC и SPARC, работают с набором инструкций RISC, и все конфиденциальные инструкции являются привилегированными. Таким образом, вышеупомянутые механизмы удаления привилегий и эмуляции могут использоваться для идеальной реализации виртуализации.
Однако для набора команд CISC для виртуализации используются упомянутые выше классические технологии.
Именно потому, что набор команд платформы x86 имеет вышеупомянутые недостатки, чтобы применить технологию виртуализации вычислений на платформе x86, основные поставщики виртуализации запустили множество технологий виртуализации, каждая из которых сосредоточена на том, «как захватывать и моделировать эти 19 деликатных указаний». Это предложение специально разработано.
В приведенной выше задаче задействованы три основных объекта: гостевая ОС, VMM и набор инструкций аппаратного ЦП. VMM — это недавно вставленный объект, и его удобнее всего модифицировать, но ОС и ЦП модифицировать сложнее. . Идеи решения, таким образом, делятся на 3 направления:
HVM (Hardware-Assisted Virtualization Machine, аппаратная виртуализация) стала основной технологией виртуализации в центрах обработки данных.
Полная виртуализация ЦП подразделяется на три решения: эмуляция, сканирование и исправление и двоичная трансляция. Эмуляция является фундаментальным решением, тогда как сканирование и исправление и двоичная трансляция можно понимать как расширенные реализации эмуляции в системе X86.
Благодаря относительно простой реализации, полная виртуализация ЦП появилась еще в конце прошлого века и является самой ранней технологией виртуализации X86.
Полная виртуализация ЦП в настоящее время прекращается на серверах из-за проблем с производительностью. Основные репрезентативные продукты, такие как VirtualBox и VMware Workstation, в основном используются в некоторых средах разработки и тестирования для виртуализации хостов. Только QEMU, как базовый инструмент технологии виртуализации, широко используется в других продуктах виртуализации.
Пара-виртуализация ЦП представлена Xen и Hyper-V, но два основных продукта виртуализации, VMware ESXi Server и Linux KVM, также поддерживают пара-виртуализацию. Технология пара-виртуализации на самом деле является общим термином для класса технологий. То, о чем мы хотим поговорить, — это паравиртуализация (CPU PV) ЦП.
Основные принципы реализации технологии CPU PV заключаются в следующем. Сначала VMM публикует некоторые из своих интерфейсных функций, называемых гипервызовами, а затем добавляет в гостевую ОС модификацию кода ядра на основе этих функций интерфейса для замены проблемных 17 конфиденциальных инструкций. выполнять операции системного вызова. Модифицированные вызовы инструкций обычно называются гипервызовами. Гостевая ОС может напрямую вызывать VMM через гипервызовы для выполнения системных инструкций. По сравнению с ранее упомянутым методом моделирования застревания эффективность обработки значительно повышается.
Однако способ, которым CPU PV изменяет код ядра операционной системы, накладывает множество ограничений на использование гостевой ОС. Например, только Hyper-V может поддерживать Windows Server в режиме паравиртуализации в качестве гостевой ОС. Кроме того, из-за KVM/. Xen/VMware/Hyper-V Каждый код Hypercalls вводит версию ядра Linux по-разному, поэтому при использовании Linux в качестве гостевой ОС вы также должны обратить внимание на версию ядра Linux каждого дистрибутива.
Платформа виртуализации | Требования к версии ядра Linux (гостевой ОС) |
---|---|
KVM | Kernel >= 2.6.20 |
VMware | Kernel >= 2.6.22 |
Xen | Kernel >= 2.6.23 |
Hyper-V | Kernel >= 2.6.32 |
Из-за ограничений гостевой ОС метод CPU PV не имеет широкого спектра применений. Однако из-за технического улучшения эффективности системных вызовов он по-прежнему пользуется популярностью у некоторых разработчиков и пользователей, а также существует определенный спрос. в некоторых конкретных сценариях.
Билл не может этого понять, поэтому Энди приходит на помощь. (Билл Гейтс — основатель Microsoft, а Энди Гроув — основатель Intel)
В ответ на ряд проблем виртуализации, вызванных конфиденциальными инструкциями, Intel и AMD в 2005 году выпустили VT-x/VT-i и AMD-V соответственно. Когда они могут поддерживать полную виртуализацию на уровне чипа, это то, что сейчас называется аппаратным обеспечением. Технология вспомогательной виртуализации (HVM: Аппаратная виртуализация).
И VT-x, и AMD-V пытаются вернуть гостевую ОС в кольцо 0, определяя новый режим работы, позволяя при этом VMM работать на более низком уровне, чем кольцо 0 (можно понимать как кольцо -1).
VT-x представляет два режима работы, которые вместе называются режимом работы VMX (Virtual Machine eXtension):
Режим работы с root/non-root различает исходную операцию CPU на корневую операцию, в которой находится VMM, и операцию без root, в которой находится виртуальная машина. Каждая операция имеет все уровни инструкций Ring0-Ring3.
существовать Intel корпоративный VT-x Решение, работающее в режиме без полномочий root Guest OS Можетккартинасуществовать Нет Платформа виртуализация также работает Ring 0 уровень, либо Ring 0 Выданная привилегированная команда по-прежнему Ring 3 Выдаваемые конфиденциальные инструкции будут перенесены в виртуальный уровень корневого режима.
Появление таких технологий, как VT-x и AMD-V, решило проблемы низкой производительности полной виртуализации процессора и плохой совместимости с гостевой ОС паравиртуализации при использовании двух предыдущих чисто программных решений для виртуализации X86.
Учитывая скорость обновления серверных процессоров каждые два-три года, нынешние основные серверы X86 уже могут поддерживать такие технологии, как VT-X/AMD-V. Таким образом, HVM стал основным направлением современной виртуализации серверов IAAS для облачных вычислений. Несколько основных продуктов VMM, Xen/VMware ESXi/KVM/Hyper-V, уже поддерживают функции HVM.
3. Виртуализация памяти
Большие операционные системы (например, Linux) используют виртуальную память для управления памятью, а виртуализация памяти требует виртуализации виртуальной памяти.
Технология виртуализации памяти в основном включает в себя два аспекта: преобразование адресов памяти и управление виртуализацией памяти.
Вы можете просмотреть соответствующий контент о виртуальной памяти. считатькомпьютерная система Lecture 1: виртуальная память Эта статья.
существовать Linux Здесь используются виртуальные адреса OS , виртуальный адрес проходит через Page table Преобразование дает физический адрес.
Если эта операционная система работает на существующей виртуальной машине, на нуждающемся компьютере выполняются два преобразования адресов.
Гостевая ОС сначала преобразует GVA (гостевой виртуальный адрес) в GPA (гостевой физический адрес). С точки зрения VMM/гипервизора GPA — это промежуточный физический адрес (промежуточный физический адрес, IPA), а затем VMM/гипервизор преобразует GPA (гостевой физический адрес). Адрес) преобразуется в HPA (физический адрес хоста).
Для достижения вышеуказанных отношений сопоставления и преобразования существует два основных решения: программные решения (теневые таблицы страниц) и аппаратные решения (Intel-EPT и AMD-RVI).
Таблица теневых страниц (SPT) включает в себя следующие два отношения сопоставления:
С помощью этого двухуровневого метода сопоставления VMM для Guest OS Таблица каждой страницы (Гость Page Table, GPT) поддерживает теневую таблицу страниц и будет GVA -> HPA Отношения сопоставления записываются в таблицу теневых страниц. Тогда ВММ Запись в таблицу теневых страниц ММУ. При этом эффективно контролируются границы памяти, доступные виртуальной машине. И используйте TLB Кэширование содержимого таблицы теневых страниц может значительно повысить скорость доступа виртуальной машины к памяти.
Обслуживание таблицы теневых страниц приведет к большим затратам времени и пространства:
для компромисса накладных расходов по времени и пространству,В настоящее время обычно используется технология кэша таблицы теневых страниц (Shadow Page Table Cache), то есть VMM существует Память. Часть обслуживания недавно использовала таблицу теневых страниц.,Только если таблица «Когда существует теневая страница» не найдена в кеше,Просто создайте новую таблицу теневых страниц.
Все современные основные технологии виртуализации используют технологию кэширования теневых таблиц страниц.
Для того, чтобы решить вышеуказанную проблему с накладными расходами, вызванную таблицей теневых страниц.,В дополнение к использованию технологии кэширования теневых таблиц страниц (хотя эта технология позволяет избежать некоторых затрат времени,Но накладные расходы на пространство по-прежнему значительны.,Intel и AMD Компании нацелены MMU Виртуализация предлагает свои собственные решения: Intel компаниясуществоватьNehalem микроархитектура CPU Расширенная таблица страниц (Расширенная Page Таблица, EPT) технология AMD; Компания Quad Core Opteron существует CPU Индекс быстрой виртуализации (Рапид Virtualization Индекс, RVI) технология.
RVI и EPT Хотя конкретные детали реализации существования различны, концепция построения существования полностью одинакова: через физику существования. MMU Сохраните две разные таблицы страниц в,Чтобы адрес Память из двух отображений завершился в существующем аппаратном обеспечении,Для достижения улучшенной производительности.
В частности, ММУ. Центральное управление управляет двумя таблицами страниц, первая из которых GVA -> GPA, определяется виртуальной машиной — второй; GPA -> HPA, прозрачный для виртуальных машин, состоит из VMM Решать. Согласно этим двум таблицам сопоставленных страниц, процессор в page walker Вы можете создать недавно посещенные key-value пара ключ-значение и существование TLB кэша (аналогично идее технологии кэширования таблицы теневых страниц).
Кроме того, исходная теневая таблица существует страниц Зависит от VMM поддерживается GPA -> Отношения сопоставления HPA состоят из набора новых структур данных, расширенной таблицы страниц (расширенная таблица страниц). Page Стол, также известный как для Nested Page Таблица) для сохранения. потому что GPA -> HPA из Отображение отношений Нет Постоянный,исуществоватьвиртуальная машину не нужно обновлять при создании и изменении таблицы страниц, поэтому VMM существоватьвиртуальная Нет необходимости вмешиваться, когда машина обновляет таблицу страниц. ВММ Не нужно идти в виртуальную машинаначальство Переключиться ниже,виртуальная машинаможет быть модифицирована самостоятельно GVA -> Таблица страниц ГПД.
Intel EPT Это Интел VT-x Обеспечить поддержку технологии «Из Памятьвиртуализации», основной принцип которой показан на рисунке ниже. существуют в оригинале CR3 Сопоставление адресов таблицы страниц основано на EPT. представлять EPT таблица страниц для реализации другого сопоставления. Например: предположим, что таблица страниц клиента и EPT Таблицы страниц все 4 таблица страниц уровня, ЦП Основной процесс выполнения трансляции адреса выглядит следующим образом:
клиент CR3 Регистр дает средний балл, итак, CP Упасс EPT Таблица страниц Воляклиент CR3 в GPA Конвертировать для HPA:CPU Найти первым EPT TLB, если соответствующей записи нет, ищите дальше EPT Таблица страниц, если она еще не существует, процессор тогда брось EPT Violation Исключение передано VMM иметь дело с.
CPU получать L4 После адреса таблицы страниц (имеется в виду HPA) процессор в соответствии с GVA и L4 Получить содержимое записи таблицы страниц L3 запись в таблице страниц средний балл. если L4 таблица страниц GVA Соответствующая запись в таблице отображается для «отсутствующей страницы», затем CPU производить Page Ошибка, переданная непосредственно операционной системе дело с.получать L3 запись в таблице страницGPA После этого процессор По запросу EPT Таблица страниц будет L3 из GPA Конвертировать для ГПА. Таким же образом процессор будет завершено последовательно L2、L1 Запрос таблицы страниц, получение GVA Соответствует GPA,затем сделайте окончательный запрос EPT таблица страницполучать HPA。
Как показано на рисунке выше, процессор нуждаться 5 запросы EPT таблица страниц,Каждыйзапросы Всенуждаться 4 Память посещает. Таким образом, наихудший сценарий всегда является общимнуждаться. 20 доступ к памяти. ЕПТ Аппаратное обеспечение увеличивается за счет EPT TLB Минимизируйте доступ к памяти.
существоватьвиртуализациясреда,Памятьэто гарантиявиртуальная Ключевые факторы производительности труда. Как максимально улучшить виртуальную автоматизировать производительность, улучшить использование Памяти, уменьшить виртуальную машинаначальство Переключиться нижеиз Памятьнакладные расходы,Все еще очень сложно,Это проблема управления Памятьвиртуализацией.
существоватьвиртуализация Памятьуправлять На ESXi ESXi реализует перераспределение хоста Память из цели: то есть несколько виртуальных Общий выделенный объем машины превышает фактическую мощность Память физической машины. Как показано на рисунке ниже, физический Память имеет только 4GB из Хост, может одновременно запускать три конфигурации Память. 2GB из Guest。
Функция перераспределения памяти хоста означает VMM Должен уметь эффективно перерабатывать виртуальную машина постоянно освобождается из Память, и существование максимально ограничено в мощности из Память Значительно улучшить использование памяти.
потому чтодля,Host Memory и Guest Memory Это не переписка один на один, через Host Memory Технология избыточного обеспечения может достичь определенного Host На некую виртуальную машина Память больше хоста Память, это и CPU виртуализация - это другое. Однако при использовании технологии чрезмерной настройки нуждаться учитывает проблемы с производительностью хоста и не может быть слишком большой. Как правило, пределом избыточного выделения является номер хоста. 50%. Чтобы добиться избыточного выделения памяти хоста, это должно быть достигнуто с помощью технологии мультиплексирования памяти.
В настоящее время широко используются три технологии повторного использования: технология совместного использования нулевых страниц, технология восстановления с помощью всплывающих окон и технология замены. Здесь мы в основном представляем технологию восстановления с помощью всплывающих окон.
Технологию восстановления воздушных шаров Память еще называют пузырьковой технологией Память. существованиевиртуальной среды, VMM будет один разсуществоватьвиртуальная машина назначается виртуальной после запуска машина Память,Зависит от Ввиртуальная машина не осознавала, что работает на Платформе виртуализации, после этого он будет продолжать существовать, чтобы выделить пространство из Память, не освобождая выделенное изфизическое пространство другим виртуальным. машина. поэтому VMM нуждатьсямеханизм, который делаетвиртуальная машина может активно освобождать простаивающую Память и возвращать ее на физическую машину, а затем VMM Назначено другим нуждающимся извиртуальная машина. Более того, когда потребность в ресурсах ограничена, вы также можете «вернуть» часть системы, которую вы освободили, с физической машины.
Принцип следующий: Гипервизор Воспользовавшись преимуществами предустановленной виртуальной реальности пользователя машинав интерфейсный драйвер, "украсть" Guest OS из Памятьспособствовал(а) VMM для использования другими виртуальными машинами, отменено VMM «Украсть» пузыри в Память на конкретную виртуальную использование машины. Суть Память пузырей в том, что Воля более праздна, чем для и звиртуальная. машина Память выпущена в Память с более высоким уровнем использования извиртуальная машину, тем самым улучшая использование Память.
существоватьначальствокартина(a)середина,VMM К виртуальной виртуальной привязаны четыре страницы. машинаиз Памятьстраничное пространствосередина,Две страницы слева заняты приложениями,Две другие страницы, отмеченные звездочкой, находятся в свободном списке.
когда VMM Например, если вы хотите освободить память виртуальной машины, вы хотите освободить две страницы памяти, VMM воля Balloon водить машинуиз Настройки целевого размера раздутиядлядве страницы。
Balloon После достижения целевого значения расширения, оно будет существоватьвиртуальная. машина внутренне применяет две страницы из Память и вызывает виртуальную, как показано в пункте (b) выше. Интерфейс операционной системы компьютера указывает, что эти две страницы «закреплены», то есть их больше нельзя выделить.
После завершения работы приложения памяти Balloon Водитель уведомит VMM Эти две страницы с номерами страниц, вот так VMM Вы можете найти соответствующий физический номер страницы и переработать его. Пунктир в (б) на существовании отмечает отправную точку этих двух страниц из виртуальной. машине присвоено состояние из.
С момента выхода из страницы существования была выпущена до того, как виртуальная существующая автоматизировать свободный список, поэтому ни один процесс не будет читать или записывать эту страницу. Если виртуальная Далее процесс машины вернется к этим страницам, а затем VMM Вы можете выделить новую изфизическую Память для этой виртуальной точно так же, как вы обычно выделяете Память. машина。когда VMM При определении размера расширения сжимающегося баллона путем установки меньшего целевого значения расширения баллон Водитель будет «прижат» страница возвращена в виртуальную машина。
Баллонным методом восстановления, несмотря на виртуальную нагрузка машины немного увеличилась, но VMM Но успешно система Воля Память давление передает каждую виртуальную машинаначальство。когда balloon Когда драйвер инициирует запрос Памятьиз, он инициируется виртуальной операционная система машины решает, следует ли использовать Волявиртуальную машинафизика Память обменяться навстречу balloon Диск из приложения Память запрос.
есливиртуальная У машины достаточно изсвободной Память, тогда balloon Драйверное приложение Память не повлияет на виртуальную влияет производительность машины;
есливиртуальная машина Память уже туго,Затемнуждаться Зависит отвиртуальная Операционная система «Машиниз» решает, какие страницы Память заменить, удовлетворяя balloon Драйвер по запросу. Таким образом, метод восстановления с помощью баллона умело использует различные виртуальные операционная система компьютера из Память механизма подкачки определяет, какие страницы следует выпустить на физическую машину, а не VMM решить.
Метод утилизации баллона требует, чтобы была установлена операционная система виртуальной машины. balloon водить машину,существовать VMware из ESXi В продукте это VMware Tool。кроме того,Метод переработки воздушных шаров Переработка Памятьнуждаться на определенный период времени,Системные требования не могут быть выполнены немедленно.
(Конец текста)
end
Reference: