Neue Funktionen und Änderungen UEK 8

Neue Features, Verbesserungen und andere bemerkenswerte Änderungen, die in UEK 8 eingeführt werden.

Übersicht über wichtige Änderungen in UEK 8

Im Folgenden finden Sie eine Zusammenfassung der Features, Änderungen und Verbesserungen, die in UEK 8 im Vergleich zu UEK R7 eingeführt werden:

  • Linux 6.12 stabile Kernel-Basis

    Das Mainline-Kernel-Release 6.12, das als Basiskernel für UEK 8 verwendet wird, umfasst viele Upstream-Kernelfeatures und -Verbesserungen gegenüber früheren UEK-Releases und gegenüber RHCK auf Oracle Linux 9.

  • Kernel-Modul-Packaging wird aktualisiert

    Kernel-Module werden in mehr atomaren Paketen verteilt, um die Angriffsfläche auf dem Kernel zu reduzieren, die Wartung von Kernel-Modulen zu verbessern und auch die Sichtbarkeit von Modulabschreibungen zu verbessern. Eine vollständige Ansicht des Kernel-Packages in UEK 8 finden Sie unter Änderungen an UEK Content Distribution and Packaging.

  • 64k Base Page Größe auf Arm

    In diesem Release ist eine Version des Kernels mit einer Basisseitengröße von 64 K nur für Ampere-Arm-basierte Compute-Ausprägungen in Oracle Cloud Infrastructure verfügbar. Die Größe der 64-K-Basisseite verbessert die Verarbeitung von Workloads durch Arm-Plattformen mit großen, zusammenhängenden Speicherdatensätzen. Weitere Informationen finden Sie unter (aarch64) 64k Base Page Size on Arm.

  • Weitere Plattform-Updates

    Mehrere generische Plattformupdates sind enthalten. Siehe Generic Platform Updates. Einige andere Intel-spezifische Plattformupdates sind verfügbar, einschließlich Sicherheitsfunktionen wie Intel Software Guard Extensions und neuer Hardwareunterstützung für die Intel Quick Assist Technology (QAT). Siehe Intel Platform-Updates.

  • Vollständig fairer Scheduler (CFS) ersetzt durch frühestmögliche virtuelle Deadline zuerst (EEVDF)

    CFS wird durch den EEVDF-Scheduler ersetzt, um das Planungsverhalten zu verbessern und die Konfigurationskomplexität zu reduzieren. Siehe EEVDF Scheduler Replaces CFS.

  • Verbesserte Speicherverwaltung

    In UEK 8 werden viele Verbesserungen bei der Speicherverwaltung angezeigt, darunter mehrere Speicherzuordnungsoptimierungen, Leistungsverbesserungen durch die Einführung von Foliostrukturen und einige Verbesserungen bei der Handhabung von Riesigen Seiten. Siehe Memory Management.

  • Dateisystemupdates

    Die Unterstützung für die Btrfs- und OCFS2-Dateisysteme ist in UEK 8 aktiviert. Für die Btrfs-, XFS- und NFS-Dateisysteme in diesem Release sind erhebliche Verbesserungen verfügbar. Weitere Informationen zu neuen Dateisystemfunktionen, die in UEK 8 eingeführt werden, finden Sie unter Dateisysteme

  • ASMLib v3 und io_uring

    In diesem UEK-Release, das auch ASMLib v3 unterstützt, sind mehrere io_uring-Verbesserungen enthalten. ASMLib v3 verwendet io_uring für das Automatic Storage Management-Feature von Oracle Database. Siehe io_uring Enhancements und ASMLib v3.

  • Netzwerk-Updates

    Mehrere allgemeine Netzwerkverbesserungen sind in UEK 8 enthalten. Siehe Allgemeine Netzwerkverbesserungen.

  • Sicherheitsbezogene Updates

    Einige andere sicherheitsrelevante Updates sind in diesem UEK-Release enthalten, einschließlich einiger Updates zum Zufallszahlengenerator, um die Leistung und Sicherheit zu verbessern. Siehe Erweiterungen für den Zufallszahlengenerator. Die Kernel-TLS-Offloadfunktion ist in UEK 8 aktiviert. Siehe KTLS.

  • Berkeley Packet-Filter

    Im Berkeley Packet Filter (BPF), der für das Tracing verwendet wird, sind mehrere Verbesserungen verfügbar, darunter eine dedizierte Speicherzuweisung, ein neuer Benutzerringpuffer und die Verwendung von Resilient BPF Type Format-(BTF-)Modulen zur Verwendung von BTF für Out-of-Tree-Module. Siehe Berkeley Packet Filter (BPF) Enhancements.

  • DTrace v2.0

    Dtrace v2.0 ist weiterhin in UEK 8 verfügbar und nutzt Kernel-Tracing-Funktionen wie eBPF. Ausführliche Informationen zu DTrace-Releases und anderen wichtigen Änderungen finden Sie unter Oracle Linux: DTrace - Versionshinweise.

    .

Änderungen bei UEK Content Distribution und Packaging

Die folgende Tabelle enthält Details dazu, wie UEK 8-Inhalte verteilt und verpackt werden. Außerdem enthält sie Informationen zu Packageabhängigkeiten und anderen wichtigen Anforderungen.

Hinweis

Kernel-Packaging wird in UEK 8 aktualisiert und unterscheidet sich von früheren UEK-Releases. Vor allem Kernel-Module werden jetzt in einer Sammlung von separaten Paketen geliefert. Das Trennen von Modulen aus den Kernkernpaketen trägt dazu bei, den Overhead zu reduzieren, bietet einen Mechanismus zur Minimierung der Angriffsfläche und verbessert die Wartung von Kernelmodulen.

Konfigurationsdateien zur Identifizierung von Modulen, denen das Laden verweigert wird, werden im Rahmen der Initiative von Oracle zur Verwendung einer integrativeren Sprache in ihren Produkten von "Blacklist"-Dateien in "Denylist" umbenannt.

