Nuove funzionalità e modifiche UEK 8

Nuove funzionalità, miglioramenti e altre modifiche importanti introdotte in UEK 8.

Riepilogo delle modifiche rilevanti in UEK 8

Di seguito è riportato un riepilogo delle caratteristiche, modifiche e miglioramenti introdotti in UEK 8, rispetto a UEK R7:

  • Base kernel stabile Linux 6.12

    La release del kernel mainline 6.12 utilizzata come kernel di base per UEK 8 include molte funzionalità e miglioramenti del kernel upstream rispetto alle precedenti release UEK e su RHCK su Oracle Linux 9.

  • Il packaging del modulo kernel è aggiornato

    I moduli kernel sono distribuiti in più pacchetti atomici per ridurre la superficie di attacco sul kernel, migliorare la manutenzione del modulo kernel e anche migliorare la visibilità della deprecazione del modulo. Per una visione completa del packaging del kernel in UEK 8, vedere Modifiche alla distribuzione e al packaging dei contenuti UEK.

  • Dimensione pagina di base 64k sul braccio

    In questa release, una versione del kernel con una dimensione di pagina di base di 64 KB è disponibile solo per le forme di computazione basate su Ampere Arm in Oracle Cloud Infrastructure. La dimensione della pagina di base 64k migliora il modo in cui le piattaforme Arm elaborano i carichi di lavoro con set di dati di memoria di grandi dimensioni e contigui. Per ulteriori informazioni, vedere (aarch64) 64k Dimensione pagina di base su Arm.

  • Altri aggiornamenti della piattaforma

    Sono inclusi diversi aggiornamenti generici della piattaforma. Vedere Generic Platform Updates. Sono disponibili altri aggiornamenti della piattaforma Intel specifici, tra cui funzioni di sicurezza come Intel Software Guard Extensions e nuovo supporto hardware per Intel Quick Assist Technology (QAT). Vedere Intel Platform Updates.

  • Completamente Fair Scheduler (CFS) sostituito da Earliest Idoneble Virtual Deadline First (EEVDF)

    CFS viene sostituito dallo scheduler EEVDF per migliorare il comportamento di pianificazione e ridurre la complessità della configurazione. Vedere EEVDF Scheduler Replaces CFS.

  • Gestione della memoria migliorata

    Molti miglioramenti alla gestione della memoria appaiono in UEK 8, tra cui diverse ottimizzazioni della mappatura della memoria, miglioramenti alle prestazioni attraverso l'introduzione di strutture folio e alcuni miglioramenti alla gestione di Huge Page. Vedere Gestione della memoria.

  • Aggiornamenti dei file system

    Il supporto per i file system Btrfs e OCFS2 è abilitato in UEK 8. In questa release sono disponibili miglioramenti significativi per i file system Btrfs, XFS e NFS. Per ulteriori informazioni sulle nuove funzionalità dei file system introdotte in UEK 8, vedere File system

  • ASMLib v3 e io_uring

    Diversi miglioramenti di io_uring sono inclusi in questa release di UEK, che supporta anche ASMLib v3. ASMLib v3 utilizza io_uring per la funzione Automatic Storage Management di Oracle Database. Vedere io_uring Enhancements e ASMLib v3.

  • Aggiornamenti della rete

    Diversi miglioramenti generali di rete sono inclusi in UEK 8. Vedere Miglioramenti generali alla rete.

  • Aggiornamenti relativi alla sicurezza

    Alcuni altri aggiornamenti relativi alla sicurezza sono inclusi in questa release di UEK, inclusi alcuni aggiornamenti al generatore di numeri casuali per migliorare le prestazioni e la sicurezza. Vedere Miglioramenti al generatore di numeri casuali. La funzionalità di offload TLS del kernel è abilitata in UEK 8. Vedere KTLS.

  • Filtro pacchetti Berkeley

    Diversi miglioramenti sono disponibili nel Berkeley Packet Filter (BPF) utilizzato per il trace, tra cui un allocatore di memoria dedicato, un nuovo buffer user ring e l'uso di moduli resilienti BPF Type Format (BTF) per utilizzare BTF per i moduli out-of-tree. Vedere Miglioramenti a Berkeley Packet Filter (BPF).

  • DTrace versione 2.0

    Dtrace v2.0 continua ad essere disponibile in UEK 8 e sfrutta le funzionalità di trace del kernel come eBPF. Informazioni dettagliate sulle release di DTrace e altre modifiche importanti sono disponibili nelle Note di rilascio di Oracle Linux: DTrace.

    .

Modifiche alla distribuzione e all'imballaggio dei contenuti UEK

La tabella seguente fornisce dettagli su come il contenuto UEK 8 viene distribuito e confezionato e include informazioni sulle dipendenze dei pacchetti e su qualsiasi altro requisito importante.

Nota

Il packaging del kernel viene aggiornato in UEK 8 e si differenzia dalle precedenti release UEK. In particolare, i moduli kernel vengono ora forniti in una raccolta di pacchetti separati. La separazione dei moduli dai pacchetti del kernel core aiuta a ridurre il sovraccarico, fornisce un meccanismo per ridurre al minimo la superficie di attacco e migliora la manutenzione dei moduli kernel.

