Nuove funzionalità e modifiche in UEK R7

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

Riepilogo delle modifiche rilevanti in UEK R7

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

  • Base kernel stabile Linux 5.15

    La release del kernel mainline 5.15.0 utilizzata come kernel di base per UEK R7 include molte funzionalità e miglioramenti del kernel upstream rispetto alle precedenti release UEK e su RHCK. Per un elenco delle nuove funzioni e dei miglioramenti principali introdotti in questo kernel, vedere Funzioni e funzionalità principali del kernel.

  • Supporto Arm a 64 bit (aarch64)

    Questa release fornisce un supporto migliorato per la piattaforma Arm a 64 bit (aarch64). Un cambiamento significativo per la piattaforma Arm è che la dimensione della pagina predefinita è cambiata in 4 KB, rispetto al valore predefinito precedente di 64 KB. La nuova dimensione di 4 KB si abbina bene ai carichi di lavoro e alle quantità di memoria esistenti nella maggior parte dei sistemi basati su Arm. Per informazioni più dettagliate su questa notevole modifica, vedere Dimensione predefinita pagina su piattaforma Arm modificata a 4 KB.

  • DTrace versione 2.0

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

  • Supporto file system

    Il supporto per i file system Btrfs e OCFS2 è abilitato in UEK R7. In questa release sono stati migliorati anche i file system XFS e NFS. Per maggiori informazioni sulle nuove funzionalità dei file system introdotte in UEK R7, vedere File system.

Dimensione pagina predefinita su piattaforma Arm modificata a 4 KB

La dimensione predefinita della pagina sulla piattaforma Arm a 64 bit (aarch64) è stata modificata in 4 KB, rispetto al valore predefinito precedente di 64 KB. La nuova dimensione di 4 KB si abbina bene ai carichi di lavoro e alle quantità di memoria esistenti nella maggior parte dei sistemi basati su Arm.

Questa modifica ha implicazioni importanti se si intende aggiornare il kernel da una release precedente di UEK. Per ulteriori informazioni, vedere Informazioni sull'aggiornamento da una release precedente di Oracle Linux o UEK a UEK R7.

Per informazioni su altri problemi noti correlati a questa importante modifica, vedere Problemi noti per UEK R7.

Caratteristiche e funzionalità del kernel di base