Außerdem werden einige Kernel-Utilitytools, die in früheren Releases im kernel-uek-core-Package gebündelt wurden, in ein separates Package kernel-uek-tools verschoben.

Sie können die in jedem Package verfügbaren Module auflisten, indem Sie Folgendes ausführen:

rpm -q -l kernel-uek-modules-<ext>

Um zu ermitteln, zu welchem Paket ein Modul gehört, das auf dem System verfügbar ist, können Sie Folgendes ausführen:

rpm -q -f /lib/modules/$(uname -r)/<path to module>

Wenn Sie den Befehl modprobe für ein Modul ausführen und das Package, zu dem das Modul gehört, nicht installiert ist, werden Sie in der Ausgabe benachrichtigt und erhalten den Package-Namen, den Sie installieren müssen. Beachten Sie, dass Sie das Package kmod möglicherweise auf die neueste Version aktualisieren müssen, damit diese Funktionalität funktioniert.

sudo modprobe wl1251_sdio
modprobe: FATAL: Module wl1251_sdio not found in directory /lib/modules/6.12.0-0.20.20.el9uek.x86_64, 
ensure the following package is installed: kernel-uek-modules-wireless-6.12.0-0.20.20.el9uek.x86_64
      

Eine Packagezuordnungsdatei ist unter /lib/modules/$(uname -r)/modules.packages enthalten und wird im kernel-uek-core-Package für UEK 8 und höher geliefert. Sie können diese Datei auch verwenden, um das Modulpaket zu identifizieren, das einen bestimmten Treiber enthält.

Paket

Beschreibung

kernel-uek

Dies ist ein Meta-Paket, das keine Dateien enthält.

In Oracle Linux 9 weist das Package die folgenden Abhängigkeiten auf:

  • kernel-uek-core
  • kernel-uek-modules-core
  • kernel-uek-modules
  • kernel-uek-modules-desktop
  • kernel-uek-modules-extra-netfilter
  • kernel-uek-modules-usb
  • kernel-uek-modules-wireless

Die Installation dieses Pakets entspricht der Installation des vollständigen UEK-Kernels. Durch die Installation dieses Packages wird die Kompatibilität mit früheren Releases aufrechterhalten.

kernel-uek-core

Dieses Package enthält die UEK-Kernel-Binärdatei und unterstützende Dateien, die in /boot kopiert werden. Das Package wird zusammen mit dem Package kernel-uek-modules-core und dem Package kernel-uek-modules installiert. Beachten Sie, dass für dieses Package auch das Package linux-firmware-core installiert werden muss.

kernel-uek-modules-core

Dieses Package enthält eine minimale Anzahl von Core-Kernelmodulen und unterstützenden Dateien, die für von Oracle entwickelte Systeme verwendet werden. Das Package ist eine Abhängigkeit von kernel-uek-core und wird standardmäßig installiert.

kernel-uek-modules

Dieses Paket enthält verschiedene Module, die in den meisten Serverkonfigurationen häufig verwendet werden. Beachten Sie, dass für dieses Package auch das Package linux-firmware installiert werden muss.

kernel-uek-modules-desktop

Dieses Paket enthält Module für Desktop-Hardware.

Dieses Paket kann entfernt werden, um das System auf vielen Serverplattformen zu schützen, wenn keines der Module verwendet wird.

kernel-uek-modules-usb

Dieses Paket enthält USB-Treiber.

Dieses Paket kann entfernt werden, um das System auf vielen Serverplattformen zu schützen, wenn keines der Module verwendet wird.

kernel-uek-modules-wireless

Dieses Paket enthält drahtlose Treiber.

Dieses Paket kann entfernt werden, um das System auf vielen Serverplattformen zu schützen, wenn keines der Module verwendet wird.

kernel-uek-modules-extra-netfilter

Dieses Paket enthält ungewöhnliche Netfilter-Module.

Dieses Paket kann entfernt werden, um das System auf vielen Serverplattformen zu schützen, wenn keines der Module verwendet wird.

kernel-uek-modules-deprecated

Dieses Paket enthält Module, die in zukünftigen Releases entfernt werden sollen.

Dieses Package ist optional und Sie können das Package manuell über das yum-Repository oder den ULN-Kanal installieren.

Die in diesem Package enthaltenen Module sollten nicht mehr verwendet werden und werden möglicherweise in einem zukünftigen Release entfernt.

kernel-uek-modules-extra

Dieses Paket enthält zusätzliche Module für Serverkonfigurationen, die jedoch nicht häufig verwendet werden.

Dieses Package ist optional und Sie können das Package manuell über das yum-Repository oder den ULN-Kanal installieren.

kernel-uek-tools

Dieses Package enthält Tools, die erforderlich sind, um andere Build- und Laufzeitabhängigkeiten in der tools/perf-Codebasis zu erfüllen, und die nach dem Booten für die Interaktion mit dem Kernel verwendet werden können. Beispiel: Das Tool perf, das für die Analyse der Systemperformance verwendet wird, ist in diesem Package enthalten.

linux-firmware-core

Dieses Package enthält Kernfirmwarekomponenten und ist eine Abhängigkeit für das Package kernel-uek-core.

linux-firmware

Dieses Package enthält Firmwarekomponenten, die nicht im Package linux-firmware-core angegeben sind, und ist abhängig vom Package kernel-uek-modules.

Beachten Sie, dass für dieses Package auch das Package linux-firmware-core installiert werden muss.

Zur Sicherheitshärtung wird empfohlen, alle kernel-uek-modules-*-Packages zu entfernen, die nicht vom System benötigt werden. So entfernen Sie Packages:

  1. Markieren Sie die Basismodulpackages, die Sie auf dem System benötigen, um zu verhindern, dass sie entfernt werden. Beispiel:

    sudo dnf mark install kernel-uek-core kernel-uek-modules
  2. Entfernen Sie die nicht verwendeten Module-Packages und die Metapackage kernel-uek aus dem System:

    sudo dnf erase kernel-uek-modules-desktop kernel-uek

