Гипервизор AWS Nitro
Гипервизор AWS Nitro — это программно-аппаратная платформа виртуализации, разработанная компанией Amazon Web Services (AWS) (организация, осуществляющая деятельность на территории РФ в соответствии с законодательством, не признана экстремистской или террористической) для работы вычислительных сервисов Elastic Compute Cloud (EC2). В отличие от традиционных гипервизоров (например, Xen, KVM), Nitro представляет собой специализированную систему, в которой значительная часть функций виртуализации вынесена на уровень аппаратных компонентов и микроконтроллеров, что позволяет минимизировать накладные расходы на программную эмуляцию и повысить производительность, безопасность и плотность размещения виртуальных машин.
История
Разработка платформы Nitro началась в середине 2010-х годов как реакция на рост требований клиентов AWS к производительности и безопасности облачных ресурсов. Традиционные гипервизоры, основанные на программном управлении аппаратурой, сталкивались с ограничениями: часть вычислительной мощности сервера расходовалась на обработку операций ввода-вывода (сетевых, дисковых), а также на изоляцию гостевых операционных систем.
В 2017 году AWS объявила о запуске инстансов C5, которые стали первыми экземплярами EC2, полностью работающими на новой платформе. Гипервизор Nitro пришёл на смену Xen, использовавшемуся ранее. К 2020 году практически все типы инстансов EC2 (general purpose, compute, memory, storage, GPU-accelerated) были переведены на Nitro. К 2024 году платформа Nitro стала неотъемлемой частью архитектуры всех вычислительных ресурсов AWS, включая сервисы Lambda, Fargate и контейнерные кластеры ECS/EKS.
Архитектура и устройство
Основное отличие платформы Nitro от классических гипервизоров заключается в делении функционала на три компонента: аппаратные ускорители Nitro Cards, контроллер безопасности Nitro Security Chip и собственно лёгкий программный гипервизор (микро-гипервизор).
Ниже системное обеспечение
Традиционный гипервизор (например, KVM) берет на себя управление процессорными регистрами, памятью, прерываниями и устройствами ввода-вывода. В платформе Nitro эти функции распределены:
- Управление процессором и памятью оставлено на минимальном программном уровне — микро-гипервизоре, написанном специально под ARM-архитектуру. Он занимается только изоляцией виртуальных машин (VMs), переключением контекстов и управлением таблицами страниц.
- Сетевой ввод-вывод полностью вынесен на специализированную плату Nitro Card для сети (Elastic Network Adapter, ENA). Физический сетевой контроллер обрабатывает трафик без участия программного гипервизора. Гостевая ОС получает прямой доступ к аппаратуре через паравиртуализированные драйверы, но современные версии драйверов работают с минимальной задержкой, близкой к нативной.
- Хранение данных (блочное хранилище EBS) также обрабатывается отдельным аппаратным ускорителем — Nitro SSD Controller. Он обеспечивает изоляцию дисковых операций, шифрование на лету и управление очередями команд.
- Периферия (USB, последовательные порты, контроллер управления питанием) эмулируется через отдельные карты Nitro, часто на базе микроконтроллеров общего назначения.
Микро-гипервизор
Собственно гипервизор Nitro — это не монолитное ядро (как Xen или KVM), а минимальный слой кода, выполняющийся на выделенном ядре процессора или отдельном ARM-микроконтроллере. Его задача — только базовое управление виртуальными машинами (создание, уничтожение, настройка регистров) и обработка системных вызовов, связанных с виртуализацией. Весь остальной функционал (сеть, диск, консоль) передаётся внешним устройствам. Это снижает поверхность атаки и уменьшает накладные расходы: по утверждениям AWS, производительность сети и дисков на инстансах Nitro приближается к нативной производительности физического сервера.
Аппаратные ускорители (Nitro Cards)
Каждая физическая стойка AWS оснащается несколькими платами Nitro Cards, каждая из которых представляет собой полноценную систему-на-чипе (SoC) на базе ARM-процессора и специализированной логики (FPGA или ASIC). Карты подключаются к материнской плате сервера по шине PCIe. Они выполняют функции:
- виртуальной сетевой карты (VPC, Elastic Network Interface, security groups);
- контроллера хранилища (EBS, instance store);
- контроллера управления (Lightning Console — эмуляция текстовой консоли, последовательного порта, загрузки);
- выделенного шифровального движка (для защиты данных в покое и в пути без нагрузки на CPU).
Все карты взаимодействуют через защищённую внутреннюю шину, изолированную от трафика гостевых ОС.
Безопасность
Платформа Nitro реализует концепцию «эмуляция с нулевым доверием» (zero-trust virtualization). Ключевые механизмы защиты:
- Физическая изоляция: гипервизор Nitro выполняется на выделенном аппаратном модуле (отдельный ARM-чип), к которому гостевая ОС не имеет прямого доступа. Даже при компрометации гостевого ядра злоумышленник не может воздействовать на гипервизор, так как тот не использует общую память или ресурсы CPU для своей работы.
- Аппаратное шифрование: все данные, передаваемые между Nitro Cards и основной памятью сервера, могут шифроваться на уровне карты с помощью ключей, которые хранятся в защищённом хранилище на материнской плате (Trusted Platform Module). Шифрование не нагружает центральный процессор.
- Защита от атак по сторонним каналам: за счёт того, что обработка сетевых и дисковых прерываний происходит на отдельных устройствах, снижается возможность анализа задержек (timing attacks). Кроме того, AWS предоставляет отдельный тип инстансов с выделенными ядрами и памятью, исключающий разделение ресурсов.
- Изоляция управления: все операции управления (например, миграция виртуальной машины, изменение типа) инициируются из внешней управляющей сети AWS через закрытый API. Даже при физическом доступе к серверу (например, во время обслуживания) администратор не имеет возможности выполнить команды на Nitro Cards без авторизации в облачной панели.
Преимущества и значение
Применение платформы Nitro позволило AWS решить несколько ключевых задач:
- Производительность: пропускная способность сети для инстансов Nitro достигает 100 Гбит/с и более, а задержки ввода-вывода снижены до единиц микросекунд. Это делает такие инстансы пригодными для высокопроизводительных вычислений (HPC) и реального времени.
- Плотность размещения: за счёт того, что функции гипервизора занимают существенно меньше места в оперативной памяти (менее 100 МБ на сервер), на одном физическом сервере можно разместить больше виртуальных машин, чем на Xen или KVM при том же объёме ресурсов.
- Безопасность: выделенная аппаратная изоляция сделала Nitro фактическим стандартом для мультитенантных сред, где данные клиентов хранятся рядом с данными других организаций.
- Гибкость: платформа позволяет Amazon использовать для виртуализации любые модели процессоров (Intel, AMD, Arm) без необходимости переписывать ядро гипервизора под каждый тип — всё аппаратно-зависимое управление сосредоточено на картах Nitro.
Критика и ограничения
Основные претензии к платформе Nitro связаны с её закрытостью. В отличие от Xen или KVM, исходный код микро-гипервизора Nitro не является открытым. AWS публикует лишь документацию по драйверам и интерфейсам управления. Это вызывает опасения у специалистов по безопасности, которые не могут провести независимый аудит гипервизора. Однако AWS предлагает программу проверки платформы для крупных корпоративных клиентов, где подписанты соглашения о неразглашении могут изучить архитектуру.
Другое ограничение — привязка к аппаратуре AWS. Развернуть гипервизор Nitro на собственном оборудовании невозможно, так как все разработки защищены патентами и производятся по заказу Amazon. Это означает, что применение Nitro ограничено исключительно экосистемой Amazon Web Services.
Сравнение с другими гипервизорами
| Характеристика | Xen / KVM (традиционный) | Hyper-V (Microsoft) | VMware ESXi | AWS Nitro |
|---|---|---|---|---|
| Модель | Программная (монолитная) | Программно-аппаратная (на базе Windows Hypervisor) | Программно-аппаратная (на базе VMkernel) | Программно-аппаратная (специализированная) |
| Открытость | Открытый код | Проприетарный | Проприетарный | Проприетарный (закрытый код, частичная документация) |
| Затраты на ресурсы | ~300-500 МБ RAM на хост | ~150-300 МБ RAM на хост | ~200-400 МБ RAM на хост | <100 МБ RAM на хост |
| Аппаратное ускорение | Частично (через SR-IOV) | Частично (SR-IOV, RDMA) | Частично (SR-IOV, NVMe over Fabrics) | Полное (аппаратный ввод-вывод, шифрование) |
| Управление | Через ядро ОС | Через ядро Windows | Через ядро VMkernel | Через выделенные ARM-контроллеры |
| Основной заказчик | Разработчики, дата-центры | Корпоративный сегмент | Крупные предприятия | Облачные клиенты AWS (только в облаке) |
Применение
Платформа Nitro используется во всех современных инстансах EC2, включая:
- Инстансы общего назначения (m5, m6i, m7g)
- Инстансы с оптимизацией для вычислений (c5, c6i, c7g)
- Инстансы с большим объёмом памяти (r5, r6i, x2iedn)
- Инстансы с ускорением с помощью GPU (p3, p4d, g5)
- Инстансы для хранения данных (i3, i4i, d3)
- Выделенные хосты (dedicated hosts)
Кроме того, Nitro лежит в основе сервисов бессерверных вычислений AWS Lambda и AWS Fargate, где контейнеры и функции запускаются в изолированных микро-ВМ (micro-VMs). Это стало возможным благодаря малому размеру гипервизора и высокому быстродействию его запуска — новая виртуальная машина может быть подготовлена за сотни миллисекунд.
Источники
- Amazon Web Services, «AWS Nitro System: A closer look», официальная документация AWS (2023).
- «The AWS Nitro System: A New Virtualization Platform for High-Performance Cloud Computing», AWS re:Invent 2017, видеозапись доклада.
- Обзор архитектуры Nitro: «How AWS Nitro works» на сайте Jeff Barr (AWS Blog), 2017–2024.
- Сравнение гипервизоров в публикациях журнала «Communications of the ACM» и технических отчётах AWS.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →