Первый выпуск Jailhouse, развиваемого компанией Siemens гипервизора для Linux
Компания Siemens опубликовала первый выпуск свободного гипервизора Jailhouse, обеспечивающего виртуализацию на уровне ядра Linux. Основными отличиями Jailhouse от KVM являются более легковесная реализация и ориентация на привязку виртуальных машин к фиксированному CPU, области ОЗУ и работу аппаратных устройств, что позволяет на одном физическом многопроцессорном сервере обеспечить работу нескольких независимых виртуальных окружений, каждое из которых закреплено за своим процессорным ядром. Код проекта доступен на GitHub под лицензией GPLv2. Несмотря на то, что прикрепление виртуальных машин к ядрам CPU ограничивает масштабируемость, такой подход существенно упрощает реализацию гипервизора (по сравнению с KVM и Xen), позволяет обеспечить гарантированный доступ к ресурсам и обеспечивает предсказуемую производительность. При жесткой привязки к CPU нет необходимости выполнения сложного планировщика распределения ресурсов и сведены к минимуму накладные расходы от работе гипервизора. Jailhouse отлично подходит для создания решений виртуализации для задач режима реального времени, так как выделение отдельного ядра CPU позволяет гарантировать отсутствие выполнения на данном CPU других задач.
В терминологии Jailhouse виртуальные окружения именуются ячейками. Внутри ячейки система выглядит как однопроцессорный сервер, показывающий производительность близкую к производительности выделенного ядра CPU. В ячейке может быть запущено окружение произвольной операционной системы, урезанные окружения для запуска одного приложения и специально подготовленные отдельные приложения, предназначенные для решения задач реального времени.
Для управления изоляцией используются предоставляемые современными CPU аппаратные механизмы виртуализации. Гипервизор реализован в виде модуля для ядра Linux. Конфигурация задаётся в .cell-файлах, определяющих выделяемые окружению CPU, регионы памяти и порты ввода/вывода. Первый выпуск ознаменовал собой доведение до готовности всех функций, необходимых для работы на x86 процессорах Intel, в том числе возможность использования VT-d DMA и поддержку ремаппинга прерываний для изолированной привязки PCI-устройств. Для упрощения настройки представлена утилита для генерации конфигурационных cell-файлов. Для написания обособленных приложений на языке Си, способных работать в ячейках Jailhouse без дополнительных прослоек, подготовлен специальный фреймворк.
В будущих выпусках планируется адаптировать гипервизор для архитектур AMD64 и ARM, реализовать механизм организации связи между ячейками, развитие средств для систем с повышенными требованиями к надёжности. В частности, планируется подготовить инфраструктуру для создания сертифицированных решений для систем высокой надёжности и адаптировать Jailhouse для применения в таких областях, как телекоммуникации и работающие в режиме реального времени высокоскоростные системы управления.
© OpenNet