(aarch64) 64k Basisseitengröße auf Arm

Zusätzlich zum Standard-Build von UEK für Arm (aarch64), der eine Basisgröße von 4K-Seiten festlegt, ist ein kernel-uek64k-Package, das eine Basisseitengröße von 64K festlegt, nur für Ampere-Arm-basierte Compute-Ausprägungen in Oracle Cloud Infrastructure verfügbar. Bei anderen Anwendungsfällen als OCI ist das kernel-uek64-Package nur als technische Vorschau verfügbar. Das kernel-uek64k-Package ist für Oracle Linux 9 und höher verfügbar.

Der Kernel mit 64k-Seitengröße ist eine nützliche Option für Ampere-(Arm-)Plattformen, die Workloads mit großen, zusammenhängenden Speicherdatensätzen verarbeiten und bei einigen Arten von speicher- und CPU-intensiven Vorgängen eine bessere Performance erzielen können.

Der Kernel mit 4K-Seitengröße ist für kleinere Umgebungen nützlich, bei denen die Minimierung der Speicherauslastung des physischen Systems eine Priorität ist.

Beachten Sie, dass sich der Kernel mit 4K-Seitengröße und der Kernel mit 64K-Seitengröße nicht in der Benutzererfahrung unterscheiden, da der Benutzerbereich gleich ist.

Nach der Installation eines Systems mit kernel-uek64k wird der Wechsel zu einer 4K-Kernelseitengröße nicht mehr unterstützt.

Kernel-uek64k wird installiert

Hinweis

Die einzige Seitengröße für NVIDIA Grace-Compute-Ausprägungen ist standardmäßig auf 64k festgelegt. Sie können optional von der 4k-Standardseitengröße in die 64k-Seitengröße in Ampere-Ausprägungen ändern.
Hinweis

Die Installation von kernel-uek64k auf Systemen außerhalb von Oracle Cloud Infrastructure (OCI) ist nur als technische Vorschau verfügbar. Installieren Sie diesen Kernel nicht auf Produktionssystemen außerhalb von OCI.

So installieren Sie die kernel-uek64k auf einem System, das mit der Standard-4K-Seitengröße kernel-uek installiert ist:

  1. Installieren Sie das Package kernel-uek64k.
    sudo dnf install -y kernel-uek64k
  2. Legen Sie den 64k-Seitengrößenkernel als Standardkernel fest.
    sudo grubby --set-default=$(echo /boot/vmlinuz*64k)

    Wenn mehr als ein 64k-Seiten-Kernel installiert ist, müssen Sie den Kernel explizit deklarieren, den Sie als Standard verwenden möchten. Beispiel:

    sudo grubby --set-default=/boot/vmlinuz-6.12.0-0.20.20.el9uek.aarch64.64k
  3. Starten Sie das System neu.
    sudo reboot
  4. Nachdem das System neu gestartet wurde, prüfen Sie, ob die Seitengröße 64k beträgt.
    getconf PAGESIZE

    Wenn PAGESIZE 65536 zurückgibt, wird der 64k-Kernel geladen. Wenn PAGESIZE 4096 zurückgibt, wird der 4k-Kernel geladen, und Sie müssen prüfen, ob der Standard-Kernel korrekt eingestellt ist.

    Sie können auch prüfen, ob der laufende Kernel die 64k-Zeichenfolge enthält. Beispiel:

    uname -a|grep 64k
  5. Wenn auf dem System der 64k-Kernel ausgeführt wird, entfernen Sie die Kernel-Pakete mit 4k-Seitengröße, um zukünftige Konflikte zu vermeiden.
    sudo dnf erase kernel-uek-core

Allgemeine Plattformaktualisierungen

Einige generische Plattformupdates sind in UEK 8 verfügbar. Die Updates umfassen:

  • Split-Lock-Erkennung für Vorgänge im Speicher, die sich über zwei Cachezeilen erstrecken, z. B. falsch ausgerichteten Speicherzugriff. Siehe auch https://docs.kernel.org/arch/x86/buslock.html

  • Shadow Stacks für den Benutzerbereich mit der Control-flow Enforcement Technology (CET) von x86 zum Schutz vor rückkehrorientierten Programmierangriffen. Diese Implementierung funktioniert, indem ein sekundärer Stack mit einem speziellen Speichertyp verwaltet wird, der Schutz vor Änderungen bietet. Siehe auch https://docs.kernel.org/arch/x86/shstk.html.

  • Das Tracking der Anruftiefe wird implementiert, um die Leistung im Code zur Abwehr von Sicherheitslücken bei Retbleed zu verbessern.

  • Die x86-CPU-Erhöhung wird aktualisiert, sodass sekundäre CPU-Cores parallel gebootet werden, um die Kernel-Bootzeiten auf Systemen mit hoher Coreanzahl zu verbessern.

  • 32-Bit-Emulation in x86_64-Kernels mit dem Befehlszeilenparameter ia32_emulation. Bei 'Wahr' können Sie 32-Bit-Programme laden und 32-Bit-Systemaufrufe ausführen.

Intel-Plattform-Updates

