Vrystelling van ZFS op Linux 0.8.0, implementering van ZFS vir die Linux-kern

Na byna twee jaar van ontwikkeling aangebied vrylating ZFS op Linux 0.8.0, 'n implementering van die ZFS-lêerstelsel verpak as 'n module vir die Linux-kern. Die module is getoets met Linux-kerne van 2.6.32 tot 5.1. Gereed installasie pakkette kom binnekort voorberei sal word vir groot Linux-verspreidings, insluitend Debian, Ubuntu, Fedora, RHEL/CentOS. Die ZFS op Linux-module is reeds ingesluit in Debian, Ubuntu, Gentoo, Sabayon Linux en ALT Linux-verspreidings.

As deel van ZFS op Linux, is 'n implementering van ZFS-komponente wat verband hou met beide die werking van die lêerstelsel en die werking van die volumebestuurder voorberei. Die volgende komponente word veral geïmplementeer: SPA (Stoorpoeltoewyser), DMU (Databestuurseenheid), ZVOL (ZFS-geëmuleerde volume) en ZPL (ZFS POSIX-laag). Boonop bied die projek die vermoë om ZFS as 'n backend vir die Luster-kluster-lêerstelsel te gebruik. Die projek se werk is gebaseer op oorspronklike ZFS-kode wat vanaf die OpenSolaris-projek ingevoer is en verbeter is met verbeterings en regstellings van die Illumos-gemeenskap. Die projek word ontwikkel met die deelname van werknemers van die Livermore National Laboratory onder 'n kontrak met die Amerikaanse departement van energie.

Die kode word versprei onder 'n gratis CDDL-lisensie, wat onversoenbaar is met GPLv2, wat nie toelaat dat ZFS op Linux in die hooftak van die Linux-kern geïntegreer word nie, aangesien die vermenging van kode onder GPLv2- en CDDL-lisensies nie toegelaat word nie. Om hierdie lisensie-onversoenbaarheid te omseil, is besluit om die hele produk onder die CDDL-lisensie te versprei as 'n afsonderlik laaibare module, wat apart van die kern verskaf word. Die stabiliteit van die ZFS op Linux-kodebasis word gegradeer as vergelykbaar met ander lêerstelsels vir Linux.