I file di configurazione per identificare i moduli che non vengono caricati vengono rinominati da file 'blacklist' a 'denylist' nell'ambito dell'iniziativa di Oracle di utilizzare un linguaggio più inclusivo nei propri prodotti.

Inoltre, alcuni strumenti delle utility del kernel presenti nel pacchetto kernel-uek-core delle release precedenti vengono spostati in un pacchetto separato, kernel-uek-tools.

È possibile elencare i moduli disponibili in ciascun pacchetto eseguendo:

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

Per individuare il pacchetto a cui appartiene un modulo disponibile nel sistema, è possibile eseguire le operazioni riportate di seguito.

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

Se si esegue il comando modprobe per un modulo e il pacchetto a cui appartiene il modulo non è installato, l'output invia una notifica e fornisce il nome del pacchetto da installare. Si noti che potrebbe essere necessario aggiornare il pacchetto kmod alla versione più recente affinché questa funzionalità funzioni.

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 file di mappatura dei pacchetti è incluso all'indirizzo /lib/modules/$(uname -r)/modules.packages e viene spedito nel pacchetto kernel-uek-core per UEK 8 e versioni successive. È inoltre possibile utilizzare questo file per identificare il pacchetto del modulo che contiene un determinato driver.

Pacchetto

Descrizione

kernel-uek

Questo è un meta package che non contiene file.

In Oracle Linux 9, il pacchetto presenta le seguenti dipendenze:

  • 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'installazione di questo pacchetto equivale all'installazione del kernel UEK completo. L'installazione di questo pacchetto garantisce la compatibilità con le release precedenti.

kernel-uek-core

Questo pacchetto contiene i file binari e di supporto del kernel UEK, che vengono copiati in /boot. Il pacchetto viene installato insieme al pacchetto kernel-uek-modules-core e al pacchetto kernel-uek-modules. Questo pacchetto richiede l'installazione anche del pacchetto linux-firmware-core.

kernel-uek-modules-core

Questo pacchetto contiene un numero minimo di moduli kernel core e file di supporto utilizzati per i sistemi ingegnerizzati Oracle. Il pacchetto dipende da kernel-uek-core ed è installato per impostazione predefinita.

kernel-uek-modules

Questo pacchetto contiene diversi moduli comunemente utilizzati nella maggior parte delle configurazioni del server. Questo pacchetto richiede l'installazione anche del pacchetto linux-firmware.

kernel-uek-modules-desktop

Questo pacchetto contiene moduli per l'hardware di tipo desktop.

Questo pacchetto può essere rimosso per rafforzare il sistema su molte piattaforme server se non viene utilizzato nessuno dei moduli.

kernel-uek-modules-usb

Questo pacchetto contiene driver USB.

Questo pacchetto può essere rimosso per rafforzare il sistema su molte piattaforme server se non viene utilizzato nessuno dei moduli.

kernel-uek-modules-wireless

Questo pacchetto contiene driver wireless.

Questo pacchetto può essere rimosso per rafforzare il sistema su molte piattaforme server se non viene utilizzato nessuno dei moduli.

kernel-uek-modules-extra-netfilter

Questo pacchetto contiene moduli netfilter non comuni.

Questo pacchetto può essere rimosso per rafforzare il sistema su molte piattaforme server se non viene utilizzato nessuno dei moduli.

kernel-uek-modules-deprecated

Questo pacchetto contiene moduli che si prevede di rimuovere nelle prossime release.

Questo pacchetto è facoltativo ed è possibile installare il pacchetto manualmente dal repository yum o dal canale ULN.

I moduli inclusi in questo pacchetto non sono più validi e potrebbero essere rimossi nelle prossime release.

kernel-uek-modules-extra

Questo pacchetto contiene moduli aggiuntivi per le configurazioni del server, ma che non vengono comunemente utilizzati.

Questo pacchetto è facoltativo ed è possibile installare il pacchetto manualmente dal repository yum o dal canale ULN.

kernel-uek-tools

Questo pacchetto contiene gli strumenti necessari per soddisfare altre dipendenze di build e runtime nel codice base tools/perf e che possono essere utilizzati dopo il boot per interagire con il kernel. Ad esempio, lo strumento perf utilizzato per l'analisi delle prestazioni del sistema è incluso nel pacchetto.

linux-firmware-core

Questo pacchetto contiene componenti firmware di base e dipende dal pacchetto kernel-uek-core.

linux-firmware

Questo pacchetto contiene componenti firmware che non vengono forniti nel pacchetto linux-firmware-core e dipende dal pacchetto kernel-uek-modules.

Questo pacchetto richiede l'installazione anche del pacchetto linux-firmware-core.

Per rafforzare la sicurezza, si consiglia di rimuovere tutti i pacchetti kernel-uek-modules-* non richiesti dal sistema. Per rimuovere i pacchetti:

  1. Contrassegnare i pacchetti dei moduli principali richiesti sul sistema per impedire la loro rimozione. Ad esempio:

    sudo dnf mark install kernel-uek-core kernel-uek-modules
  2. Rimuovere dal sistema i pacchetti dei moduli non utilizzati e il metapackage kernel-uek:

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

(aarch64) Dimensione della pagina di base 64k sul braccio