Einige Upstream-Updates der Intel-Plattform sind in UEK 8 enthalten. Bemerkenswerte Elemente sind:

  • Intel Software Guard Extensions (SGX2), eine hardwarebasierte Implementierung von Enclave Dynamic Memory Management (EDMM), ist eine erweiterte Version einer Sicherheitstechnologie, die sensible Daten und Code schützen kann, indem sie in privaten Speicherregionen isoliert werden, die als Enklaven bezeichnet werden. SGX2 führt neue Funktionen wie die dynamische Speicherverwaltung ein, sodass Enklaven ihre Speichergröße während der Laufzeit ändern und verwalten können. Dieses Update ist wichtig für Anwendungen mit dynamischen Workloads oder größeren Speicheranforderungen, die eine skalierbarere Architektur erfordern. SGX2 bietet zuverlässige Vertraulichkeit und Integrität für sensible Workloads sowohl in On-Premises- als auch in Cloud-Umgebungen. Siehe https://www.intel.com/content/www/us/en/support/articles/000058764/software/intel-security-products.html.
  • Flexible Return and Event Delivery-(FRED-)Userpace-Interrupts. Siehe auch https://docs.kernel.org/arch/x86/x86_64/fred.html.

  • In-Field-Scan, um den CPU-Zustand zu testen, indem Probleme erkannt werden, die nicht durch Paritäts- oder ECC-Prüfungen abgefangen werden. Siehe auch https://docs.kernel.org/arch/x86/ifs.html.

  • Die Quick Assist Technology-(QAT-)Funktionalität wird aktualisiert, um Intel Xeon-Prozessoren der 4. Generation zu unterstützen.

  • Lineare Adressmaskierung (LAM_U57-Modus), um die Prüfung zu ändern, die auf lineare 64-Bit-Adressen angewendet wird, sodass Software nicht übersetzte Adressbits zum Speichern von Metadaten verwenden kann. LAM_U57 kann 6 Bit Metadaten in Bit 62 bis 57 verwenden.

EEVDF-Scheduler ersetzt CFS

Earlyliest Eligible Virtual Deadline First (EEVDF) ist ein neuer Kernel-Scheduler, der den Completely Fair Scheduler (CFS) ersetzt. EEVDF bietet eine bessere Planungsrichtlinie für den Kernel und reduziert die Konfigurationskomplexität und verbessert das Planungsverhalten.

Speicherverwaltung

In UEK 8 sind mehrere wichtige Speicherverwaltungsupdates mit Upstream-Änderungen verfügbar, die von v5.15 auf v6.12 enthalten sind.

  • Die Folios-Datenstruktur ersetzt die Strukturseite, um eine bessere Abstraktion für die Verwaltung von Seiten zu ermöglichen. Folios ist eine neue Datenstruktur, die eine oder mehrere Speicherseiten darstellt. Die neue Struktur reduziert Typverwirrung und Speicher-Overhead.
  • Riesige Seiten werden mit mehreren nützlichen Updates verbessert, darunter:
    • Update zur Verarbeitung von riesigenTLB-Fehlern bei Verwendung von VMA-Sperren. Speicherverwaltungsvorgänge wie Seitenfehler und Speicherzuordnung können feiner und effizienter verarbeitet werden, um Zugriffskonflikte zu reduzieren und den gleichzeitigen Zugriff zu verbessern.
    • Multi-size THP für anonymen Speicher, der die Zuweisung von Folios ermöglicht, die größer als die Basisseitengröße, aber kleiner als die PMD-Größe sind.
    • Untergenutzte THPs aufteilen und THP = Always Policy verbessern. Diese Änderungen verbessern das Overprovisioning von THPs in Speicherbereichen mit spärlichem Zugriff.
    • MADV_DONTNEED madvise()-Flag funktioniert auf hugetlb-Seiten und kann nützlich sein, um die Zuordnung und Freigabe von privaten zugeordneten hugetlb-Seiten aufzuheben.
    • Das Flag MADV_COLLAPSE madvise() minimiert Seiten in einer transparenten riesigen Seite.
  • Kontinuierliche Verbesserungen am Code der Speicherkontrollgruppen, memcg, zum Entkoppeln von v1-Feldern im Code von der v2-Codebasis.
  • Eine neue sysfs-Schnittstelle, /proc/sys/vm/enable_soft_offline, ist verfügbar, sodass Sie die automatische Soft-Offlining von Seiten deaktivieren können. Diese Funktion kann nützlich sein, um die Seitenauslagerung vom Benutzerbereich zu verwalten.
  • Optimierungen der Speicherzuordnung:

    • Maple Tree ersetzte rot-schwarze Bäume (RB-Bäume) für die Verwaltung virtueller Speicherbereiche (VMAs) für eine bessere Performance durch schnellere Lookups, Einfügungen und Löschvorgänge.
    • Es wurde ein Mechanismus eingeführt, mit dem anonyme VMAs für ein verbessertes Debugging und Profiling benannt werden.
    • Per-VMA-mmap-Sperren zur Verbesserung des gleichzeitigen Zugriffs und zur Reduzierung von Konflikten in Multithread-Anwendungen mit vielen VMAs.
    • Einführung der ptdesc-Datenstruktur zur Optimierung der Verwaltung von Seitentabellen, indem Seitenmetadaten von der page-Datenstruktur entkoppelt werden.

Dateisysteme

Die folgenden Dateisystemfeatures und -erweiterungen werden in UEK 8 eingeführt:

Btrfs

Die folgenden bemerkenswerten Btrfs-Dateisystemänderungen werden in UEK 8 eingeführt:

  • Komprimierte Daten können ohne Transformation gesendet oder empfangen werden, und Datenblöcke, die größer als 64K sind, werden jetzt für Schreibvorgänge verarbeitet.

  • Ein neuer Baumblockgruppenbaum verbessert die Mountzeiten, und Verbesserungen am Blockgruppencode reduzieren die Fragmentierung.

  • Die Quotenabrechnung wird vereinfacht. Einfache Quotas können anstelle von Quota-Gruppen verwendet werden, um die Speicherplatznutzung einfach zu verfolgen, indem Extents mit ihren Subvolumes verknüpft werden. Dieser Ansatz kann die Performance verbessern, aber einfache Quotas können freigegebene Daten nicht verfolgen. Sie eignen sich daher am besten für Umgebungen, in denen Extents unveränderlich sind und länger als Kopien persistieren.

  • Die Einführung einer temporären FSID ermöglicht das Mounten von geklonten Geräten. Das Dateisystem erhält eine zufällig generierte UUID beim Einhängen.

  • Verbesserte NOCOW-Schreibprüfungen verbessern den Durchsatz um 9%.

  • Die neue Einhängeoption discard=async ist standardmäßig für Geräte aktiviert, die trim/discard unterstützen und asynchronen Discard für das gesamte Dateisystem anwenden.

  • Die Mountoption ignoremetacsums ignoriert ungültige Metadaten-Prüfsummen, und die Mountoption ignoresuperflags kann so eingestellt werden, dass Superblock-Flags den Fortschritt der Konvertierung ignorieren.

  • Sende- und Verschiebungsaufgaben, wie Saldo, Geräteentfernung, Verkleinerung und Blockgruppenfreigabe, werden parallel ausgeführt.

  • Geräte können während eines unterbrochenen Gleichgewichts hinzugefügt werden.

