Release di OpenZFS 2.2, implementazione di ZFS per Linux e FreeBSD

Dopo oltre due anni di sviluppo, è stato pubblicato il rilascio del progetto OpenZFS 2.2, che sviluppa l'implementazione del file system ZFS per Linux e FreeBSD. Il progetto è diventato noto come 'ZFS su Linux' e in precedenza si limitava allo sviluppo di un modulo per il kernel Linux, ma dopo l'aggiunta del supporto per FreeBSD è stato riconosciuto come implementazione principale di OpenZFS e rinominato.

OpenZFS è stato testato con i kernel Linux dalla versione 3.10 fino alla 6.5 e con tutti i rami di FreeBSD, a partire dalla 12.2-RELEASE. Il codice è distribuito sotto la licenza libera CDDL. OpenZFS è già utilizzato in FreeBSD e fa parte delle distribuzioni Debian, Ubuntu, Gentoo, Sabayon Linux e ALT Linux. I pacchetti con la nuova versione saranno disponibili a breve per le principali distribuzioni Linux, inclusi Debian, Ubuntu, Fedora, RHEL/CentOS.

OpenZFS fornisce un'implementazione dei componenti ZFS, relativi sia al funzionamento del file system che al funzionamento del gestore dei volumi. In particolare, sono stati implementati i seguenti componenti: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) e ZPL (ZFS POSIX Layer). Inoltre, il progetto ha reso possibile l'uso di ZFS come backend per il file system distribuito Lustre. I progressi del progetto si basano sul codice originale di ZFS, importato dal progetto OpenSolaris e ampliato con miglioramenti e correzioni della comunità Illumos. Il progetto è in corso di sviluppo con la partecipazione dei dipendenti del Laboratorio Nazionale di Livermore secondo un contratto con il Dipartimento dell'Energia degli Stati Uniti.

Il codice è distribuito sotto la licenza libera CDDL, che è incompatibile con GPLv2, il che impedisce l'integrazione di OpenZFS nella branch principale del kernel Linux, poiché la combinazione di codice sotto licenze GPLv2 e CDDL non è consentita. Per ovviare a questa incompatibilità licenziale, è stato deciso di distribuire il prodotto interamente sotto licenza CDDL come modulo separato, che viene fornito separatamente dal kernel. La stabilità della base di codice di OpenZFS è valutata come comparabile ad altri file system per Linux.

Variazioni principali:

  • È stato aggiunto un meccanismo di clonazione dei blocchi, che consente di creare una copia di un file o di una sua parte senza duplicare i dati, utilizzando nella seconda copia riferimenti ai blocchi di dati esistenti del file sorgente senza copiarli effettivamente. In caso di modifiche al file sorgente o alla sua copia, si esegue la copia dei blocchi e si apportano le modifiche alle copie create (modalità copy-on-write a livello di file). Basata sul meccanismo di clonazione, è stata implementata l'operazione reflink, che può essere utilizzata per la creazione automatica di cloni in varie utility di copia, ad esempio, nelle nuove versioni di /bin/cp in Linux.
  • È stata aggiunta la supporto per le tecnologie utilizzate per l'isolamento dei container in Linux, come la syscall renameat, FS overlayfs, il mapping degli identificatori utente al momento del montaggio e la delega degli spazi dei nomi per i contenitori.
  • È stato implementato un registro degli errori riscontrati durante le operazioni di verifica delle checksum (scrub). Quando viene eseguito il comando «zpool status», vengono visualizzate informazioni su tutti i FS, snapshot e cloni coinvolti dal blocco danneggiato. Per tentare un rapido ripristino dei blocchi danneggiati noti, si può utilizzare il comando «zpool scrub -e».
  • È stata aggiunta la possibilità di utilizzare per le checksum la funzione di hash crittografica BLAKE3, nota per l'elevata velocità di calcolo dell'hash (tre volte più veloce di Edon-R e significativamente più veloce di sha256 e sha512) garantendo al contempo l'affidabilità a livello di SHA-3.
  • È stata implementata l'operazione «zfs receive -c», che può essere utilizzata per ripristinare dati danneggiati (esclusi i metadati) nei FS, snapshot e cloni, nei casi in cui sia disponibile un backup replicato, precedentemente salvato con il comando «zfs send».
  • È stata aggiunta la supporto per la modifica e la lettura delle proprietà per singoli dischi virtuali vdev.
  • È stata aggiunta la possibilità di associare a vdev e zpool proprietà personalizzate arbitrarie, analogamente alle proprietà personalizzate per il dataset zfs.
  • È stata migliorata l'implementazione della cache adattiva ARC (Adaptive Replacement Cache), che aumenta le prestazioni delle operazioni di lettura. ARC ora si adatta meglio a carichi elevati e minimizza la necessità di ottimizzazioni manuali delle impostazioni.
  • È stata aggiunta la supporto per i meccanismi di accelerazione hardware nel calcolo delle checksum SHA2.
  • È stata riscritta e ottimizzata l'implementazione delle checksum Edon-R.
  • Utilizzando l'algoritmo zstd per la compressione dei dati, è stata accelerata l'individuazione delle situazioni in cui la compressione è inutile (i dati non sono comprimibili).
  • Sono stati apportati miglioramenti nel meccanismo di caricamento anticipato (Prefetch), che accelerano il funzionamento durante le operazioni di I/O intensivo.
  • È stata effettuata una serie di ottimizzazioni generali che aumentano le prestazioni.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster