В этом месяце VMware опубликовала девять новых результатов тестов VMmark 4 от компаний Dell Technologies, Hewlett Packard Enterprise и Supermicro, которые демонстрируют производительность и масштабируемость новых серверных процессоров AMD EPYC серии 9005, поддерживающихся в хостах VMware vSphere 8. Результаты можно посмотреть на странице результатов VMmark 4, но основные моменты освещены в статье ниже.
Важная особенность: одна плитка (tile) VMmark включает 23 виртуальных машины, выполняющих разнообразные рабочие нагрузки — от традиционных Java- и баз данных до Kubernetes, Docker-контейнеров, NoSQL и нагрузок социальных сетей, характерных для современных корпоративных дата-центров.
Результаты тестирования Supermicro
Первое сравнение демонстрирует, как хорошо масштабируются эти новые процессоры при использовании VMmark 4 и последнего гипервизора VMware ESXi при удвоении общего числа ядер с 128 до 256 (результаты - для двух плиток и для четырех).
Как видно из таблицы и графика выше, результат с 256 ядрами в 1,9 раза выше, чем результат с 128 ядрами, при этом в течение 3 часов теста VMmark работало в два раза больше виртуальных машин (разные плитки).
Результаты тестирования Dell Technologies
На данный момент у Dell есть три результата тестирования VMmark 4 на базе процессоров EPYC 9005 с разным количеством ядер (1, 2, 3).
Одна плитка VMmark 4 состоит из 23 виртуальных машин, однако два из этих результатов содержат дробное количество плиток. Что это значит? Ответ заключается в том, что в VMmark 4 была добавлена функция частичных плиток. Частичные плитки запускают подмножество рабочих нагрузок для более точной детализации, что позволяет тестировщикам максимально использовать производительность их решений для виртуализации. Например, 4.6 плитки включают 99 активных виртуальных машин, тогда как 5 плиток — 115 виртуальных машин, что на 16% больше.
Результаты Dell также являются первыми результатами VMmark, использующими NVMe over TCP с подключением к внешнему хранилищу через двухпортовые сетевые карты Broadcom BCM957508-P2100G со скоростью 100 Гбит/с, вместо традиционных адаптеров шины.
Результаты тестирования Hewlett Packard Enterprise
У HPE есть три результата тестирования VMmark 4 (1, 2, 3).
Первый результат использует процессоры предыдущего поколения EPYC 4-го поколения (обозначенные номером "4" в конце модели процессора). Несмотря на одинаковое количество ядер в первых двух результатах, процессоры 5-го поколения показывают производительность выше более чем на 10%.
Если сравнить результат предыдущего поколения с результатом на 1280 ядрах, он оказывается на впечатляющие 45% выше!
Все из нас знакомы с понятием центрального процессора (CPU), в последнее время мы также наблюдаем рост использования графических процессоров (GPU) в самых разных областях. GPU набирают популярность в таких направлениях, как машинное обучение, глубокое обучение, анализ данных и, конечно же, игры. Но существует новая технология, которая быстро набирает обороты в датацентрах — это Data Processing Unit (DPU), или процессор обработки данных.
Что же такое DPU?
Проще говоря, DPU — это программируемое устройство с аппаратным ускорением, имеющее также комплекс ARM-процессоров, способных обрабатывать данные. Сегодня DPU доступен в виде SmartNIC (форм-фактор PCIe), который можно установить в сервер и использовать для выполнения различных функций (см. также нашу статью о Project Monterey здесь).
Если взглянуть глубже, SmartNIC содержит ARM-процессор, а также программируемый ускоритель с высокоскоростным интерфейсом между ними. SmartNIC также имеет 2 порта (или больше) с пропускной способностью от 10 Гбит/с до 100 Гбит/с в зависимости от производителя и отдельный Ethernet-порт для управления. У SmartNIC имеется локальное хранилище, что позволяет пользователям устанавливать программное обеспечение, например, гипервизор, такой как ESXi.
В настоящее время в этой технологии участвуют такие производители, как NVIDIA и AMD/Pensando (среди прочих), и вскоре эти устройства станут мейнстримными в датацентрах, поскольку они становятся более доступными для клиентов. Сейчас пока такое устройство от NVIDIA, например, стоит более 2.2 тысяч долларов. Модули от Pensando также начинаются от 2.5 тысяч
По сути, DPU представляет собой систему на чипе (system on a chip, SoC), обеспечивающую высокопроизводительные сетевые интерфейсы, способные обрабатывать данные с гораздо большей скоростью. Но два ключевых аспекта DPU, связанных с портфелем продуктов VMware, включают возможность переноса рабочих нагрузок с хоста x86 на DPU, а также предоставление дополнительного уровня безопасности за счет создания изолированной среды для выполнения некоторых процессов. Эта работа в настоящее время ведется в VMware в рамках проекта Monterey.
В имплементации Monterey сетевые процессы, такие как сетевой трафик, распределенный брандмауэр и другие, будут переданы на обработку SmartNIC. Это означает, что не только ресурсы будут освобождены от сервера x86, но и сам трафик будет обработан DPU. Проект Monterey также упростит установку ESXi и NSX на сам DPU, таким образом, перенос необходимых ресурсов CPU с x86 на DPU не только освободит ресурсы на x86 для использования виртуальными машинами, но и обеспечит дополнительный уровень безопасности.
Когда вышло обновление VMware vSphere 7 Update 2, мы рассказывали о новых оптимизациях для процессоров AMD EPYC, которые были сделаны в платформе виртуализации на базе гипервизора ESXi. Реализация поддержки новых функций CPU идет в соответствии с развитием технологий аппаратной виртуализации AMD, которую VMware поддерживает наравне с таковой от Intel.
В документе есть много интересных тестов (большинство из них сделано с помощью утилиты VMmark3), приведем ниже результаты некоторых из них:
Увеличение производительности одной ВМ для БД Microsoft SQL Server под нагрузкой HammerDB (тут и далее нормировано к показателям vSphere 7 Update 1):
Несколько виртуальных машин с 8 vCPU на борту и нагрузкой HammerDB - производительность при увеличении числа виртуальных машин на хосте:
Использование базы данных CockroachDB на 6-узловом кластере, прирост производительности до 50%:
Тестирование кластера Kubernetes c узлами по 64 воркера с помощью бенчмарка Weathervane (на 16 инстансах приложений прирост производительности - более 40%):
Как многие из вас знают, в последние пару лет очень сильно увеличилось число и масштаб атак, связанных с уязвимостями в аппаратном обеспечении. Наибольшую известность получили уязвимости Meltdown и Spectre, которые были обнаружены в процессорах Intel.
Самый неприятный момент, связанный с подобного рода уязвимостями - это то, что поскольку они связаны с аппаратной частью процессоров на самом низком уровне, то, во-первых, ее сложнее исправить и доставить конечным пользователям, а, во-вторых, неправильное обновление, закрывающее эти дырки, может вызвать различные побочные эффекты.
Так, например, было с производительностью серверов VMware ESXi, когда производители ОС совместно с Intel выпустили соответствующие обновления, а VMware выпустила закрывающий уязвимость патч. Сам патч тогда пришлось отозвать и ждать нового, а ведь это потраченного время администраторов, время пользователей и время, в течение которого существует угроза безопасности инфраструктуры предприятия.
Поэтому производители процессоров, совместно с вендорами платформ виртуализации, сейчас уделяют этому моменту особое внимание. Конечно же, в этом направлении работает и AMD, которая активно внедряет следующие технологии:
Secure Encrypted Virtualization (SEV) - первая версия технологии, анонсированная в 2016 году. Она позволяет изолировать виртуальные машины от гипервизора, со стороны которого может быть угроза безопасности при его компрометации. Если гипервизор попытается считать память гостевой ОС, он увидит только зашифрованные данные.
SEV-ES (Encrypted State) - вторая версия технологии, представленная в 2017 году. Она дополняет защиту памяти гостевой ОС шифрованием регистров CPU гостевой ОС. Таким образом, гипервизор не может видеть регистры процессора, активно используемые виртуальной машиной.
SEV-SNP (Secure Nested Paging) - следующее поколение технологии, которое было анонсировано в этом году. Оно добавляет функции аппаратной безопасности для контроля над интеграцией памяти гостевых ОС, что защищает от таких атак, как data replay, memory re-mapping и других (подробнее тут и на картинке ниже).
В недавнем обновлении платформы виртуализации VMware vSphere 7 Update 1 появилась поддержка технологии SEV-ES (Encrypted State), которая должна еще больше защитить от потенциальных уязвимостей, связанных с доступом к данным в рамках процессора. Работает это на процессорах AMD EPYX 7xx2 CPU
или более поздних и требует VM Virtual Hardware версии 18, которое появилось в Update 1.
Надо начать с того, что у VMware уже есть защита памяти и данных гостевой ОС на уровне платформы (а в самих ОС тоже есть средства защиты памяти и процессора), но, само собой, эти механизмы на надежны на 100%, потому что ключевой компонент платформы - гипервизор, обладает очень широкими полномочиями (в виду необходимости), и при его компрометации ничего особо не поможет. Поэтому самое разумное - это поддержать подход изоляции ВМ от гипервизора на аппаратном уровне. Он, кстати, называется Trusted Execution Environment (TEE).
Подход AMD заключается в том, что они добавляют специальный Secure Processor, маленький сопроцессор, интегрированный в основной чип CPU, который является основой безопасности и поддерживает операции шифрования, в том числе и для SEV-ES.
Первое поколение EPYC CPU поддерживало хранение только 15 ключей шифрования, но следующее поколение уже поддерживает более 500. Один из таких ключей используется для гипервизора, а остальные - для гостевых систем.
Для чего вообще нужно защищать регистры процессора гостевых систем? Очень просто - когда виртуальная машина переключает контекст исполнения (меняет процессор), гипервизор получает ресурсы CPU обратно, вместе с содержимым регистров. А в них может храниться много "полезного" для злоумышленника - например, ключи для расшифровки дисков гостевой системы.
Работает механизм ключей так - гостевая ОС запрашивает у процессора с поддержкой SEV ключ шифрования для памяти, а SEV-ES расширяет его и на регистры процессора тоже, после чего гостевая ОС может безопасно использовать память и регистры, не беспокоясь что гипервизор или другие ВМ, изолированные в рамках процессов VMX, считают их содержимое. Очевидно, что гостевая ОС тоже должна поддерживать реализацию SEV-ES (поэтому надо читать соответствующую документацию к ним, чтобы узнать о поддержке).
Самым большим минусом использования технологии SEV-ES является невозможность поддержки таких техник, как vMotion, Memory Snapshots, Guest Integrity, Hot Add, Suspend & Resume, Fault Tolerance и горячих клонов - ведь для их реализации гипервизор должен иметь прямой доступ к памяти гостевых систем. В то же время надо отметить, что это не ограничение от AMD, которая заявляет, что SEV поддерживает live migration и прочее, а ограничение реализации от VMware.
В большинстве производственных окружений невозможность применения этих технологий будет ограничивать использование SEV-ES только системами, требующих наивысшего уровня защищенности.
С другой стороны, например, недавно вышедшее решение vSphere with Tanzu не использует vMotion для машин с контейнерами виртуализованных приложений - они просто выключаются на одном хосте и включаются на другом, то есть здесь есть перспективы применения SEV-ES.
Также использованием технологии SEV-ES можно управлять в пакетном режиме сразу для нескольких тысяч виртуальных машин через интерфейс PowerCLI, что особенно актуально для контейнеров Tanzu. На данный момент VMware еще не опубликовала официальный референс по командлетам для SEV-ES, ждем.
Ну и недавно VMware выпустила интересное видео, рассказывающее о первой имплементации технологии SEV-ES в платформе VMware vSphere 7 Update 1:
Как итог можно отметить, что пока такие технологии, как Secure Encrypted Virtualization имеют достаточно узкое применение ввиду их ограничений. Однако это лишь первые шаги, которые производители процессоров делают совместно с вендорами платформ виртуализации, чтобы защитить ИТ-среду предприятия он новой волны атак на программно-аппаратную инфраструктуру датацентра. Дальше все это будет развиваться, будет и поддержка AMD SEV-SNP, что уже будет существенно уменьшать поверхность возможных атак.
На сайте проекта VMware Labs появилась еще одна узкоспециализированная, но интересная штука - проект Supernova. С помощью данного интерфейса разработчики решений, использующих машинное обучение (Machine Learning), могут создавать свои проекты на базе различных открытых библиотек с поддержкой технологий аппаратного ускорения графики.
Типа таких:
Проект Supernova поддерживает все самые популярные технологии аппаратного ускорения 3D-графики:
Nvidia GPU
Intel IPU/VPU
Intel FPGA
Google (Edge) TPU
Xilinx FGPA, AMD GPU
Для работы Supernova поддерживается ОС Ubuntu или CentOS с контейнерным движком Docker. Сфера применения решения очень широка - распознавание лиц (пол, возраст, эмоции), номерных знаков автомобилей, задача классификации объектов и многое другое.
В качестве тулкитов совместно с Supernova можно использовать следующие:
OpenVINO
SynapseAI
TensorRT
Tensorflow Lite
Vitis
RoCm
Данные для тренировки нейронных сетей могут быть представлены в форматах Tensorflow, Caffe, ONNX и MxNet. Примеры работы с ними представлены в документации, которую можно скачать вместе с пакетом.
Скачать само решение Supernova можно по этой ссылке.
Как вы знаете, в VMware vSphere 5.5 и VMware Horizon View 5.3 в гостевых ОС виртуальных машин поддерживаются функции гостевых систем по обработке 3D-графики на стороне сервера за счет использования следующих режимов:
Soft 3D - рендеринг 3D-картинки без использования адаптера на основе программных техник с использованием памяти сервера.
vDGA - выделение графического адаптера (GPU) отдельной виртуальной машине.
vSGA - использование общего графического адаптера несколькими виртуальными машинами.
Естественно, для всего этого необходимы специальные серверные видеоадаптеры, поддерживающие режимы vDGA и vSGA, например, NVIDIA Grid K1 и K2.
Однако справедливости ради надо отметить, что несмотря на то, что NVIDIA является пионером визуализации 3D-графики в виртуальных машинах VMware, и там режимы vDGA/vSGA уже работают, поддержка данных техник также заявлена и в адаптерах AMD (но на данный момент, судя по всему, это не совсем полноценно работает). Функции vSGA и vDGA поддерживаются следующими графическими адаптерами:
NVIDIA
Grid K1 and K2
Quadro 4000/5000/6000
Tesla M2070Q
AMD
FirePro S7000 /S9000/S10000
FirePro v7800P/V9800P
С точки зрения платформы виртуализации, гостевых ОС и прочего виртуальные машины с поддержкой vDGA должны удовлетворять следующим требованиям:
Платформа VMware vSphere 5.1 или более поздней версии (в 5.5 функции шире), для виртуальных ПК - VMware Horizon View 5.2 или более поздняя версия (5.3).
Использование одного из клиентов vSphere либо VMware Workstation.
ВМ с гостевой ОС Windows 7 или Windows 8 если используется vSphere / View. Для режима vDGA поддерживаются только 64-битные ОС.
ВМ с гостевыми ОС Fedora 10+/Ubuntu 12+ (только на платформе vSphere).
В настройках виртуальной машины нужно включить поддержку 3D-графики (если используется режим vSGA, для vDGA - это не нужно).
Необходимы VIB-модули для VMware ESXi от производителя графического адаптера (например, для NVIDIA их можно найти тут). Они разрабатываются и поддерживаются NVIDIA и AMD - не VMware. VIB-модули нужно ставить только для режима vSGA.
Для виртуальных ПК необходим клиент на базе протокола PCoIP или HTML-клиент (протокол Blast).
Как мы уже писали, в VMware vSphere 5.1 появилось множество новых возможностей, в том числе улучшения, касающиеся аппаратной виртуализации (Hardware Virtualization), которая позволяет запускать вложенные гипервизоры (Hyper-V и ESXi) и виртуальные машины в них. Про то, как это работает в VMware vSphere 5.0, мы уже детально писали вот тут.
В интерфейсе веб-клиента VMware vSphere 5.1 поддержка аппаратной виртуализации включается в настройках виртуальной машины:
Настройки, которые были действительны для ESXi 5.0 - теперь не работают. Все теперь включается только через эту галочку.
Напомним, что в ESXi 5.0 можно было запускать вложенные (Nested) 32-битные и 64-битные виртуальные машины в гипервизорах, которые сами работают в виртуальных машинах. При этом требовалось только наличие поддержки аппаратной виртуализации в процессорах - Intel VT или AMD-V. Если же в вашем процессоре не было поддержки Intel EPT или AMD RVI, то вложенные 64-битные машины работали очень и очень медленно.
Поэтому VMware в vSphere 5.1 решила изменить концепцию, сделав так:
Если в процессоре есть поддержка Intel VT или AMD-V без EPT/RVI, то вы сможете устанавливать ESXi 5.1 в виртуальной машине, а также использовать вложенные 32-битные виртуальные машины. При этом 64-битные работать не будут, а опция "Hardware Virtualization" в vSphere Web Client будет загреена. Во время установки ESXi в виртуальной машине вы увидите сообщение "No Hardware Virtualization Support", которое можно просто игнорировать.
Если в процессоре есть поддержка аппаратной виртуализации и EPT/RVI, то можно использовать вложенные 64-битные ВМ.
Проверить свой хост-сервер на наличие поддержки технологий аппаратной виртуализации можно на соответствующих ресурсах вендоров (например, ark.intel.com). Есть и способ попроще - для этого надо использовать Managed Object Browser. Зайдите на хост ESXi по адресу:
Там будет такое свойство nestedHVSupported, которое будет установлено в True, если процессор поддерживает полный набор техник аппаратной виртуализации, который необходим для запуска вложенных 64-битных виртуальных машин на виртуальном ESXi 5.1.
Аппаратура виртуализации ЦП разрабатывалась в рамках концепции монопольного использования. Это означает, что только единственный Гипервизор может использовать ее, запустить Гипервизор в задаче другого Гипервизора невозможно. Это в теории, но практика требует во многих случаях все-таки наличия нескольких гипервизоров одновременно и это абсолютно неисследованная область, по крайней мере, в публичных источниках. Гипервизор, могущий запустить в своих задачах другие гипервизоры, редкий зверь, упоминания о них встречаются, но таких работающих программ нет. Единственное внятное упоминание о такой «матрешке» из гипервизоров, это некий хитрый гипервизор Рутковской. Его реальная работоспособность в связке с коммерческими системами виртуализации мне неизвестна.
Не секрет, что по высказываниям президента компании можно понять, в каком направлении она разивается и планирует развиваться. Для VMware сейчас стоит множество вопросов как для компании, которая со временем может превратиться в "облачного гиганта", занявшего большую часть рынка виртуализации и Cloud Computing. Поэтому очень интересно послушать, что говорит Пол Мориц (Paul Maritz), глава VMware, на всемирной конференции по виртуализации VMworld 2009:
О возможной поддержке серверами VMware vCenter управления хостами Microsoft Hyper-V:
if we have enough customer demand, we'll consider supporting Hyper-V in the future
О недавно вышедшем продукте Microsoft Hyper-V R2:
Hyper-V R2, "is now where we were three years ago".
О горячей миграции (VMotion) между серверами на базе процессоров Intel и AMD:
"nobody's building clouds on [AMD] architecture ... it's all on x86 ... that war's over"
О том, что уже 500 000 пользователей скачали бесплатный VMware ESXi:
VMware "would like to know what they're doing" with it
Если вам необходимо узнать, поддерживается ли технология аппаратной виртуализации Intel VT или AMD-V на хосте VMware ESX из состава vSphere, можно воспользоваться следующей инструкцией... Таги: VMware, ESX, IntelVT, AMD-V, Hardware
В прошлом году компания AMD анонсировала технологию Rapid Virtualization Indexing (RVI), известную также как Nested Page Tables. Если быть кратким то эта технология позволяет виртуализовать страницы памяти и отдать их под прямой контроль гостевой системы, не затрагивая (и, соответственно, не перегружая) гипервизор. С аналогичной технологией в 2009 году вышла и компания Intel, выпустив Extended Page Tables (EPT) в линейке процессоров Xeon 5500... Таги: IntelVT, AMD-V, Hardware, VMware, ESX, EPT, RVI
Коллеги из Microsoft порадовали интересной новостью. Гипервизор Hyper-V в ОС Windows Server 2008 R2 будет поддерживать возможности живой миграции (Live Migration) между различными процессорами... Таги: Microsoft, Hyper-V, Live Migration, Intel, AMD
Бурное развитие рынка технологий виртуализации за последние несколько лет произошло во многом благодаря увеличению мощностей аппаратного обеспечения, позволившего создавать по-настоящему эффективные платформы виртуализации, как для серверных систем, так и для настольных компьютеров. Технологии виртуализации позволяют запускать на одном физическом компьютере (хосте) несколько виртуальных экземпляров операционных систем (гостевых ОС) в целях обеспечения их независимости от аппаратной платформы и сосредоточения нескольких виртуальных машин на одной физической. Виртуализация предоставляет множество преимуществ, как для инфраструктуры предприятий, так и для конечных пользователей. Компания Intel первая увидела в новой технологии источник получения технологического превосходства над конкурентами и начала работу над усовершенствованием x86 архитектуры процессоров в целях поддержки платформ виртуализации. Вслед за Intel компания AMD также присоединилась к разработкам в отношении поддержки аппаратной виртуализации в процессорах, чтобы не потерять позиции на рынке. Таги: VMachines, Hardware, IntelVT, AMD-V
Технология виртуализации позволяет объединить и абстрагировать физические ресурсы серверов и рабочих станций для пользователя путем создания нескольких независимых виртуальных машин. Каждая из этих виртуальных машин способна выполнять собственную операционную систему и прикладную среду. Традиционный программный способ реализации виртуализации для архитектуры x86 связан с необходимостью использовать высокопроизводительные системы с пониженной безопасностью и излишней сложностью. Аппаратная технология виртуализации AMD позволяет решить эти проблемы.