Oltre alla build standard di UEK for Arm (aarch64), che imposta una dimensione di pagina di base 4k, un pacchetto kernel-uek64k che imposta una dimensione di pagina di base 64k è disponibile solo per le forme di computazione basate su Ampere Arm in Oracle Cloud Infrastructure. Per casi d'uso diversi da OCI, il package kernel-uek64 è disponibile solo come anteprima tecnica. Il pacchetto kernel-uek64k è disponibile per Oracle Linux 9 e versioni successive.

Il kernel di dimensioni di pagina 64k è un'opzione utile per le piattaforme Ampere (basate su Arm) che elaborano carichi di lavoro con set di dati di memoria grandi e contigui e possono ottenere prestazioni migliori per alcuni tipi di operazioni a uso intensivo di memoria e CPU.

Il kernel delle dimensioni delle pagine 4k è utile per ambienti più piccoli, dove ridurre al minimo l'uso della memoria del sistema fisico è una priorità.

Si noti che il kernel delle dimensioni di pagina 4k e il kernel delle dimensioni di pagina 64k non differiscono per l'esperienza utente in quanto lo spazio utente è lo stesso.

Dopo l'installazione di un sistema con kernel-uek64k, il passaggio a una dimensione della pagina del kernel 4k non è supportato.

Installazione di kernel-uek64k

Nota

L'unica dimensione di pagina nelle forme di computazione NVIDIA Grace è impostata su 64 KB per impostazione predefinita. Facoltativamente, è possibile passare dalla dimensione di pagina predefinita 4k alla dimensione di pagina 64k nelle forme Ampere.
Nota

L'installazione di kernel-uek64k su sistemi esterni a Oracle Cloud Infrastructure (OCI) è disponibile solo come anteprima tecnica. Non installare questo kernel nei sistemi di produzione esterni a OCI.

Per installare kernel-uek64k su un sistema installato con la dimensione standard della pagina 4k kernel-uek:

  1. Installare il pacchetto kernel-uek64k.
    sudo dnf install -y kernel-uek64k
  2. Impostare il kernel di dimensione pagina 64k come kernel predefinito.
    sudo grubby --set-default=$(echo /boot/vmlinuz*64k)

    Si noti che se si dispone di più di un kernel di 64k pagine installato, è necessario dichiarare esplicitamente il kernel che si intende essere il predefinito. Ad esempio:

    sudo grubby --set-default=/boot/vmlinuz-6.12.0-0.20.20.el9uek.aarch64.64k
  3. Riavvia il sistema.
    sudo reboot
  4. Dopo aver eseguito il reboot del sistema, verificare che la dimensione della pagina sia 64 KB.
    getconf PAGESIZE

    Se PAGESIZE restituisce 65536, viene caricato il kernel 64k. Se PAGESIZE restituisce 4096, il kernel 4k viene caricato ed è necessario verificare che il kernel predefinito sia impostato correttamente.

    È inoltre possibile verificare che il kernel in esecuzione contenga la stringa 64k, ad esempio:

    uname -a|grep 64k
  5. Se il sistema esegue il kernel 64k, procedere alla rimozione dei pacchetti del kernel con dimensione di pagina 4k per evitare conflitti futuri.
    sudo dnf erase kernel-uek-core

Aggiornamenti generici della piattaforma

Alcuni aggiornamenti generici della piattaforma sono disponibili in UEK 8. Gli aggiornamenti includono:

  • Rilevamento split-lock per le operazioni sulla memoria che si estendono su due righe della cache, ad esempio l'accesso alla memoria non allineato. Vedere anche https://docs.kernel.org/arch/x86/buslock.html

  • Shadow Stacks per lo spazio utente, utilizzando la tecnologia Control-flow Enforcement (CET) di x86 per fornire protezione dagli attacchi di programmazione orientati al ritorno. Questa implementazione funziona mantenendo uno stack secondario utilizzando un tipo di memoria speciale con protezioni contro le modifiche. Vedere anche https://docs.kernel.org/arch/x86/shstk.html.

  • Il monitoraggio della profondità delle chiamate è implementato per migliorare le prestazioni nel codice di mitigazione delle vulnerabilità della sicurezza risolte.

  • L'attivazione della CPU x86 viene aggiornata in modo che le memorie centrali CPU secondarie vengano avviate in parallelo per migliorare i tempi di avvio del kernel nei sistemi con conteggio delle memorie centrali elevato.

  • Emulazione a 32 bit su kernel x86_64 con il parametro della riga di comando ia32_emulation. Se impostato su true, è possibile caricare programmi a 32 bit ed eseguire chiamate di sistema a 32 bit.

Aggiornamenti della piattaforma Intel