Belangrikste veranderinge:

  • Bygevoeg ingeboude ondersteuning vir enkripsie van gestoorde data op die vlak van die lêerstelsel en partisies. Die verstek enkripsie-algoritme is aes-256-ccm. Die "zfs load-key" opdrag is voorgestel om enkripsiesleutels te laai;
  • Implementeer die vermoë om geënkripteerde data oor te dra wanneer die 'zfs send' en 'zfs receive' opdragte uitgevoer word. Wanneer die "-w" opsie gespesifiseer word, word data wat reeds in die poel geënkripteer is, na 'n ander poel oorgedra soos dit is, sonder tussentydse dekripsie. Met sulke kopiëring bly die data beskerm deur die sender se sleutel, wat dit moontlik maak om hierdie modus vir rugsteun na onbetroubare stelsels te gebruik (in die geval van kompromie van die ontvanger, sal die aanvaller nie toegang tot die data sonder die sleutel kan kry nie);
  • Bygevoeg ondersteuning vir die verwydering van primêre dryf uit 'n stoorpoel, beide individueel en as deel van 'n spieël gekoppel. Verwydering word uitgevoer met die "zpool remove" opdrag. Die uitveeproses kopieer die data van die uitgeslote skyf na die oorblywende primêre aandrywers in die swembad;
  • Het die "zpool-kontrolepunt"-opdrag bygevoeg om die huidige toestand van die swembad te stoor met die vermoë om verdere veranderinge na die gestoorde tydstip terug te rol ('n momentopname van die hele swembad word geskep). Hierdie kenmerk kan nuttig wees in die proses om potensieel gevaarlike komplekse administratiewe werk uit te voer, wat onder normale toestande lei tot onomkeerbare veranderinge (byvoorbeeld aktivering van vlae vir nuwe ZFS-funksionaliteit of die skoonmaak van data);
  • Die "zpool trim"-opdrag is bygevoeg om die aandrywers wat in die swembad gebruik word in te lig oor sektore wat nie meer in gebruik is nie. Die gebruik van die TRIM-operasie maak dit moontlik om die doeltreffendheid van SSD's te verhoog en die agteruitgang van hul werkverrigting te voorkom. 'n Nuwe "outo-trim"-eienskap is voorgestel om die deurlopende agtergrondproses van die oordrag van TRIM-opdragte moontlik te maak;
  • Bygevoeg "zpool initialize" opdrag om alle ongeallokeerde skyfspasie te inisialiseer, wat dit moontlik maak om onmiddellik gereed te wees vir gebruik, sonder prestasie agteruitgang by eerste toegang (byvoorbeeld wanneer gevirtualiseerde bergings soos VMware VMDK aangebied word);
  • Bygevoeg ondersteuning vir rekeningkundige en projek-vlak kwotas, bykomend tot voorheen beskikbare gebruiker en groep-vlak kwotas. In wese is projekte 'n aparte ruimte van voorwerpe wat met 'n aparte identifiseerder (projek-ID) geassosieer word. Die binding word gedefinieer via die 'chattr -p'-bewerking of via kenmerk-oorerwing. Vir projekbestuur word die "zfs project" en "zfs projectspace" opdragte aangebied, wat jou toelaat om die skepping van projekte te bestuur en skyfspasielimiete daarvoor te stel;
  • Bygevoeg die vermoë om Lua-skrifte te skep om verskeie werk met ZFS te outomatiseer. Skripte word in spesiale geïsoleerde omgewings uitgevoer deur die "zpool program" opdrag te gebruik;
  • Nuwe biblioteek geïmplementeer pyzfs, wat 'n stabiele API bied vir die administrasie van ZFS vanaf Python-toepassings. Die biblioteek is 'n omhulsel rondom libzfs_core en bied 'n identiese stel funksies, maar gebruik nader Python-tipes;
  • Die arcstat, arcsummary en dbufstat nutsprogramme is versoenbaar gemaak met Python 3. Die arcstat.py, arc_summary.py, en dbufstat.py nutsprogramme is hernoem na weergawes sonder die ".py" uitbreiding;
  • Bygevoeg ondersteuning vir die Linux Direct IO (O_DIRECT) kern-koppelvlak, wat toegang tot data moontlik maak sonder om die kas te buffer en te omseil;
  • Werkverrigtingoptimalisasies bekendgestel:
    • Die werk van die "skrop" en "resilver" opdragte is versnel as gevolg van die verdeling in twee fases ('n aparte fase is toegeken vir die skandering van metadata en die bepaling van die ligging van blokke met data op die skyf, wat verdere verifikasie met behulp van opeenvolgende data moontlik maak lees);
    • Bygevoeg ondersteuning vir toekenning klasse,
      toelaat dat relatief klein SSD's saamgevoeg word en gebruik word om slegs sekere tipes algemeen gebruikte blokke te stoor, soos metadata, DDT-data en klein lêerblokke;

    • Verbeterde prestasie van admin opdragte soos
      "zfs lys" en "zfs kry", deur die kas van die metadata wat nodig is vir hul werking;

    • Bygevoeg ondersteuning vir parallelisering van blok toekenning bedrywighede deur die uitvoering van afsonderlike toewyser prosesse vir elke metaslab groep. Op konvensionele stelsels is daar 'n prestasieverhoging van 5-10%, maar op grootes (8 128 GB SSD, 24 kern NUMA, 256 GB RAM), kan die toename in bloktoewysingsbedrywighede 25% bereik;
    • Bygevoeg die moontlikheid van uitgestelde uitvoering van die "resilver" opdrag (herbou van dataverspreiding met inagneming van veranderinge in die konfigurasie van aandrywers) - as die vorige een nog nie voltooi is wanneer 'n nuwe bewerking begin word nie, sal die nuwe hanteerder eers begin uitvoer nadat die einde van die vorige een;
    • Optimalisasies is by die ZIL (ZFS Intent Log) gevoeg om blokke te skep en te verwerk in die teenwoordigheid van blokke wat nog deur die berging verwerk word;
    • Verminderde registrasietyd vir partisies (zvol) in die stelsel. Wanneer 'n poel 'n groot aantal partisies bevat, is hulle nou beskikbaar onmiddellik nadat jy "zpool import" gedoen het;
    • Bygevoeg ondersteuning vir hardeware versnelde berekening van SHA256 hashes en AES-GSM enkripsie bedrywighede met behulp van Intel QAT (Quick Assist Technology) skyfies. Bygevoeg ondersteuning vir hardeware versnelling van die Intel C62x-skyfiestel en CPU Atom C3000.

Bron: opennet.ru

Voeg 'n opmerking