Разработчики из компании Siemens анонсировали проект Jailhouse, в рамках которого развивается новый гипервизор. Как и KVM, Jailhouse обеспечивает виртуализацию на уровне ядра Linux, но отличается более легковесной реализацией и ориентацией на партицирование оборудования. Под партицированием понимается привязка виртуальных машин к фиксированному CPU, что позволяет на одном физическом многопроцессорном сервере обеспечить работу нескольких независимых виртуальных окружений, каждое из которых закреплено за своим процессорным ядром.
С одной стороны подобный подход достаточно сильно ограничен в плане масштабируемости, так как число виртуальных машин упирается в число процессорных ядер. С другой стороны, закрепление CPU и фиксированного набора аппаратных ресурсов существенно упрощает реализацию гипервизора и обеспечивает предсказуемую производительность за счёт отсутствия необходимости выполнения сложного планировщика распределения ресурсов CPU и минимизации накладных расходов. Из виртуального окружения, запущенного под управлением Jailhouse, система выглядит как однопроцессорный сервер, показывающий производительность близкую к производительности выделенного ядра CPU.
Несмотря на то, что гипервизор работает только под Linux, в виртуальных окружениях, именуемых "ячейками", могут выполняться произвольные ОС или урезанные окружения для запуска одного приложения. Более того, внутри окружений могут выполняться приложения, предназначенные для решения задач реального времени - выделение отдельного ядра CPU позволяет гарантировать отсутствие выполнения на данном CPU других задач. Для управления изоляцией используются предоставляемые современными CPU аппаратные механизмы виртуализации. В этом плане Jailhouse близок к KVM и отличается от изолированных контейнеров LXC или OpenVZ.
Разработка проекта пока не завершена, но уже доступен рабочий вариант, обеспечивающий работу на x86-процессорах Intel с поддержкой VMX или в демонстрационной конфигурации на базе QEMU/KVM. Из планов отмечается верификация и доработка механизмов изоляции окружений, создание порта для процессоров ARMv7, поддержка Intel IOMMU, обеспечение вложенной виртуализации (KVM поверх Jailhouse) Код проекта доступен на GitHub под лицензией GPLv2. Для использования Jailhouse не требуется наложения патчей на ядро Linux, достаточно собрать и загрузить модуль ядра. Конфигурация задаётся в .cell-файлах, определяющих выделяемые окружению CPU, регионы памяти и порты ввода/вывода.
С одной стороны подобный подход достаточно сильно ограничен в плане масштабируемости, так как число виртуальных машин упирается в число процессорных ядер. С другой стороны, закрепление CPU и фиксированного набора аппаратных ресурсов существенно упрощает реализацию гипервизора и обеспечивает предсказуемую производительность за счёт отсутствия необходимости выполнения сложного планировщика распределения ресурсов CPU и минимизации накладных расходов. Из виртуального окружения, запущенного под управлением Jailhouse, система выглядит как однопроцессорный сервер, показывающий производительность близкую к производительности выделенного ядра CPU.
Несмотря на то, что гипервизор работает только под Linux, в виртуальных окружениях, именуемых "ячейками", могут выполняться произвольные ОС или урезанные окружения для запуска одного приложения. Более того, внутри окружений могут выполняться приложения, предназначенные для решения задач реального времени - выделение отдельного ядра CPU позволяет гарантировать отсутствие выполнения на данном CPU других задач. Для управления изоляцией используются предоставляемые современными CPU аппаратные механизмы виртуализации. В этом плане Jailhouse близок к KVM и отличается от изолированных контейнеров LXC или OpenVZ.
Разработка проекта пока не завершена, но уже доступен рабочий вариант, обеспечивающий работу на x86-процессорах Intel с поддержкой VMX или в демонстрационной конфигурации на базе QEMU/KVM. Из планов отмечается верификация и доработка механизмов изоляции окружений, создание порта для процессоров ARMv7, поддержка Intel IOMMU, обеспечение вложенной виртуализации (KVM поверх Jailhouse) Код проекта доступен на GitHub под лицензией GPLv2. Для использования Jailhouse не требуется наложения патчей на ядро Linux, достаточно собрать и загрузить модуль ядра. Конфигурация задаётся в .cell-файлах, определяющих выделяемые окружению CPU, регионы памяти и порты ввода/вывода.