Alcuni aggiornamenti della piattaforma Intel a monte sono inclusi in UEK 8. Gli elementi degni di nota includono:

  • Intel Software Guard Extensions (SGX2), un'implementazione basata su hardware di Enclave Dynamic Memory Management (EDMM), è una versione migliorata di una tecnologia di sicurezza in grado di proteggere dati e codice sensibili isolandoli in aree di memoria private chiamate enclave. SGX2 introduce nuove funzionalità come la gestione dinamica della memoria, in modo che le enclavi possano ridimensionare e gestire la propria memoria durante il runtime. Questo aggiornamento è importante per le applicazioni con carichi di lavoro dinamici o requisiti di memoria più grandi che richiedono un'architettura più scalabile. SGX2 offre una solida riservatezza e integrità per i carichi di lavoro sensibili sia in ambienti on-premise che cloud. Vedere https://www.intel.com/content/www/us/en/support/articles/000058764/software/intel-security-products.html.
  • Interrupt dello spazio utente flessibile di restituzione ed consegna di eventi (FRED). Vedere anche https://docs.kernel.org/arch/x86/x86_64/fred.html.

  • Scansione in-Field per aiutare a testare lo stato della CPU rilevando problemi che non vengono rilevati da controlli di parità o ECC. Vedere anche https://docs.kernel.org/arch/x86/ifs.html.

  • La funzionalità Quick Assist Technology (QAT) viene aggiornata per supportare i processori Intel Xeon di 4a generazione.

  • Mascheramento dell'indirizzo lineare (modalità LAM_U57) per modificare il controllo applicato agli indirizzi lineari a 64 bit, in modo che il software possa utilizzare bit di indirizzo non tradotti per memorizzare i metadati. LAM_U57 può utilizzare 6 bit di metadati in bit da 62 a 57.

Scheduler EEVDF sostituisce CFS

Earliest Idoneble Virtual Deadline First (EEVDF) è un nuovo scheduler del kernel che sostituisce il CFS (Completely Fair Scheduler). EEVDF fornisce un criterio di pianificazione migliore per il kernel e riduce la complessità della configurazione e migliora il comportamento di pianificazione.

Gestione memoria

Diversi importanti aggiornamenti di gestione della memoria sono disponibili in UEK 8 con modifiche a monte che sono inclusi dalla v5.15 alla v6.12.

  • La struttura dei conti sostituisce la pagina strutturata per fornire una migliore astrazione per la gestione delle pagine. I conti sono una nuova struttura di dati che rappresenta una o più pagine di memoria. La nuova struttura riduce la confusione di tipo e il sovraccarico di memoria.
  • Le pagine enormi sono migliorate con diversi aggiornamenti utili, tra cui:
    • Aggiornamento per gestire errori enormiTLB quando si utilizza il blocco per VMA. Le operazioni di gestione della memoria come gli errori di pagina e la mappatura della memoria possono essere gestite in modo più dettagliato ed efficiente riducendo i conflitti e migliorando la concorrenza.
    • THP multidimensionale per la memoria anonima, che consente l'allocazione di conti più grandi della dimensione della pagina di base ma più piccoli della dimensione PMD.
    • Dividere i THP sottoutilizzati e migliorare i criteri THP=sempre. Queste modifiche migliorano il overprovisioning dei THP nelle aree di memoria scarsamente accessibili.
    • Il flag madvise() di MADV_DONTNEED funziona sulle pagine hugetlb e può essere utile per annullare il mapping e liberare le pagine hugetlb mappate private.
    • Il flag MADV_COLLAPSE madvise() comprime le pagine in una pagina enorme trasparente.
  • Miglioramenti continui al codice dei gruppi di controllo della memoria, memcg, per scollegare i campi v1 nel codice dal codice base v2.
  • È disponibile una nuova interfaccia sysfs, /proc/sys/vm/enable_soft_offline, che consente di disabilitare il soft-offlining automatico delle pagine. Questa funzione può essere utile per gestire l'offline delle pagine dallo spazio utente.
  • Ottimizzazioni mapping di memoria:

    • Maple Tree ha sostituito Red-Black Trees (RB Trees) per la gestione delle aree di memoria virtuale (VMA) per prestazioni migliori con ricerche, inserimenti ed eliminazioni più veloci.
    • È stato introdotto un meccanismo per denominare VMA anonimi per migliorare il debug e la profilazione.
    • Blocco mmap per-VMA per migliorare la concorrenza e ridurre i conflitti nelle applicazioni multithread con molte VMA.
    • Introduzione della struttura dati ptdesc per ottimizzare la gestione delle tabelle di pagina disaccoppiando i metadati di pagina dalla struttura dati page.

File system

In UEK 8 sono stati introdotti i seguenti miglioramenti e funzioni dei file system:

Btrfs

In UEK 8 sono state introdotte le seguenti modifiche importanti al file system Btrfs:

  • I dati compressi possono essere inviati o ricevuti senza trasformazione e i chunk di dati di dimensioni superiori a 64 KB vengono ora gestiti per le scritture.

  • Una nuova struttura di gruppi di blocchi ad albero migliora i tempi di installazione e i miglioramenti al codice di gruppo di blocchi riducono la frammentazione.

  • La contabilità delle quote è semplificata. Le quote semplici possono essere utilizzate al posto dei gruppi di quote per tracciare in modo semplice l'uso dello spazio collegando gli extent ai relativi volumi secondari. Questo approccio può migliorare le prestazioni, ma le quote semplici non sono in grado di tenere traccia dei dati condivisi, quindi sono più adatte agli ambienti in cui le estensioni sono immutabili e persistono più a lungo di qualsiasi copia.

  • L'introduzione di un FSID temporaneo consente di montare dispositivi clonati. Il file system ottiene un UUID generato in modo casuale sul mount.

  • I controlli di scrittura NOCOW migliorano il throughput del 9%.

  • La nuova opzione di attivazione discard=async è abilitata per impostazione predefinita per i dispositivi che supportano trim/discard, applicando eliminazioni asincrone per l'intero file system.

  • L'opzione di attivazione ignoremetacsums ignora i checksum dei metadati non validi e l'opzione di attivazione ignoresuperflags può essere impostata per ignorare i flag dei superblocchi che tengono traccia dell'avanzamento della conversione.

  • Le attività di invio e riposizionamento, quali saldo, rimozione del dispositivo, ritiro e recupero dei gruppi di blocchi, vengono eseguite in parallelo.

  • I dispositivi possono essere aggiunti durante un saldo sospeso.

