Nuove caratteristiche e modifiche in UEK R6U1

Di seguito sono riportate le principali nuove funzioni di Unbreakable Enterprise Kernel Release 6 Update 1 (UEK R6U1).

Versione kernel

UEK R6U1 utilizza la versione 5.4.17-2036 e la build del kernel UEK R6, che include correzioni di sicurezza e bug, nonché aggiornamenti dei driver.

Funzionalità kernel core

UEK R6U1 fornisce funzionalità kernel core equivalenti a UEK R6, utilizzando la stessa release del kernel mainline a monte e correzioni di bug LTS a monte, con patch aggiuntive per migliorare le funzionalità esistenti e fornire alcune correzioni di bug minori e miglioramenti alla sicurezza. Le modifiche chiave sono specifiche delle funzionalità richieste per Oracle Database e per altri software Oracle.

Padata sostituisce il task ktask

Padata è un framework per parallelizzare il lavoro ad alta intensità di CPU nel kernel. In UEK R6, Oracle ha rilasciato il framework ktask per il lavoro del kernel ad alta intensità di CPU multithreading, ma ha contribuito alla convergenza e allo sviluppo continuo dell'implementazione padata nel kernel a monte. In UEK R6U1 ktask viene sostituito con una funzionalità equivalente in padata per allinearsi a monte. Le modifiche non devono essere visibili all'utente e l'inizializzazione della pagina di struttura e l'inizializzazione guest KVM abilitata per VFIO continuano a essere multithread per ridurre i tempi di avvio.

La documentazione per padata è disponibile in /usr/share/doc/kernel-uek-doc-5.4/core-api/padata.rst.

File system

In UEK R6U1 sono implementate le seguenti modifiche importanti al file system:

  • Btrfs

    Sono state applicate patch a monte per i miglioramenti alla sicurezza e le correzioni dei bug. Ciò include una correzione per CVE-2019-19448.

  • CIFS

    Sono state applicate le patch generali di correzione dei bug a monte.

  • Estensione 4

    Sono state applicate correzioni di bug a monte, incluse diverse correzioni per le condizioni di gara che hanno portato a comportamenti indesiderati o blocchi del sistema.

  • NFS

    Per NFS sono state applicate correzioni di bug e miglioramenti delle prestazioni. È importante notare che nel client NFSv3 è stato incluso un problema che causava il blocco del comando ls -lrt se la directory veniva modificata al momento dell'esecuzione del comando.

  • OCFS2

    Le modifiche a monte per OCFS2 dal kernel a monte 5.7 vengono riportate di nuovo in questa release del kernel. È stato inoltre applicato un bug fix per risolvere un problema che ha attivato un errore di protezione generale quando un server NFS era ospitato su un file system OCFS2.

  • XFS

    Sono state applicate diverse correzioni di bug e miglioramenti delle prestazioni. Significativamente, il flusso multi-threaded di inode è migliorato per fornire le migliori prestazioni e per evitare la piccola possibilità di comportamento indesiderato derivante da una condizione di gara. Inoltre, è inclusa una correzione per un bug che potrebbe causare un errore di sblocco di un blocco di blocco, causando così il blocco del file system. Sono stati applicati anche miglioramenti alla sicurezza, inclusa una correzione per CVE-2020-12655.

Funzioni di anteprima tecnica

Diverse caratteristiche sono in fase di indagine e in corso di sviluppo per il rilascio all'interno di UEK R6. Le seguenti funzionalità sono disponibili in UEK R6U1 come anteprima tecnica.

Pianificazione di base

La pianificazione di base è una funzione abilitata nel kernel per limitare le attività attendibili da eseguire contemporaneamente su memorie centrali CPU che condividono risorse di computazione per contribuire a mitigare determinate categorie di bug del processore 'core shared cache' che potrebbero causare perdita di dati e altre vulnerabilità correlate.

Questa funzione è implementata sotto forma di cgroup, in cui le attività in un core scheduling abilitato cgroup hanno un unico gruppo "cookie". Queste attività non sono in grado di condividere un core con attività che hanno un cookie diverso né con attività non presenti in un core scheduling cgroup abilitato.

