IT-инфраструктура • инструкции • практикаПоиск по сайту

Серверы и системное администрирование

Найти материал →

Multikernel linux 7.0: опубликовано первое открытое дерево ядра для многопроцессорных систем

Multikernel Linux 7.0: опубликовано первое открытое дерево ядра

Проект Multikernel представил первый публичный релиз собственного дерева ядра, созданного на базе Linux 7.0. Версия получила обозначение v7.0-mk2 и предлагает необычный подход к использованию мощных многопроцессорных систем: несколько независимых экземпляров Linux могут одновременно работать на одном физическом сервере, получая выделенные процессоры, память и устройства.

Новая модель рассчитана прежде всего на крупные многоядерные машины. Вместо единого ядра, которое управляет всеми ресурсами компьютера, Multikernel позволяет запустить несколько самостоятельных ядер бок о бок. Один экземпляр выполняет роль хост-системы, распределяет доступные CPU, оперативную память и PCI-устройства, а затем передаёт отдельные наборы ресурсов дополнительным экземплярам Linux.

Важное отличие от виртуальных машин заключается в отсутствии гипервизора между гостевой системой и аппаратным обеспечением. Каждый экземпляр получает физические ядра процессора, собственный участок памяти и назначенные устройства, после чего выполняется непосредственно на сервере. Такой подход снижает накладные расходы виртуализации и может быть полезен для задач, чувствительных к задержкам.

Ресурсы при этом не закрепляются навсегда. Запущенный экземпляр можно остановить, вернуть выделенные ему процессоры, память и устройства хосту, а затем создать новый с другим ядром или изменённой конфигурацией. Это делает архитектуру интересной для тестовых стендов, исследовательских платформ и систем, где требуется быстро менять программное окружение без остановки всего сервера.

Подробности о первом публичном выпуске и устройстве проекта собраны в материале о [первом публичном дереве Multikernel Linux на базе Linux 7.0](https://linuxiac.com/multikernel-linux-releases-first-public-kernel-tree-based-on-linux-7-0/). На текущем этапе официально поддерживается только архитектура x86_64 - именно её разработчики проверяли наиболее тщательно.

Создатели Multikernel также опубликовали результаты сравнительного тестирования с KVM. В эксперименте использовались одинаковая сборка ядра, два процессорных ядра и 1 ГБ оперативной памяти на двухсокетной системе с Intel Xeon Gold 5418Y. Измерения проводились с помощью lmbench и должны были показать, насколько отличается работа приложений в Multikernel и традиционной виртуальной машине.

По пропускной способности и задержкам памяти результаты оказались почти одинаковыми. Это ожидаемо: современные аппаратные механизмы виртуализации достаточно эффективны. Более заметная разница проявилась в операциях, где требуется частое переключение контекста или пробуждение простаивающих виртуальных процессоров.

Переключение между двумя процессами в Multikernel заняло 1,37 микросекунды против 3,42 микросекунды в стандартной KVM-гостевой системе. Задержка передачи данных через pipe составила 3,24 против 7,06 микросекунды, а операция через Unix-сокет - 4,81 против 7,48 микросекунды.

Разработчики подчёркивают, что эти цифры не означают безусловное многократное превосходство над KVM. Значительная часть разницы связана с управлением простаивающими виртуальными CPU. В стандартной конфигурации KVM пробуждение такого vCPU требует выхода из виртуальной машины и повторного входа в неё. Multikernel напрямую управляет физическими ядрами, поэтому подобные переходы отсутствуют.

У этого решения есть обратная сторона. Выделенные процессоры выглядят для хост-системы постоянно занятыми и потребляют больше энергии. В описанной конфигурации дополнительные расходы составили около 19 Вт. Передача гостевой системе большего контроля над энергопотреблением помогла улучшить задержки, но привела к новым компромиссам между производительностью, автономностью и плотностью размещения задач.

Для пользователей, которые планируют Multikernel Linux установка, проект подготовил руководство по началу работы. Тем, кто хочет Multikernel Linux 7.0 скачать для экспериментов, следует учитывать, что речь идёт о раннем публичном выпуске: перед развёртыванием на рабочем сервере потребуется самостоятельно проверить совместимость оборудования, загрузчика, конфигурации памяти и PCI-устройств.

Получить актуальные файлы и сведения о развитии проекта можно через Multikernel Linux официальный сайт и связанные с ним репозитории. Дополнительные инструкции, описание архитектурных ограничений и примеры запуска представлены в разделе Multikernel Linux документация. Это особенно важно для администраторов, поскольку технология пока не предлагает такой же зрелый набор инструментов, как KVM, контейнеры или классические средства управления виртуальными машинами.

Отдельный интерес представляет Multikernel Linux поддержка нескольких ядер на одном сервере без традиционного слоя виртуализации. В перспективе такой подход может найти применение в облачных платформах, системах реального времени, изолированных сервисах и инфраструктуре для тестирования новых версий Linux. Например, разные экземпляры могут использовать отдельные версии ядра, не влияя друг на друга и сохраняя прямой доступ к назначенным ресурсам.

Поддержка других процессорных архитектур пока не объявлена. Однако разработчики уже отделили специфичные для архитектуры интерфейсы, заложив возможность будущих портов. Это означает, что в дальнейшем проект потенциально сможет выйти за пределы x86_64, хотя сроки появления ARM64, RISC-V или других вариантов не раскрываются.

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

Прокрутить вверх