XFS

In UEK 8 sono state introdotte le modifiche rilevanti al file system XFS:

  • Ora è possibile attivare un file system con la dimensione del blocco più grande del pagesize.

  • Sono disponibili conteggi di grandi dimensioni per immagini disco virtuali di grandi dimensioni.

  • I commit del contenuto del file atomico sono ora disponibili.

  • Fsck e riparazione online completamente autonomi sono disponibili come anteprima tecnica.

  • Un aggiornamento del comando mkfs.xfs imposta una dimensione minima del file system XFS su 300 MB per evitare la creazione di file system di piccole dimensioni che possano causare problemi di prestazioni e ridondanza. Questa modifica differisce dal comando incluso nel precedente pacchetto xfsprogs disponibile nel repository ol9_baseos_latest sui sistemi Oracle Linux 9.

NFS

In UEK 8 sono state introdotte le modifiche importanti al file system NFS riportate di seguito.

  • La funzione READ_PLUS di NFSv4.2 è abilitata per impostazione predefinita all'interno del kernel per migliorare la gestione dei file con sparsità includendo una descrizione dei fori o dei blocchi di dati non inizializzati.

  • In UEK 8 vengono rimosse diverse vecchie funzionalità di protocollo per NFS. Vedere Funzioni non più valide e rimosse.

Miglioramenti apportati a Berkeley Packet Filter (BPF)

Diversi importanti aggiornamenti sono disponibili in UEK 8 per il Berkeley Packet Filter (BPF), tra cui:

  • L'introduzione di un allocatore di memoria BPF dedicato viene aggiunta per migliorare l'affidabilità delle allocazioni effettuate all'interno dei programmi BPF, che possono essere eseguite in un'ampia varietà di contesti.

  • Aggiunta di un nuovo tipo di mappa BPF del buffer dell'anello utente per il passaggio di messaggi asincroni e un trasferimento dati più rapido tra un programma BPF e lo spazio utente.

  • I programmi BPF ora possono chiamare le funzioni kernel da un modulo caricabile, possono accedere e memorizzare oggetti task_struct e possono utilizzare valori di tempo assoluto.

  • Sono incluse funzioni di aiuto più amichevoli, come bpf_trace_vprintk, e anche aiutanti distruttivi come crash_kexec.

  • I programmi BPF possono collegare funzioni di filtro a kfuncs. Il filtro può limitare i contesti da cui il kfunc può essere richiamato.

  • Le informazioni sul formato BTF (Resilient BPF Type Format) per i moduli sono incluse in modo che i moduli out-of-tree possano definire BTF che funziona per la durata di una release UEK.

  • Il trampolino BPF è ora disponibile per le piattaforme aarch64 per fornire un'esecuzione più rapida del programma di tracciamento BPF utilizzando i programmi Fentry e Fexit.
  • Ganci BPF:

    • Per visualizzare e filtrare i pacchetti completi.

    • Per modificare il protocollo richiesto per un nuovo socket, in particolare per far sì che i programmi che richiedono connessioni TCP utilizzino invece il TCP multipath.

miglioramenti di io_uring

io_uring è un'interfaccia di chiamata di sistema per gestire le operazioni di I/O asincrone del dispositivo di storage. Diverse funzionalità e miglioramenti sono forniti nell'implementazione disponibile in UEK 8 e alcuni di questi potrebbero essere stati riportati nelle precedenti versioni di UEK. Gli aggiornamenti includono molte ottimizzazioni per sicurezza e prestazioni. Nuove funzioni e modifiche significative includono:

  • io_uring ora supporta l'invio e la ricezione di informazioni sulla protezione T10 insieme al buffer di dati.

  • Operazioni per getsockopt(), setsockopt(), bind(), listen() e waitid().

  • Meccanismo per omettere le chiamate di sistema con IORING_SETUP_SQPOLL al momento dell'impostazione. Una chiamata a io_uring_enter() avvia un thread del kernel che a volte esegue il polling della coda di invio e invia automaticamente le richieste trovate lì.

  • Richiesta batch per chiamate recv() e per reads().

  • IORING_OP_SENDZC per eseguire scritture a copia zero.

  • Diverse ottimizzazioni del codice Ring:

    • Gli anelli e la coda di invio possono essere presenti nella memoria dello spazio utente, ad esempio pagine di grandi dimensioni.

    • Un anello è ora in grado di segnalare un altro per accelerare le richieste di messaggi.

    • Il lavoro correlato all'anello può essere differito fino a quando un'applicazione lo richiede.

  • Miglioramenti di io_uring nelle scritture inserite nel buffer in XFS.

  • L'ottimizzazione io_uring in XFS ed Ext4 può gestire più scritture di I/O diretto in un file in parallelo.

  • I timeout assoluti, insieme ai relativi timeout già disponibili, sono ora possibili.

