Release-ul OpenZFS 2.3.0, implementarea ZFS pentru Linux și FreeBSD

După mai bine de un an de dezvoltare, a fost lansată versiunea 2.3.0 a proiectului OpenZFS, care dezvoltă implementarea sistemului de fișiere ZFS pentru Linux și FreeBSD. Proiectul a câștigat popularitate sub numele de „ZFS pe Linux” și s-a concentrat inițial pe dezvoltarea unui modul pentru nucleul Linux, dar după fuziunea cu codul din FreeBSD, a fost recunoscut ca fiind implementarea principală a OpenZFS și a fost redenumit.

Funcționarea OpenZFS a fost testată cu nucleele Linux de la 4.18 la 6.12 și cu toate versiunile FreeBSD, începând cu 13.3. Codul este distribuit sub licența liberă CDDL. OpenZFS este deja utilizat în FreeBSD și este inclus în distribuțiile Debian, Ubuntu, Gentoo, NixOS și ALT Linux. Pachetele cu noua versiune vor fi pregătite în curând pentru cele mai importante distribuții Linux, inclusiv Debian, Ubuntu, Fedora, RHEL/CentOS.

OpenZFS oferă o implementare a componentelor ZFS, legate atât de funcționarea sistemului de fișiere, cât și de funcționarea managerului de volume. Au fost implementate componente: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) și ZPL (ZFS POSIX Layer). Proiectul permite, de asemenea, utilizarea ZFS ca backend pentru sistemul de fișiere clusterizat Lustre. Munca desfășurată în cadrul OpenZFS se bazează pe codul original ZFS, importat din proiectul OpenSolaris și extins cu îmbunătățiri și corecții din partea comunității Illumos. Proiectul se dezvoltă cu participarea angajaților Laboratorului Național Livermore, în colaborare cu Ministerul Energiei din SUA.

Codul este distribuit sub licența liberă CDDL, care nu este compatibilă cu GPLv2, ceea ce împiedică integrarea OpenZFS în ramura principală a nucleului Linux, deoarece amestecarea codului sub licențele GPLv2 și CDDL nu este permisă. Pentru a evita incompatibilitatea licențială, s-a decis să se distribuie produsul pentru Linux în întregime sub licența CDDL, sub forma unui modul care se descarcă separat de nucleu. Stabilitatea bazei de cod OpenZFS este evaluată ca fiind comparabilă cu alte sisteme de fișiere pentru Linux.

Modificări principale:

  • A fost implementată capacitatea de a adăuga în timp real noi discuri într-un array RAIDZ existent pentru a crește dimensiunea stocării fără a opri funcționarea și fără a fi necesară crearea unui nou grup de stocare. Redistribuirea datelor redundante, având în vedere noile discuri, se realizează automat. Pentru a adăuga un disc la un grup existent, se poate folosi comanda „zpool attach POOL raidzP-N NEW_DEVICE”, iar pentru a monitoriza finalizarea procesului de extindere în fundal – „zpool status”.
  • Executarea operațiunilor legate de deduplicarea blocurilor de date a fost accelerată semnificativ. Optimizările au inclus, printre altele, formatul tabelelor de deduplicare, astfel încât pentru a beneficia de optimizările propuse în piscinele existente, trebuie activată opțiunea „fast_dedup”, după care vor fi create noi tabele de deduplicare care vor fi utilizate parțial cu tabelele vechi.
  • A fost adăugat modul de intrare/ieșire directă (Direct IO), care permite efectuarea operațiunilor de citire și scriere ocolind cache-ul ARC (Adaptive Replacement Cache). Acest mod permite creșterea eficienței în situații în care cache-ul poate afecta negativ performanța din cauza operațiunilor suplimentare de copiere în memorie, de exemplu, atunci când se utilizează dispozitive NVMe.
  • Majoritatea comenzilor (zfs list|get|mount|version, zpool status|list|get|version) au fost adăugate cu opțiunea „-j” pentru a produce ieșiri în format JSON.
  • Dimensiunea permisă a numelui fișierelor și directoarelor a fost crescută de la 255 la 1023 de caractere (noua dimensiune a fost selectată pentru a permite stocarea a 255 de caractere de 4 octeți).
  • Au fost implementate optimizări de performanță care acoperă diferite părți ale codului sursă.
  • Au fost adăugate opțiuni în modulul nucleului:
    • 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

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster