Представлен (https://lkml.org/lkml/2015/5/11/539) второй выпуск (https://github.com/siemens/jailhouse/releases) свободного гипервизора Jailhouse (https://github.com/siemens/jailhouse), развиваемого компанией Siemens. Как и KVM гипервизор Jailhouse обеспечивает виртуализацию на уровне ядра Linux, но отличается от KVM более легковесной реализацией и ориентацией на привязку виртуальных машин к фиксированному CPU, области ОЗУ и аппаратным устройствам. Такой поход позволяет на одном физическом многопроцессорном сервере обеспечить работу нескольких независимых виртуальных окружений, каждое из которых закреплено за своим процессорным ядром. Код проекта распространяется (https://github.com/siemens/jailhouse) под лицензией GPLv2.При жесткой привязке к CPU накладные расходы от работы гипервизора сводятся к минимуму и существенно упрощается его реализация, так как нет необходимости выполнения сложного планировщика распределения ресурсов - выделение отдельного ядра CPU позволяет гарантировать отсутствие выполнения на данном CPU других задач. Плюсом подобного подхода является возможность обеспечить гарантированный доступ к ресурсам и предсказуемую производительность, что делает Jailhouse отличным решением для создания решений виртуализации для задач режима реального времени. Минусом является ограниченная масштабируемость, упирающаяся в число ядер CPU.
В терминологии Jailhouse виртуальные окружения именуются ячейками. Внутри ячейки система выглядит как однопроцессорный сервер, показывающий производительность близкую (https://docs.google.com/file/d/0B6HTUUWSPdd-Zl93MVhlMnRJRjg/...) к производительности выделенного ядра CPU. В ячейке может быть запущено окружение произвольной операционной системы, урезанные окружения для запуска одного приложения и специально подготовленные отдельные приложения, предназначенные для решения задач реального времени. Конфигурация задаётся в .cell-файлах (https://github.com/siemens/jailhouse/blob/master/config/), определяющих выделяемые окружению CPU, регионы памяти и порты ввода/вывода. Для управления изоляцией используются предоставляемые современными CPU аппаратные механизмы виртуализации. Гипервизор реализован в виде модуля для ядра Linux.
Во втором выпуске проведена адаптация гипервизора для архитектур AMD64 и ARMv7 (Banana Pi, NVIDIA Jetson TK1 и Versatile Express). Реализован механизм ivshmem для организации связи между ячейками. Задействованы дополнительные средства изоляции на архитектуре x86. Обеспечена поддержка крупных серверных систем x86. В качестве экспериментальных возможностей реализована поддержка верифицированной загрузки и запуска в ячейках экземпляров ОС на базе обособленных ядер Linux с пробросом устройств PCI (изначально, ячейки были нацелены на запуск обособленных приложений, а Linux мог загружаться только в корневой ячейке).
<center><img src="https://www.opennet.ru/opennews/pics_base/0_1384888400.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;" title="" border="0"></center>
URL: https://lkml.org/lkml/2015/5/11/539
Новость: https://www.opennet.ru/opennews/art.shtml?num=42207