Nouvelles fonctionnalités et modifications dans UEK R7

Nouvelles fonctionnalités, améliorations et autres modifications notables introduites dans UEK R7.

Résumé des modifications notables dans UEK R7

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

  • Base de noyau stable Linux 5.15

    La version 5.15.0 du noyau de la ligne principale qui est utilisée comme noyau de base pour UEK R7 inclut de nombreuses fonctionnalités et améliorations du noyau en amont par rapport aux versions précédentes d'UEK et par rapport à RHCK. Pour obtenir la liste des principales nouvelles fonctionnalités et améliorations introduites dans ce noyau, reportez-vous à la section Core Kernel Features and Functionality.

  • Prise en charge du bras 64 bits (aarch64)

    Cette version fournit une prise en charge améliorée pour la plate-forme Arm (aarch64) 64 bits. Une modification importante pour la plate-forme Arm est que la taille de page par défaut est passée à 4 ko, par rapport à la valeur par défaut de 64 ko précédente. La nouvelle taille de 4 ko correspond bien aux charges de travail et aux quantités de mémoire qui existent sur la majorité des systèmes Arm. Reportez-vous à Taille de page par défaut sur la plate-forme Arm remplacée par 4 ko pour plus d'informations sur cette modification notable.

  • DTrace v2.0

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

  • Prise en charge des systèmes de fichiers

    La prise en charge des systèmes de fichiers Btrfs et OCFS2 est activée dans UEK R7. Les systèmes de fichiers XFS et NFS ont également été améliorés dans cette version. Pour plus d'informations sur les nouvelles fonctionnalités des systèmes de fichiers introduites dans UEK R7, reportez-vous à Systèmes de fichiers.

Taille de page par défaut sur la plate-forme Arm modifiée en 4 ko

La taille de page par défaut sur la plate-forme Arm (aarch64) 64 bits est passée à 4 ko, par rapport à la valeur par défaut de 64 ko précédente. La nouvelle taille de 4 ko correspond bien aux charges de travail et aux quantités de mémoire qui existent sur la plupart des systèmes Arm.

Cette modification a des implications importantes si vous prévoyez de mettre à niveau le noyau à partir d'une version précédente de UEK. Pour plus d'informations, reportez-vous à la section About Upgrading From a Previous Oracle Linux or UEK Release to UEK R7.

Pour plus d'informations sur les autres problèmes connus liés à cette modification importante, reportez-vous à la section Known Issues for UEK R7.

Fonctionnalités principales du noyau

