Компания Siemens выпустила гипервизор Jailhouse 0.6

09.01.2017 16:44

Доступен выпуск свободного гипервизора Jailhouse 0.6, развиваемого компанией Siemens. Это третий выпуск за время существования проекта. Код проекта распространяется под лицензией GPLv2. Гипервизор поддерживает работу на системах x86_64 с расширениями VMX+EPT или SVM+NPT (AMD-V), а также на процессорах ARMv7 (Banana Pi, NVIDIA Jetson TK1, Versatile Express с Cortex-A15 или A7) и ARMv8/ARM64 (AMD Seattle, LeMaker HiKey, NVIDIA Jetson TX1, Xilinx ZCU102 ) с расширениями для виртуализации.

Организация взаимодействия с операционной системой в Jailhouse напоминает KVM, Jailhouse также обеспечивает виртуализацию на уровне ядра Linux, но отличается от KVM более легковесной реализацией и ориентацией на привязку виртуальных машин к фиксированному CPU, области ОЗУ и аппаратным устройствам. Такой поход позволяет на одном физическом многопроцессорном сервере обеспечить работу нескольких независимых виртуальных окружений, каждое из которых закреплено за своим процессорным ядром.

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

В терминологии Jailhouse виртуальные окружения именуются ячейками. Внутри ячейки система выглядит как однопроцессорный сервер, показывающий производительность близкую к производительности выделенного ядра CPU. В ячейке может быть запущено окружение произвольной операционной системы, урезанные окружения для запуска одного приложения и специально подготовленные отдельные приложения, предназначенные для решения задач реального времени. Конфигурация задаётся в .cell-файлах, определяющих выделяемые окружению CPU, регионы памяти и порты ввода/вывода. Для управления изоляцией используются предоставляемые современными CPU аппаратные механизмы виртуализации. Гипервизор реализован в виде модуля для ядра Linux.

Компания Siemens выпустила гипервизор Jailhouse 0.6

В новом выпуске:

  • Переработана и доведена до готовности к применению поддержка процессоров ARMv7;
  • Добавлена поддержка архитектуры ARMv8 и следующих плат на её основе: AMD Seattle / SoftIron Overdrive 3000, LeMaker HiKey, NVIDIA Jetson TX1 и Xilinx ZCU102;
  • Поддержка загрузки нескольких экземпляров Linux, в однопроцессорном или многопроцессорном режимах (SMP), на всех поддерживаемых аппаратных архитектурах;
  • Расширены средства обеспечения связи между ячейками, в том числе добавлен драйвер с реализацией виртуального сетевого протокола, работающий на всех поддерживаемых архитектурах;
  • Внесена большая порция улучшений, связанных с работой на системах x86: Добавлена поддержка AMD IOMMU и технологии управления L3-кэшем Intel (Intel Cache Allocation Technology). Реализована поддержка новых процессоров Intel, включая SoC Apollo Lake;
  • Поддержка субстраничных регионов MMIO (sub-page region).

В будущем планируется обеспечить регулярное формирование релизов (прошлая версия была выпущена в мае 2015 года), которые отныне будут развиваться в рамках трёхмесячного цикла разработки. Из планов по развитию функциональности отмечается переработка устройства для взаимодействия между ячейками (ivshmem 2.0), улучшение документации и автоматизация тестирования работы на поддерживаемых устройствах.