Nouvelles fonctionnalités et changements dans UEK R6U1

Voici les principales nouvelles fonctionnalités d'Unbreakable Enterprise Kernel version 6, mise à jour 1 (UEK R6U1).

Version du noyau

UEK R6U1 utilise la version 5.4.17-2036 et la construction du noyau UEK R6, qui comprend des correctifs de sécurité et de bogues, ainsi que des mises à jour de pilotes.

Fonctionnalités du noyau principal

UEK R6U1 fournit une fonctionnalité de noyau de base équivalente à UEK R6, en utilisant la même version de noyau principal en amont et les correctifs de bogues LTS en amont, avec des correctifs supplémentaires pour améliorer les fonctionnalités existantes et fournir des correctifs de bogues mineurs et des améliorations de sécurité. Les modifications clés sont propres à la fonctionnalité requise pour Oracle Database et d'autres logiciels Oracle.

Padata remplace ktask

Padata est une structure permettant de paralléliser le travail exigeant beaucoup de CPU dans le noyau. Dans UEK R6, Oracle a publié le cadre ktask pour le travail de noyau multithreading CPU-intensive, mais a contribué à la convergence et au développement continu de l'implémentation de padata dans le noyau amont. Dans UEK R6U1 ktask est remplacé par une fonctionnalité équivalente dans padata pour aligner avec l'amont. Les modifications ne doivent pas être visibles par l'utilisateur, et l'initialisation de la page de structure et l'initialisation des invités KVM activés par VFIO continuent d'être multifilées afin de réduire les temps de démarrage.

La documentation pour padata est fournie dans /usr/share/doc/kernel-uek-doc-5.4/core-api/padata.rst.

Systèmes de fichiers

Les modifications notables suivantes du système de fichiers sont implémentées dans UEK R6U1 :

  • Btrfs

    Des correctifs en amont pour les améliorations de sécurité et les corrections de bogues ont été appliqués. Cela inclut un correctif pour CVE-2019-19448.

  • CIF

    Des correctifs généraux de correction de bogues en amont ont été appliqués.

  • Poste4

    Des correctifs de bogues en amont ont été appliqués, y compris plusieurs correctifs pour les conditions de course qui ont entraîné un comportement indésirable ou des blocages du système.

  • NFS

    Des correctifs de bogues et des améliorations de performance ont été appliqués pour NFS. De manière significative, un correctif est inclus pour un problème dans le client NFSv3 qui a bloqué la commande ls -lrt si le répertoire était en cours de modification lors de l'émission de la commande.

  • OCFS2

    Les modifications en amont d'OCFS2 à partir du noyau en amont 5.7 sont rétroportées dans cette version du noyau. Un correctif de bogue a également été appliqué pour résoudre un problème qui a déclenché une erreur de protection générale lorsqu'un serveur NFS était hébergé sur un système de fichiers OCFS2.

  • XFS

    Plusieurs corrections de bogues et améliorations des performances ont été appliquées. De manière significative, le rinçage d'inode multithread est amélioré pour fournir de meilleures performances et éviter la petite possibilité de comportement indésirable résultant d'une condition de course. En outre, un correctif est inclus pour un bogue qui pourrait entraîner l'échec du déverrouillage d'un verrou gelé, provoquant ainsi le blocage du système de fichiers. Des améliorations de sécurité ont également été appliquées, notamment un correctif pour CVE-2020-12655.

Fonctions d'aperçu technique

Plusieurs fonctionnalités font l'objet d'une enquête et sont en cours de développement en vue de leur diffusion au sein de l'UEK R6. Les fonctionnalités suivantes sont disponibles dans UEK R6U1 comme aperçu technique.

Programmation de base

La programmation de base est une fonction activée dans le noyau pour limiter les tâches fiables à exécuter simultanément sur des coeurs d'UC qui partagent des ressources de calcul afin de réduire certaines catégories de bogues de processeur de "cache partagée de base" qui pourraient causer des fuites de données et d'autres vulnérabilités connexes.

Cette fonctionnalité est implémentée sous la forme d'un cgroup, où les tâches d'un cgroup activé pour la programmation de base ont un groupe unique "cookie". Ces tâches ne peuvent pas partager un noyau avec des tâches ayant un cookie différent ni avec des tâches qui ne se trouvent pas dans un cgroup de programmation de noyau activé.