Plusieurs fonctionnalités de noyau principales ont été implémentées dans le noyau en amont, entre la version 5.4 qui a été utilisée comme version de noyau de base pour UEK R6 et la version 5.15.0 qui est utilisée comme version de noyau de base pour UEK R7. Bien que certaines fonctionnalités aient été rétroportées dans le noyau UEK R6 dans les versions de mise à jour, les nouvelles fonctionnalités importantes disponibles dans UEK R7 sont les suivantes :

  • Améliorations du BPF

    L'UEK R7 introduit de nombreuses améliorations de Berkeley Packet Filter (BPF), notamment :

    • L'introduction de Compile Once Run Everywhere dans libbpf et dans LLVM et BPF Type Format (BTF). Cette modification permet au vérificateur BPF d'utiliser le BTF dans le noyau pour taper le code d'assemblage BPF, ce qui permet un traçage BPF plus sûr et plus rapide.

    • Le trampoline BPF, qui permet au code du noyau d'appeler des programmes BPF avec presque zéro surcharge, est disponible pour l'architecture x86_64. La prise en charge de la carte de tableau BPF de mappage de mémoire et d'autres améliorations sont également introduites dans cette version.

    • Prise en charge de BPF pour appeler les fonctions du noyau directement. Cette amélioration permet aux programmes BPF qui appellent des fonctions de noyau initialement pour réutiliser les implémentations de contrôle de congestion TCP (Transmission Control Protocol).

    • Les programmes BPF peuvent dormir pendant l'exécution, ce qui simplifie le mécanisme de liaison d'un socket à une plage d'adresses ou de numéros de port. Le nouveau type de programme BPF_PROG_TYPE_SK_LOOKUP s'exécute lorsque le noyau recherche un socket ouvert pour une connexion entrante. Le mécanisme peut alors décider quel socket doit recevoir la connexion. Ce mécanisme a été ajouté pour lier un socket à une plage d'adresses ou de numéros de port d'une manière plus simple. Actuellement, cette fonctionnalité est limitée aux programmes de suivi et de module de sécurité.

  • Fonctionnalité de planification de base incluse

    La planification de base permet d'isoler des groupes de processus qui s'exécutent sur le même noyau, ce qui garantit une protection maximale contre les attaques de canal latéral. Vous pouvez utiliser la planification de base comme méthode pour prévenir les attaques de vulnérabilité de classe Spectra, tout en maintenant la fonctionnalité de multithread simultané (SMT) activée et en évitant une pénalité de performances pour la désactivation de SMT.

  • Nouveau contrôleur de mémoire cgroup slab

    UEK R7 introduit un nouveau contrôleur de mémoire de dalle de groupe de contrôle (cgroup) qui vous permet de partager la mémoire de dalle entre les cgroups de mémoire. Cette nouvelle mise en oeuvre du contrôleur de mémoire de dalle vise à atteindre une bien meilleure utilisation de dalle en partageant des pages de dalle entre plusieurs cgroups de mémoire. En outre, la comptabilisation est effectuée par objet plutôt que par page. La nouvelle fonctionnalité permet d'économiser une quantité importante de mémoire, ce qui réduit considérablement les inefficacités.

  • io_uring améliorations

    L'appel système io_uring, qui est une API Linux pour les E/S asynchrones, est conçu pour des performances supérieures à celles de l'API AIO Linux précédente qui est prise en charge par QEMU. Plusieurs améliorations pour io_uring sont introduites dans UEK R7, dont la plupart sont axées sur les E/S en réseau.

    Une amélioration des performances io_uring liée aux E/S est un nouveau mécanisme de recyclage BIO permettant de supprimer une certaine surcharge de gestion de la mémoire interne, qui entraînerait une augmentation de 10 % du nombre d'opérations d'E/S par seconde que io_uring peut maintenir.

    D'autres changements notables pour io_uring incluent Oracle ASMLib v3 + oracaleasm-support. Dans cette version, Oracle ASMLib utilise l'appel système io_uring à la place de l'interface de pilote oracleasm héritée, qui a été supprimée dans UEK R7.

  • Détection de verrouillage fractionné

    Dans cette version, la fonctionnalité CPU de détection de verrouillage fractionné est activée par défaut sur les systèmes x86_64 qui ont la capacité de cette fonctionnalité, tels que le processeur Ice Lake. La commande d'initialisation split_lock_detect vous permet d'avertir ou d'envoyer SIGBUS (signaux d'erreur Bus) aux applications qui utilisent des verrous fractionnés. Un verrouillage fractionné se produit lorsqu'une instruction CPU atomique fonctionne sur des données qui s'étendent sur deux lignes de cache. Cette opération est beaucoup plus lente qu'une opération atomique au sein d'une ligne de cache et perturbe les performances sur d'autres coeurs.

    Notez que vous pouvez désactiver cette fonctionnalité dans le noyau en définissant split_lock_detect=off.

Modifications apportées à la distribution et au packaging du contenu UEK

La façon dont le contenu est distribué et packagé dans la version UEK a changé. A partir de UEK R7, le noyau est reconditionné et rationalisé en plusieurs RPM distincts pour faciliter les exigences matérielles particulières. Un package meta RPM, nommé kernel-uek, reste le package requis pour toutes les installations UEK et conserve une compatibilité descendante avec les versions précédentes.

Par défaut, le package kernel-uek et ses dépendances sont installés. L'installation de ce package équivaut à l'installation du noyau UEK complet.

