Второй выпуск свободного гипервизора Jailhouse

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

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

Во втором выпуске проведена адаптация гипервизора для архитектур AMD64 и ARMv7 (Banana Pi, NVIDIA Jetson TK1 и Versatile Express). Реализован механизм ivshmem для организации связи между ячейками. Задействованы дополнительные средства изоляции на архитектуре x86. Обеспечена поддержка крупных серверных систем x86. В качестве экспериментальных возможностей реализована поддержка верифицированной загрузки и запуска в ячейках экземпляров ОС на базе обособленных ядер Linux с пробросом устройств PCI (изначально, ячейки были нацелены на запуск обособленных приложений, а Linux мог загружаться только в корневой ячейке).

0_1384888400.png

© OpenNet