XFS

Die folgenden bemerkenswerten XFS-Dateisystemänderungen werden in UEK 8 eingeführt:

  • Sie können jetzt ein Dateisystem mounten, dessen Blockgröße größer als die Seitengröße ist.

  • Große Extent-Anzahl ist für große virtuelle Datenträger-Images verfügbar.

  • Inhalts-Commits für atomare Dateien sind jetzt verfügbar.

  • Vollständig autonomes Online-Fsck und Reparatur sind als technische Vorschau verfügbar.

  • Ein Update des Befehls mkfs.xfs setzt eine minimale XFS-Dateisystemgröße auf 300 MB, um zu verhindern, dass kleine Dateisysteme erstellt werden, die zu Performance- und Redundanzproblemen führten. Diese Änderung unterscheidet sich von dem Befehl im früheren xfsprogs-Package, das im ol9_baseos_latest-Repository auf Oracle Linux 9-Systemen verfügbar ist.

NFS

Die folgenden bemerkenswerten NFS-Dateisystemänderungen werden in UEK 8 eingeführt:

  • Die NFSv4.2 READ_PLUS-Funktion ist standardmäßig im Kernel aktiviert, um die Handhabung von Sparse-Dateien zu verbessern, indem eine Beschreibung von Lücken oder Datenblöcken, die nicht initialisiert sind, eingeschlossen wird.

  • Verschiedene ältere Protokollfunktionen für NFS werden in UEK 8 entfernt. Siehe Veraltete und entfernte Features.

Verbesserungen für Berkeley Packet Filter (BPF)

In UEK 8 für den Berkeley Packet Filter (BPF) sind mehrere wichtige Updates verfügbar, darunter:

  • Die Einführung eines dedizierten BPF-Speicherzuweisers wird hinzugefügt, um die Zuverlässigkeit der Zuordnungen innerhalb von BPF-Programmen zu verbessern, die in einer Vielzahl von Kontexten ausgeführt werden können.

  • Hinzufügen eines neuen BPF-Zuordnungstyps für den Benutzerringpuffer zur asynchronen Nachrichtenübergabe und schnelleren Datenübertragung zwischen einem BPF-Programm und Benutzerbereich.

  • BPF-Programme können nun Kernel-Funktionen aus einem ladbaren Modul aufrufen, auf task_struct-Objekte zugreifen und diese speichern und absolute Zeitwerte verwenden.

  • Freundlichere Helper-Funktionen wie bpf_trace_vprintk und auch destruktive Helfer wie crash_kexec sind enthalten.

  • BPF-Programme können Filterfunktionen an kfuncs anhängen. Der Filter kann die Kontexte begrenzen, aus denen der kfunc aufgerufen werden kann.

  • Resilient BPF Type Format (BTF)-Informationen für Module sind enthalten, sodass Out-of-Tree-Module BTF definieren können, die für die Lebensdauer eines UEK-Release funktionieren.

  • BPF-Trampolin ist jetzt für aarch64-Plattformen verfügbar, um die Ausführung von BPF-Tracingprogrammen mithilfe von Fentry- und Fexit-Programmen zu beschleunigen.
  • BPF-Haken:

    • Um vollständige Pakete anzuzeigen und zu filtern.

    • Um das angeforderte Protokoll für einen neuen Socket zu ändern, hauptsächlich um Programme, die TCP-Verbindungen anfordern, transparent zu veranlassen, stattdessen Multipath-TCP zu verwenden.

io_uring - Erweiterungen

io_uring ist eine Systemaufrufschnittstelle zur Verwaltung asynchroner I/O-Vorgänge für Speichergeräte. In der Implementierung, die in UEK 8 verfügbar ist, werden mehrere Features und Verbesserungen bereitgestellt, und einige davon wurden möglicherweise auf frühere UEK-Releases zurückportiert. Updates umfassen viele Optimierungen für Sicherheit und Performance. Zu den wesentlichen neuen Features und Änderungen gehören:

  • io_uring unterstützt jetzt das Senden und Empfangen von T10-Schutzinformationen zusammen mit dem Datenpuffer.

  • Vorgänge für getsockopt(), setsockopt(), bind(), listen() und waitid().

  • Mechanismus zum Weglassen von Systemaufrufen mit IORING_SETUP_SQPOLL bei der Einrichtung. Bei einem Aufruf von io_uring_enter() wird ein Kernel-Thread gestartet, der gelegentlich die Übermittlungsqueue abfragt und alle dort gefundenen Anforderungen automatisch weiterleitet.

  • Batchanforderung für recv()-Aufrufe und für reads().

  • IORING_OP_SENDZC zum Ausführen von Schreibvorgängen ohne Kopiervorgang.

  • Mehrere Ring-Code-Optimierungen:

    • Ringe und Übermittlungswarteschlange können sich im Speicher des Benutzerbereichs befinden, z. B. riesige Seiten.

    • Ein Ring kann nun einen anderen signalisieren, um Nachrichtenanfragen zu beschleunigen.

    • Ringbezogene Arbeiten können aufgeschoben werden, bis eine Anwendung sie anfordert.

  • io_uring-Verbesserungen bei gepufferten Schreibvorgängen in XFS.

  • Die io_uring-Optimierung in XFS und Ext4 kann mehrere Direct-I/O-Schreibvorgänge in eine Datei parallel verarbeiten.

  • Absolute Timeouts, zusammen mit den relativen Timeouts, die bereits verfügbar waren, sind jetzt möglich.