Nel kernel upstream sono state implementate diverse importanti funzionalità core, tra la release 5.4 utilizzata come versione base del kernel per UEK R6 e la release 5.15.0 utilizzata come versione base del kernel per UEK R7. Sebbene alcune funzionalità siano state sottoposte a backporting nel kernel UEK R6 nelle release di aggiornamento, le nuove funzionalità significative disponibili in UEK R7 sono le seguenti:

  • Miglioramenti BPF

    UEK R7 introduce molti miglioramenti al filtro dei pacchetti di Berkeley (BPF), tra cui:

    • Introduzione di Compile Once Run Everywhere in libbpf e in formato LLVM e BPF Type Format (BTF). Questa modifica consente al verificatore BPF di utilizzare il BTF nel kernel per digitare il codice di assemblaggio BPF di controllo, che fornisce un tracciamento BPF più sicuro e veloce.

    • BPF trampolino, che è una funzione che consente al codice kernel di chiamare in programmi BPF con sovraccarico quasi zero, è disponibile per l'architettura x86_64. In questa release sono inoltre introdotti il supporto per la mappa di array BPF con mapping della memoria e altri miglioramenti.

    • Supporto BPF per la chiamata diretta delle funzioni kernel. Questo miglioramento consente ai programmi BPF che chiamano inizialmente le funzioni del kernel di riutilizzare le implementazioni di controllo della congestione del protocollo TCP (Transmission Control Protocol).

    • I programmi BPF possono dormire durante l'esecuzione, semplificando il meccanismo per associare un socket a un intervallo di indirizzi o numeri di porta. Il nuovo tipo di programma BPF_PROG_TYPE_SK_LOOKUP viene eseguito quando il kernel cerca un socket aperto per una connessione in entrata. Il meccanismo può quindi decidere quale socket dovrebbe ricevere la connessione. Questo meccanismo è stato aggiunto come un modo per associare un socket a una gamma di indirizzi o numeri di porta in modo più semplice. Al momento, questa funzione è limitata ai programmi di trace e modulo di sicurezza.

  • Funzionalità di pianificazione di base incluse

    La pianificazione di base consente di isolare gruppi di processi in esecuzione sullo stesso core, garantendo la massima protezione dagli attacchi side-channel. È possibile utilizzare la pianificazione di base come metodo per prevenire gli attacchi di vulnerabilità della classe Spectra, mantenendo abilitata l'opzione Multithreading simultaneo (SMT) ed evitando una penalizzazione delle prestazioni per la disabilitazione dell'SMT.

  • Nuovo controller di memoria slab cgroup

    UEK R7 introduce un nuovo controller di memoria slab del gruppo di controllo (cgroup) che consente di condividere la memoria slab tra i cgroup di memoria. Questa nuova implementazione del controller di memoria slab mira a raggiungere un migliore utilizzo della lastra condividendo pagine slab tra più cgroup di memoria. Inoltre, la contabilità viene eseguita per oggetto piuttosto che per pagina. La nuova funzionalità consente di risparmiare una notevole quantità di memoria, riducendo notevolmente le inefficienze.

  • miglioramenti di io_uring

    La chiamata di sistema io_uring, che è un'API Linux per I/O asincrono, è progettata per prestazioni più elevate rispetto alla precedente API AIO Linux supportata da QEMU. Diversi miglioramenti per io_uring sono introdotti in UEK R7, la maggior parte dei quali sono incentrati su I/O in rete.

    Un miglioramento delle prestazioni di io_uring correlato all'I/O è un nuovo meccanismo di riciclaggio BIO per la rimozione di alcuni sovraccarichi di gestione della memoria interna, che secondo quanto riferito fornisce un aumento del 10% del numero di operazioni di I/O al secondo che io_uring può sostenere.

    Altre modifiche importanti per io_uring includono Oracle ASMLib v3 + oracaleasm-support. Con questa release, Oracle ASMLib utilizza la chiamata di sistema io_uring al posto dell'interfaccia del driver oracleasm legacy, che è stata rimossa in UEK R7.

  • Rilevamento blocco frazionato

    In questa release, la funzione CPU di rilevamento blocco diviso è abilitata per impostazione predefinita sui sistemi x86_64 che dispongono della capacità per questa funzionalità, ad esempio il processore Ice Lake. Il comando di boot split_lock_detect consente di avvertire o inviare i segnali SIGBUS (segnali di errore Bus) alle applicazioni che utilizzano blocchi divisi. Un blocco split si verifica quando un'istruzione CPU atomica opera su dati che si estendono su due righe della cache. Questa operazione è molto più lenta di un'operazione atomica all'interno di una riga della cache e interrompe le prestazioni su altre memorie centrali.

    Si noti che è possibile disabilitare questa funzione nel kernel impostando split_lock_detect=off.

Modifiche alla distribuzione e all'imballaggio dei contenuti UEK

Il modo in cui i contenuti sono distribuiti e confezionati nella release UEK è cambiato. A partire da UEK R7, il kernel viene riconfezionato e semplificato in diversi RPM separati per facilitare particolari requisiti hardware. Un pacchetto meta RPM, denominato kernel-uek, continua a essere il pacchetto richiesto per tutte le installazioni UEK e mantiene la compatibilità con le versioni precedenti.

Per impostazione predefinita, vengono installati il pacchetto kernel-uek e le relative dipendenze. L'installazione di questo pacchetto equivale all'installazione del kernel UEK completo.

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

Pacchetto

Descrizione

kernel-uek

Questo è un meta package che non contiene file. Il pacchetto dipende da kernel-uek-core e kernel-uek-modules.

L'installazione di questo pacchetto equivale all'installazione del kernel UEK completo. Questo è il pacchetto richiesto per tutte le installazioni UEK e mantiene la compatibilità con le release precedenti.

kernel-uek-core

Questo pacchetto contiene il kernel UEK e un numero minimo di moduli kernel ed è installato insieme al pacchetto kernel-uek-modules. Questo pacchetto richiede l'installazione anche del pacchetto linux-firmware-core.

kernel-uek-modules

Questo pacchetto contiene i moduli kernel rimanenti richiesti dalla maggior parte delle configurazioni del server. Questo pacchetto richiede l'installazione anche del pacchetto linux-firmware.

kernel-uek-modules-extra

Si tratta di un pacchetto opzionale che contiene moduli per hardware e sottosistemi non comuni per i server e il supporto per determinati dispositivi, come Bluetooth, Wi-Fi e schede di acquisizione video. Se è richiesto il supporto per uno qualsiasi di questi componenti, installare il pacchetto manualmente dal repository yum.

