Nouvelles fonctionnalités et modifications UEK 8

Nouvelles fonctionnalités, améliorations et autres changements notables introduits dans UEK 8.

Résumé des changements notables dans UEK 8

Voici un résumé des caractéristiques, modifications et améliorations introduites dans UEK 8, par rapport à UEK R7 :

  • Base stable du noyau Linux 6.12

    La version 6.12 du noyau principal utilisée comme noyau de base pour UEK 8 comprend de nombreuses fonctionnalités et améliorations du noyau en amont par rapport aux versions précédentes d'UEK et par rapport à RHCK sur Oracle Linux 9.

  • L'emballage du module de noyau a été mis à jour

    Les modules de noyau sont distribués dans des packages plus atomiques afin de réduire la surface d'attaque du noyau, d'améliorer la maintenance des modules de noyau et d'améliorer la visibilité de l'abandon des modules. Voir Modifications apportées à la distribution et à l'emballage du contenu UEK pour une vue complète de l'emballage du noyau dans UEK 8.

  • Taille de la page de base 64k sur le bras

    Dans cette version, une version du noyau avec une taille de page de base de 64 Ko est disponible uniquement pour les formes de calcul basées sur Ampere Arm dans Oracle Cloud Infrastructure. La taille de page de base de 64 Ko améliore la façon dont les plates-formes Arm traitent les charges de travail avec des jeux de données de mémoire contigus volumineux. Pour plus d'informations, voir (aarch64) Taille de la page de base 64k sur ARM.

  • Autres mises à jour de plate-forme

    Plusieurs mises à jour de plate-forme génériques sont incluses. Voir Mises à jour de plate-forme générique. D'autres mises à jour de plate-forme spécifiques à Intel sont disponibles, notamment des fonctions de sécurité telles que les extensions Intel Software Guard et la nouvelle prise en charge matérielle de la technologie Intel Quick Assist (QAT). Voir Mises à jour de plate-forme Intel.

  • Programmateur entièrement équitable (CFS) remplacé par la première date limite virtuelle admissible (EEVDF)

    CFS est remplacé par le planificateur EEVDF pour améliorer le comportement de planification et réduire la complexité de la configuration. Voir Le programmateur EEVDF remplace CFS.

  • Gestion améliorée de la mémoire

    De nombreuses améliorations de la gestion de la mémoire apparaissent dans UEK 8, y compris plusieurs optimisations de mappage de la mémoire, des améliorations des performances grâce à l'introduction de structures folio et certaines améliorations de la gestion des larges pages. Voir Gestion de la mémoire.

  • Mises à jour des systèmes de fichiers

    La prise en charge des systèmes de fichiers Btrfs et OCFS2 est activée dans UEK 8. Des améliorations importantes sont disponibles pour les systèmes de fichiers Btrfs, XFS et NFS dans cette version. Pour plus d'informations sur les nouvelles fonctions de systèmes de fichiers introduites dans UEK 8, voir Systèmes de fichiers

  • ASMLib v3 et io_uring

    Plusieurs améliorations de io_uring sont incluses dans cette version d'UEK, qui prend également en charge ASMLib v3. ASMLib v3 utilise io_uring pour la fonction Automatic Storage Management d'Oracle Database. Voir Améliorations d'io_uring et ASMLib v3.

  • Mises à jour de réseau

    Plusieurs améliorations générales de la mise en réseau sont incluses dans UEK 8. Voir Améliorations générales apportées au réseau.

  • Mises à jour liées à la sécurité

    D'autres mises à jour liées à la sécurité sont incluses dans cette version d'UEK, y compris certaines mises à jour du générateur de nombres aléatoires qui aident à améliorer les performances et la sécurité. Voir Améliorations apportées au générateur de nombres aléatoires. L'installation de déchargement TLS du noyau est activée dans UEK 8. Voir KTLS.

  • Filtre de paquets Berkeley

    Plusieurs améliorations sont disponibles dans le Berkeley Packet Filter (BPF) utilisé pour le traçage, y compris un alloueur de mémoire dédié, un nouveau tampon anneau utilisateur et l'utilisation de modules de format de type BPF résilients (BTF) pour utiliser BTF pour les modules hors arbre. Voir Améliorations apportées au filtre de paquets Berkeley (BPF).

  • DTrace v2.0

    Dtrace v2.0 continue d'être disponible dans UEK 8 et tire parti des installations de traçage du noyau telles que eBPF. Des informations détaillées sur les versions de DTrace et d'autres changements notables sont disponibles sur Oracle Linux : Notes de version de DTrace.

    .

Modifications apportées à la distribution et à l'emballage du contenu UEK

Le tableau suivant fournit des détails sur la façon dont le contenu UEK 8 est distribué et emballé et comprend des informations sur les dépendances de package, ainsi que toute autre exigence notable.

Note

L'emballage du noyau est mis à jour dans UEK 8 et diffère des versions précédentes d'UEK. Plus particulièrement, les modules de noyau sont maintenant expédiés dans une collection de paquets séparés. Séparer les modules des packages du noyau permet de réduire la surcharge, fournit un mécanisme pour minimiser la surface d'attaque et améliore la maintenance des modules du noyau.