ASMLib v3

ASMLib ist eine Library für das Automatic Storage Management-Feature von Oracle Database. ASMLib v3 nutzt die io_uring-Funktionen, die im Kernel enthalten sind, um eine hohe Performance zu erzielen. UEK 8 wird mit Oracle ASMLib v3 getestet und vollständig unterstützt.

Beachten Sie, dass bei diesem Update das oracleasm-Kernelmodul nicht mehr enthalten ist, da Oracle ASMLib v3 dieses Modul nicht mehr benötigt.

ASMLIB-Release 3.1 nutzt die Weiterentwicklungen zum Durchlaufen von Schutzinformationen, die io_uring in UEK 8 hinzugefügt wurden. Über diese Schnittstelle können CRC-Prüfsummen an jedes I/O angehängt werden, was eine zusätzliche Schutzschicht vor Datenbeschädigung bietet.

Um diese Funktion verwenden zu können, müssen ASM-Datenträger auf Speicherhardware bereitgestellt werden, die T10 Protection Information (SCSI-Controller mit DIX-Unterstützung oder NVMe) implementiert.

Siehe Oracle Linux: Oracle ASMLIB v3 installieren und konfigurieren.

RDMA

UEK 8 umfasst RDMA-(Remote Direct Memory Access-)Funktionen, die im Upstream-Kernel bereitgestellt werden, mit der Ksplice- und DTrace-Funktionalität. RDMA ermöglicht direkten Speicherzugriff zwischen zwei Systemen, die über ein InfiniBand- oder RoCE-Netzwerk verbunden sind. RDMA ermöglicht Networking mit hohem Durchsatz und geringer Latenz in Clustern.

Oracle RDMA-Packages sind in den folgenden ULN-Kanälen und yum-Repositorys verfügbar:

  • Oracle Linux 10

    • ULN-Kanal: ol10_x86_64_RDMA

    • Oracle Linux yum-Server-Repository: ol10_RDMA

  • Oracle Linux 9

    • ULN-Kanal: ol9_x86_64_RDMA

    • Oracle Linux yum-Server-Repository: ol9_RDMA

Informationen zum Upgrade eines Systems, auf dem das Package oracle-rdma-release oder oracle-rdma-release-guest installiert ist, finden Sie unter Oracle RDMA-Packages auf Oracle Linux upgraden.

Allgemeine Netzwerkerweiterungen

Einige allgemeine Netzwerkverbesserungen sind in UEK 8 mit Upstream-Änderungen verfügbar, die von v5.15 auf v6.12 enthalten sind.

  • BIG TCP, das größere TSO/GRO-Paketgrößen für IPv6-Datenverkehr verwendet, ist enthalten, um die Leistung beim Senden großer IPv6-TCP-Pakete in Data-Center-Netzwerken zu verbessern. Beachten Sie, dass diese Funktion nicht standardmäßig aktiviert ist, da sie sich auf eBPF-Programme auswirken kann, bei denen davon ausgegangen wird, dass der TCP-Header unmittelbar dem IPv6-Header folgt. BIG TCP wird aktiviert, indem gro_ipv6_max_size und gso_ipv6_max_size auf einem Linkgerät festgelegt werden.

  • Eine neue Socket-Option SO_RESERVE_MEM ist verfügbar, um einen Mechanismus bereitzustellen, mit dem Benutzer eine bestimmte Speichermenge für das Socket reservieren können. Mit dieser Socket-Option verbringt der Netzwerkstack weniger Zyklen mit der Vorwärtszuweisung und -freigabe, was zu einer besseren Systemleistung führen kann, mit den Kosten einer Menge von vorab zugewiesenem und nicht freigegebenem Speicher, auch unter Speicherdruck.

  • Der Paket-Scheduler für faire Warteschlangen hat mehrere Leistungsverbesserungen erreicht, darunter eine Erhöhung des Durchsatzes um 5% bei intensiver TCP-Request/Response-(TCP_RR-)Workload und eine Erhöhung um 13% bei UDP-Paketen, ohne dass eine Schrittfrequenz auf dem Socket festgelegt wurde.

  • Mehrere Core-Netzwerkdatenstrukturen werden für eine bessere Cache-Effizienz neu organisiert, was zu einer Verbesserung der TCP-Performance führen kann, wenn es sich um viele gleichzeitige Verbindungen handelt.

KTLS

KTLS verarbeitet TLS-Datensätze mit den symmetrischen Verschlüsselungs- oder Entschlüsselungsalgorithmen im Kernel für die AES-GCM-Cipher. KTLS wurde in UEK R7U3 für TLS-verschlüsselte Verbindungen für NFS aktiviert. KTLS ist weiterhin in UEK 8 verfügbar.

TLS-verschlüsselte Verbindungen für NFS

RPC-With-TLS ist auf dem Linux NFS-Server und -Client aktiviert. Dieses Update bietet einen standardbasierten Peer-Authentifizierungsmechanismus über eine verschlüsselte Verbindung mit TLS. Das Protokoll des TLS-Datensatzes wird vollständig von kTLS verarbeitet.

Beachten Sie, dass sowohl auf dem Server- als auch auf dem Clientsystem UEK R7U3 oder höher ausgeführt werden muss oder dass ein Kernel- und Benutzerbereichsclient ausgeführt werden muss, der RFC 9289 unterstützt, um diese Funktionalität verwenden zu können. Das User Space Package, ktls-utils, ist ebenfalls erforderlich und muss sowohl auf dem Client- als auch auf dem Serversystem installiert werden. Stellen Sie außerdem sicher, dass Sie die neueste Version des nfs-utils-Packages installiert oder ein vollständiges Systemupdate durchgeführt haben.