ASMLib v3

ASMLib è una libreria per la funzione Automatic Storage Management di Oracle Database. ASMLib v3 sfrutta le funzionalità io_uring incluse nel kernel per offrire prestazioni elevate. UEK 8 è testato e completamente supportato con Oracle ASMLib v3.

Si noti che con questo aggiornamento, il modulo kernel oracleasm non è più incluso, poiché Oracle ASMLib v3 non richiede più il funzionamento di questo modulo.

ASMLIB release 3.1 sfrutta i miglioramenti del passthrough delle informazioni di protezione aggiunti a io_uring in UEK 8. Attraverso questa interfaccia i checksum CRC possono essere collegati a ogni I/O, fornendo un ulteriore livello di protezione contro il danneggiamento dei dati.

Per utilizzare questa funzione, è necessario eseguire il provisioning dei dischi ASM sull'hardware di storage che implementa le informazioni di protezione T10 (controller SCSI con supporto DIX o NVMe).

Vedere Oracle Linux: Installing and Configuring Oracle ASMLIB v3.

RDMA

UEK 8 include funzioni RDMA (Remote Direct Memory Access) fornite nel kernel a monte, con l'aggiunta delle funzionalità Ksplice e DTrace. RDMA consente l'accesso diretto alla memoria tra due sistemi connessi da una rete InfiniBand o RoCE. RDMA facilita la rete ad alto throughput e bassa latenza nei cluster.

I pacchetti Oracle RDMA sono disponibili nei seguenti canali ULN e repository yum:

  • Oracle Linux 10

    • Canale ULN: ol10_x86_64_RDMA

    • Repository di server Oracle Linux yum: ol10_RDMA

  • Oracle Linux 9

    • Canale ULN: ol9_x86_64_RDMA

    • Repository di server Oracle Linux yum: ol9_RDMA

Vedere Aggiornamento dei pacchetti Oracle RDMA su Oracle Linux se si sta eseguendo l'aggiornamento di un sistema in cui è installato il pacchetto oracle-rdma-release o oracle-rdma-release-guest.

Miglioramenti generali alla rete

Alcuni miglioramenti generali alla rete sono disponibili in UEK 8 con modifiche a monte incluse dalla versione 5.15 alla versione 6.12.

  • BIG TCP, che utilizza pacchetti TSO/GRO più grandi per il traffico IPv6, è incluso per migliorare le prestazioni quando si inviano pacchetti TCP IPv6 di grandi dimensioni su reti di data center. Si noti che questa funzione non è abilitata per impostazione predefinita perché può influire sui programmi eBPF che potrebbero presumere che l'intestazione TCP segua immediatamente l'intestazione IPv6. BIG TCP è abilitato impostando gro_ipv6_max_size e gso_ipv6_max_size su un dispositivo di collegamento.

  • È disponibile una nuova opzione di socket SO_RESERVE_MEM per fornire un meccanismo che consente agli utenti di riservare una certa quantità di memoria per il socket. Con questa opzione di socket impostata, lo stack di rete spende meno cicli eseguendo allocazioni e reclaim in avanti, il che può portare a migliori prestazioni del sistema, con il costo di una quantità di memoria preallocata e irrecuperabile, anche sotto pressione di memoria.

  • Lo scheduler di pacchetti di accodamento equo ha ottenuto diversi miglioramenti delle prestazioni, tra cui un aumento del throughput del 5% del carico di lavoro intensivo di richiesta/risposta TCP (TCP_RR) e un aumento del 13% per i pacchetti UDP senza una frequenza di pacing impostata sul socket.

  • Diverse strutture di dati di rete di base sono riorganizzate per una migliore efficienza della cache che può portare a un miglioramento delle prestazioni TCP in cui sono molte connessioni concorrenti.

KTLS

KTLS gestisce i record TLS utilizzando la cifratura simmetrica o gli algoritmi di decifrazione nel kernel per la cifratura AES-GCM. KTLS è stato abilitato in UEK R7U3 per le connessioni cifrate TLS per NFS. KTLS continua ad essere disponibile in UEK 8.

Connessioni cifrate TLS per NFS

RPC-With-TLS è abilitato nel server e nel client NFS Linux. Questo aggiornamento fornisce un meccanismo di autenticazione peer basato su standard su una connessione cifrata mediante TLS. Il protocollo TLS Record è gestito interamente da kTLS.

Si noti che sia il server che il client devono eseguire UEK R7U3 o versioni successive oppure devono eseguire un kernel e un client di spazio utente che supporta RFC 9289 per utilizzare questa funzionalità. È richiesto anche il pacchetto spazio utente ktls-utils che deve essere installato sia sul client che sul server. Assicurarsi inoltre di aver installato la versione più recente del pacchetto nfs-utils o di aver eseguito un aggiornamento completo del sistema.

RPC-With-TLS ha contribuito a monte da Oracle ed è descritto in RFC 9289.