Les fichiers de configuration permettant d'identifier les modules dont le chargement est refusé sont renommés " liste noire " en " dényliste " dans le cadre de l'initiative d'Oracle visant à utiliser un langage plus inclusif dans ses produits.

En outre, certains outils d'utilitaire de noyau qui ont été regroupés dans l'ensemble kernel-uek-core dans les versions précédentes sont déplacés dans un ensemble distinct, kernel-uek-tools.

Vous pouvez répertorier les modules disponibles dans chaque package en exécutant :

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

Pour trouver le package auquel appartient un module disponible sur le système, vous pouvez exécuter :

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

Si vous exécutez la commande modprobe pour un module et que le package auquel le module appartient n'est pas installé, la sortie vous avertit et fournit le nom du package que vous devez installer. Notez que vous devrez peut-être mettre à jour l'ensemble kmod à la dernière version pour que cette fonctionnalité fonctionne.

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
      

Un fichier de mappage d'ensemble est inclus dans /lib/modules/$(uname -r)/modules.packages et est expédié dans l'ensemble kernel-uek-core pour UEK 8 et versions ultérieures. Vous pouvez également utiliser ce fichier pour identifier le package de module qui contient un pilote particulier.

Paquetage

Description

kernel-uek

Il s'agit d'un paquetage méta qui ne contient aucun fichier.

Dans Oracle Linux 9, l'ensemble comporte les dépendances suivantes :

  • 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

L'installation de ce package équivaut à l'installation du noyau UEK complet. L'installation de ce package assure la compatibilité avec les versions précédentes.

kernel-uek-core

Cet ensemble contient les fichiers binaires du noyau UEK et les fichiers de prise en charge, qui sont copiés dans /boot. L'ensemble est installé avec l'ensemble kernel-uek-modules-core et l'ensemble kernel-uek-modules. Notez que cet ensemble nécessite que l'ensemble linux-firmware-core soit également installé.

kernel-uek-modules-core

Cet ensemble contient un nombre minimal de modules de noyau et de fichiers de prise en charge utilisés pour les systèmes propriétaires Oracle. L'ensemble est une dépendance de kernel-uek-core et est installé par défaut.

kernel-uek-modules

Ce package contient divers modules couramment utilisés dans la plupart des configurations de serveur. Notez que cet ensemble nécessite que l'ensemble linux-firmware soit également installé.

kernel-uek-modules-desktop

Ce package contient des modules pour le matériel de type bureau.

Ce package peut être supprimé pour durcir le système sur de nombreuses plates-formes serveur si aucun des modules n'est utilisé.

kernel-uek-modules-usb

Ce paquet contient des pilotes USB.

Ce package peut être supprimé pour durcir le système sur de nombreuses plates-formes serveur si aucun des modules n'est utilisé.

kernel-uek-modules-wireless

Ce package contient des pilotes sans fil.

Ce package peut être supprimé pour durcir le système sur de nombreuses plates-formes serveur si aucun des modules n'est utilisé.

kernel-uek-modules-extra-netfilter

Ce package contient des modules Netfilter inhabituels.

Ce package peut être supprimé pour durcir le système sur de nombreuses plates-formes serveur si aucun des modules n'est utilisé.

kernel-uek-modules-deprecated

Ce package contient des modules que nous prévoyons de supprimer dans les versions futures.

Ce package est facultatif et vous pouvez l'installer manuellement à partir du référentiel yum ou du canal ULN.

Les modules inclus dans cet ensemble sont obsolètes et pourraient être supprimés dans une version ultérieure.

kernel-uek-modules-extra

Ce package contient des modules supplémentaires pour les configurations de serveur, mais qui ne sont pas couramment utilisés.

Ce package est facultatif et vous pouvez l'installer manuellement à partir du référentiel yum ou du canal ULN.

kernel-uek-tools

Cet ensemble contient les outils nécessaires pour satisfaire d'autres dépendances de compilation et d'exécution dans la base de code tools/perf et qui peuvent être utilisés après le démarrage pour interagir avec le noyau. Par exemple, l'outil perf utilisé pour l'analyse de la performance du système est inclus dans cet ensemble.

linux-firmware-core

Cet ensemble contient des composants de micrologiciel de base et constitue une dépendance pour l'ensemble kernel-uek-core.

linux-firmware

Cet ensemble contient des composants de micrologiciel qui ne sont pas fournis dans l'ensemble linux-firmware-core et qui est une dépendance pour l'ensemble kernel-uek-modules.

Notez que cet ensemble nécessite que l'ensemble linux-firmware-core soit également installé.

Pour renforcer la sécurité, nous vous recommandons de supprimer les ensembles kernel-uek-modules-* qui ne sont pas requis par le système. Pour supprimer des ensembles :

  1. Marquez les ensembles de modules de base dont vous avez besoin sur le système pour empêcher leur suppression. Par exemple :

    sudo dnf mark install kernel-uek-core kernel-uek-modules
  2. Supprimez du système les ensembles de modules non utilisés et le méta-ensemble kernel-uek :

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

(aarch64) 64k Taille de la page de base sur le bras