La programmazione di base è progettata per funzionare su un sistema configurato con Multi-Threading simultaneo attivato. Tuttavia, la pianificazione di base non elimina la necessità di altre mitigazioni della sicurezza dei processori che potrebbero essere necessarie in un sistema. Per utilizzare questa funzione, accertarsi che SMT=on sia configurato e quindi eseguire le operazioni riportate di seguito come utente root.

  1. Creare un gruppo di controller CPU versione 1 regolare. Ad esempio, per creare un gruppo denominato cpu_sched_0:

    # mkdir /sys/fs/cgroup/cpu/cpu_sched_0
                               
  2. Aggiungere task al gruppo C. I task vengono aggiunti scrivendo il relativo ID processo (PID) nel file tasks del gruppo:

    # echo PID > /sys/fs/cgroup/cpu/core_sched_0/tasks
                               
  3. Per abilitare la pianificazione core per il gruppo controller cpu, scrivere il valore 1 nel file cpu.tag:

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

    Una volta aggiornato il file cpu.tag, le attività all'interno del cgroup non condividono mai un core con attività di un cgroup diverso o attività non assegnate a un cgroup.

Questa funzione è abilitata come anteprima tecnica ed è in fase di sviluppo. Le interfacce sono soggette a modifica. Si sconsiglia di collegare a caldo le CPU in un sistema con cgroup di pianificazione core. L'utilizzo della pianificazione di base sui processori AMD può comportare variazioni più ampie delle prestazioni e non è consigliabile.

Guardia del cavo

WireGuard è una sostituzione più veloce e sicura per IPsec e OpenVPN. Nuove reti vengono costruite con la crittografia moderna di WireGuard piuttosto che con tecnologie legacy come IPsec e OpenVPN. WireGuard è abilitato come anteprima tecnica in UEK R6U1 e introduce il modulo kernel wireguard alla versione 1.0.20200712.

Si noti che il pacchetto wireguard-tools del repository ol7_developer_UEKR6 non supportato è necessario per configurare WireGuard. Per accedere a questo repository yum, installare il pacchetto oraclelinux-developer-release-el7 o oraclelinux-developer-release-el8 appropriato per l'ambiente operativo in uso. Una volta installato, limitare l'uso del repository per il pacchetto wireguard-tools, per evitare di installare accidentalmente aggiornamenti UEK pre-release.

Per installare il pacchetto wireguard-tools su Oracle Linux 7, eseguire:

# 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
                     

Per installare questo package su Oracle Linux 8, eseguire le operazioni riportate di seguito.

# 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
                     

Copia lato server NFS v4.2

La funzionalità di copia lato server NFS v4.2 è back-portata dal kernel a monte ed è disponibile in UEK R6U1 come anteprima tecnica. Le funzioni di copia lato server forniscono meccanismi che consentono a un client NFS di copiare i dati di file su un server o tra due server senza che i dati vengano trasmessi avanti e indietro sulla rete tramite il client NFS. Si noti che la funzionalità intra-server è abilitata, mentre la funzionalità inter-server è disabilitata per impostazione predefinita. Per abilitare questa funzionalità, impostare il parametro inter_copy_offload_enable del modulo nfsd e riavviare il servizio NFS. È possibile eseguire questa operazione temporaneamente eseguendo:

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

In alternativa, per rendere permanente questa modifica, modificare /etc/modprobe.d/nfsd.conf per aggiungere la riga:

options nfsd inter_copy_offload_enable=Y

Si noti che la possibilità di eseguire una copia lato server dipende in gran parte dalle capacità del file system del server. Ad esempio, per eseguire una copia intra-server efficiente di un file, il file system di destinazione di base richiede una capacità snapshot o clone per i singoli file.

I test iniziali hanno indicato alcuni problemi con questa funzione ed è in gran parte considerato sperimentale in questa release.

Aggiornamenti driver

Unbreakable Enterprise Kernel Release 6 supporta un gran numero di hardware e dispositivi. In stretta collaborazione con i fornitori di hardware e storage, Oracle ha aggiornato diversi driver dispositivo dalle versioni di mainline Linux 5.4.