Le tableau suivant fournit plus de détails sur la distribution et la mise en package du contenu UEK R7, ainsi que des informations sur les dépendances des packages et toute autre exigence notable.

Package

Description

kernel-uek

Il s'agit d'un méta-package qui ne contient aucun fichier. Le package a une dépendance sur kernel-uek-core et kernel-uek-modules.

L'installation de ce package équivaut à l'installation du noyau UEK complet. Il s'agit du package requis pour toutes les installations UEK et maintient la compatibilité avec les versions précédentes.

kernel-uek-core

Ce package contient le noyau UEK et un nombre minimal de modules de noyau et est installé avec le package kernel-uek-modules. Notez que ce package nécessite que le package linux-firmware-core soit également installé.

kernel-uek-modules

Ce package contient les modules de noyau restants requis par la plupart des configurations de serveur. Notez que ce package nécessite que le package linux-firmware soit également installé.

kernel-uek-modules-extra

Il s'agit d'un package facultatif qui contient des modules pour le matériel et les sous-systèmes qui sont rares pour les serveurs et la prise en charge de certains périphériques, tels que Bluetooth, Wi-Fi et cartes de capture vidéo. Si la prise en charge de l'un de ces composants est requise, installez le package manuellement à partir du référentiel yum.

Vous pouvez répertorier les modules explicitement fournis par ce package en exécutant :

rpm -q -l kernel-uek-modules-extra

linux-firmware-core

Ce package contient des composants de microprogramme de base et constitue une dépendance pour le package kernel-uek-core.

linux-firmware

Ce package contient des composants de microprogramme qui ne sont pas fournis dans le package linux-firmware-core et constitue une dépendance pour le package kernel-uek-modules.

Notez que ce package nécessite que le package linux-firmware-core soit également installé.

Systèmes de fichiers

Les fonctions et améliorations suivantes des systèmes de fichiers sont introduites dans UEK 7 :

Btrfs

Remarque

La taille de page par défaut sur la plate-forme Arm 64 bits est passée à 4 ko, par rapport à la valeur par défaut de 64 ko précédente. Si vous exécutez Oracle Linux 8 sur un système Arm avec une version antérieure de UEK, cette modification a un impact sur les systèmes de fichiers Btrfs, par exemple les systèmes qui exécutent le Raspberry Pi sur une image de développeur Oracle Linux 8. Avant de procéder à la mise à niveau vers UEK R7, vous devez migrer les données et vous préparer à reformater les systèmes de fichiers pour éviter toute perte de données et vous assurer que le système ne devient pas amorçable. Reportez-vous à Taille de page par défaut sur la plate-forme Arm modifiée en 4 Ko.

Cette version apporte plusieurs améliorations aux performances et à la récupération des données de Btrfs, ainsi que certaines améliorations RAID 1, la prise en charge des sémaphores de lecture-écriture Linux et la prise en charge de la somme de contrôle. D'autres changements notables pour Btrfs incluent :

  • Nouvelle option de montage de secours ajoutée

    Nouvelle option de montage de secours permettant de regrouper toutes les options de montage existantes pour la récupération. usebackuproot est désormais un alias pour rescue=usebackuproot ; nologreplay est un alias pour rescue=nologreplay.

  • Découpage SSD synchrone disponible

    L'ajustement asynchrone des SSD est disponible dans Btrfs. Pour des raisons de performances et de niveau d'usure, les unités de stockage à l'état solide bénéficient d'une notification lorsqu'un bloc de disque n'est pas utilisé. Cette opération est appelée discard ou trim et est effectuée automatiquement par Btrfs. Lorsqu'un fichier est supprimé, Btrfs informe le lecteur que les blocs appartenant au fichier ne sont plus utilisés. Auparavant, ces notifications se produisaient de manière synchrone, ce qui signifie que les notifications d'ajustement étaient envoyées avant la fin de l'opération de suppression, ce qui peut nuire aux performances. Ces notifications sont désormais envoyées de manière asynchrone.

  • Amélioration des performances de fsync()

    Les améliorations suivantes ont été apportées à fsync() :

    • Amélioration des performances de fsync() (réduction de 12 % de la latence maximale signalée par dbench).

    • Accélération importante du parallélisme fsync en réduisant le nombre de recherches et de contentions dans l'arborescence de checksum.

    • Accélération substantielle de fsync parallèle pour les fichiers avec des extents reflinked/deduped. Pour les emplois de 16 à 1024, en moyenne, le débit est amélioré d'environ 50 % ; le temps d'exécution est diminué d'environ 30 %.

  • Pré-extraire les feuilles d'arbre à blocs sur le support de montage

    Pré-extraire les feuilles d'arbre de blocs lors du montage, ce qui améliore la vitesse de montage dans les systèmes de fichiers à plusieurs To.

  • Prise en charge de la correspondance fs-verity et ID

    La prise en charge de fs-verity et du mappage d'ID, ainsi que du démon DAMON pour améliorer la capacité de surveillance des modèles d'accès à la mémoire de processus spécifiques, est incluse dans cette version. La couche générique fs-verity, qui est déjà disponible dans les systèmes de fichiers ext4 et F2FS, fournit une protection transparente de l'intégrité et de l'authenticité des fichiers en lecture seule. La fonctionnalité inclut également la possibilité de mapper les points de montage mappés par ID, ce qui permet de mapper les ID utilisateur et de groupe d'un montage à un autre.

