Компания ByteDance представила систему Parker для запуска нескольких ядер Linux без виртуализации

Компания ByteDance, известная своим сервисом TikTok, опубликовала патчи для ядра Linux с реализацией системы Parker (PARtitioned KERnel). Это решение позволяет одновременно запускать на одном компьютере несколько экземпляров ядра Linux без использования традиционной виртуализации. По своим целям Parker близок к недавно анонсированному проекту Multikernel, но отличается архитектурой и технической реализацией.

Секционирование ресурсов

Parker разделяет доступные CPU, память и устройства ввода-вывода между ядрами. При запуске первое ядро (Boot Kernel) настраивает секционирование аппаратных ресурсов и выделяет для каждого дополнительного экземпляра выделенные CPU-ядра, области памяти и отдельные PCIe-устройства (например, NVMe-накопители или сетевые адаптеры). Последующие экземпляры (Application Kernel) работают исключительно в рамках закреплённых за ними ресурсов и не взаимодействуют с другими ядрами.

Упрощённая изоляция в начальной версии

В текущем варианте Parker отсутствует отдельный управляющий механизм: все экземпляры ядра используются в одной области изоляции (domain). Это упрощает реализацию и снижает накладные расходы, но означает, что сбой в любом экземпляре может повлиять на всю систему. В будущем разработчики планируют задействовать аппаратные механизмы для более жёсткой изоляции между экземплярами.

Интерфейс и загрузка ядра

Для управления экземплярами ядра реализован интерфейс на базе kernfs. Дополнительные ядра загружаются при помощи kexec: первичное ядро освобождает CPU-ядра, резервирует физическую память и отвязывает PCI-устройства, после чего запускает Application Kernel в заранее выделенных областях памяти.

Области применения

Parker ориентирован на серверы и рабочие станции с большим количеством CPU-ядер, где при масштабировании задач традиционные механизмы виртуализации создают значительные накладные расходы. Система позволяет запускать изолированные экземпляры Linux с более низким уровнем абстракции и, как следствие, с меньшими задержками и более эффективным использованием ресурсов.

Планы развития

В следующих версиях Parker появится:

  • Использование аппаратной виртуализации и технологий IOMMU для изоляции экземпляров ядра.
  • Внедрение отдельного управляющего механизма для автоматического распределения и отслеживания состояния Application Kernel.
  • Расширенные возможности настройки оптимизаций и параметров каждого экземпляра ядра на лету.