Outre la version standard d'UEK pour ARM (aarch64), qui définit une taille de page de base de 4 Ko, un ensemble kernel-uek64k qui définit une taille de page de base de 64 Ko est disponible uniquement pour les formes de calcul basées sur ARM Ampere dans Oracle Cloud Infrastructure. Pour les cas d'utilisation autres qu'OCI, l'ensemble kernel-uek64 est disponible uniquement en tant que prévisualisation technique. L'ensemble kernel-uek64k est disponible pour Oracle Linux 9 et versions ultérieures.

Le noyau de taille de page 64k est une option utile pour les plates-formes Ampere (basées sur ARM) qui traitent des charges de travail avec des jeux de données de mémoire contigus volumineux et peuvent obtenir de meilleures performances pour certains types d'opérations de mémoire et de CPU intensives.

Le noyau de taille de page 4K est utile pour les environnements plus petits, où la réduction de l'utilisation de la mémoire physique du système est une priorité.

Notez que le noyau de taille de page 4K et le noyau de taille de page 64K ne diffèrent pas dans l'expérience utilisateur car l'espace utilisateur est le même.

Une fois qu'un système est installé avec kernel-uek64k, le passage à une taille de page de noyau 4k n'est pas pris en charge.

Installation de kernel-uek64k

Note

La seule taille de page des formes de calcul NVIDIA Grace est réglée à 64 Ko par défaut. Vous pouvez éventuellement remplacer la taille de page par défaut 4K par la taille de page 64K sur les formes Ampere.
Note

L'installation de kernel-uek64k sur des systèmes en dehors d'Oracle Cloud Infrastructure (OCI) n'est disponible qu'en tant que prévisualisation technique. N'installez pas ce noyau sur des systèmes de production en dehors d'OCI.

Pour installer kernel-uek64k sur un système installé avec la taille de page 4k standard kernel-uek :

  1. Installez l'ensemble kernel-uek64k.
    sudo dnf install -y kernel-uek64k
  2. Définissez le noyau de taille de page 64k comme noyau par défaut.
    sudo grubby --set-default=$(echo /boot/vmlinuz*64k)

    Notez que si vous avez plus d'un noyau de page 64k installé, vous devez déclarer explicitement le noyau que vous avez l'intention d'être le noyau par défaut. Par exemple :

    sudo grubby --set-default=/boot/vmlinuz-6.12.0-0.20.20.el9uek.aarch64.64k
  3. Redémarrez le système.
    sudo reboot
  4. Une fois le système redémarré, vérifiez que la taille de la page est 64k.
    getconf PAGESIZE

    Si la PAGESIZE renvoie 65536, le noyau 64k est chargé. Si la PAGESIZE retourne 4096, le noyau 4k est chargé et vous devez vérifier que le noyau par défaut est correctement défini.

    Vous pouvez également vérifier que le noyau en cours d'exécution contient la chaîne 64k, par exemple :

    uname -a|grep 64k
  5. Si le système exécute le noyau 64k, supprimez les paquets de noyau de taille de page 4k pour éviter les conflits futurs.
    sudo dnf erase kernel-uek-core

Mises à jour de plate-forme générique

Certaines mises à jour génériques de plate-forme sont disponibles dans UEK 8. Mises à jour :

  • Détection de verrouillage partagé pour les opérations sur la mémoire qui couvre deux lignes de mémoire cache, telles que l'accès à la mémoire mal aligné. Voir aussi https://docs.kernel.org/arch/x86/buslock.html

  • Shadow Stacks pour l'espace utilisateur, en utilisant la technologie d'application de flux de contrôle (CET) de x86 pour fournir une protection contre les attaques de programmation orientées retour. Cette implémentation fonctionne en maintenant une pile secondaire à l'aide d'un type de mémoire spécial qui dispose de protections contre les modifications. Voir aussi https://docs.kernel.org/arch/x86/shstk.html.

  • Le suivi de la profondeur des appels est mis en oeuvre pour améliorer les performances du code d'atténuation des vulnérabilités de sécurité Retbleed.

  • La mise à jour de la CPU x86 est mise à jour afin que les coeurs d'UC secondaires soient démarrés en parallèle afin d'améliorer les temps de démarrage du noyau sur les systèmes à nombre de coeurs élevé.

  • Émulation 32 bits sur les noyaux x86_64 avec le paramètre de ligne de commande ia32_emulation. Lorsque cette option est réglée à Vrai, vous pouvez charger des programmes 32 bits et exécuter des appels système 32 bits.

Mises à jour de la plate-forme Intel

Certaines mises à jour de plate-forme Intel en amont sont incluses dans UEK 8. Les éléments notables sont les suivants :

  • Intel Software Guard Extensions (SGX2), une implémentation matérielle d'EDMM (Enclave Dynamic Memory Management), est une version améliorée d'une technologie de sécurité qui peut protéger les données sensibles et le code en les isolant dans des zones de mémoire privées appelées enclaves. SGX2 introduit de nouvelles fonctionnalités telles que la gestion dynamique de la mémoire, afin que les enclaves puissent redimensionner et gérer leur mémoire lors de l'exécution. Cette mise à jour est importante pour les applications nécessitant des charges de travail dynamiques ou une mémoire plus importante, qui nécessitent une architecture plus évolutive. SGX2 assure une confidentialité et une intégrité robustes pour les charges de travail sensibles dans les environnements sur place et en nuage. Consultez la page https://www.intel.com/content/www/us/en/support/articles/000058764/software/intel-security-products.html.
  • Interruptions de l'espace utilisateur FRED (Flexible Return and Event Delivery). Voir aussi https://docs.kernel.org/arch/x86/x86_64/fred.html.

  • Balayage sur place pour aider à tester l'état de l'UC en détectant les problèmes qui ne sont pas détectés par les vérifications de parité ou du Centre de contrôle. Voir aussi https://docs.kernel.org/arch/x86/ifs.html.

  • La fonctionnalité Quick Assist Technology (QAT) est mise à jour pour prendre en charge les processeurs Intel Xeon de 4e génération.

  • Masquage d'adresse linéaire (mode LAM_U57) pour modifier la vérification appliquée aux adresses linéaires 64 bits, de sorte que le logiciel puisse utiliser des bits d'adresse non traduits pour stocker les métadonnées. LAM_U57 peut utiliser 6 bits de métadonnées en bits 62 à 57.

