Обзор аппаратной поддержки виртуализации

Прочитано: 72 раз(а)


Процессоры Intel, AMD и Arm оптимизируют виртуализацию несколькими способами. Узнайте о возможностях технологий Intel VT, AMD-V, Armv9, Intel APICv и AMD AVIC, а также о том, как они поддерживают виртуальные машины.

Производители чипов Intel, AMD и Arm Ltd. внедряют расширения набора инструкций, которые обеспечивают аппаратную поддержку виртуализации, но может быть трудно разобраться в алфавитном наборе кодов и аббревиатур.

Intel и AMD занялись совместной разработкой нового мобильного процессора

Аппаратная поддержка является обязательным требованием для практической виртуализации производственного уровня , поскольку она позволяет выбранному гипервизору обрабатывать сложные преобразования привилегий инструкций и управлять ресурсами виртуализированной памяти на аппаратных тактовых частотах.

Расширения наборов инструкций — полные наборы новых транзисторов, добавленных к процессорам и другим микросхемам, которые привносят новые возможности и непосредственно обрабатывают определенные новые инструкции — обеспечивают аппаратную поддержку виртуализации. Без расширений функции и задачи, необходимые для поддержки виртуализации, требуют программной эмуляции, которая часто оказывается слишком громоздкой и неэффективной для решения жизненно важных задач виртуализации. Эмуляция ограничивает количество и производительность виртуализированных рабочих нагрузок на производственных серверах и ценность виртуализации.

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

Технология виртуализации Intel

В 2005 году Intel впервые представила аппаратную поддержку виртуализации с помощью Intel VT-x на двух моделях процессоров Pentium 4. VT-x добавил 10 новых инструкций, позволяющих создавать виртуальные машины и управлять ими. Программное обеспечение для виртуализации работает в режиме виртуального выполнения, при котором гостевая ОС имеет полные привилегии, поэтому основная ОС не прерывается, защищена и изолирована.

В 2008 году Intel добавила поддержку расширенных таблиц страниц (EPT), которая была реализацией Intel преобразования адресов второго уровня (SLAT) или вложенного пейджинга. Эту технологию часто называют виртуализацией памяти.

Виртуализация должна преобразовывать адреса физической памяти в адреса виртуальной памяти. Проблема в том, что это преобразование происходит дважды: один раз для главной ВМ, а затем второй раз для каждой гостевой ВМ. Это увеличивает накладные расходы и снижает производительность. Технологии SLAT обрабатывают эти преобразования, чтобы улучшить управление памятью и повысить общую производительность.

В 2010 году Intel поддержал неограниченные гостевые системы, также называемые режимом IA-32e, которые позволяли логическим и виртуальным процессорам работать в реальном режиме на процессоре. Это позволяет гостевой виртуальной машине работать в режиме «голого железа» с собственным EPT. Вскоре после выпуска IA-32 Intel разработала процессоры с 64-битным расширением и реклассифицировала его как IA-64.

Одной из давних проблем с виртуализацией является проблема вложенности , когда виртуальная машина работает внутри виртуальной машины. Каждая виртуальная машина использует уникальную структуру данных. Когда виртуальная машина работает внутри виртуальной машины, администраторы сильно изменяют или меняют структуру данных для правильной вложенности.

К 2013 году Intel представила теневое копирование структуры управления виртуальной машиной (VMCS). До этого администраторы кэшировали каждую VMCS и использовали программное обеспечение для обработки теней VMCS, но этот своевременный процесс снизил производительность. Добавление теневого копирования VMCS к процессору значительно повышает эффективность обработки VMCS и повышает производительность виртуальных машин.

В 2022 году большинство процессоров Intel поддерживают виртуализацию. Администраторы могут использовать процессоры Xeon для серверов, которые предлагают большой объем кэш-памяти для повышения производительности. Последняя версия — Rocket Lake — имеет до восьми ядер, использует графику Intel Xe и поддерживает Peripheral Component Interconnect (PCI) Express 4.0.

Варианты Intel Core i5, i7 и i9 объединяют многопоточность и многоядерность. Предстоящий выпуск Intel 13-го поколения под кодовым названием Raptor Lake имеет энергоэффективные ядра Gracemont, использует гибридную архитектуру и совместим сокетами с системами Alder Lake.

AMD Ryzen

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

В 2006 году AMD добавила расширения набора команд, необходимые для поддержки виртуализации, в несколько семейств своих процессоров, включая Athlon 64, Athlon 64 X2, Athlon 64 FX, Turion 64 X2 и некоторые процессоры Opteron, Phenom и Phenom II. Команды AMD-V позволяют разработчикам писать программное обеспечение, которое создает виртуальные машины и управляет ими, а также поддерживает использование гипервизора.

