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.