Miglioramenti per i generatori di numeri casuali

Alcuni miglioramenti al generatore di numeri casuali (RNG) sono disponibili in UEK 8 con modifiche a monte incluse dalla versione 5.15 alla versione 6.12. In particolare, RNG è passato dall'algoritmo hash SHA1 all'algoritmo BLAKE2s più veloce e sicuro.

Inoltre, la chiamata di sistema getrandom() è ora implementata nell'area dell'oggetto condiviso dinamico virtuale (vDSO) del kernel. Questa implementazione migliora le prestazioni quando si ottengono dati numerici casuali rimuovendo la necessità di passare da un contesto di spazio utente al contesto kernel.

KVM e virtualizzazione

In questa release di UEK 8 sono incluse le seguenti modifiche a KVM e virtualizzazione:

  • Il supporto MMU a paging bidimensionale (TDP) viene aggiunto per migliorare in modo significativo le prestazioni degli errori di pagina sulle VM con molte VCPU. Per impostazione predefinita, questa funzionalità è abilitata.

  • La configurazione del kernel UEK 8 per le VCPU è aumentata a un limite teorico di 4096. Si noti che il limite effettivo della VCPU è specifico di un caso d'uso e dipende da molti fattori, tra cui la configurazione del sistema e della QEMU.

Driver aggiornati

I driver inclusi in UEK 8 sono allineati con i driver nel kernel Linux 6.12 mainline upstream. Alcuni aggiornamenti importanti sono inclusi in cui i driver includono funzionalità o correzioni disponibili nelle versioni successive del kernel a monte.

Molti moduli driver non tengono più traccia delle informazioni sulla versione. Oracle collabora con i fornitori per allineare i driver dei dispositivi inclusi in UEK 8 al codice disponibile nelle versioni kernel a monte.

Nella tabella riportata di seguito vengono forniti importanti aggiornamenti dei driver.

Allineamento conducente
Modulo driver Descrizione driver Versione del kernel allineata Aggiornamenti notevoli

fnic

Driver HBA Cisco FCoE

6,14

Gli aggiornamenti della versione 6.14 sono stati riportati in questa release. Tenere presente che questo driver include una stringa di versione: 1.8.0.0.

lpfc

Driver HBA Broadcom Emulex Fibre Channel

6,14

Gli aggiornamenti della versione 6.14 sono stati riportati in questa release. Si noti che questo driver include una stringa di versione: 0:14.4.0.8.

mlx5

Driver di base per adattatori di rete NVIDIA di 5a generazione (serie NVIDIA ConnectX)

6,12

In questa release sono state riportate diverse correzioni e miglioramenti della versione 6.14.

Funzioni non più valide e rimosse

Le seguenti funzionalità sono deprecate, rimosse o non sono più supportate in UEK 8:

Funzioni non valide

  • Algoritmo SHA-1

    L'algoritmo SHA-1 è deprecato in UEK 8 mentre è in modalità FIPS e verrà rimosso nelle prossime release di UEK. L'algoritmo SHA-1 è stato ritirato dal National Institute of Standard and Technology (NIST) perché l'algoritmo hash SHA-1 non è più considerato sicuro. Consulta le note di rilascio di Oracle Linux per maggiori dettagli sull'uso e l'obsolescenza di SHA-1.

  • I moduli kernel spostati nel pacchetto kernel-uek-modules-deprecated non sono più validi.

    Questi moduli potrebbero essere rimossi nelle prossime release di UEK.

    Per una lista dettagliata, vedere UEK 8 Module Deprecations (x86_64) e UEK 8 Module Deprecations (aarch64).

  • cgroupsv1 non è più valido

    cgroupsv1 è deprecato in Oracle Linux 9 e verrà rimosso nelle prossime release di Oracle Linux.

  • XFS_SUPPORT_V4 non è più valido

    Il formato del file system V4 contiene punti deboli noti nel formato su disco. Pertanto, l'opzione è deprecata in UEK 8 e verrà rimossa in una delle prossime release di UEK.

    Per verificare se il file system è formattato per l'uso di V4, eseguire il comando xfs_db -r -c version <device>.

    Se la funzione è abilitata, è necessario eseguire il backup dei dati, riformattare il dispositivo e ripristinare i dati.

  • XFS_SUPPORT_ASCII_CI non è più valido

    La funzionalità nome senza distinzione tra maiuscole e minuscole XFS ASCII è deprecata in UEK 8 e verrà rimossa nelle prossime release di UEK. La funzione ha fornito un'opzione per formattare un file system XFS con l'opzione ascii-ci abilitata per disabilitare la distinzione tra maiuscole e minuscole.

    È possibile verificare se la funzione è abilitata utilizzando il comando xfs_info.

    Se la funzione è abilitata, è necessario eseguire il backup dei dati, riformattare il dispositivo con l'opzione disabilitata e ripristinare i dati.

  • Le opzioni CONFIG_SECURITY_SELINUX_DISABLE e CONFIG_SECURITY_WRITABLE_HOOKS sono disabilitate

    In questa release di UEK non è più possibile disabilitare SELinux in fase di esecuzione utilizzando l'interfaccia sysfs.

    Il metodo preferito per disabilitare SELinux è l'uso del parametro di boot selinux=0

