Компания Siemens представила (https://lkml.org/lkml/2018/6/4/393) выпуск свободного гипервизора Jailhouse 0.9 (https://github.com/siemens/jailhouse), компоненты для гостевых систем которого уже включены в состав основного ядра Linux. Гипервизор поддерживает работу на системах 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 ) с расширениями для виртуализации. Код проекта распространяется (https://github.com/siemens/jailhouse) под лицензией GPLv2.
Гипервизор реализован в виде модуля для ядра Linux и обеспечивает виртуализацию на уровне ядра. Для управления изоляцией используются предоставляемые современными CPU аппаратные механизмы виртуализации. Отличительными особенностями Jailhouse являются легковесная реализация и ориентация на привязку виртуальных машин к фиксированному CPU, области ОЗУ и аппаратным устройствам. Такой подход позволяет на одном физическом многопроцессорном сервере обеспечить работу нескольких независимых виртуальных окружений, каждое из которых закреплено за своим процессорным ядром.При жесткой привязке к CPU накладные расходы от работы гипервизора сводятся к минимуму и существенно упрощается его реализация, так как нет необходимости выполнения сложного планировщика распределения ресурсов - выделение отдельного ядра CPU позволяет гарантировать отсутствие выполнения на данном CPU других задач. Плюсом подобного подхода является возможность обеспечить гарантированный доступ к ресурсам и предсказуемую производительность, что делает Jailhouse отличным решением для создания решений виртуализации для задач режима реального времени. Минусом является ограниченная масштабируемость, упирающаяся в число ядер CPU.
В терминологии Jailhouse виртуальные окружения именуются ячейками. Внутри ячейки система выглядит как однопроцессорный сервер, показывающий производительность близкую (https://docs.google.com/file/d/0B6HTUUWSPdd-Zl93MVhlMnRJRjg/...) к производительности выделенного ядра CPU. В ячейке может быть запущено окружение произвольной операционной системы, урезанные окружения для запуска одного приложения и специально подготовленные отдельные приложения, предназначенные для решения задач реального времени. Конфигурация задаётся в .cell-файлах (https://github.com/siemens/jailhouse/blob/master/configs/), определяющих выделяемые окружению CPU, регионы памяти и порты ввода/вывода.
В новом выпуске
- Добавлена поддержка платформ Emtrion emCON-RZ/G1H, NXP MCIMX8M-EVK и NVIDIA Jetson TX2;- Реализована инфраструктура для подключения модулей с реализацией расширенной функциональности на этапе сборки;
- В демонстрационных окружениях (inmates) унифицировано размещение секции с командной строкой;
- Команда для загрузки Linux улучшена в плане разделения обработки ядра и initramfs;- Для платформ ARM и ARM64 добавлена возможность запуска окружений с включением MMU и кэшированием, добавлена поддержка загрузки сжатых образов с Linux;
- Для платформы x86 улучшена эмуляция инструкций MMIO. С целью повышения защищённости обеспечен перехват инструкций AMD SVM.Из реализованных, но не вошедших в релиз новых возможностей отмечается система привязанных к CPU таблиц гипервизора (для защиты от атак Spectre), переработка демонстрационных окружений с поддержкой SMP для систем ARM/ARM64, новый биндинг на языке Python для доступа к управляющему интерфейсу, доведение до конца работы над интерфейсом на базе virtio для организации взаимодействия между ячейками.
URL: https://lkml.org/lkml/2018/6/4/393
Новость: https://www.opennet.me/opennews/art.shtml?num=48720
На телефоне пойдёт?
Поползёт.
На дисковом? Не уверен.
Зависит от сноровки и прилежности оператора.
Опять типа умничаешь? Ай-яй-яй.
Ibujhby - gbljhfc!
cdtxre lth:fk&
Если вставишь в него SSD - легко !
У меня в кладовой VEF TA 68 лежит.
Не подскажете, куда там ssd вставляют?
тыщу микроVPS на машинку не засунешь я так понял. жал
> тыщу микроVPS на машинку не засунешь я так понял. жалЖал да не дожал. Мне тоже интересно, можно ли запустить больше виртуалок чем количество ядер в системе?
> Мне тоже интересно, можно ли запустить больше виртуалок
> чем количество ядер в системе?Ну раз говорится, что привязка виртуалки к ядру - есть мнение, что вряд ли. Вот интересно, а ко всяким HT\SMT машинку тоже можно цеплять или к физическким ядрам только?
> Ну раз говорится, что привязка виртуалки к ядру - есть мнение, что вряд ли. Вот интересно, а ко всяким HT\SMT машинку тоже можно цеплять или к физическким ядрам только?Такое примитивное и не конструктивное мнение гроша не стоит. Можно я попрошу не писать больше подобные "рассуждения" уровня школьника (с учетом того что это написано в тексте) на техническом ресурсе если не хотите в очередной раз хейт к свой адрес.
У меня есть основания считать что если
> Гипервизор реализован в виде модуля для ядра Linux и обеспечивает виртуализацию на уровне ядра
, то ничего не мешает сообщить гипервизору о том что в системе 256 ядер, хотя реально ядер может быть всего 4. Тогда, несколько (1,2,3) ядра можно связать с соответствующими ячейками, где время отклика критично, а оставшиеся ячейки скинуть на все оставшиеся ядра, и обрабатывать их задачи по принципу 'idle', меняя контекст выполнения гипервизора перед началом обработки кода ячейки.
Эта схема проста как 2 копейки и не требует интеллект эвристического планировщика (хотя и не помешает конечно).
> делает Jailhouse отличным решением для создания решений виртуализации для задач режима реального времени.Можно подумать, что в задачах реального времени всё упирается в процессорные ядра.
Пока не появится толковых реализаций QoS для общего кеша и ОЗУ, такие поделия будут годиться только для soft realtime, что, в общем-то, тоже имеет право на жизнь.
> Пока не появится толковых реализаций QoS для общего кешаИспользовать процессоры с раздельными кэшами ядер, делов-то
>и ОЗУ
NUMA же
Ну и какой толк будет от такой виртуализации?
В переводе используется слово "ячейка", хотя в свете названия проекта, должна быть "камера"
>JailhouseОтличное название. Просто шикарное.
Система для видеокарт. Расходимся, поцаны.