Rilascio di OpenZFS 2.3.0, implementazione di ZFS per Linux e FreeBSD

Dopo oltre un anno di sviluppo, è stato pubblicato il rilascio del progetto OpenZFS 2.3.0, che sviluppa l'implementazione del file system ZFS per Linux e FreeBSD. Il progetto è diventato noto come 'ZFS su Linux' e in precedenza si concentrava esclusivamente sullo sviluppo di un modulo per il kernel Linux, ma dopo la fusione con il codice FreeBSD è stato riconosciuto come l'implementazione principale di OpenZFS e rinominato.

Il funzionamento di OpenZFS è stato verificato con i kernel Linux dalla versione 4.18 alla 6.12 e con tutte le versioni di FreeBSD a partire dalla 13.3. Il codice è distribuito sotto la licenza libera CDDL. OpenZFS è già utilizzato in FreeBSD e fa parte delle distribuzioni Debian, Ubuntu, Gentoo, NixOS e ALT Linux. I pacchetti con la nuova versione saranno presto preparati per le principali distribuzioni Linux, incluse Debian, Ubuntu, Fedora, RHEL/CentOS.

OpenZFS offre un'implementazione dei componenti ZFS sia per il funzionamento del file system che per il funzionamento del gestore di volumi. Sono stati implementati componenti come: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (Volume Emulato ZFS) e ZPL (ZFS POSIX Layer). Il progetto consente anche di utilizzare ZFS come backend per il file system cluster Lustre. I lavori di OpenZFS si basano sul codice originale di ZFS, importato dal progetto OpenSolaris e ampliato con miglioramenti e correzioni della comunità Illumos. Il progetto si sviluppa con la partecipazione dei dipendenti del Lawrence Livermore National Laboratory sotto contratto con il Dipartimento dell'Energia degli Stati Uniti.

Il codice è distribuito con licenza open source 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 GPLv2 e CDDL non è consentita. Per ovviare a questa incompatibilità di licenza, è stata decisa la distribuzione del prodotto per Linux interamente sotto licenza CDDL, come modulo caricabile separatamente, fornito separatamente dal kernel. La stabilità della base di codice di OpenZFS è valutata come comparabile ad altri file system per Linux.

Principali modifiche:

  • È stata implementata la possibilità di aggiungere dischi nuovi a un array RAIDZ esistente per aumentare la capacità di archiviazione senza interrompere il funzionamento e senza la necessità di creare un nuovo gruppo di dischi. La ridistribuzione dei dati ridondanti tenendo conto dei nuovi dischi avviene automaticamente. Per aggiungere un disco a un gruppo esistente, è possibile utilizzare il comando "zpool attach POOL raidzP-N NEW_DEVICE", mentre per monitorare la fine del processo in background di espansione dell'array si utilizza "zpool status".
  • È stato notevolmente accelerato l'esecuzione delle operazioni relative alla deduplicazione dei blocchi di dati. Le ottimizzazioni, tra le altre cose, hanno riguardato il formato delle tabelle di deduplicazione; pertanto, per attivare le ottimizzazioni proposte nei pool esistenti, è necessario abilitare l'opzione "fast_dedup", a seguito della quale verranno create nuove tabelle di deduplicazione che saranno utilizzate parallelamente a quelle esistenti.
  • È stata aggiunta la modalità di input/output diretto (Direct IO), che consente di eseguire operazioni di lettura e scrittura bypassando la cache ARC (Adaptive Replacement Cache). Questa modalità migliora l'efficienza in scenari in cui la caching può influire negativamente sulle prestazioni a causa delle operazioni di copia in memoria, ad esempio quando si utilizzano dispositivi NVMe.
  • La maggior parte dei comandi (zfs list|get|mount|version, zpool status|list|get|version) ha ora l'opzione «-j» per l'output in formato JSON.
  • La dimensione consentita per i nomi di file e directory è aumentata da 255 a 1023 caratteri (la nuova dimensione è stata scelta considerando l'allocazione di 255 caratteri 4-byte).
  • Sono state effettuate ottimizzazioni delle prestazioni che riguardano diverse parti della base di codice.
  • Sono state aggiunte al modulo del kernel le seguenti opzioni:
    • dmu_ddt_copies
    • raidz_expand_max_copy_bytes
    • raidz_expand_max_reflow_bytes
    • raidz_io_aggregate_rows
    • spa_cpus_per_allocator
    • spa_num_allocators
    • zap_shrink_enabled
    • zfetch_max_idistance
    • zfs_active_allocator
    • zfs_arc_shrinker_seeks
    • zfs_dedup_log_flush_entries_min
    • .zfs_dedup_log_flush_flow_rate_txgs
    • zfs_dedup_log_flush_min_time_ms
    • zfs_dedup_log_flush_passes_max
    • zfs_dedup_log_mem_max
    • zfs_dedup_log_mem_max_percent
    • zfs_dedup_log_txg_max
    • zfs_dio_enabled
    • zfs_dio_write_verify_events_per_second
    • zfs_resilver_defer_percent
    • zfs_scrub_after_expand
    • zfs_snapshot_no_setuid
    • zfs_vdev_direct_write_verify
    • zio_taskq_write_tpq

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