ext4

Le système de fichiers ext4 continue d'être pris en charge dans les versions UEK.

OCFS2

OCFS2 continue d'être pris en charge dans les versions UEK. Pour Oracle Linux 9, les packages d'espace utilisateur sont mis à jour pour activer la prise en charge d'OCFS2 dans cette version.

XFS

Remarque

La taille de page par défaut sur la plate-forme Arm 64 bits est passée à 4 ko, par rapport à la valeur par défaut de 64 ko précédente. Par conséquent, si vous exécutez Oracle Linux 8 sur un système Arm avec une version antérieure de UEK et que vous avez précédemment modifié manuellement un système de fichiers XFS en une taille de bloc supérieure à 4 ko, vous devez migrer les données et vous préparer à reformater les systèmes de fichiers avant de procéder à la mise à niveau vers UEK R7. Les systèmes dotés de systèmes de fichiers XFS configurés pour utiliser une taille de bloc de 4 ko ne sont pas affectés. Reportez-vous à Taille de page par défaut sur la plate-forme Arm modifiée en 4 Ko.

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

  • Améliorations pour les opérations XFS 2038+ et DAX et réduction des métadonnées DAX.

    La fonctionnalité XFS 2038+, les opérations DAX par fichier et par répertoire et la réduction des métadonnées DAX ont été ajoutées dans cette version.

  • Le système de fichiers XFS inclut de nouvelles fonctionnalités

    Le système de fichiers XFS prend en charge deux nouvelles options : bigtime et inobtcount. L'option bigtime prend en charge les horodatages au-delà de l'année 2038 ; l'option inobtcount réduit le temps de montage sur les systèmes de fichiers volumineux. Par défaut, ces options sont désactivées. Pour activer ces options lors de la création d'un système de fichiers XFS, utilisez la commande mkfs.xfs comme suit :

    sudo mkfs.xfs -m bigtime=1,inobtcount=1
    ATTENTION

    L'activation de ces options mkfs.xfs crée un système de fichiers qui est démontable par des noyaux plus anciens, où ces options ne sont pas prises en charge.

Protocole de communication WireGuard

Le protocole de communication WireGuard est disponible dans UEK R7 pour les réseaux IPv4 et IPv6. WireGuard utilise des réseaux privés virtuels chiffrés (VPN) en transmettant le trafic via le protocole UDP (User Datagram Protocol).

Remarque

WireGuard a été précédemment activé en tant que fonctionnalité d'aperçu technologique dans UEK R6U1, avec une prise en charge complète introduite dans UEK R6U3.