Le programmateur EEVDF remplace CFS

La première échéance virtuelle admissible (EEVDF) est un nouveau programmateur de noyau qui remplace le programmateur entièrement équitable (CFS). EEVDF fournit une meilleure politique de planification pour le noyau et réduit la complexité de la configuration et améliore le comportement de planification.

Gestion de la mémoire

Plusieurs mises à jour importantes de la gestion de la mémoire sont disponibles dans UEK 8 avec des modifications en amont qui sont incluses de v5.15 à v6.12.

  • La structure de données folios remplace la page struct pour fournir une meilleure abstraction pour la gestion des pages. Folios est une nouvelle structure de données qui représente une ou plusieurs pages de mémoire. La nouvelle structure réduit la confusion de type et la surcharge de mémoire.
  • Les larges pages sont améliorées avec plusieurs mises à jour utiles, notamment :
    • Mise à jour pour gérer les erreurs énormesTLB lors de l'utilisation du verrouillage par VMA. Les opérations de gestion de la mémoire telles que les pannes de page et le mapping de la mémoire peuvent être gérées de manière plus précise et plus efficace, ce qui réduit les conflits et améliore les accès simultanés.
    • Multi-taille THP pour la mémoire anonyme, qui permet l'allocation de folios plus grand que la taille de la page de base mais plus petit que la taille PMD.
    • Fractionner les THP sous-utilisés et améliorer la politique THP=toujours. Ces changements améliorent le surprovisionnement des THP dans les zones de mémoire peu accessibles.
    • L'indicateur MADV_DONTNEED madvise() fonctionne sur les pages hugetlb et peut être utile pour le démappage et la libération des pages hugetlb mappées privées.
    • L'indicateur MADV_COLLAPSE madvise() réduit les pages en une énorme page transparente.
  • Améliorations continues au code des groupes de contrôle de mémoire, memcg, pour découpler les champs v1 du code de la base de code v2.
  • Une nouvelle interface sysfs, /proc/sys/vm/enable_soft_offline, est disponible afin que vous puissiez désactiver la suppression automatique des pages. Cette fonctionnalité peut être utile pour gérer la mise hors ligne des pages à partir de l'espace utilisateur.
  • Optimisations de mappage de mémoire :

    • Maple Tree a remplacé Red-Black Trees (RB Trees) pour la gestion des zones de mémoire virtuelle (VMA) afin d'améliorer les performances avec des recherches, des insertions et des suppressions plus rapides.
    • Introduit un mécanisme pour nommer les VMAs anonymes afin d'améliorer le débogage et le profilage.
    • Verrouillage mmap par VMA pour améliorer la concurrence et réduire les conflits dans les applications multithread avec de nombreuses VMAs.
    • Introduction de la structure de données ptdesc pour optimiser la gestion des tables de page en découplant les métadonnées de page de la structure de données page.

Systèmes de fichiers

Les caractéristiques et améliorations suivantes des systèmes de fichiers sont introduites dans UEK 8 :

Btrfs

Les modifications notables suivantes du système de fichiers Btrfs sont introduites dans UEK 8 :

  • Les données compressées peuvent être envoyées ou reçues sans transformation, et les blocs de données de plus de 64 Ko sont désormais traités pour les écritures.

  • Un nouvel arbre de groupes de blocs améliore les temps de montage et les améliorations apportées au code de groupe de blocs réduisent la fragmentation.

  • La comptabilisation des quotas est simplifiée. Des quotas simples peuvent être utilisés au lieu de groupes de quotas pour un suivi simple de l'utilisation de l'espace en liant les extents à leurs sous-volumes. Cette approche peut améliorer les performances, mais les quotas simples ne sont pas en mesure de suivre les données partagées. Ils conviennent donc mieux aux environnements où les extents sont immuables et persistent plus longtemps que les copies.

  • L'introduction d'un FSID temporaire permet de monter des périphériques clonés. Le système de fichiers obtient un UUID généré aléatoirement lors du montage.

  • Les contrôles d'écriture NOCOW améliorés améliorent le débit de 9%.

  • Une nouvelle option de montage discard=async est activée par défaut pour les appareils qui prennent en charge l'ajustement/l'abandon, en appliquant l'abandon asynchrone à l'ensemble du système de fichiers.

  • L'option de montage ignoremetacsums ignore les sommes de contrôle des métadonnées non valides et l'option de montage ignoresuperflags peut être réglée pour ignorer les indicateurs de superblocage qui suivent la progression de la conversion.

  • Les tâches d'envoi et de déplacement, telles que l'équilibre, le retrait d'appareil, la récupération d'espace et la récupération de groupe de blocs, s'exécutent en parallèle.

  • Les appareils peuvent être ajoutés pendant un solde en pause.

