Multikernel wurde vorgestellt, ein Mechanismus für die gleichzeitige Ausführung mehrerer Linux-Kerne.

Zur Diskussion haben die Entwickler des Linux-Kernels eine Reihe von Patches vorgeschlagen, die vom Multikernel-Projekt entwickelt wurden, das kürzlich in die Kategorie Open Source überführt wurde und nun zusammen mit der Community weiterentwickelt wird. Multikernel ermöglicht es, auf einem physikalischen Computer mehrere unabhängige Instanzen des Linux-Kernels auszuführen, die direkten Zugriff auf die Hardware-Ressourcen haben und zur Ausführung mehrerer isolierter Systemumgebungen verwendet werden können. Das Projekt wurde von der Firma Multikernel Technologies ins Leben gerufen, die von Cong Wang geleitet wird, der das Traffic Control (TC)-Subsystem im Linux-Kernel betreut.

Für den Start und die Verwaltung der Kerne wurde der verbesserte Aufruf kexec vorgeschlagen, der im Gegensatz zum klassischen kexec nicht auf den Austausch des laufenden Kernels beschränkt ist und das Starten zusätzlicher Instanzen des Kernels ermöglicht, die parallel ausgeführt werden. Zur Überwachung und Debugging der gestarteten Kernel-Instanzen wurde die Schnittstelle „/proc/multikernel“ implementiert, und für den Austausch von Nachrichten zwischen den Kernen und die Koordination der Arbeit wurde das Kommunikationsframework Multikernel IPI vorgeschlagen.

Multikernel wurde vorgestellt, ein Mechanismus für die gleichzeitige Ausführung mehrerer Linux-Kerne.

Multikernel wird als neue Isolationsarchitektur präsentiert, die eine Nische zwischen der Virtualisierung mit Hypervisor und der Container-Isolierung auf Basis eines gemeinsamen Kernels einnimmt. Im Gegensatz zur Virtualisierung erfordert Multikernel keine Verwendung eines Hypervisors, vereinfacht die Schaffung von Umgebungen für die isolierte Ausführung einzelner Anwendungen und ermöglicht eine hohe Leistung ohne die Overheads der Virtualisierung. Im Gegensatz zu Containern gewährleistet Multikernel ein hohes Maß an Isolation und ermöglicht die Verwendung eines einzelnen Kernels in jeder isolierten Umgebung.

Multikernel wurde vorgestellt, ein Mechanismus für die gleichzeitige Ausführung mehrerer Linux-Kerne.

Die Leistung bei der Verwendung von Multikernel wird als nahe der Leistung angesehen, die bei der Ausführung auf separater Hardware erzielt wird. Dies wurde durch den Ausschluss der typischerweise bei der Virtualisierung anfallenden Overheads erreicht, die durch den Wechsel der Kontrolle zwischen virtuellen Maschinen (VM exit), die IOMMU-Übersetzung und das Eingreifen des Hypervisors in die Ausführung privilegierter Operationen entstehen. Es wird eine dynamische Zuweisung von Ressourcen für die laufenden Umgebungen unterstützt und eine vorhersehbare Leistung gewährleistet.

Die gleichzeitige Ausführung mehrerer Kerne erfolgt ohne Virtualisierung, unter Verwendung eines SMP-Handlers, der die verfügbaren CPUs zwischen den Instanzen der Linux-Kerne verteilt. Jede Instanz des Linux-Kernels ist einem oder mehreren CPUs zugeordnet, die für ihre Ausführung reserviert sind, während die übrigen Hardware-Ressourcen gemeinsam genutzt werden.

Die Hauptvorteile von Multikernel:

  • Verbesserte Isolation von Ausfallzeiten der ausgeführten Umgebungen.
  • Erhöhte Sicherheit durch Trennung auf Kernel-Ebene.
  • Effizientere Nutzung der Ressourcen im Vergleich zu traditionellen virtuellen Maschinen, die auf Hypervisoren basieren, wie KVM und Xen.
  • Potenzielle Möglichkeit, den Kernel ohne Unterbrechung der Arbeit mithilfe des KHO-Mechanismus (Kernel Hand Over) zu aktualisieren.
  • Unterstützung der Integration mit standardisierten Cloud-Infrastrukturen und die Möglichkeit eines nahtlosen Übergangs von traditionellen Virtualisierungssystemen und containerbasierter Isolation.
  • Vollständige Kompatibilität mit bestehenden Anwendungen und Systemschnittstellen von Linux. Multikernel verändert lediglich punktuell den Kernel und bewahrt die vollständige Kompatibilität auf API-Ebene.

Quelle: opennet.ru

60GB SSD 8Gb DDR4