Un elenco completo dei moduli driver inclusi nell'ultimo aggiornamento di UEK R6 insieme alle informazioni sulla versione è fornito nell'appendice in Driver Modules in Unbreakable Enterprise Kernel Release 6 (x86_64).

Caratteristiche e aggiornamenti dei driver notevoli

Le seguenti nuove funzionalità sono note nei driver spediti con UEK R6U1:

  • Driver AMD-TEE

    I driver AMD-TEE, amdtee e tee, sono nuove aggiunte in questa release e sono inclusi nella versione 1.0, come parte di un'iniziativa più ampia per includere aggiornamenti del kernel mainline per la famiglia di CPU AMD Milan.

  • Driver per schede LAN wireless Atheros 802.11n HTC

    Il driver della scheda LAN wireless Atheros 802.11n HTC, ath9k_htc, è patchato e aggiornato per le correzioni di sicurezza, tra cui CVE-2019-19073 .

  • Driver di rete Broadcom BCM573xx

    Il driver di rete Broadcom BCM573xx, bnxt_en, è disponibile alla versione 1.10.1 e include patch e aggiornamenti forniti dal fornitore. Una patch per gestire meglio la raccolta delle statistiche sul firmware precedente è inclusa anche su richiesta del fornitore. Significativamente, la manutenzione dei contatori di rete tra le reimpostazioni è migliorata anche in modo che l'accumulo di contatori durante una reimpostazione si verifica solo quando il parametro irq_re_init è impostato. Si noti che una modifica a monte determina una modifica al nome del dispositivo per le interfacce di rete Broadcom che utilizzano questo driver. Ad esempio, un dispositivo che potrebbe essere stato precedentemente identificato come eno3d1 è ora identificato come eno3. Questa modifica si verifica perché le porte del dispositivo di rete possono appartenere a funzioni diverse ed è stata applicata una correzione per migliorare la denominazione dei dispositivi evitando ipotesi sulla funzionalità delle porte di un dispositivo.

  • Driver per connessione Ethernet Intel serie E800

    Il driver Intel Ethernet Connection E800 Series Linux, ice, è completamente aggiornato alla versione 0.8.2-k con patch e aggiornamenti forniti dal fornitore per supportare i nuovi controller Ethernet e le schede PCIe Intel 800-Series, utilizzando il nome in codice Columbiaville.

  • Driver SCSI Broadcom Emulex LightPulse Fibre Channel

    Il driver Broadcom Emulex LightPulse Fibre Channel SCSI, lpfc, viene aggiornato alla versione 12.8.0.3 con patch e correzioni di bug fornite dal fornitore.

  • Driver Broadcom MegaRAID SAS

    Il driver Broadcom MegaRAID SAS, megaraid_sas, viene aggiornato alla versione 07.714.04.00-rc1. Questo aggiornamento include patch fornite dal fornitore che allineano la versione del driver alla release kernel a monte.

  • Driver per dispositivi LSI MPT Fusion SAS 3.0

    Il driver del dispositivo LSI MPT Fusion SAS 3.0, mpt3sas, viene aggiornato alla versione 34.100.00.00 per includere le patch fornite dal fornitore che allineano la versione del driver alla release kernel a monte.

  • Driver HBA Fibre Channel QLogic

    Il driver HBA QLogic Fibre Channel, qla2xxx, viene aggiornato alla versione 10.01.00.25-k e include un gran numero di patch fornite dal fornitore per allineare la versione del driver alla release kernel a monte.

  • Driver per adattatore Ethernet USB basato su Realtek RTL8152/RTL8153

    Il driver Realtek RTL8152/RTL8153 Based USB Ethernet Adapter, r8152 viene aggiornato alla versione 1.10.11 con patch del kernel a monte.

  • Driver per dispositivi Intel Volume Management

    Il driver Intel VMD (Volume Management Device), vmd, versione 0.6, viene aggiunto a questa release kernel e consente l'utilità dei dispositivi NVMe, sfruttando la logica hardware fornita dal processore Intel Xeon. Il driver aggrega le unità SSD PCIe NVMe e si comporta in modo simile a un HBA per SATA e SAS.