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
libbpfe 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_LOOKUPviene 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 perio_uringsono introdotti in UEK R7, la maggior parte dei quali sono incentrati su I/O in rete.Un miglioramento delle prestazioni di
io_uringcorrelato 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 cheio_uringpuò sostenere.Altre modifiche importanti per
io_uringincludono Oracle ASMLib v3 + oracaleasm-support. Con questa release, Oracle ASMLib utilizza la chiamata di sistemaio_uringal posto dell'interfaccia del driveroracleasmlegacy, 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 |
|---|---|
|
|
Questo è un meta package che non contiene file. Il pacchetto dipende da 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. |
|
|
Questo pacchetto contiene il kernel UEK e un numero minimo di moduli kernel ed è installato insieme al pacchetto |
|
|
Questo pacchetto contiene i moduli kernel rimanenti richiesti dalla maggior parte delle configurazioni del server. Questo pacchetto richiede l'installazione anche del pacchetto |
|
|
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 |
|
|
Questo pacchetto contiene componenti firmware di base e dipende dal pacchetto |
|
|
Questo pacchetto contiene componenti firmware che non vengono forniti nel pacchetto
Questo pacchetto richiede l'installazione anche del pacchetto |
File system
In UEK 7 sono stati introdotti i seguenti miglioramenti e funzioni dei file system:
Btrfs
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 perrescue=usebackuproot;nologreplayè un alias perrescue=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 dadbench). -
Accelerazione sostanziale del
fsyncparallelo riducendo il numero di ricerche e conflitti nell'albero di checksum. -
Velocità sostanziale di
fsyncparallelo per i file con estensionereflinked/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-veritye ID e DAMON per migliorare la capacità di monitoraggio dei pattern di accesso alla memoria di processi specifici. Il livello genericofs-verity, già disponibile nei file systemext4e 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
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:
bigtimeeinobtcount. L'opzionebigtimefornisce supporto per gli indicatori data/ora oltre il 2038; l'opzioneinobtcountriduce 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).
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/rawcontrassegnato come obsoleto nel 2005 è stato rimosso in questa release. Nelle release precedenti, i nodi del dispositivo sotto/dev/rawfornivano un'interfaccia per indirizzare la semantica I/O per le applicazioni scritte prima dell'introduzione del flag del fileO_DIRECTin Linux. Questa modifica inoltre rende non funzionale il comando raw presente nel pacchettoutil-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_DIRECTcome parte della chiamata di sistemaopen(). -
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) eoflag=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 (
fnic1.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
oracleasmviene 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-utilsvengono 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.