È possibile elencare i moduli esplicitamente forniti da questo pacchetto eseguendo:

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

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.

File system

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

Btrfs

Nota

La dimensione predefinita della pagina sulla piattaforma Arm a 64 bit è stata modificata in 4 KB, rispetto al valore predefinito dei 64 KB precedenti. Se stai eseguendo Oracle Linux 8 su un sistema basato su Arm con una release UEK precedente, questa modifica ha un impatto sui file system Btrfs, ad esempio sui sistemi che eseguono Raspberry Pi su un'immagine per sviluppatori di Oracle Linux 8. Prima di eseguire l'aggiornamento a UEK R7, è necessario eseguire la migrazione dei dati e prepararsi a riformattare i file system per evitare qualsiasi perdita di dati e garantire che il sistema non diventi non avviabile. Vedere Dimensione predefinita pagina su piattaforma Arm modificata a 4 KB.

Questa release introduce diversi miglioramenti alle prestazioni Btrfs e al recupero dei dati, nonché alcuni miglioramenti RAID 1, il supporto per i semafori di lettura-scrittura Linux e il supporto del checksum. Altre importanti modifiche per Btrfs includono:

  • Nuova opzione di attivazione salvataggio aggiunta

    Nuova opzione di accesso di salvataggio per raggruppare tutte le opzioni di accesso esistenti per il recupero. usebackuproot è ora un alias per rescue=usebackuproot; nologreplay è un alias per rescue=nologreplay.

  • Taglio SSD sincrono disponibile

    Il taglio SSD asincrono è disponibile in Btrfs. Per motivi legati alle prestazioni e all'usura, le unità di storage a stato solido ricevono una notifica quando un blocco del disco non viene utilizzato. Questa operazione viene definita discard o trim ed è eseguita automaticamente da Btrfs. Quando un file viene eliminato, Btrfs notifica all'unità che i blocchi appartenenti al file non sono più in uso. In precedenza, queste notifiche si sono verificate in modo sincrono, il che significa che le notifiche di trim sono state inviate prima di terminare l'operazione di eliminazione, il che può danneggiare le prestazioni. Queste notifiche vengono ora inviate in modo asincrono.

  • miglioramenti delle prestazioni di fsync()

    Sono stati introdotti i seguenti miglioramenti di fsync():

    • Miglioramento delle prestazioni di fsync() (riduzione del 12% sulla latenza massima segnalata da dbench).

    • Accelerazione sostanziale del fsync parallelo riducendo il numero di ricerche e conflitti nell'albero di checksum.

    • Velocità sostanziale di fsync parallelo per i file con estensione reflinked/deduped. Per i job dal 16 al 1024, in media, il throughput è migliorato di circa il 50%; il runtime è diminuito di circa il 30%.

  • Pre-fetch foglie albero blocco al supporto di montaggio

    Pre-fetch chunk tree foglie al montaggio, che migliora la velocità di montaggio in file system multi-TB.

  • supporto mapping fs-verity e ID

    In questa release sono inclusi il supporto per il mapping di fs-verity e ID e DAMON per migliorare la capacità di monitoraggio dei pattern di accesso alla memoria di processi specifici. Il livello generico fs-verity, già disponibile nei file system ext4 e F2FS, garantisce una protezione trasparente dell'integrità e dell'autenticità dei file di sola lettura. La funzione include anche la funzionalità per i punti di attivazione con mapping di ID, che consente di mappare gli ID utente e gruppo di un'attivazione a un'altra.

ext4

Il file system ext4 continua ad essere supportato nelle release UEK.

OCFS2

OCFS2 continua a essere supportato nelle release UEK. Per Oracle Linux 9, i pacchetti di spazio utente vengono aggiornati per abilitare il supporto OCFS2 in questa release.

XFS

Nota

La dimensione predefinita della pagina sulla piattaforma Arm a 64 bit è stata modificata in 4 KB, rispetto al valore predefinito dei 64 KB precedenti. Di conseguenza, se stai eseguendo Oracle Linux 8 su un sistema basato su Arm con una release UEK precedente e hai precedentemente modificato manualmente un file system XFS in una dimensione di blocco superiore a 4 KB, devi eseguire la migrazione dei dati e prepararti a riformattare i file system prima di eseguire l'aggiornamento a UEK R7. I sistemi con file system XFS configurati per l'uso di una dimensione di blocco di 4 KB non sono interessati da questa operazione. Vedere Dimensione predefinita pagina su piattaforma Arm modificata a 4 KB.

