Multikernel Linux: несколько ядер на одной машине без гипервизора

· Linux и open source
Вышел первый публичный релиз мультиядерного дерева Linux 7.0-mk2. Технология позволяет запускать несколько независимых экземпляров ядра на голом железе, минуя виртуализацию, и обещает выигрыш в производительности перед KVM.

cover.svg

Год назад для ядра Linux предложили мультиядерную (multikernel) архитектуру, позволяющую нескольким независимым экземплярам ядра сосуществовать на одной физической машине. Каждый экземпляр работает на выделенных ядрах процессора, разделяя при этом общие аппаратные ресурсы. Сегодня вышел релиз Linux 7.0-mk2 — по сути, первая публичная сборка, в которой накопленные за год патчи собраны воедино против дерева ядра 7.0 для удобства тестирования и оценки.

Как это работает

Разработчик Cong Wang из компании Multikernel Technologies описывает идею так: mklinux позволяет одной машине запускать сразу несколько независимых ядер Linux на голом железе — без гипервизора. Хостовое ядро владеет пулом процессорных ядер, памяти и PCI-устройств, нарезает этот пул на отдельные экземпляры и загружает в каждый из них «порождённое» ядро через kexec_file_load(). Каждое такое ядро исполняется нативно на собственных процессорных ядрах, собственной физической памяти и собственных устройствах. Ничего не эмулируется и не перехватывается — общим остаётся только то, что вы сами решили сделать общим.

Экземпляры объявляются через дерево устройств (device tree), записываемое в /sys/fs/multikernel/, а оверлеи позволяют перемещать память, процессорные ядра и устройства между пулом и работающими экземплярами без перезагрузки. Экземпляр можно погасить, вернуть его ресурсы в пул и заново запустить уже с другим ядром.

Отличия от виртуализации и контейнеров

В сравнении с виртуальными машинами здесь нет пути VM exit, второго уровня таблиц страниц и модели устройств. В сравнении с контейнерами экземпляры не делят одно ядро, поэтому блокировка, паника или эксплойт в одном ядре не могут дотянуться до другого — что выглядит привлекательно с точки зрения изоляции.

Производительность

В анонс включены бенчмарки, продвигающие преимущество подхода над KVM: сначала сравнение в конфигурации 2 ядра против 2 vCPU, а затем тесты на 24-ядерной системе, демонстрирующие выигрыш от работы двух ядер вместо одного.

Подробности изложены в сегодняшнем анонсе в списке рассылки ядра Linux. Пока неясно, попадёт ли поддержка multikernel в основную ветку ядра и когда именно, — а если и попадёт, то, судя по всему, ещё нескоро.


Источник: Phoronix

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.