Release 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 ha guadagnato notorietà come "ZFS on Linux" ed era precedentemente limitato allo sviluppo di un modulo per il kernel di Linux, ma dopo la fusione con il codice di FreeBSD è stato riconosciuto come l'implementazione principale di OpenZFS ed è stato rinominato.

Il lavoro di OpenZFS è stato testato con i kernel Linux dalla versione 4.18 alla 6.12 e con tutti i branch di FreeBSD, a partire dalla versione 13.3. Il codice è distribuito con una licenza libera CDDL. OpenZFS è già utilizzato in FreeBSD ed è incluso nelle distribuzioni Debian, Ubuntu, Gentoo, NixOS e ALT Linux. I pacchetti con la nuova versione saranno pronti a breve per le principali distribuzioni Linux, tra cui Debian, Ubuntu, Fedora, RHEL/CentOS.

OpenZFS fornisce un'implementazione dei componenti ZFS, che sono correlati sia al funzionamento del file system sia al funzionamento del gestore di volumi. Sono stati implementati i seguenti componenti: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) e ZPL (ZFS POSIX Layer). Il progetto permette anche di utilizzare ZFS come backend per il file system cluster Lustre. I risultati di OpenZFS si basano sul codice originale di ZFS, importato dal progetto OpenSolaris e ampliato con miglioramenti e correzioni della comunità Illumos. Il progetto è in fase di sviluppo con la partecipazione di personale del Livermore National Laboratory in base a un contratto con il Dipartimento dell'Energia degli Stati Uniti.

Il codice è distribuito con una licenza libera CDDL, che non è compatibile con GPLv2, il che rende impossibile l'integrazione di OpenZFS nel ramo principale del kernel Linux, poiché la mescolanza di codice sotto licenze GPLv2 e CDDL non è consentita. Per aggirare la incompatibilità della licenza, è stato deciso di distribuire il prodotto per Linux interamente sotto licenza CDDL come modulo scaricabile separatamente dal kernel. La stabilità della base di codice di OpenZFS è considerata paragonabile a quella di altri file system per Linux.

Variazioni principali:

  • È stata implementata la possibilità di aggiungere nuovi dischi a caldo a un pool RAIDZ esistente per aumentare la capacità di archiviazione senza interrompere il funzionamento e senza la necessità di creare un nuovo gruppo di supporti. 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 del pool — "zpool status".
  • L'esecuzione delle operazioni relative alla deduplicazione dei blocchi dati è stata notevolmente accelerata. Le ottimizzazioni hanno interessato, tra l'altro, il formato delle tabelle di deduplicazione; pertanto, per attivare le ottimizzazioni proposte nei pool già esistenti, è necessario abilitare l'opzione "fast_dedup", dopo di che verranno create nuove tabelle di deduplicazione che verranno utilizzate parallelamente a quelle esistenti.
  • È stata aggiunta una 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à aumenta l'efficienza operativa in situazioni in cui la memorizzazione nella cache può influire negativamente sulle prestazioni a causa di operazioni di copia aggiuntive in memoria, ad esempio durante l'uso di dispositivi NVMe.
  • Nella maggior parte dei comandi (zfs list|get|mount|version, zpool status|list|get|version) è stata aggiunta l'opzione "-j" per l'output nel formato JSON.
  • La dimensione massima dei nomi di file e directory è stata aumentata da 255 a 1023 caratteri (la nuova dimensione è stata scelta considerando l'archiviazione di 255 caratteri di 4 byte).
  • Sono state apportate ottimizzazioni delle prestazioni che interessano varie parti della base di codice.
  • Nel modulo del kernel sono state aggiunte le 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