In UEK R7 sono state introdotte le modifiche importanti al file system XFS riportate di seguito.

  • Miglioramenti per le operazioni XFS 2038+ e DAX e riduzione dei metadati DAX.

    In questa release è stata aggiunta la funzionalità per le operazioni DAX XFS 2038+, per file e per directory e la riduzione dei metadati DAX.

  • Il file system XFS include nuove funzioni

    Il file system XFS supporta due nuove opzioni: bigtime e inobtcount. L'opzione bigtime fornisce supporto per gli indicatori data/ora oltre il 2038; l'opzione inobtcount riduce il tempo di attivazione nei file system di grandi dimensioni. Per impostazione predefinita, queste opzioni sono disabilitate. Per abilitare queste opzioni durante la creazione di un file system XFS, utilizzare il comando mkfs.xfs come indicato di seguito.

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

    L'abilitazione di queste opzioni mkfs.xfs crea un file system non attivabile dai kernel precedenti, in cui queste opzioni non sono supportate.

Protocollo di comunicazione WireGuard

Il protocollo di comunicazione WireGuard è disponibile in UEK R7 sia per le reti IPv4 che IPv6. WireGuard utilizza reti private virtuali crittografate (VPN) passando il traffico sul protocollo UDP (User Datagram Protocol).

Nota

WireGuard è stato precedentemente abilitato come funzione di anteprima della tecnologia in UEK R6U1, con il supporto completo introdotto in UEK R6U3.

WireGuard utilizza la crittografia a chiave pubblica per l'identificazione e la crittografia, mentre OpenVPN utilizza i certificati per queste attività. Con WireGuard, la generazione e la gestione delle chiavi sicure vengono gestite in background. Si noti che sebbene IPsec sia ancora lo standard per la comunicazione di rete sicura, WireGuard sta guadagnando popolarità perché è più facile da configurare e distribuire.

Per ulteriori informazioni e istruzioni dettagliate, vedere Oracle Linux: Configuring Virtual Private Networks.

RDMA

UEK R7 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 collegati in rete. RDMA facilita la rete ad alto throughput e bassa latenza nei cluster.

A partire da Oracle Linux 9, il processo di installazione dei pacchetti RDMA supportati da Oracle è stato semplificato utilizzando nuovi pacchetti di spazio utente e un canale ULN dedicato e un repository yum per i pacchetti correlati a RDMA. Per ulteriori informazioni, vedere Installazione e aggiornamento dei pacchetti RDMA supportati da Oracle su Oracle Linux.

Se si esegue Oracle Linux 8, il processo di installazione dei pacchetti RDMA supportati da Oracle rimane invariato rispetto alle release precedenti.

Sicurezza

In UEK 7 sono introdotte le seguenti funzioni di sicurezza:

Introdotto il nuovo portachiavi del kernel .machine

Il portachiavi del kernel .machine è introdotto in UEK R7. È possibile utilizzare questo portachiavi come trust anchor a livello di kernel per qualsiasi operazione che utilizza chiavi asimmetriche. Il portachiavi .machine ha lo stesso livello di attendibilità nel kernel dei portachiavi .builtin_trusted_keys e .secondary_trusted_keys. Analogamente ai portachiavi incorporati e secondari, è possibile utilizzare i tasti del portachiavi .machine per effettuare le operazioni riportate di seguito.

  • Eseguire la convalida della firma del modulo kernel.

  • Aggiungere ulteriori chiavi al portachiavi .secondary_trusted_keys.

  • Servire come CA per le chiavi di valutazione IMA.

Tenere presente che le chiavi contenute nel portachiavi .machine devono essere un certificato CA radice. Per qualificarsi come certificato CA radice, devono essere soddisfatti i seguenti due requisiti:

  • Il certificato X.509 è autofirmato.

  • Il certificato X.509 deve contenere estensioni X509v3 con basicConstraints=critical,CA:TRUE

Si consiglia inoltre di impostare il campo keyUsage su keyCertSign.

A differenza delle precedenti release UEK, le chiavi contenute nel portachiavi .platform in UEK R7 possono essere utilizzate solo per kexec. Inoltre, non è possibile utilizzare le chiavi .platform per altri scopi; mentre, nelle release precedenti di UEK, è possibile utilizzare il portachiavi .platform per la convalida della firma del modulo kernel, ma non possono essere utilizzate per altre operazioni della chiave kernel.

