Rilascio 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 di Linux, ma dopo l'aggiunta del supporto per FreeBSD è stato riconosciuto come l'implementazione principale di OpenZFS e ribattezzato.

Il funzionamento di OpenZFS è stato testato con i kernel di Linux dalla versione 3.10 alla 6.5 e con tutte le versioni di FreeBSD, a partire dalla 12.2-RELEASE. Il codice è distribuito con licenza aperta 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 presto preparati per le principali distribuzioni Linux, inclusi Debian, Ubuntu, Fedora, RHEL/CentOS.

OpenZFS fornisce un'implementazione dei componenti ZFS, legati sia al funzionamento del file system che quello del gestore dei volumi. In particolare, sono stati realizzati i componenti: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) e ZPL (ZFS POSIX Layer). Inoltre, il progetto offre la possibilità di utilizzare ZFS come backend per il file system cluster 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 è sviluppato con la partecipazione del personale del Lawrence Livermore National Laboratory sotto contratto con il Dipartimento dell'Energia degli Stati Uniti.

Il codice è distribuito sotto la licenza CDDL, che non è compatibile con GPLv2, il che impedisce l'integrazione di OpenZFS nel ramo principale del kernel Linux, poiché la mescolanza di codice sotto le licenze GPLv2 e CDDL non è consentita. Per aggirare questa incompatibilità di licenza, è stato deciso di distribuire il prodotto interamente sotto la licenza CDDL come modulo scaricabile separato, fornito separatamente dal kernel. La stabilità della base di codice di OpenZFS è valutata come comparabile ad altre FS per Linux.

Principali modifiche:

  • È 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 dei collegamenti ai blocchi di dati già esistenti del file originale senza copiarli effettivamente. In caso di modifiche al file originale o alla sua copia, avviene la copia dei blocchi e l'applicazione delle modifiche alle copie create (modalità copy-on-write a livello di file). Sulla base del meccanismo di clonazione è stata implementata l'operazione reflink, che può essere utilizzata per creare automaticamente cloni in diverse utility di copia, ad esempio nelle nuove versioni /bin/cp in Linux.
  • È stata aggiunta la supporto per le tecnologie utilizzate per l'isolamento dei container in Linux, come la system call renameat, il file system overlayfs, il mapping degli identificatori degli utenti al momento del montaggio e la delega degli spazi dei nomi per i container.
  • È stato implementato un registro degli errori riscontrati durante le operazioni di verifica dei checksum (scrub). Quando viene eseguito il comando «zpool status», vengono visualizzate informazioni su tutti i file system, snapshot e clone interessati dal blocco danneggiato. Per tentare un rapido recupero dei blocchi noti danneggiati, è possibile utilizzare il comando «zpool scrub -e».
  • È stata aggiunta la possibilità di utilizzare la funzione di hash crittografico BLAKE3 per i checksum, nota per l'estrema velocità di calcolo dell'hash (tre volte più veloce di Edon-R e significativamente più veloce di sha256 e sha512) pur garantendo un'affidabilità equivalente a SHA-3.
  • È stata implementata l'operazione «zfs receive -c», che può essere utilizzata per ripristinare i dati danneggiati (non i metadati) nei file system, snapshot e clone, nei casi in cui sia disponibile un backup replicato precedentemente salvato con il comando «zfs send».
  • È stata aggiunta la supporto per impostare e leggere proprietà per singoli dischi virtuali vdev.
  • È stata aggiunta la possibilità di associare proprietà personalizzate a vdev e zpool, analogamente alle proprietà personalizzate per il dataset zfs.
  • Migliorata l'implementazione della cache adattiva ARC (Adaptive Replacement Cache), che aumenta le prestazioni delle operazioni di lettura. ARC si adatta ora meglio ai carichi elevati e riduce al minimo la necessità di ottimizzazione manuale delle impostazioni.
  • Aggiunta la supporto per meccanismi di accelerazione hardware nel calcolo delle somme di controllo SHA2.
  • Riscritta e ottimizzata l'implementazione delle somme di controllo Edon-R.
  • Utilizzando l'algoritmo zstd per la compressione dei dati, è stato velocizzato il riconoscimento delle situazioni in cui la compressione è inutile (i dati non sono comprimibili).
  • Apportate migliorie al meccanismo di prefetching, che accelerano le prestazioni durante operazioni di input/output intensivo.
  • Effettuate ottimizzazioni generali che aumentano le prestazioni.

Fonte: opennet.ru

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