ZFS izlaiÅ”ana operētājsistēmā Linux 0.8.0, ZFS ievieÅ”ana Linux kodolam

Pēc gandrÄ«z divu gadu attÄ«stÄ«bas uzrādÄ«ts atbrÄ«vot ZFS operētājsistēmā Linux 0.8.0, ZFS failu sistēmas ievieÅ”ana, kas izstrādāta kā modulis Linux kodolam. Modulis ir pārbaudÄ«ts ar Linux kodoliem no 2.6.32 lÄ«dz 5.1. DrÄ«zumā bÅ«s gatavas instalācijas pakotnes tiks sagatavots lielākajiem Linux izplatÄ«jumiem, tostarp Debian, Ubuntu, Fedora, RHEL/CentOS. ZFS on Linux modulis jau ir iekļauts Debian, Ubuntu, Gentoo, Sabayon Linux un ALT Linux izplatÄ«jumos.

Kā daļa no ZFS uz Linux ir sagatavota ZFS komponentu ievieÅ”ana, kas saistÄ«ti gan ar failu sistēmas darbÄ«bu, gan ar apjomu pārvaldnieka darbÄ«bu. Jo Ä«paÅ”i tiek ieviesti Ŕādi komponenti: SPA (Storage Pool Allocator), DMU (Datu pārvaldÄ«bas vienÄ«ba), ZVOL (ZFS Emulated Volume) un ZPL (ZFS POSIX Layer). Turklāt projekts nodroÅ”ina iespēju izmantot ZFS kā Luster klastera failu sistēmas aizmugursistēmu. Projekta darbs ir balstÄ«ts uz oriÄ£inālo ZFS kodu, kas importēts no OpenSolaris projekta un paplaÅ”ināts ar Illumos kopienas uzlabojumiem un labojumiem. Projekts tiek izstrādāts, piedaloties Livermoras Nacionālās laboratorijas darbiniekiem saskaņā ar lÄ«gumu ar ASV Enerģētikas departamentu.

Kods tiek izplatÄ«ts saskaņā ar bezmaksas CDDL licenci, kas nav saderÄ«ga ar GPLv2, kas neļauj ZFS operētājsistēmā Linux integrēt galvenajā Linux kodola atzarā, jo koda sajaukÅ”ana saskaņā ar GPLv2 un CDDL licencēm ir nepieņemama. Lai apietu Å”o licencÄ“Å”anas nesaderÄ«bu, tika nolemts izplatÄ«t visu produktu saskaņā ar CDDL licenci kā atseviŔķi lejupielādējamu moduli, kas tiek piegādāts atseviŔķi no kodola. ZFS stabilitāte Linux koda bāzē ir salÄ«dzināma ar citām Linux failu sistēmām.