Il modo più semplice per aggiungere le chiavi al portachiavi .machine è iscriverle con la utility mokutil. Si noti che questo metodo richiede la creazione di una coppia di chiavi X.509.

SGX abilitato sull'architettura Intel

Unbreakable Enterprise Kernel Release 7 abilita la tecnologia Intel Software Guard Extensions (SGX) sul processore Intel Xeon Scalable di terza generazione (nome in codice Ice Lake).

Le applicazioni possono utilizzare questa funzionalità hardware per popolare le aree protette di codice utente e dati, denominate enclaves. Quando attivato, il nuovo hardware protegge il codice enclave e i dati dall'accesso esterno e dalle modifiche. Le enclavi forniscono un luogo in cui memorizzare i segreti e quindi elaborare i dati con tali segreti, come il software DRM. SGX aiuta a fornire protezione contro molte minacce alla sicurezza informatica note, riducendo così la superficie di attacco dei server utilizzando enclavi sicure, che proteggono le informazioni dai processi in esecuzione con privilegi più elevati.

Zonefs per dispositivi a blocchi con zone

La funzione zonefs (zone file system) è un file system semplice che espone ogni zona di un dispositivo a blocchi in zone come file. A differenza di un normale file system conforme a POSIX con supporto nativo dei dispositivi a blocchi zonati, ad esempio f2fs, zonefs non nasconde all'utente il vincolo di scrittura sequenziale dei dispositivi a blocchi zonati. I file che rappresentano zone di scrittura sequenziali del dispositivo devono essere scritti in sequenza, a partire dalla fine del file (append only write).

Funzioni non più valide e rimosse

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

  • Dispositivo /dev/raw rimosso

    Il driver /dev/raw contrassegnato come obsoleto nel 2005 è stato rimosso in questa release. Nelle release precedenti, i nodi del dispositivo sotto /dev/raw fornivano un'interfaccia per indirizzare la semantica I/O per le applicazioni scritte prima dell'introduzione del flag del file O_DIRECT in Linux. Questa modifica inoltre rende non funzionale il comando raw presente nel pacchetto util-linux.

    Per ottenere la semantica diretta dei file di I/O, utilizzare l'impostazione appropriata per il file di I/O, come indicato di seguito.

    • Per C, utilizzare il flag O_DIRECT come parte della chiamata di sistema open().

    • Per Java, utilizzare la modalità RandomAccessFile, "rwd", (Aperto per la lettura e la scrittura).

    • Dalla shell è possibile utilizzare i flag dd, iflag=direct (per la lettura) e oflag=direct (per la scrittura).

  • Modulo resilient_rdmaip non più valido

    Il modulo resilient_rdmaip è deprecato in UEK R7. Questo modulo potrebbe essere rimosso in una release successiva di UEK.

  • Driver Cisco fnic 1.6 non supportato

    Cisco non supporta più il driver HBA Cisco FCoE (fnic 1.6) proveniente dal kernel upstream e disponibile nella maggior parte dei kernel, tra cui UEK R5, UEK R6 e UEK R7. Cisco fornisce un driver UCS Linux completamente supportato (versione 2.0.0.83 e successive) testato e compatibile con Oracle Linux, con UEK R5 e versioni successive UEK, nella pagina di download del software Cisco. Il pacchetto driver include funzioni non disponibili nel modulo driver attualmente incluso, come il supporto NVMe e il supporto multi-queue.

    I clienti che utilizzano Oracle Linux sui server Cisco devono installare il pacchetto driver Cisco per ricevere correzioni dei driver, aggiornamenti dei driver, nuovo supporto hardware e nuovo supporto alle funzionalità. Contatta Cisco per maggiori informazioni sulle soluzioni per i driver su Oracle Linux.

  • Modulo kernel oracleasm rimosso

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

    Tenere presente che Oracle ASMLib continua a essere supportato utilizzando le interfacce io_uring. Per ulteriori informazioni, vedere Funzioni e funzionalità del kernel core.

  • Modulo kernel DRBD rimosso

    Il modulo kernel DRBD (Distributed Replicated Block Device) e il pacchetto drbd-utils vengono rimossi in UEK R7. Si noti che il modulo kernel DRBD e il relativo pacchetto associato, introdotto come anteprima tecnologica in UEK R4 e deprecato in UEK R6U3, continua ad essere abilitato in UEK R5 e UEK R6.