WireGuard utilise le chiffrement par clé publique pour l'identification et le chiffrement, tandis qu'OpenVPN utilise des certificats pour ces tâches. Avec WireGuard, la génération et la gestion des clés sécurisées sont gérées en arrière-plan. Notez que bien qu'IPsec soit toujours la norme pour la communication réseau sécurisée, WireGuard gagne en popularité car il est plus facile à configurer et à déployer.

Pour plus d'informations et des instructions détaillées, reportez-vous à Oracle Linux : configuration de réseaux privés virtuels.

RDMA

UEK R7 inclut des fonctions RDMA (Remote Direct Memory Access) qui sont fournies dans le noyau en amont, avec l'ajout de fonctionnalités Ksplice et DTrace. RDMA permet un accès direct à la mémoire entre deux systèmes connectés par un réseau. RDMA facilite la mise en réseau haut débit et à faible latence dans les clusters.

A partir d'Oracle Linux 9, le processus d'installation des packages RDMA pris en charge par Oracle a été simplifié en utilisant de nouveaux packages d'espace utilisateur et un canal ULN dédié et un référentiel yum pour les packages liés à RDMA. Pour plus d'informations, reportez-vous à Installation et mise à niveau de packages RDMA pris en charge par Oracle sur Oracle Linux.

Si vous exécutez Oracle Linux 8, le processus d'installation des packages RDMA pris en charge par Oracle reste le même que dans les versions précédentes.

Sécurité

Les fonctions de sécurité suivantes sont introduites dans UEK 7 :

Nouveau trousseau de noyau .machine introduit

Le trousseau de clés de noyau .machine est introduit dans UEK R7. Vous pouvez utiliser ce trousseau de clés comme ancre de confiance au niveau du noyau pour toute opération qui utilise des clés asymétriques. Le trousseau de clés .machine a le même niveau de confiance au sein du noyau que les trousseaux de clés .builtin_trusted_keys et .secondary_trusted_keys. Comme pour les trousseaux de clés intégrés et secondaires, vous pouvez utiliser des clés dans le trousseau de clés .machine pour effectuer les opérations suivantes :

  • Effectuez la validation de la signature du module de noyau.

  • Ajoutez des clés supplémentaires au trousseau de clés .secondary_trusted_keys.

  • Servir en tant que CA pour les clés d'évaluation IMA.

Les clés contenues dans le trousseau de clés .machine doivent être un certificat d'autorité de certification racine. Pour être considéré comme un certificat CA racine, les deux conditions suivantes doivent être remplies :

  • Le certificat X.509 doit être auto-signé.

  • Le certificat X.509 doit contenir des extensions X509v3 avec basicConstraints=critical,CA:TRUE

Il est également fortement conseillé de définir le champ keyUsage avec keyCertSign.

Contrairement aux versions précédentes d'UEK, les clés contenues dans le trousseau de clés .platform dans UEK R7 ne peuvent être utilisées que pour kexec. En outre, vous ne pouvez pas utiliser les clés .platform à d'autres fins ; alors que dans les versions précédentes d'UEK, vous pouviez utiliser le trousseau de clés .platform pour la validation de signature de module de noyau, mais elles ne pouvaient pas être utilisées pour d'autres opérations de clé de noyau.

Le moyen le plus simple d'ajouter des clés au trousseau de clés .machine consiste à les inscrire à l'aide de l'utilitaire mokutil. Notez que cette méthode nécessite la création d'une paire de clés X.509.

SGX activé sur l'architecture Intel

Unbreakable Enterprise Kernel version 7 permet d'utiliser la technologie Intel Software Guard Extensions (SGX) sur le processeur évolutif Intel Xeon de troisième génération (nom de code Ice Lake).

Les applications peuvent utiliser cette fonctionnalité matérielle pour remplir des régions protégées de code utilisateur et de données, appelées enclaves. Lorsqu'il est activé, le nouveau matériel protège le code et les données de l'enclave de l'accès et de la modification externes. Les tiroirs de disques fournissent un emplacement pour stocker les clés secrètes, puis traiter les données avec ces clés secrètes, telles que les logiciels DRM. SGX aide à fournir une protection contre de nombreuses menaces de cybersécurité connues, réduisant ainsi la surface d'attaque des serveurs en utilisant des enclaves sécurisées, qui protègent les informations contre les processus exécutés avec un privilège plus élevé.