XFS

Les modifications notables suivantes du système de fichiers XFS sont introduites dans UEK 8 :

  • Vous pouvez maintenant monter un système de fichiers dont la taille de bloc est supérieure à la taille de page.

  • Un grand nombre d'extents est disponible pour les grandes images de disque virtuel.

  • Les validations de contenu de fichier atomique sont maintenant disponibles.

  • Les fsck et les réparations en ligne entièrement autonomes sont disponibles sous forme d'aperçu technique.

  • Une mise à jour de la commande mkfs.xfs règle la taille minimale du système de fichiers XFS à 300 Mo pour empêcher la création de petits systèmes de fichiers qui ont causé des problèmes de performance et de redondance. Cette modification diffère de la commande incluse dans l'ensemble xfsprogs précédent disponible dans le référentiel ol9_baseos_latest sur les systèmes Oracle Linux 9.

NFS

Les modifications notables suivantes du système de fichiers NFS sont introduites dans UEK 8 :

  • La fonction NFSv4.2 READ_PLUS est activée par défaut dans le noyau pour améliorer le traitement des fichiers dispersés en incluant une description des trous ou des blocs de données non initialisés.

  • Diverses anciennes fonctionnalités de protocole pour NFS sont supprimées dans UEK 8. Voir Fonctions obsolètes et supprimées.

Améliorations apportées au filtre de paquets Berkeley (BPF)

Plusieurs mises à jour importantes sont disponibles dans UEK 8 pour le Berkeley Packet Filter (BPF), notamment :

  • L'introduction d'un répartiteur de mémoire BPF dédié est ajoutée pour améliorer la fiabilité des répartitions effectuées dans les programmes BPF, qui peuvent fonctionner dans une grande variété de contextes.

  • Ajout d'un nouveau type de carte BPF tampon de sonnerie utilisateur pour la transmission de messages asynchrones et un transfert de données plus rapide entre un programme BPF et l'espace utilisateur.

  • Les programmes BPF peuvent désormais appeler les fonctions du noyau à partir d'un module chargeable, accéder aux objets task_struct et les stocker, et utiliser des valeurs de temps absolues.

  • Des fonctions d'aide plus conviviales, telles que bpf_trace_vprintk, ainsi que des fonctions d'aide destructrices telles que crash_kexec, sont incluses.

  • Les programmes BPF peuvent attacher des fonctions de filtre à kfuncs. Le filtre peut limiter les contextes à partir desquels le kfunc peut être appelé.

  • Des informations BTF (Resilient BPF Type Format) pour les modules sont incluses afin que les modules hors arbre puissent définir BTF qui fonctionne pendant la durée de vie d'une version UEK.

  • Le trampoline BPF est maintenant disponible pour les plates-formes aarch64 afin de fournir une exécution plus rapide du programme de traçage BPF à l'aide des programmes Fentry et Fexit.
  • Crochets BPF :

    • Pour voir et filtrer les paquets complets.

    • Pour modifier le protocole demandé pour un nouveau socket, principalement pour faire en sorte que les programmes demandant des connexions TCP utilisent plutôt TCP multichemin.

Améliorations apportées à io_uring

io_uring est une interface d'appel système permettant de gérer les opérations d'E/S asynchrones d'un périphérique de stockage. Plusieurs fonctionnalités et améliorations sont fournies dans l'implémentation disponible dans UEK 8 et certaines d'entre elles pourraient avoir été rétroportées aux versions précédentes d'UEK. Les mises à jour comprennent de nombreuses optimisations pour la sécurité et les performances. Les nouvelles fonctionnalités et les modifications importantes incluent :

  • io_uring prend désormais en charge l'envoi et la réception des informations de protection T10 ainsi que la mémoire tampon de données.

  • Opérations pour getsockopt(), setsockopt(), bind(), listen() et waitid().

  • Mécanisme permettant d'omettre les appels système avec IORING_SETUP_SQPOLL au moment de la configuration. Un appel à io_uring_enter() démarre une unité d'exécution de noyau qui interroge occasionnellement la file d'attente de soumission et soumet automatiquement toutes les demandes qui y sont trouvées.

  • Demande par lots pour les appels recv() et pour reads().

  • IORING_OP_SENDZC pour effectuer des écritures sans copie.

  • Plusieurs optimisations de code Ring :

    • Les anneaux et la file d'attente de soumission peuvent être dans la mémoire de l'espace utilisateur, comme les pages volumineuses.

    • Un anneau est maintenant capable de signaler un autre pour accélérer les demandes de messages.

    • Les travaux liés aux anneaux peuvent être différés jusqu'à ce qu'une application le demande.

  • Améliorations apportées à io_uring dans les écritures en mémoire tampon, dans XFS.

  • L'optimisation io_uring dans XFS et Ext4 peut gérer plusieurs écritures d'E/S directes dans un fichier en parallèle.

  • Les temporisations absolues, ainsi que les temporisations relatives qui étaient déjà disponibles, sont désormais possibles.

