Lansarea OpenZFS 2.4.0, implementarea ZFS pentru Linux și FreeBSD

După 11 luni de dezvoltare, a fost lansată versiunea 2.4.0 a proiectului OpenZFS, care dezvoltă implementarea sistemului de fișiere ZFS pentru Linux și FreeBSD. Proiectul a câștigat notorietate sub denumirea de „ZFS on Linux” și a fost anterior limitat la dezvoltarea unui modul pentru nucleul Linux, dar după fuziunea cu codul din FreeBSD, a fost recunoscut ca implementarea principală a OpenZFS și a fost redenumit.

Funcționarea OpenZFS a fost testată cu nuclee Linux de la 4.18 până la 6.18 și cu toate ramurile FreeBSD, începând cu 13.3. Codul este distribuit sub licența liberă CDDL. OpenZFS este deja utilizat în FreeBSD și face parte din distribuitorii Debian, Ubuntu, Gentoo, NixOS și ALT Linux. Pachetele cu noua versiune vor fi pregătite în curând pentru principalele 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 stabili cote implicite pentru utilizatori, grupuri și proiecte. În versiunile anterioare, cotele puteau fi stabilite doar în mod individual pentru fiecare identificator de utilizator. În noua versiune, a apărut posibilitatea de a stabili o valoare implicită, care va fi aplicată în cazul în care pentru un utilizator specific nu a fost stabilită o cotă.
  • A fost adăugată posibilitatea de a reveni de la modul de intrare/ieșire directă (O_DIRECT, Direct I/O) la utilizarea unui mecanism ușor de intrare/ieșire necacheabil (Uncached I/O) pentru cererile care nu sunt aliniate la limita paginii de memorie, care nu sunt acceptate în Direct I/O.
  • A fost propus un nou algoritm unificat de limitare a vitezei operațiunilor de scriere și plasare a blocurilor, care reduce fragmentarea vdev (Dispozitiv Virtual) prin agregarea mai multor operațiuni de scriere și utilizarea pentru acestea a unor zone libere continue mai mari, în locul plasării rezultatelor operațiunilor de scriere individuale în zone libere mici.
  • Performanța criptării a fost îmbunătățită prin utilizarea instrucțiunilor AVX2 în implementarea algoritmului AES-GCM. În testele efectuate, accelerarea atinge 80%.
  • A fost permisă plasarea blocurilor ZIL (ZFS Intent Log) nu doar pe vdev-uri normale sau pe un dispozitiv special SLOG, ci și pe vdev-uri speciale. Dacă un vdev normal este legat de un hard disk, iar un vdev special de un SSD, modificarea permite evitarea situațiilor în care datele sunt scrise pe SSD, iar blocurile ZIL asociate pe hard disk, ceea ce cauzează întârzieri inutile.
  • A fost permisă setarea proprietății special_small_blocks pentru volume (ZVOL), nu doar pentru sisteme de fișiere, ceea ce permite organizarea plasării blocurilor mici pe un vdev special separat, de exemplu, pe un SSD.
  • A fost adăugat un mod de rescriere „zfs rewrite -P”, care, dacă este posibil, lasă neschimbată data logică de creare, permițând astfel deosebirea blocurilor care au fost mutate în pool de blocurile efectiv modificate de utilizator.
  • Pentru comenzi precum „zpool trim”, „zpool scrub” și „zpool initialize” a fost implementată opțiunea „-a” (—all), care permite executarea acestor comenzi simultan pentru toate pool-urile importate.
  • A fost adăugată comanda „zpool scrub -S -E” pentru a efectua verificarea sumelor de control ale datelor care intră în intervalele de timp specificate.
  • Au fost adăugate noi optimizări ale procesului de deduplicare.

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