Galvenās izmaiņas:

  • Pievienots iebÅ«vēts atbalsts saglabāto datu Å”ifrÄ“Å”anai failu sistēmas un nodalÄ«jumu lÄ«menÄ«. Noklusējuma Å”ifrÄ“Å”anas algoritms ir aes-256-ccm. Lai ielādētu Å”ifrÄ“Å”anas atslēgas, tiek piedāvāta komanda ā€œzfs load-keyā€;
  • Ir ieviesta iespēja pārsÅ«tÄ«t Å”ifrētus datus, izpildot komandas ā€œzfs sendā€ un ā€œzfs Receiveā€. Norādot opciju ā€œ-wā€, kopā jau Å”ifrētie dati tiek pārsÅ«tÄ«ti uz citu pÅ«lu tādi paÅ”i, kādi tie ir, bez starpposma atÅ”ifrÄ“Å”anas. Šādas kopÄ“Å”anas laikā dati paliek aizsargāti ar sÅ«tÄ«tājas puses atslēgu, kas ļauj Å”o režīmu izmantot dublÄ“Å”anai neuzticamās sistēmās (ja adresāts ir kompromitēts, bez atslēgas uzbrucējs nevarēs piekļūt datiem);
  • Pievienots atbalsts primāro disku izņemÅ”anai no krātuves pÅ«la, kas savienoti atseviŔķi vai kā daļa no spoguļa. NoņemÅ”ana tiek veikta ar komandu ā€œzpool removeā€. DzÄ“Å”anas procesa laikā dati no noņemtā diska tiek kopēti uz atlikuÅ”ajiem primārajiem diskdziņiem pÅ«lā;
  • Pievienota komanda ā€œzpool kontrolpunktsā€, lai saglabātu paÅ”reizējo pÅ«la stāvokli ar iespēju atsaukt turpmākās izmaiņas saglabātajā brÄ«dÄ« (tiek izveidots visa pÅ«la momentuzņēmums). Piedāvātā funkcija var bÅ«t noderÄ«ga, veicot potenciāli bÄ«stamu sarežģītu administratÄ«vo darbu, kas parasti novestu pie neatgriezeniskām izmaiņām (piemēram, karodziņu aktivizÄ“Å”ana jaunai ZFS funkcionalitātei vai datu notÄ«rÄ«Å”ana);
  • Pievienota komanda ā€œzpool trimā€, lai informētu pÅ«lā izmantotos diskus par sektoriem, kas vairs netiek izmantoti. Izmantojot TRIM darbÄ«bu, ir iespējams palielināt SSD disku efektivitāti un novērst to veiktspējas pasliktināŔanos. Lai iespējotu nepārtrauktu fona procesu TRIM komandu nodoÅ”anai, ir piedāvāts jauns rekvizÄ«ts ā€œautotrimā€;
  • Pievienota komanda "zpool inicializēt", lai inicializētu visu nepieŔķirto diska vietu, nodroÅ”inot, ka tā ir nekavējoties gatava lietoÅ”anai, neietekmējot veiktspēju pirmajā piekļūŔanas reizē (piemēram, ja tiek mitināta virtualizēta krātuve, piemēram, VMware VMDK);
  • Pievienots atbalsts projektu lÄ«meņa uzskaitei un kvotām, papildinot iepriekÅ” pieejamās lietotāju un grupu lÄ«meņa kvotas. BÅ«tÄ«bā projekti ir atseviŔķa objektu telpa, kas saistÄ«ta ar atseviŔķu identifikatoru (projekta ID). SaistÄ«Å”ana tiek noteikta, izmantojot operāciju 'chattr -p' vai atribÅ«tu pārmantoÅ”anu. Projektu vadÄ«Å”anai tiek nodroÅ”inātas komandas ā€œzfs projectā€ un ā€œzfs projectspaceā€, kas ļauj pārvaldÄ«t projektu izveidi un iestatÄ«t tiem diska vietas ierobežojumus;
  • Pievienota iespēja izveidot Lua skriptus, lai automatizētu dažādus darbus ar ZFS. Skripti tiek palaisti Ä«paŔās izolētās vidēs, izmantojot komandu ā€œzpool programmaā€;
  • Ieviesta jauna bibliotēka pyzfs, kas nodroÅ”ina stabilu API ZFS administrÄ“Å”anai no Python lietojumprogrammām. Bibliotēka ir libzfs_core iesaiņojums un nodroÅ”ina identisku funkciju kopu, bet izmanto tipus, kas ir tuvāk Python;
  • UtilÄ«tas arcstat, arcsummary un dbufstat tagad ir saderÄ«gas ar Python 3. UtilÄ«tas arcstat.py, arc_summary.py un dbufstat.py ir pārdēvētas par versijām bez paplaÅ”inājuma ā€œ.pyā€;
  • Pievienots Linux Direct IO (O_DIRECT) kodola interfeisa atbalsts, kas ļauj piekļūt datiem bez buferizācijas un apiet keÅ”atmiņu;
  • Piedāvātās veiktspējas optimizācijas:
    • Paātrināts komandu ā€œscrubā€ un ā€œresilverā€ darbs, sadalot to divās fāzēs (atseviŔķa fāze tiek atvēlēta metadatu skenÄ“Å”anai un datu bloku atraÅ”anās vietas noteikÅ”anai diskā, kas ļauj veikt turpmāku pārbaudi, izmantojot secÄ«gu datu nolasÄ«Å”anu) ;
    • Pievienots atbalsts pieŔķirÅ”anas klasēm,
      ļaujot iekļaut salÄ«dzinoÅ”i mazus SSD diskus pÅ«lā un izmantot tikai noteiktu veidu bieži lietotu bloku glabāŔanai, piemēram, metadatus, DDT datus un mazus blokus ar failiem;

    • Uzlabota komandu veiktspēja administrÄ“Å”anai, piemēram
      ā€œzfs listā€ un ā€œzfs getā€ to darbÄ«bai nepiecieÅ”amo metadatu keÅ”atmiņas dēļ;

    • Pievienots atbalsts bloku pieŔķirÅ”anas operāciju paralēlizÄ“Å”anai, katrai metaslab grupai palaižot atseviŔķus ā€œalokatoraā€ procesus. Parastās sistēmās veiktspējas pieaugums ir par 5-10%, bet lielajās (8 GB SSD, 128 kodolu NUMA, 24 GB RAM) bloku sadales darbÄ«bu pieaugums var sasniegt 256%;
    • Pievienota iespēja aizkavēt komandas ā€œresilverā€ izpildi (datu sadales pārbÅ«ve, ņemot vērā diskdziņu konfigurācijas izmaiņas) - ja, uzsākot jaunu darbÄ«bu, iepriekŔējā vēl nav pabeigta, jaunais apdarinātājs sāks izpildÄ«t tikai pēc tam, kad iepriekŔējais ir beidzies;
    • ZIL (ZFS Intent Log) žurnālā ir veiktas optimizācijas, lai ļautu izveidot un apstrādāt blokus, ja krātuvē joprojām tiek apstrādāti bloki;
    • Sistēmā ir samazināts nodalÄ«jumu (zvol) reÄ£istrÄ“Å”anas laiks. Ja pÅ«ls satur lielu skaitu nodalÄ«jumu, tie tagad ir pieejami uzreiz pēc ā€œzpool importaā€ izpildes;
    • Pievienots atbalsts SHA256 hash aprēķinu aparatÅ«ras paātrināŔanai un AES-GSM Å”ifrÄ“Å”anas darbÄ«bām, izmantojot mikroshēmas, kas atbalsta Intel QAT (ātrās palÄ«dzÄ«bas tehnoloÄ£iju). Pievienots atbalsts aparatÅ«ras paātrināŔanas rÄ«kiem Intel C62x mikroshēmojumam un Atom C3000 centrālajam procesoram.

Avots: opennet.ru

Pievieno komentāru