ZFS-i väljalase Linuxis 0.8.0, ZFS-i juurutused Linuxi tuuma jaoks

Pärast peaaegu kaheaastast arendustööd esitatakse vabastama ZFS Linuxis 0.8.0, ZFS-failisüsteemi teostus, mis on pakitud Linuxi kerneli moodulina. Moodulit on testitud Linuxi tuumadega 2.6.32 kuni 5.1. Valmis installipaketid peagi tulemas valmistatakse ette suuremate Linuxi distributsioonide jaoks, sealhulgas Debian, Ubuntu, Fedora, RHEL/CentOS. ZFS on Linuxi moodul on juba lisatud Debiani, Ubuntu, Gentoo, Sabayon Linuxi ja ALT Linuxi distributsioonidesse.

Linuxi ZFS-i osana on ette valmistatud ZFS-i komponentide juurutamine, mis on seotud nii failisüsteemi töö kui ka mahuhalduri toimimisega. Eelkõige rakendatakse järgmisi komponente: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) ja ZPL (ZFS POSIX Layer). Lisaks pakub projekt võimalust kasutada ZFS-i Lusteri klastri failisüsteemi taustaprogrammina. Projekti töö põhineb originaalsel ZFS-koodil, mis on imporditud OpenSolarise projektist ja mida on täiustatud Illumos kogukonna täiustuste ja paranduste abil. Projekti arendamisel osalevad Livermore'i riikliku labori töötajad USA energeetikaministeeriumiga sõlmitud lepingu alusel.

Koodi levitatakse tasuta CDDL-litsentsi alusel, mis ei ühildu GPLv2-ga, mis ei luba Linuxi ZFS-i integreerida Linuxi tuuma põhiharusse, kuna koodi segamine GPLv2- ja CDDL-litsentside all ei ole lubatud. Sellest litsentsi mitteühilduvusest kõrvalehoidmiseks otsustati levitada kogu toodet CDDL-litsentsi alusel eraldi laaditava moodulina, mis tarnitakse tuumast eraldi. ZFS-i stabiilsus Linuxi koodibaasi puhul on hinnatud võrreldavaks teiste Linuxi failisüsteemidega.