RPC-With-TLS wird von Oracle vorgelagert und in RFC 9289 beschrieben.

Verbesserungen für Zufallszahlengenerator

Einige Verbesserungen am Random Number Generator (RNG) sind in UEK 8 mit Upstream-Änderungen verfügbar, die von v5.15 bis v6.12 enthalten sind. Insbesondere hat RNG vom SHA1-Hash-Algorithmus auf den schnelleren und sichereren BLAKE2s-Algorithmus umgestellt.

Außerdem ist der Systemaufruf getrandom() jetzt im virtuellen dynamischen Shared Object-(vDSO-)Bereich des Kernels implementiert. Diese Implementierung verbessert die Performance beim Abrufen von Zufallszahlendaten, da kein Wechsel von einem Benutzerbereichskontext in den Kernelkontext erforderlich ist.

KVM und Virtualisierung

In diesem UEK 8-Release sind die folgenden KVM- und Virtualisierungsänderungen enthalten:

  • Die MMU-Unterstützung für zweidimensionales Paging (TDP) wird hinzugefügt, um die Seitenfehlerperformance auf VMs mit vielen VCPUs erheblich zu verbessern. Diese Funktionalität ist standardmäßig aktiviert.

  • Die UEK 8-Kernelkonfiguration für VCPUs wird auf eine theoretische Grenze von 4096 erhöht. Beachten Sie, dass das tatsächliche VCPU-Limit anwendungsfallspezifisch ist und von vielen Faktoren abhängt, einschließlich der System- und QEMU-Konfiguration.

Aktualisierte Treiber

Gerätetreiber, die in UEK 8 enthalten sind, sind an den Treibern im vorgelagerten Mainline-Linux 6.12-Kernel ausgerichtet. Einige bemerkenswerte Updates sind enthalten, bei denen Treiber Funktionen oder Korrekturen enthalten, die in späteren Upstream-Kernelversionen verfügbar sind.

Viele Treibermodule verfolgen keine Versionsinformationen mehr. Oracle arbeitet mit Anbietern zusammen, um Gerätetreiber, die in UEK 8 enthalten sind, an dem in Upstream-Kernelversionen verfügbaren Code auszurichten.

In der folgenden Tabelle sind bemerkenswerte Treiberaktualisierungen aufgeführt:

Fahrerausrichtung
Treibermodul Treiberbeschreibung Ausgerichtete Kernelversion Wichtige Updates

fnic

Cisco FCoE HBA-Treiber

6,14

Updates von 6.14 wurden auf dieses Release zurückportiert. Beachten Sie, dass dieser Treiber eine Versionszeichenfolge enthält: 1.8.0.0.

lpfc

Broadcom Emulex Fibre Channel HBA-Treiber

6,14

Updates von 6.14 wurden auf dieses Release zurückportiert. Beachten Sie, dass dieser Treiber eine Versionszeichenfolge enthält: 0:14.4.0.8.

mlx5

NVIDIA Netzwerkadapter der 5. Generation (NVIDIA ConnectX-Serie) Core Driver

6,12

Mehrere Fixes und Verbesserungen von 6.14 wurden in diesem Release zurückportiert.

Veraltete und entfernte Funktionen

Die folgenden Funktionen sind veraltet, wurden entfernt oder werden in UEK 8 nicht mehr unterstützt:

Veraltete Features

  • SHA-1 Algorithmus

    Der SHA-1-Algorithmus ist in UEK 8 im FIPS-Modus veraltet und wird in einem zukünftigen UEK-Release entfernt. Der SHA-1-Algorithmus wurde vom National Institute of Standard and Technology (NIST) eingestellt, da der SHA-1-Hash-Algorithmus nicht mehr als sicher gilt. Weitere Informationen zur Verwendung und Einstellung von SHA-1 finden Sie in den Oracle Linux-Versionshinweisen.

  • Kernel-Module, die in das kernel-uek-modules-deprecated-Package verschoben wurden, sind jetzt veraltet.

    Diese Module werden möglicherweise in einer zukünftigen UEK-Version entfernt.

    Eine detaillierte Auflistung finden Sie unter UEK 8 Module Deprecations (x86_64) und UEK 8 Module Deprecations (aarch64).

  • cgroupsv1 ist veraltet

    cgroupsv1 ist in Oracle Linux 9 veraltet und wird in einem zukünftigen Oracle Linux-Release entfernt.

  • XFS_SUPPORT_V4 ist veraltet

    Das V4-Dateisystemformat enthält bekannte Schwachstellen im Festplattenformat. Daher sollte die Option in UEK 8 nicht mehr verwendet werden und wird in einem zukünftigen UEK-Release entfernt.

    Sie können prüfen, ob das Dateisystem für die Verwendung von V4 formatiert ist, indem Sie den Befehl xfs_db -r -c version <device> ausführen.

    Wenn die Funktion aktiviert ist, müssen Sie Daten sichern, das Gerät neu formatieren und Daten wiederherstellen.

  • XFS_SUPPORT_ASCII_CI ist veraltet

    Die Funktion für XFS ASCII-Namen ohne Beachtung der Groß-/Kleinschreibung sollte in UEK 8 nicht mehr verwendet werden und wird in einem zukünftigen UEK-Release entfernt. Das Feature bot eine Option zur Formatierung eines XFS-Dateisystems, bei der die Option ascii-ci aktiviert ist, um die Groß-/Kleinschreibung zu deaktivieren.

    Mit dem Befehl xfs_info können Sie prüfen, ob die Funktion aktiviert ist.

    Wenn die Funktion aktiviert ist, müssen Sie Daten sichern, das Gerät mit deaktivierter Option neu formatieren und Daten wiederherstellen.

  • Die Optionen CONFIG_SECURITY_SELINUX_DISABLE und CONFIG_SECURITY_WRITABLE_HOOKS sind deaktiviert

    Die Option zum Deaktivieren von SELinux zur Laufzeit mithilfe der sysfs-Schnittstelle wird in dieser UEK-Version entfernt.

    Die bevorzugte Methode zum Deaktivieren von SELinux ist die Verwendung des Boot-Parameters selinux=0