Funzioni rimosse

  • L'opzione CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_DES per i tipi di cifratura 3DES/DES3 RPCSEC GSS è disabilitata

    In questa release di UEK i tipi di cifratura RPCSEC GSS DES e Triple-DES (3DES/DES3) sono stati rimossi.

    Questi tipi di crittografia sono stati deprecati da RFC 6649 e 8429 perché sono noti per essere insicuri.

  • Le opzioni CONFIG_NFS_V2 e CONFIG_NFSD_V2 per il client e il server NFSv2 sono disabilitate

    In questa release di UEK il supporto per i client NFSv2 e i server NFSv2 non è più supportato.

    NFSv2 è stato a lungo sostituito da NFSv3 e NFSv4, in quanto offre funzionalità, prestazioni e sicurezza superiori.

  • L'opzione CONFIG_NFS_DISABLE_UDP_SUPPORT per NFSv3 su UDP è abilitata

    Il supporto per NFS versione 3 tramite il protocollo di rete UDP è stato rimosso in questa release di UEK.

    Le moderne implementazioni NFS/RPC su TCP e RDMA offrono prestazioni migliori rispetto a UDP e forniscono una consegna ordinata affidabile dei dati combinata con il controllo della congestione.

    Si noti che NFSv4 non è già supportato su UDP per gli stessi motivi.
  • L'opzione CONFIG_STAGING è disabilitata

    L'opzione di configurazione del kernel CONFIG_STAGING è disabilitata in UEK 8. L'opzione kernel rendeva disponibili driver che non necessariamente soddisfano il livello di qualità del kernel più elevato e che erano disponibili per l'uso di prova. L'opzione è deprecata in UEK R7 e viene rimossa in UEK 8.

  • L'opzione CONFIG_IXGB è disabilitata

    CONFIG_IXGB per l'hardware Intel PRO/10GbE viene rimosso in questa release UEK.

  • crashkernel=auto rimosso

    L'opzione crashkernel=auto non è più valida in UEK R7 e non è supportata per Oracle Linux 9. L'opzione kernel viene rimossa in UEK 8. Per ulteriori informazioni sulla configurazione dell'impostazione crashkernel su Oracle Linux, vedere Managing Kernels and System Boot on Oracle Linux.

  • L'opzione CONFIG_IP_NF_TARGET_CLUSTERIP è disabilitata

    L'opzione CONFIG_IP_NF_TARGET_CLUSTERIP che consente di creare cluster di bilanciamento del carico di server di rete senza un router o uno switch di bilanciamento del carico dedicato viene rimossa a favore delle funzionalità già presenti nella corrispondenza del cluster Netfilter.

  • Opzione CONFIG_EFI_VARS disabilitata

    L'opzione CONFIG_EFI_VARS che ha fornito l'interfaccia sysfs di efivars per configurare le variabili UEFI è stata rimossa da questa release di UEK. La funzionalità di sostituzione è presente nel kernel dal 2012. Per ulteriori informazioni, vedere https://www.kernel.org/doc/html/latest/filesystems/efivarfs.html.

  • Driver Firewire rimosso

    L'opzione CONFIG_FIREWIRE è disabilitata in questa release UEK.

  • Diversi moduli dello scheduler di rete rimossi

    I seguenti moduli dello scheduler di rete sono deprecati in UEK R7 e sono ora rimossi in UEK 8:

    • cls_tcindex
    • cls_rsvp
    • sch_dsmark
    • sch_atm
    • sch_cbq
  • Modulo resilient_rdmaip rimosso

    Il modulo resilient_rdmaip è deprecato in UEK R7 ed è ora rimosso.

  • Modulo kernel oracleasm rimosso

    Il modulo kernel oracleasm viene rimosso in UEK 8. Si noti che questo modulo continua ad essere supportato nelle versioni UEK R5 e UEK R6.

    Oracle ASMLib continua a essere supportato mediante interfacce io_uring. Per ulteriori informazioni, vedere ASMLib v3.

  • Modulo kernel sundance rimosso

    Il driver DLink Sundance (ST201), sundance, viene rimosso in UEK 8. Il modulo è stato rimosso nel kernel a monte perché non è stato mantenuto.

  • Modulo kernel cpu5_wdt rimosso

    Il driver del watchdog cpu5_wdt viene rimosso in UEK 8. Il modulo è stato rimosso nel kernel a monte perché presentava diversi problemi non risolti e privi di manutenzione.

  • Moduli kernel i2c-amd756-s4882 e i2c-nforce2-s4985 rimossi

    I driver legacy muxing i2c-amd756-s4882 e i2c-nforce2-s4985 vengono rimossi in UEK 8. Il modulo è stato rimosso nel kernel a monte perché sono vecchi e contengono codice tecnicamente impreciso.

  • Modalità di cifratura CONFIG_CRYPTO_OFB e CONFIG_CRYPTO_CFB

    La modalità CFB (Cipher Feedback) (NIST SP800-38A) utilizzata per la crittografia TPM2 e la modalità OFB (Output Feedback) (NIST SP800-38A) utilizzata per trasformare una cifra a blocchi in una cifra flusso sincrona vengono rimosse in UEK 8, per allinearsi alle modifiche a monte.