Zonefs pour les périphériques de blocs à zones

La fonctionnalité zonefs (système de fichiers de zone) est un système de fichiers simple qui expose chaque zone d'un périphérique en mode bloc zoné en tant que fichier. Contrairement à un système de fichiers standard compatible POSIX avec la prise en charge des périphériques en mode bloc zonés natifs, par exemple, f2fs, zonefs ne masque pas la contrainte d'écriture séquentielle des périphériques en mode bloc zonés à l'utilisateur. Les fichiers qui représentent des zones d'écriture séquentielles du périphérique doivent être écrits séquentiellement, à partir de la fin du fichier (ajouter uniquement des écritures).

Fonctionnalités obsolètes et supprimées

Les fonctionnalités suivantes sont en phase d'abandon, supprimées ou ne sont plus prises en charge dans UEK R7 :

  • /dev/raw Appareil supprimé

    Le pilote /dev/raw marqué comme obsolète en 2005 a été supprimé dans cette version. Dans les versions précédentes, les noeuds de périphérique sous /dev/raw fournissaient une interface permettant de diriger la sémantique d'E/S pour les applications écrites avant l'introduction de l'indicateur de fichier O_DIRECT sous Linux. Cette modification rend également non fonctionnelle la commande raw qui fait partie du package util-linux.

    Pour obtenir la sémantique directe des fichiers d'E/S, utilisez le paramètre approprié pour le fichier d'E/S, comme suit :

    • Pour C, utilisez l'indicateur O_DIRECT dans le cadre de l'appel système open().

    • Pour Java, utilisez le mode RandomAccessFile "rwd" (ouvert pour la lecture et l'écriture).

    • Dans le shell, vous pouvez utiliser les indicateurs dd, iflag=direct (pour la lecture) et oflag=direct (pour l'écriture).

  • module resilient_rdmaip obsolète

    Le module resilient_rdmaip est en phase d'abandon dans UEK R7. Ce module peut être supprimé dans une version ultérieure de UEK.

  • Pilote Cisco fnic 1.6 non pris en charge

    Cisco ne prend plus en charge le pilote HBA FCoE Cisco (fnic 1.6) qui provient du noyau en amont et qui est disponible dans la plupart des noyaux, notamment UEK R5, UEK R6 et UEK R7. Cisco fournit un pilote UCS Linux entièrement pris en charge (version 2.0.0.83 et versions ultérieures) qui est testé et compatible avec Oracle Linux, avec UEK R5 et versions ultérieures UEK, sur la page de téléchargement du logiciel Cisco. Le package de pilotes inclut des fonctionnalités qui ne sont pas disponibles dans le module de pilote actuellement inclus, telles que la prise en charge de NVMe et la prise en charge de plusieurs files d'attente.

    Les clients qui exécutent Oracle Linux sur des serveurs Cisco doivent installer le package de pilotes Cisco pour recevoir les correctifs de pilotes, les mises à jour de pilotes, le nouveau support matériel et la prise en charge de nouvelles fonctionnalités. Contactez Cisco pour plus d'informations sur les solutions de pilote sur Oracle Linux.

  • Module de noyau oracleasm supprimé

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

    Notez qu'Oracle ASMLib continue d'être pris en charge à l'aide des interfaces io_uring. Pour plus d'informations, reportez-vous à la section Core Kernel Features and Functionality.

  • Module de noyau DRBD supprimé

    Le module de noyau DRBD (Distributed Replicated Block Device) et le package drbd-utils sont supprimés dans UEK R7. Notez que le module de noyau DRBD et son package associé, qui a été introduit en tant qu'aperçu de technologie dans UEK R4 et en phase d'abandon dans UEK R6U3, continue d'être activé dans UEK R5 et UEK R6.