Entfernte Features

  • Option CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_DES für 3DES/DES3 RPCSEC GSS-Verschlüsselungstypen ist deaktiviert

    Die RPCSEC GSS-Verschlüsselungstypen DES und Triple-DES (3DES/DES3) werden in dieser UEK-Version entfernt.

    Diese Verschlüsselungstypen wurden in den RFCs 6649 und 8429 nicht mehr unterstützt, da sie bekanntermaßen unsicher sind.

  • Die Optionen CONFIG_NFS_V2 und CONFIG_NFSD_V2 für NFSv2-Client und -Server sind deaktiviert

    Unterstützung für NFSv2-Clients und NFSv2-Server wird in diesem UEK-Release entfernt.

    NFSv2 wurde lange durch NFSv3 und NFSv4 ersetzt, die verbesserte Funktionalität, Performance und Sicherheit bieten.

  • Option CONFIG_NFS_DISABLE_UDP_SUPPORT für NFSv3 über UDP ist aktiviert

    Unterstützung für NFS Version 3 über das UDP-Netzwerkprotokoll wird in dieser UEK-Version entfernt.

    Moderne NFS/RPC-over-TCP- und RDMA-Implementierungen bieten eine bessere Performance als UDP und bieten eine zuverlässige geordnete Zustellung von Daten in Kombination mit Überlastungskontrolle.

    Beachten Sie, dass NFSv4 aus den gleichen Gründen bereits nicht über UDP unterstützt wird.
  • Option CONFIG_STAGING ist deaktiviert

    Die Kernel-Konfigurationsoption CONFIG_STAGING ist in UEK 8 deaktiviert. Die Kernel-Option stellte Treiber zur Verfügung, die nicht unbedingt die höchste Kernel-Qualitätsstufe erfüllen und für den Test verfügbar waren. Die Option sollte in UEK R7 nicht mehr verwendet werden und wird in UEK 8 entfernt.

  • Option CONFIG_IXGB ist deaktiviert

    Die CONFIG_IXGB für Intel PRO/10GbE-Hardware wird in dieser UEK-Version entfernt.

  • crashkernel=auto entfernt

    Die Option crashkernel=auto ist in UEK R7 veraltet und wird für Oracle Linux 9 nicht mehr unterstützt. Die Kernel-Option wird in UEK 8 entfernt. Weitere Informationen zum Konfigurieren der Einstellung crashkernel für Oracle Linux finden Sie unter Kernels verwalten und Systemstart unter Oracle Linux.

  • Option CONFIG_IP_NF_TARGET_CLUSTERIP ist deaktiviert

    Die Option CONFIG_IP_NF_TARGET_CLUSTERIP, mit der Sie Load Balancing-Cluster von Netzwerkservern ohne einen dedizierten Load Balancing-Router oder Switch erstellen konnten, wird zugunsten der Funktionalität entfernt, die bereits im Netfilter-Clusterabgleich enthalten ist.

  • Option CONFIG_EFI_VARS deaktiviert

    Die Option CONFIG_EFI_VARS, die für die Konfiguration von UEFI-Variablen die sysfs-Schnittstelle efivars bereitgestellt hat, wird aus diesem UEK-Release entfernt. Im Kernel gibt es seit 2012 Ersatzfunktionen. Weitere Informationen finden Sie unter https://www.kernel.org/doc/html/latest/filesystems/efivarfs.html.

  • Firewire-Treiber entfernt

    Die Option CONFIG_FIREWIRE ist in diesem UEK-Release deaktiviert.

  • Mehrere Netzwerkplaner-Module entfernt

    Die folgenden Netzwerk-Scheduler-Module sind in UEK R7 veraltet und werden jetzt in UEK 8 entfernt:

    • cls_tcindex
    • cls_rsvp
    • sch_dsmark
    • sch_atm
    • sch_cbq
  • resilient_rdmaip-Modul entfernt

    Das resilient_rdmaip-Modul war in UEK R7 veraltet und wurde jetzt entfernt.

  • oracleasm Kernel-Modul entfernt

    Das Kernelmodul oracleasm wird in UEK 8 entfernt. Beachten Sie, dass dieses Modul weiterhin in den UEK R5- und UEK R6-Releases unterstützt wird.

    Oracle ASMLib wird weiterhin mit io_uring-Schnittstellen unterstützt. Weitere Informationen finden Sie unter ASMLib v3.

  • sundance Kernel-Modul entfernt

    Der DLink Sundance (ST201), sundance-Treiber wird in UEK 8 entfernt. Das Modul wurde im Upstream-Kernel entfernt, weil es nicht erhalten wurde.

  • cpu5_wdt Kernel-Modul entfernt

    Der Watchdog-Treiber cpu5_wdt wird in UEK 8 entfernt. Das Modul wurde im Upstream-Kernel entfernt, da es mehrere Probleme hatte, die nicht gelöst waren und nicht gewartet wurden.

  • i2c-amd756-s4882 und i2c-nforce2-s4985 Kernel-Module entfernt

    Die Legacy-Muxing-Treiber i2c-amd756-s4882 und i2c-nforce2-s4985 werden in UEK 8 entfernt. Das Modul wurde im Upstream-Kernel entfernt, weil sie alt sind und technisch ungenauen Code enthalten.

  • Kryptografische Modi CONFIG_CRYPTO_OFB und CONFIG_CRYPTO_CFB

    Der für die TPM2-Kryptographie verwendete CFB-Modus (Cipher Feedback) (NIST SP800-38A) und der OFB-Modus (Output Feedback) (NIST SP800-38A), mit dem eine Blockchiffre in eine synchrone Streamchiffre umgewandelt wird, werden in UEK 8 entfernt, um sich an vorgelagerten Änderungen auszurichten.