La planification de base est conçue pour fonctionner sur un système configuré avec l'activation simultanée du traitement multifil. Cependant, la planification de base n'élimine pas le besoin d'autres mesures d'atténuation de la sécurité des processeurs qui peuvent être nécessaires sur un système. Pour utiliser cette fonction, assurez-vous que SMT=on est configuré, puis effectuez les opérations suivantes en tant qu'utilisateur racine :

  1. Créez un groupe de contrôleurs CPU version 1 standard. Par exemple, pour créer un groupe nommé cpu_sched_0 :

    # mkdir /sys/fs/cgroup/cpu/cpu_sched_0
                               
  2. Ajoutez des tâches au cgroup. Les tâches sont ajoutées en écrivant leur ID processus (PID) dans le fichier tasks du groupe :

    # echo PID > /sys/fs/cgroup/cpu/core_sched_0/tasks
                               
  3. Pour activer la programmation de base pour le groupe de contrôleurs d'UC, écrivez une valeur de 1 dans le fichier cpu.tag :

    # echo 1 > /sys/fs/cgroup/cpu/core_sched_0/cpu.tag
                               

    Une fois le fichier cpu.tag mis à jour, les tâches dans le cgroup ne partagent jamais un noyau avec des tâches d'un autre cgroup ou des tâches non affectées à un cgroup.

Cette fonction est activée en tant que prévisualisation technique et est en cours de développement. Les interfaces peuvent changer. Il est déconseillé de brancher à chaud les CPU d'un système avec des cgroups de programmation de base. L'utilisation de la programmation de base sur les processeurs AMD peut présenter une variation de performance plus importante et n'est pas conseillée non plus.

Filière

WireGuard est un remplacement plus rapide et plus sûr pour IPsec et OpenVPN. De nouveaux réseaux sont en cours de construction avec la cryptographie moderne de WireGuard plutôt que des technologies existantes comme IPsec et OpenVPN. WireGuard est activé en tant que prévisualisation technique dans UEK R6U1 et introduit le module de noyau wireguard à la version 1.0.20200712.

Notez que l'ensemble wireguard-tools du référentiel ol7_developer_UEKR6 non pris en charge est requis pour configurer WireGuard. Pour accéder à ce référentiel yum, vous devez installer l'ensemble oraclelinux-developer-release-el7 ou oraclelinux-developer-release-el8 approprié pour votre environnement d'exploitation. Une fois installé, limitez l'utilisation du référentiel pour l'ensemble wireguard-tools, afin d'éviter l'installation accidentelle des mises à jour UEK avant libération.

Pour installer l'ensemble wireguard-tools sur Oracle Linux 7, exécutez :

# yum install oraclelinux-developer-release-el7
# yum-config-manager --disable ol7_developer
# yum-config-manager --enable ol7_developer_UEKR6
# yum-config-manager --save --setopt=ol7_developer_UEKR6.includepkgs='wireguard-tools*'
# yum install wireguard-tools
                     

Pour installer cet ensemble sur Oracle Linux 8, exécutez :

# dnf install oraclelinux-developer-release-el8
# dnf config-manager --disable ol8_developer
# dnf config-manager --enable ol8_developer_UEKR6
# dnf config-manager --save --setopt=ol8_developer_UEKR6.includepkgs='wireguard-tools*'
# dnf install wireguard-tools
                     

Copie côté serveur NFS v4.2

La fonctionnalité NFS v4.2 Server Side Copy est rétroportée à partir du noyau amont et est disponible dans UEK R6U1 en tant que prévisualisation technique. Les fonctionnalités de copie côté serveur fournissent des mécanismes qui permettent à un client NFS de copier des données de fichier sur un serveur ou entre deux serveurs sans que les données soient transmises d'avant en arrière sur le réseau via le client NFS. Notez que la fonctionnalité intra-serveur est activée, tandis que la fonctionnalité inter-serveur est désactivée par défaut. Pour activer cette fonctionnalité, définissez le paramètre inter_copy_offload_enable du module nfsd et redémarrez le service NFS. Vous pouvez le faire temporairement en exécutant :

# echo y > /sys/module/nfsd/parameters/inter_copy_offload_enable
                     

Sinon, pour rendre cette modification permanente, modifiez /etc/modprobe.d/nfsd.conf pour ajouter la ligne :

options nfsd inter_copy_offload_enable=Y

Notez que la possibilité d'effectuer une copie côté serveur dépend en grande partie des capacités du système de fichiers serveur. Par exemple, pour effectuer une copie intra-serveur efficace d'un fichier, le système de fichiers cible sous-jacent a besoin d'une fonctionnalité d'instantané ou de clonage pour des fichiers individuels.

Les tests initiaux ont indiqué certains problèmes avec cette fonctionnalité et il est largement considéré comme expérimental dans cette version.

Mises à jour de pilote