Peamised muudatused:

  • Lisatud on sisseehitatud tugi salvestatud andmete krüptimiseks failisüsteemi ja partitsioonide tasemel. Vaikimisi krüpteerimisalgoritm on aes-256-ccm. Krüpteerimisvõtmete laadimiseks on pakutud käsku "zfs load-key";
  • Rakendatud on võimalus edastada krüpteeritud andmeid käskude „zfs send” ja „zfs Receive” täitmisel. Suvandi „-w” määramisel kantakse kogumis juba krüptitud andmed teise kogumisse ilma vahepealse dekrüpteerimiseta. Sellise kopeerimise korral jäävad andmed kaitstuks saatja võtmega, mis võimaldab seda režiimi kasutada ebausaldusväärsetesse süsteemidesse varundamiseks (vastuvõtja kompromiteerimisel ei pääse ründaja ilma võtmeta andmetele juurde);
  • Lisatud tugi esmaste draivide eemaldamiseks salvestusbasseinist, mis on ühendatud nii eraldi kui ka peegli osana. Eemaldamine toimub käsuga "zpool remove". Kustutamisprotsess kopeerib andmed välistatud draivilt ülejäänud primaarsetele draividele kogumis;
  • Lisati käsk "zpool checkpoint", et salvestada basseini praegune olek koos võimalusega salvestatud ajahetkel edasisi muudatusi tagasi pöörata (lootakse kogu basseini hetktõmmis). See funktsioon võib olla kasulik potentsiaalselt ohtliku keeruka haldustöö tegemisel, mis tavatingimustes toob kaasa pöördumatuid muudatusi (näiteks uue ZFS-i funktsionaalsuse jaoks lippude aktiveerimine või andmete kustutamine);
  • Lisatud on käsk "zpool trim", et teavitada kogumis kasutatavaid draive sektoritest, mida enam ei kasutata. TRIM-operatsiooni kasutamine võimaldab suurendada SSD-de tõhusust ja vältida nende jõudluse halvenemist. On välja pakutud uus "autotrim" omadus, mis võimaldab pidevat taustaprotsessi TRIM-käskude edastamisel;
  • Lisatud käsk "zpool initialize" kogu jaotamata kettaruumi lähtestamiseks, mis võimaldab selle koheselt kasutamiseks valmis saada ilma jõudluse halvenemiseta esimesel juurdepääsul (näiteks kui majutatakse virtualiseeritud salvestusruume, nagu VMware VMDK);
  • Lisatud on raamatupidamise ja projektitaseme kvootide tugi, lisaks varem saadaval olnud kasutaja- ja grupitaseme kvootidele. Sisuliselt on projektid eraldiseisev ruum objektidest, mis on seotud eraldi identifikaatoriga (projekti ID). Sidumine määratletakse toimingu 'chattr -p' või atribuudi pärimise kaudu. Projektihalduse jaoks esitatakse käsud “zfs project” ja “zfs projectspace”, mis võimaldavad hallata projektide loomist ja seada neile kettaruumi limiite;
  • Lisatud on võimalus luua Lua skripte, et automatiseerida erinevaid ZFS-iga töid. Skripte käivitatakse spetsiaalsetes isoleeritud keskkondades, kasutades käsku "zpool programm";
  • Rakendatud uus raamatukogu pyzfs, mis pakub stabiilset API-d ZFS-i haldamiseks Pythoni rakendustest. Teek on libzfs_core ümbris ja pakub identset funktsioonide komplekti, kuid kasutab lähemaid Pythoni tüüpe;
  • Utiliidid arcstat, arcsummary ja dbufstat on muudetud Python 3-ga ühilduvaks. Utiliidid arcstat.py, arc_summary.py ja dbufstat.py on ümber nimetatud versioonideks, millel puudub laiend ".py";
  • Lisatud on Linux Direct IO (O_DIRECT) kerneli liidese tugi, mis võimaldab juurdepääsu andmetele ilma puhverdamata ja vahemälust mööda minemata;
  • Kasutusele võetud jõudluse optimeerimised:
    • Käskude “scrub” ja “resilver” töö on kiirenenud tänu kaheks faasiks jagunemisele (eraldi faas on eraldatud metaandmete skannimiseks ja kettal olevate andmetega plokkide asukoha määramiseks, mis võimaldab täiendavat kontrollimist järjestikuste andmete abil lugemine);
    • Lisatud tugi jaotusklassidele,
      võimaldades suhteliselt väikeseid SSD-sid koondada ja kasutada ainult teatud tüüpi tavaliselt kasutatavate plokkide, näiteks metaandmete, DDT-andmete ja väikeste failiplokkide salvestamiseks;

    • Administraatorikäskude, näiteks
      "zfs list" ja "zfs get", salvestades vahemällu nende tööks vajalikud metaandmed;

    • Lisatud tugi plokkide eraldamise operatsioonide paralleelseks muutmiseks, käivitades iga metaplaadirühma jaoks eraldi jaotamisprotsessid. Tavalistes süsteemides on jõudluse kasv 5–10%, kuid suurtel (8 128 GB SSD, 24 tuuma NUMA, 256 GB muutmälu) võib plokkide eraldamise toimingute kasv ulatuda 25% -ni;
    • Lisatud on võimalus käsu "resilver" viivitatud täitmiseks (andmete jaotuse taastamine, võttes arvesse draivi konfiguratsiooni muutusi) - kui eelmine pole uue toimingu alustamisel veel lõppenud, hakkab uus töötleja täitma alles pärast eelmine on lõppenud;
    • ZIL-i (ZFS Intent Log) on ​​lisatud optimeerimised, mis võimaldavad luua ja töödelda plokke, kui plokid, mida salvestusruum veel töötleb;
    • Süsteemi partitsioonide (zvol) registreerimisaeg on vähenenud. Kui bassein sisaldab suurt hulka partitsioone, on need nüüd saadaval kohe pärast "zpooli importimist";
    • Lisatud on tugi SHA256 räside riistvara kiirendatud arvutamisele ja AES-GSM krüpteerimistoimingutele, kasutades Inteli QAT (Quick Assist Technology) kiipe. Lisatud Intel C62x kiibistiku ja CPU Atom C3000 riistvaralise kiirenduse tugi.

Allikas: opennet.ru

Lisa kommentaar