ZFSonLinux 0.8: caracteristici, stabilizare, intrigi. Și trim

Aproape de curând a fost lansată o nouă versiune stabilă a ZFSonLinux, un proiect care acum este central în dezvoltarea OpenZFS. La revedere, OpenSolaris, bun venit în lumea dură și incompatibilă GPL-CDDL a Linux-ului.

ZFSonLinux 0.8: caracteristici, stabilizare, intrigi. Și trim
Sub titlu, o recenzie a celor mai interesante lucruri (ce altceva, 2200 commits!), iar la final — puțin intrigant.

Noutăți

Desigur, cea mai așteptată — criptarea nativă. Acum poți cripta doar seturile de date necesare cu criptarea integrată în ZFS, și (din punctul meu de vedere — cel mai important) — poți trimite datele criptate prin zfs send și fără decriptare verifica integritatea datelor cu instrumentele integrate, toate funcționalitățile de păstrare a integrității datelor ZFS vor fi la dispoziția ta!

Următoarea la importanță este menționată TRIM. Da, a durat foarte mult să ajungă în producție. Parțial pentru că problema uzurii SSD-urilor nu este critică pentru sistemele de fișiere CoW. Dar acum suntem liniștiți — zpool trim va salva sensitivitățile noastre flash.

Acum poți șterge matricele vdev adăugate accidental din pool (dar doar dacă sunt sparse sau mirror). O mică utilitate.

Următoarea pe lista noastră este checkpoint-urile pool-ului. Pe scurt — snapshot-uri pentru întreaga stare a pool-ului, DAR oferind posibilitatea de a reveni asupra modificărilor nu doar ale datelor, ci și ale caracteristicilor incluse în pool și ale modificărilor structurale. O altă modalitate de a te proteja.

Inițializarea pool-ului — umplerea stocării de bază cu zerouri. Utilă pentru lucrul în medii cu discuri thin provisioned pentru a aloca explicit spațiu și a exclude scăderile neașteptate de performanță ulterior.

Contabilitatea proiectului și cotele — în mecanismul de cote existent acum este posibil să se utilizeze împărțirea pe proiecte.

Programele canalelor — capacitatea de a efectua sarcini administrative atomic prin intermediul scripturilor Lua. Există limite de timp de execuție și memorie. Dacă te ocupi de automatizare — atunci acesta este pentru tine.

Direct IO — pentru simplificare, a fost adusă funcționarea Direct IO, din interior nimic nu s-a schimbat (doar apelurile se fac maxim ocolind cache-ul), dar acum software-ul care vrea să funcționeze în acest mod nu se va mai plânge.

Proiect Pyzfs a fost integrat în principalul depozit și a fost preluat sub aripa proiectului ZFSonLinux. Acum sunt mai multe instrumente pentru gestionare din Python (și va fi mai liniștit pentru suportul modulului). De asemenea, multe scripturi Python au fost adaptate pentru Python3.

Și acum, ce este mai bun — performanța

Acum, în timpul operațiunilor de scrub și resilver, mai întâi se citesc metadatele, iar apoi, în mod secvențial, datele. Astfel, restaurarea array-ului și verificarea integrității se desfășoară cu cea mai mare viteză. secvențial într-o manieră. Aceasta permite o recuperare rapidă a array-ului și verificarea integrității.

Clase de alocare — pentru array-urile vdev a apărut un nou tip de suport, acum se pot stoca metadatele/tablourile de deduplicare (DDT)/blocurile de date mai mici de X Kbyte pe un array vdev separat, din discuri mai performante. Mai multă viteză pentru Dumnezeu viteză! (și, de fapt, această capacitate va fi foarte utilă în viitor DRAID).

Multe comenzi administrative funcționează acum mai repede, datorită cache-ului punctual pentru metadate (de exemplu, zfs list, zfs get).

Procesul de alocare a datelor a fost paralelizat, acum pentru fiecare zonă de spațiu liber (metaslab) se creează mai mulți alocatori. Cu NVMe, desigur, nu se va extrage totul, dar va fi mai bine.

Restaurarea întârziată a integrității array-ului va permite evitarea suprasarcinii array-ului prin reconstrucția simultană a mai multor discuri, ci se va face în mod secvențial. Astfel, se va reduce atât impactul asupra performanței, cât și timpul de reconstrucție.

La importarea pool-urilor cu un număr mare de volumes a fost crescută viteza de înregistrare în sistem.

De asemenea, QAT permite acum descărcarea calculelor pentru criptare și checksum-uri.

În plus, o mulțime de modificări minore (peste 2000+ de commit-uri în versiunea!).

Și, ca desert — intrigi

Deși ZFSonLinux adaugă rapid suport pentru kernel-ul Linux modern (în prezent, suportă versiunile de la 2.6.32 la 5.1*), întreținătorii kernel-ului arată o clară lipsă de interes pentru ajutorul modulelor externe („…nu ne pasă deloc de
modulele externe ale kernel-ului…
— greg k-h”). Așadar, apelurile necesare pentru o funcționare eficientă au fost modificate în ramura 5.0 la GPL-only . În kernel-urile cu acest patch, performanța ZFS va fi semnificativ mai slabă. Se salvează faptul că această funcționalitate poate fi implementată din partea modulului, ceea ce probabil se va face. Între timp, puteți lua exemplul de la NixOS — ei pur și simplu au revenit la patch-ul din kernel 🙂

De asemenea, proiectul a implementat un Cod de Conduită, ceea ce a generat valuri de controversă. Dar ne-am menținut 🙂

Vă urăm back-up-uri funcționale și versiuni stabile!

Linkuri utile:
— versiunea pe Github
— introducerea mea în ZFS

Sursa: habr.com

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