Unbreakable Enterprise Kernel version 6 prend en charge un grand nombre de matériel et d'appareils. En étroite collaboration avec les fournisseurs de matériel et de stockage, Oracle a mis à jour plusieurs pilotes de périphérique à partir des versions de la version principale de Linux 5.4.

La liste complète des modules de pilote inclus dans la dernière mise à jour d'UEK R6, ainsi que les informations de version, sont fournies dans l'annexe sous Modules de pilote dans Unbreakable Enterprise Kernel version 6 (x86_64).

Fonctions et mises à jour des pilotes notables

Les nouvelles fonctionnalités suivantes sont notées dans les pilotes livrés avec UEK R6U1 :

  • Pilotes AMD-TEE

    Les pilotes AMD-TEE, amdtee et tee, sont de nouveaux ajouts dans cette version et sont inclus dans la version 1.0, dans le cadre d'une initiative plus large visant à inclure les mises à jour du noyau principal pour la famille de processeurs AMD Milan.

  • Pilote de carte LAN sans fil Atheros 802.11n HTC

    Le pilote de carte LAN sans fil Atheros 802.11n HTC, ath9k_htc, est corrigé et mis à jour pour les correctifs de sécurité, y compris CVE-2019-19073 .

  • Broadcom BCM573xx pilote de réseau

    Le pilote de réseau Broadcom BCM573xx, bnxt_en, est disponible à la version 1.10.1 et comprend les correctifs et les mises à jour fournis par le fournisseur. Un correctif pour mieux gérer la collecte de statistiques sur les anciens micrologiciels est également inclus à la demande du fournisseur. De manière significative, la maintenance des compteurs de réseau entre les réinitialisations est également améliorée de sorte que l'accumulation de compteurs lors d'une réinitialisation ne se produit que lorsque le paramètre irq_re_init est défini. Notez qu'une modification en amont entraîne une modification du nom du périphérique pour les interfaces réseau Broadcom qui utilisent ce pilote. Par exemple, un appareil qui a déjà été identifié comme eno3d1 est maintenant identifié comme eno3. Cette modification résulte du fait que les ports sur le périphérique réseau peuvent appartenir à différentes fonctions et qu'un correctif a été appliqué pour améliorer l'appellation du périphérique en évitant les hypothèses sur la fonctionnalité du port sur un périphérique.

  • Pilote Intel Ethernet Connection série E800

    Le pilote Linux Intel Ethernet Connection E800 Series, ice, est entièrement mis à jour vers la version 0.8.2-k avec les correctifs et les mises à jour fournis par le fournisseur pour permettre la prise en charge des contrôleurs Ethernet Intel 800-Series et des cartes PCIe plus récents, à l'aide du nom de code Columbiaville.

  • Broadcom Emulex LightPulse Fibre Channel SCSI pilote

    Le pilote Broadcom Emulex LightPulse Fibre Channel SCSI, lpfc, est mis à jour vers la version 12.8.0.3 avec les correctifs et les corrections de bogues fournis par le fournisseur.

  • Pilote Broadcom MegaRAID SAS

    Le pilote Broadcom MegaRAID SAS, megaraid_sas, est mis à jour vers la version 07.714.04.00-rc1. Cette mise à jour inclut les correctifs fournis par le fournisseur qui mettent la version du pilote en ligne avec la version du noyau en amont.

  • Pilote de périphérique LSI MPT Fusion SAS 3.0

    Le pilote de périphérique LSI MPT Fusion SAS 3.0, mpt3sas, est mis à jour vers la version 34.100.00.00 pour inclure les correctifs fournis par le fournisseur qui mettent la version du pilote en ligne avec la version du noyau en amont.

  • Pilote HBA QLogic Fibre Channel

    Le pilote HBA QLogic Fibre Channel, qla2xxx, est mis à jour à la version 10.01.00.25-k et comprend un grand nombre de correctifs fournis par le fournisseur pour aligner la version du pilote sur la version du noyau en amont.

  • Realtek RTL8152/RTL8153 Basé USB Ethernet Adaptateur pilote

    Le pilote Realtek RTL8152/RTL8153 Based USB Ethernet Adapter Driver, r8152 est mis à jour vers la version 1.10.11 avec des correctifs de noyau en amont.

  • Pilote de périphérique de gestion de volume Intel

    Le pilote Intel VMD (Volume Management Device), vmd, version 0.6, est ajouté à cette version du noyau et permet la maintenance des périphériques NVMe, en tirant parti de la logique matérielle fournie par le processeur Intel Xeon. Le pilote agrège les SSD NVMe PCIe et se comporte de la même manière qu'un HBA pour SATA et SAS.