Nouvelles fonctionnalités et modifications 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 compilation du noyau UEK R6, qui inclut des correctifs de sécurité et de bogues, ainsi que des mises à jour de pilotes.

Fonctionnalités principales du noyau

UEK R6U1 fournit une fonctionnalité de noyau de base équivalente à UEK R6, en utilisant la même version de noyau de ligne principale en amont et les corrections de bogues LTS en amont, avec des patches supplémentaires pour améliorer les fonctionnalités existantes et fournir des corrections de bogues mineures et des améliorations de sécurité. Les modifications clés sont spécifiques aux fonctionnalités requises pour Oracle Database et les autres logiciels Oracle.

Padata remplace ktask

Padata est une structure permettant de mettre en parallèle le travail nécessitant beaucoup de CPU dans le noyau. Dans UEK R6, Oracle a publié la structure de tâches pour le travail de noyau à CPU multithreading, mais a contribué à la convergence et au développement continu de l'implémentation de padata dans le noyau en amont. Dans UEK R6U1 ktask est remplacé par une fonctionnalité équivalente dans padata pour s'aligner sur l'amont. Les modifications ne doivent pas être visibles par l'utilisateur, et l'initialisation de la page de structure et l'initialisation de l'invité KVM compatible VFIO continuent d'être multithread pour réduire les temps de démarrage.

La documentation relative à 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 patches en amont pour les améliorations de sécurité et les corrections de bugs ont été appliqués. Cela inclut un correctif pour CVE-2019-19448.

  • CIFS

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

  • Ext4

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

  • NFS

    Des corrections de bug et des améliorations des performances ont été appliquées à 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 au moment de l'exécution de la commande.

  • OCFS2

    Les modifications en amont d'OCFS2 à partir du noyau 5.7 en amont 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 de performances ont été appliquées. De manière significative, le rinçage multithread en inode est amélioré pour offrir de meilleures performances et éviter la faible possibilité de comportement indésirable résultant d'une condition de course. En outre, une correction est incluse pour un bogue qui pourrait entraîner l'échec du déverrouillage d'un verrou figé, 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 sont à l'étude et en cours de développement pour la sortie dans UEK R6. Les fonctionnalités suivantes sont disponibles dans UEK R6U1 en tant qu'aperçu technique.

Planification de base

La planification des coeurs est une fonctionnalité activée dans le noyau pour limiter les tâches sécurisées à exécuter simultanément sur des coeurs de processeur qui partagent des ressources de calcul afin d'atténuer certaines catégories de bogues de processeur "core shared cache" susceptibles de provoquer une fuite de données et d'autres vulnérabilités associées.

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

La planification de base est conçue pour fonctionner sur un système configuré avec le multithread simultané activé. Cependant, la planification de base n'élimine pas la nécessité d'autres mesures de sécurité du processeur qui peuvent être nécessaires sur un système. Pour utiliser cette fonctionnalité, assurez-vous que SMT=on est configuré, puis effectuez les opérations suivantes en tant qu'utilisateur root :

  1. Créez un groupe de contrôleurs de 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 de processus (PID) dans le fichier tasks du groupe :

    # echo PID > /sys/fs/cgroup/cpu/core_sched_0/tasks
                               
  3. Pour activer la planification de base pour le groupe de contrôleurs CPU, écrivez la valeur 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 du cgroup ne partagent jamais un noyau avec des tâches d'un autre cgroup ou des tâches non affectées à un cgroup.

Cette fonctionnalité est activée en tant qu'aperçu technique et est en cours de développement. Les interfaces sont susceptibles d'être modifiées. Il n'est pas conseillé de brancher à chaud des CPU dans un système avec des cgroups de programmation de coeur. L'utilisation de la programmation de base sur les processeurs AMD peut présenter des variations de performances plus larges et n'est pas non plus recommandée.

Garde-fil

WireGuard est un remplacement plus rapide et plus sécurisé pour IPsec et OpenVPN. De nouveaux réseaux sont en cours de construction avec la cryptographie moderne de WireGuard plutôt que des technologies héritées comme IPsec et OpenVPN. WireGuard est activé en tant qu'aperçu technique dans UEK R6U1 et introduit le module de noyau wireguard à la version 1.0.20200712.

Notez que le package 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 le package oraclelinux-developer-release-el7 ou oraclelinux-developer-release-el8 approprié à votre environnement d'exploitation. Une fois installé, limitez l'utilisation du référentiel pour le package wireguard-tools, afin d'éviter d'installer accidentellement des mises à jour UEK pré-version.

Pour installer le package wireguard-tools sur Oracle Linux 7, exécutez la commande suivante :

# 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 ce package sur Oracle Linux 8, exécutez la commande suivante :

# 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é de copie côté serveur NFS v4.2 est rétroportée à partir du noyau en amont et est disponible dans UEK R6U1 en tant qu'aperçu technique. Les fonctions 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 elle est largement considérée comme expérimentale dans cette version.

Mises à jour du pilote

Le noyau Unbreakable Enterprise Kernel version 6 prend en charge un grand nombre de matériel et de périphériques. 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 ligne principale Linux 5.4.

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

Fonctionnalités 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 CPU 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.

  • Pilote réseau Broadcom BCM573xx

    Le pilote réseau Broadcom BCM573xx, bnxt_en, est disponible à la version 1.10.1 et inclut les correctifs et mises à jour fournis par le fournisseur. Un patch permettant de mieux gérer la collecte de statistiques sur les anciens microprogrammes est également inclus à la demande du fournisseur. De manière significative, la maintenance des compteurs réseau lors des réinitialisations est également améliorée de sorte que l'accumulation des 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 périphérique qui a peut-être été identifié comme eno3d1 est désormais 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 la dénomination des périphériques en évitant les hypothèses sur la fonctionnalité de port sur un périphérique.

  • Pilote Intel Ethernet Connection E800 Series

    Le pilote Linux Intel Ethernet Connection E800 Series, ice, est entièrement mis à jour vers la version 0.8.2-k avec les patchs et 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.

  • Pilote SCSI Broadcom Emulex LightPulse Fibre Channel

    Le pilote SCSI Broadcom Emulex LightPulse Fibre Channel, 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 patches fournis par le fournisseur qui alignent la version du pilote sur la version en amont du noyau.

  • 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 patches fournis par le fournisseur qui alignent la version du pilote sur la version du noyau en amont.

  • Pilote HBA Fibre Channel QLogic

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

  • Pilote d'adaptateur Ethernet USB basé sur Realtek RTL8152/RTL8153

    Le pilote d'adaptateur Ethernet USB basé sur Realtek RTL8152/RTL8153, r8152 est mis à jour vers la version 1.10.11 avec des patchs de noyau en amont.

  • Pilote de périphérique de gestion des volumes Intel

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