ASMLib v3

ASMLib est une bibliothèque pour la fonction Automatic Storage Management d'Oracle Database. ASMLib v3 tire parti des fonctions io_uring incluses dans le noyau pour offrir des performances élevées. UEK 8 est testé et entièrement pris en charge avec Oracle ASMLib v3.

Notez qu'avec cette mise à jour, le module de noyau oracleasm n'est plus inclus, car Oracle ASMLib v3 ne nécessite plus ce module pour fonctionner.

ASMLIB version 3.1 tire parti des améliorations apportées aux informations de protection au passage à io_uring dans UEK 8. Grâce à cette interface, des sommes de contrôle CRC peuvent être attachées à chaque E/S, fournissant une couche supplémentaire de protection contre la corruption des données.

Pour utiliser cette fonction, les disques ASM doivent être provisionnés sur du matériel de stockage qui met en oeuvre les informations de protection T10 (contrôleur SCSI avec prise en charge DIX ou NVMe).

Voir Oracle Linux : Installation et configuration d'Oracle ASMLIB v3.

RDMA

UEK 8 comprend des fonctionnalités d'accès direct à la mémoire distant (RDMA) fournies dans le noyau amont, avec l'ajout des fonctionnalités Ksplice et DTrace. RDMA permet un accès direct à la mémoire entre deux systèmes connectés par un réseau InfiniBand ou RoCE. RDMA facilite la mise en réseau à haut débit et à faible latence dans les grappes.

Les ensembles Oracle RDMA sont disponibles dans les canaux ULN et les référentiels yum suivants :

  • Oracle Linux 10

    • Canal ULN : ol10_x86_64_RDMA

    • Référentiel de serveur yum Oracle Linux : ol10_RDMA

  • Oracle Linux 9

    • Canal ULN : ol9_x86_64_RDMA

    • Référentiel de serveur yum Oracle Linux : ol9_RDMA

Voir Mise à niveau des ensembles Oracle RDMA sur Oracle Linux si vous mettez à niveau un système sur lequel l'ensemble oracle-rdma-release ou oracle-rdma-release-guest est installé.

Améliorations apportées au service de réseau général

Certaines améliorations générales de la mise en réseau sont disponibles dans UEK 8 avec des modifications en amont qui sont incluses de v5.15 à v6.12.

  • BIG TCP, qui utilise des tailles de paquets TSO/GRO plus importantes pour le trafic IPv6, est inclus pour améliorer les performances lors de l'envoi de paquets TCP IPv6 volumineux sur des réseaux de centres de données. Notez que cette fonction n'est pas activée par défaut car elle peut affecter les programmes eBPF qui peuvent supposer que l'en-tête TCP suit immédiatement l'en-tête IPv6. BIG TCP est activé en définissant les paramètres gro_ipv6_max_size et gso_ipv6_max_size sur un périphérique de liaison.

  • Une nouvelle option de socket SO_RESERVE_MEM est disponible pour fournir un mécanisme permettant aux utilisateurs de réserver une certaine quantité de mémoire pour le socket. Avec cette option de socket définie, la pile réseau passe moins de cycles à allouer et récupérer, ce qui peut conduire à de meilleures performances du système, avec le coût d'une quantité de mémoire préallouée et irréprochable, même sous pression de mémoire.

  • Le planificateur de paquets de mise en file d'attente équitable a obtenu plusieurs améliorations de performance, notamment une augmentation de 5 % du débit de la charge de travail intensive TCP Request/Response (TCP_RR) et une augmentation de 13 % pour les paquets UDP sans qu'un taux de stimulation soit défini sur le socket.

  • Plusieurs structures de données de réseau de base sont réorganisées pour une meilleure efficacité du cache, ce qui peut entraîner une amélioration des performances TCP dans les cas où il existe de nombreuses connexions simultanées.

TLS

KTLS gère les enregistrements TLS à l'aide des algorithmes de chiffrement symétrique ou de déchiffrement du noyau pour le chiffrement AES-GCM. KTLS a été activé dans UEK R7U3 pour les connexions chiffrées TLS pour NFS. KTLS continue d'être disponible dans UEK 8.

Connexions chiffrées TLS pour NFS

RPC-With-TLS est activé sur le serveur et le client NFS Linux. Cette mise à jour fournit un mécanisme d'authentification par pair basé sur des normes sur une connexion chiffrée à l'aide de TLS. Le protocole TLS Record est entièrement géré par kTLS.

Notez que le serveur et les systèmes clients doivent exécuter UEK R7U3 ou une version ultérieure, ou doivent exécuter un noyau et un client d'espace utilisateur prenant en charge la RFC 9289, pour utiliser cette fonctionnalité. L'ensemble d'espace utilisateur, ktls-utils, est également requis et doit être installé sur les systèmes client et serveur. Assurez-vous également d'avoir installé la version la plus récente de l'ensemble nfs-utils ou d'avoir effectué une mise à jour complète du système.

La connexion d'appairage distant avec TLS est fournie en amont par Oracle et est décrite dans le document RFC 9289.

Améliorations apportées au générateur de nombres aléatoires