Позже AMD добавила поддержку SLAT или вложенных таблиц страниц в некоторые процессоры K10 и Phenom II в форме быстрой индексации виртуализации, которая функционально идентична EPT Intel, для ускорения преобразования физической памяти в виртуальную.

В 2022 году все процессоры AMD на базе Zen будут поддерживать AMD-V, хотя для некоторых материнских плат администраторам может потребоваться включить виртуализацию специально в прошивке (BIOS), прежде чем приложения смогут использовать виртуальные машины.

Для серверов процессоры серии Epyc 7003 компании имеют 7-нанометровую технологию ЦП x86, несколько конфигураций модулей памяти с двумя рядами и до 32 МБ кэш-памяти L3 на ядро.

Ryzen Threadripper PRO 5000 серии WX, поддерживающий настольное оборудование, обеспечивает до 64 ядер ЦП, 128 потоков и максимальную тактовую частоту 4,5 ГГц.

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

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

Стандартная восьмая версия архитектуры Arm — Armv8-A — поддерживает возможности виртуализации и позволяет чипу Arm запускать несколько виртуальных машин, каждая из которых имеет свою ОС.

Armv8.1 представляет расширения хоста виртуализации (VHE), которые обеспечивают расширенную поддержку гипервизоров типа 2. Armv8.1-VHE также обеспечивает базовую трансляцию адресов, а в Armv8.3-NV добавлена ​​поддержка вложенной виртуализации.

Архитектура Arm следующего поколения, получившая название Armv9, была анонсирована в марте 2021 года и ориентирована на архитектуру для безопасных рабочих нагрузок искусственного интеллекта и машинного обучения (ML). Armv9-A включает в себя функции для тегирования памяти, идентификации целевых ветвей и очистки кеша до точки глубокого сохранения. Armv9.1-A предлагает мелкозернистые ловушки для виртуализации и универсальный таймер высокой точности. С Armv9.2-A администраторы имеют доступ к записи веток.

Виртуализация ввода/вывода

В то время как типичная виртуализация фокусируется на основной обработке и памяти, виртуализация ввода-вывода расширяет виртуальную среду, абстрагируя периферийные устройства в виртуальные представления, что обеспечивает лучшее совместное использование оборудования между экземплярами ВМ. Примеры технологии виртуализации ввода-вывода включают следующее:

  • Intel VT для направленного ввода-вывода, или VT-d, основан на технологии Intel VT с модулем управления памятью ввода-вывода (IOMMU). MMU транслирует виртуальные адреса в физические; IOMMU сопоставляет адреса устройств с физическими адресами и позволяет виртуальным машинам напрямую использовать периферийные устройства.
  • Очереди устройств виртуальной машины, или VMDq, повышают производительность обработки данных за счет группировки и сортировки сетевых данных в сетевом интерфейсе, а не в диспетчере виртуальных машин (мониторе виртуальных машин или гипервизоре). Первоначальное получение гипервизором правильных данных может улучшить поведение локальной сети.
  • Виртуализация ввода-вывода с одним корнем, или SR-IOV, предоставляет стандартизированные средства для устройств, чтобы объявить о своем присутствии и доступности для работы на нескольких виртуальных машинах. Это включает в себя возможность виртуализации интерфейса PCI в несколько виртуальных интерфейсов PCI. Администраторы могут разделить полосу пропускания одного порта на более мелкие виртуализированные части, которые взаимодействуют напрямую с назначенными виртуальными машинами.
  • Технология Intel Data Direct I/O (DDIO) не относится к типу виртуализации, а представляет собой усовершенствование, позволяющее сетевым контроллерам взаимодействовать напрямую с кэшем процессора, а не сначала отправлять данные в основную память, а затем перемещать данные из памяти в кэш. В сочетании с улучшениями виртуализации DDIO может увеличить эффективную пропускную способность сети, уменьшить задержку в сети и снизить энергопотребление.

Intel APICv и AMD AVIC

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

Прерывания виртуализации сортируют и ставят в очередь прерывания, чтобы смягчить эти потенциальные эффекты производительности. Сортировка позволяет системе адресовать прерывания на основе приоритета, а организация очереди позволяет системе адресовать прерывание в оптимальное время.

Intel и AMD добавили виртуализацию прерываний в 2012 году. AMD использует Advanced Virtual Interrupt Controller (AVIC), который доступен на более поздних моделях процессоров Carrizo. Intel использует виртуализацию Advanced Programmable Interrupt Controller (APICv), впервые появившуюся на нескольких процессорах Xeon E5 в 2013 и 2014 годах.

Поддержка виртуализации не всегда включается автоматически. Некоторые материнские платы систем требуют, чтобы администраторы включили функции виртуализации в прошивке системы (BIOS), прежде чем программное обеспечение сможет использовать возможности виртуализации.

Intel наняла ветерана AMD чтобы вернуться в гонку видеокарт?



Новости партнеров