Certaines améliorations du générateur de nombres aléatoires (RNG) sont disponibles dans UEK 8 avec des modifications en amont qui sont incluses de v5.15 à v6.12. Plus particulièrement, RNG est passé de l'algorithme de hachage SHA1 à l'algorithme BLAKE2s plus rapide et plus sécurisé.

En outre, l'appel système getrandom() est maintenant mis en oeuvre dans la zone vDSO (Virtual Dynamic Shared Object) du noyau. Cette implémentation améliore les performances lors de l'obtention de données numériques aléatoires en supprimant la nécessité de passer d'un contexte d'espace utilisateur au contexte du noyau.

KVM et virtualisation

Les modifications KVM et de virtualisation suivantes sont incluses dans cette version d'UEK 8 :

  • La prise en charge de MMU de pagination bidimensionnelle (TDP) est ajoutée pour améliorer considérablement les performances des pannes de page sur les machines virtuelles à plusieurs unités centrales virtuelles. Cette fonctionnalité est activée par défaut.

  • La configuration du noyau UEK 8 pour les VCPU est augmentée jusqu'à une limite théorique de 4096. Notez que la limite réelle des unités centrales virtuelles est propre au cas d'utilisation et dépend de nombreux facteurs, notamment la configuration système et QEMU.

Inducteurs mis à jour

Les pilotes de périphériques inclus dans UEK 8 sont alignés avec les pilotes du noyau Linux 6.12 en amont de la ligne principale. Quelques mises à jour notables sont incluses dans lesquelles les pilotes incluent des fonctionnalités ou des correctifs disponibles dans des versions ultérieures du noyau en amont.

De nombreux modules de pilote ne suivent plus les informations de version. Oracle travaille avec les fournisseurs pour aligner les pilotes de périphérique inclus dans UEK 8 avec le code disponible dans les versions de noyau en amont.

Les mises à jour notables des pilotes sont présentées dans le tableau suivant :

Alignement de l'inducteur
Module de pilote Description du conducteur Version du noyau alignée Mises à jour notables

fnic

Pilote Cisco FCoE HBA

6,14

Les mises à jour de la version 6.14 ont été rétroportées vers cette version. Notez que ce pilote inclut une chaîne de version : 1.8.0.0.

lpfc

Pilote HBA Broadcom Emulex Fibre Channel

6,14

Les mises à jour de la version 6.14 ont été rétroportées vers cette version. Notez que ce pilote inclut une chaîne de version : 0 :14.4.0.8.

mlx5

Pilote principal pour les adaptateurs réseau de 5e génération NVIDIA (série NVIDIA ConnectX)

6,12

Plusieurs correctifs et améliorations de la version 6.14 ont été rétroportés dans cette version.

Fonctions obsolètes et supprimées

Les fonctionnalités suivantes sont obsolètes, supprimées ou ne sont plus prises en charge dans UEK 8 :

Fonctions obsolètes

  • Algorithme SHA-1

    L'algorithme SHA-1 est obsolète dans UEK 8 en mode FIPS et sera supprimé dans une prochaine version UEK. L'algorithme SHA-1 a été retiré par le National Institute of Standard and Technology (NIST) parce que l'algorithme de hachage SHA-1 n'est plus considéré comme sécurisé. Voir les notes de version d'Oracle Linux pour plus de détails sur l'utilisation et l'abandon de SHA-1.

  • Les modules de noyau déplacés vers l'ensemble kernel-uek-modules-deprecated sont maintenant obsolètes.

    Ces modules pourraient être supprimés dans une prochaine version d'UEK.

    Pour obtenir une liste détaillée, voir Abandon du module UEK 8 (x86_64) et Abandon du module UEK 8 (aarch64).

  • cgroupsv1 est obsolète

    cgroupsv1 est obsolète dans Oracle Linux 9 et sera supprimé dans une version future d'Oracle Linux.

  • XFS_SUPPORT_V4 est obsolète

    Le format du système de fichiers V4 contient des faiblesses connues dans le format sur disque. Par conséquent, l'option est obsolète dans UEK 8 et sera supprimée dans une version future UEK.

    Vous pouvez vérifier si le système de fichiers est formaté pour utiliser V4, en exécutant la commande <device> xfs_db -r -c version.

    Si la fonction est activée, vous devez sauvegarder les données, reformater l'appareil et restaurer les données.

  • XFS_SUPPORT_ASCII_CI est obsolète

    La fonction de nom non sensible à la casse XFS ASCII est obsolète dans UEK 8 et sera supprimée dans une prochaine version UEK. La fonction a fourni une option pour formater un système de fichiers XFS avec l'option ascii-ci activée pour désactiver la sensibilité à la casse.

    Vous pouvez vérifier si la fonction est activée à l'aide de la commande xfs_info.

    Si la fonction est activée, vous devez sauvegarder les données, reformater l'appareil avec l'option désactivée et restaurer les données.

  • Les options CONFIG_SECURITY_SELINUX_DISABLE et CONFIG_SECURITY_WRITABLE_HOOKS sont désactivées

    L'option de désactivation de SELinux à l'exécution à l'aide de l'interface sysfs est supprimée dans cette version UEK.

    La méthode privilégiée pour désactiver SELinux consiste à utiliser le paramètre d'initialisation selinux=0

Fonctions supprimées

  • L'option CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_DES pour les types de chiffrement GSS 3DES/DES3 RPCSEC est désactivée

    Les types de chiffrement GSS RPCSEC DES et Triple-DES (3DES/DES3) sont supprimés dans cette version UEK.

    Ces types de chiffrement étaient obsolètes par les RFC 6649 et 8429, car ils sont connus pour être non sécurisés.

  • Les options CONFIG_NFS_V2 et CONFIG_NFSD_V2 pour le client et le serveur NFSv2 sont désactivées

    La prise en charge des clients NFSv2 et des serveurs NFSv2 est supprimée dans cette version UEK.

    NFSv2 a longtemps été remplacé par NFSv3 et NFSv4, qui offrent des fonctionnalités, des performances et une sécurité améliorées.

  • L'option CONFIG_NFS_DISABLE_UDP_SUPPORT pour NFSv3 sur UDP est activée

    La prise en charge de NFS version 3 sur le protocole réseau UDP est supprimée dans cette version UEK.

    Les mises en œuvre modernes de NFS/RPC sur TCP et RDMA offrent de meilleures performances qu'UDP, et fournissent une livraison fiable et commandée des données combinée au contrôle de la congestion.

    Notez que NFSv4 n'est déjà pas pris en charge sur UDP, pour les mêmes raisons.
  • L'option CONFIG_STAGING est désactivée

    L'option de configuration du noyau CONFIG_STAGING est désactivée dans UEK 8. L'option noyau a mis à disposition des pilotes qui ne répondent pas nécessairement au niveau de qualité du noyau le plus élevé et qui étaient disponibles pour une utilisation test. L'option était obsolète dans UEK R7 et est supprimée dans UEK 8.

  • L'option CONFIG_IXGB est désactivée

    Le CONFIG_IXGB pour le matériel Intel PRO/10GbE est supprimé dans cette version UEK.

  • crashkernel=supprimé automatiquement

    L'option crashkernel=auto était obsolète dans UEK R7 et n'était pas prise en charge pour Oracle Linux 9. L'option noyau est supprimée dans UEK 8. Pour plus d'informations sur la configuration du paramètre crashkernel sur Oracle Linux, voir Gestion des noyaux et démarrage du système sur Oracle Linux.

  • L'option CONFIG_IP_NF_TARGET_CLUSTERIP est désactivée

    L'option CONFIG_IP_NF_TARGET_CLUSTERIP qui vous a permis de créer des grappes d'équilibrage de charge de serveurs réseau sans routeur ou commutateur dédié d'équilibrage de charge est supprimée au profit de la fonctionnalité déjà en correspondance de grappe Netfilter.

  • Option CONFIG_EFI_VARS désactivée

    L'option CONFIG_EFI_VARS qui a fourni l'interface sysfs efivars pour configurer les variables UEFI est supprimée de cette version d'UEK. La fonctionnalité de remplacement est présente dans le noyau depuis 2012. Pour plus de renseignements, consultez la page https://www.kernel.org/doc/html/latest/filesystems/efivarfs.html.

  • Pilote Firewire supprimé

    L'option CONFIG_FIREWIRE est désactivée dans cette version UEK.

  • Plusieurs modules du programmateur de réseau supprimés

    Les modules de programmateur de réseau suivants étaient obsolètes dans UEK R7 et sont maintenant supprimés dans UEK 8 :

    • cls_tcindex
    • cls_rsvp
    • sch_dsmark
    • sch_atm
    • sch_cbq
  • Module resilient_rdmaip supprimé

    Le module resilient_rdmaip était obsolète dans UEK R7 et est maintenant supprimé.

  • Module de noyau oracleasm supprimé

    Le module de noyau oracleasm est supprimé dans UEK 8. Notez que ce module continue d'être pris en charge dans les versions UEK R5 et UEK R6.

    Oracle ASMLib continue d'être pris en charge à l'aide des interfaces io_uring. Pour plus d'informations, voir ASMLib v3.

  • Module de noyau sundance supprimé

    Le pilote DLink Sundance (ST201), sundance, est supprimé dans UEK 8. Le module a été supprimé dans le noyau amont car il n'était pas mis à jour.

  • Module de noyau cpu5_wdt supprimé

    Le pilote Watchdog cpu5_wdt est supprimé dans UEK 8. Le module a été supprimé dans le noyau en amont car il présentait plusieurs problèmes qui n'étaient pas résolus et manquaient de maintenance.

  • Modules de noyau i2c-amd756-s4882 et i2c-nforce2-s4985 supprimés

    Les pilotes Muxing hérités i2c-amd756-s4882 et i2c-nforce2-s4985 sont supprimés dans UEK 8. Le module a été supprimé dans le noyau amont car il est vieux et contient du code techniquement inexact.

  • Modes cryptographiques CONFIG_CRYPTO_OFB et CONFIG_CRYPTO_CFB

    Le mode CFB (Cipher Feedback) (NIST SP800-38A) utilisé pour la cryptographie TPM2 et le mode OFB (Output Feedback) (NIST SP800-38A) utilisé pour transformer un chiffrement par blocs en un chiffrement de flux synchrone sont supprimés dans UEK 8, pour s'aligner sur les modifications en amont.