KÄ zinÄms, ja var gadÄ«ties nepatikÅ”anas, tÄs noteikti notiks. DroÅ”i vien ikvienam ir bijuÅ”i gadÄ«jumi, kad kÄds nesen nozÄ«mÄ«gs fails tika nejauÅ”i izdzÄsts vai teksts tika nejauÅ”i atlasÄ«ts un iznÄ«cinÄts teksta redaktorÄ.
Ja esat mitinÄtÄjs vai vietnes Ä«paÅ”nieks, iespÄjams, esat saskÄries ar lietotÄju kontu vai vietnes uzlauÅ”anu. Å Ädos gadÄ«jumos ir svarÄ«gi atjaunot hronoloÄ£iju, atrast ievadÄ«Å”anas metodi un uzbrucÄja izmantoto ievainojamÄ«bu.
NILFS2 failu sistÄma ir lieliski piemÄrota Å”Ädu problÄmu risinÄÅ”anai.
Tas ir pieejams Linux kodolÄ kopÅ” versijas 2.6.30.
Å Ä«s failu sistÄmas Ä«patnÄ«ba ir tÄda, ka tÄ ir lÄ«dzÄ«ga versiju kontroles sistÄmai: jÅ«s vienmÄr varat atgriezt sistÄmas stÄvokli un apskatÄ«ties, kÄds tas bija pirms kÄda laika.
Lai nodroÅ”inÄtu Å”o funkcionalitÄti, jums nav jÄkonfigurÄ Cron skripti, jÄuzÅem momentuzÅÄmumi utt. NILFS2 failu sistÄma to visu dara pati. Tas nekad nepÄrraksta vecos datus un vienmÄr raksta uz jauniem diska apgabaliem, ja diskÄ ir pietiekami daudz brÄ«vas vietas. PilnÄ«bÄ saskaÅÄ ar Copy-on-Write principu.
Faktiski jebkuras izmaiÅas failÄ automÄtiski izveido jaunu failu sistÄmas momentuzÅÄmumu, lai jÅ«s varÄtu izmantot Å”o FS kÄ laika maŔīnu un attÄ«t failu stÄvokli.
StÄsts
NILFS2 tika izstrÄdÄts dziļumÄ Nippon Telegraph and Telephone Corporation, faktiski valstij piederoÅ”s (tam ir kontrolpakete) un lielÄkais telekomunikÄciju uzÅÄmums JapÄnÄ. KonkrÄtÄk, Kibertelpas laboratorijÄs vadÄ«bÄ Ryusuke Konishi.
Kam tieÅ”i tÄ izstrÄdÄta, nav zinÄms, tomÄr var pieÅemt, ka Å”Äda FS ar savu ālaika maŔīnasā funkcionalitÄti ir ideÄli piemÄrota tÄdu datu glabÄÅ”anai, kurus izlÅ«koÅ”anas dienesti varÄtu vÄlÄties iedziļinÄties, lai atkÄrtoti atskaÅotu visu SMS, e-pasti utt....
NILFS2 ir arÄ« potenciÄli ļoti vÄrtÄ«gs rÄ«ks iekÅ”ÄjÄs droŔības dienestiem, jo āātas ļauj atgÅ«t visus dzÄstos vÄstules pasta datu bÄzÄ, atklÄjot darbinieku sastrÄgumus, kuri vÄlÄk var mÄÄ£inÄt tos maskÄt, dzÄÅ”ot vai mainot savus failus.
KÄ jÅ«s varat izsekot visai sarakstes vÄsturei?Linux serveros (un tieÅ”i Å”eit iekÅ”ÄjÄs droŔības nolÅ«kos ir jÄinstalÄ NILFS2) e-pasta ziÅojumu glabÄÅ”anai ļoti bieži tiek izmantota failu metode. TÄ sauktais formÄts Maildir. Pietiekami likt Kurjerpasta serveris un konfigurÄjiet pasta krÄtuvi programmÄ Maildir. Cits formÄts mbox ir liels teksta fails, ko var viegli parsÄt atseviŔķos ziÅojumos.
Ja pasta serveris izmanto datu bÄzi, tad NILFS2 ļaus atjaunot precÄ«zu datu bÄzes izmaiÅu laiku un iespÄju atjaunot datu bÄzi jebkurÄ no Å”iem brīžiem. Un tad jums ir jÄizmanto datu bÄzes rÄ«ki, lai redzÄtu, kas tajÄ brÄ«dÄ« bija...
TomÄr kaut kas nogÄja greizi. Vai nu JapÄnas valdÄ«ba mainÄ«ja savas domas par visu uzraudzÄ«bu (a la Yarovaya princips), vai arÄ« NILFS2 veiktspÄja tradicionÄlajos HDD izrÄdÄ«jÄs zemÄka par nominÄlvÄrtÄ«bu, un NILFS2 tika izlaists saskaÅÄ ar GPL licenci un ļoti Ätri iekļuva Linux kodolÄ, jo Ä«paÅ”u sÅ«dzÄ«bu par kodu rakstÄ«ts augsti kvalificÄts japÄÅu valodÄ nebija, Linux kodola izstrÄdÄtÄjiem tÄ nebija.
KÄ ir NILFS2?
No lietoÅ”anas viedokļa: versiju kontroles sistÄmÄ SVN. Katrs FS kontrolpunkts ir apÅemÅ”anÄs, kas tiek veikta automÄtiski bez lietotÄja ziÅas ikreiz, kad tiek veiktas izmaiÅas: vai tÄ ir dzÄÅ”ana, faila satura maiÅa vai piekļuves tiesÄ«bu maiÅa. Katrai apÅemÅ”anai ir skaitlis, kas lineÄri palielinÄs.
No programmÄtÄja viedokļa: apļveida buferis. Failu sistÄma uzkrÄj izmaiÅas un ieraksta tÄs daļÄ, kas vienÄda ar aptuveni 8 MB (2000 * 4096, kur 2000 ir elementu skaits blokÄ un 4096 ir atmiÅas lapas lielums). Viss disks ir sadalÄ«ts Å”Ädos gabalos. IerakstÄ«Å”ana notiek secÄ«gi. Kad brÄ«vÄ vieta beidzas, vecÄkie momentuzÅÄmumi tiek dzÄsti un fragmenti tiek pÄrrakstÄ«ti.
Pamata NILFS2 labumi
Versiju izstrÄde!!!
Failu sistÄmas atjaunoÅ”anas procedÅ«ra pÄc kļūmes ir vienkÄrÅ”a: ielÄdes laikÄ tiek meklÄts pÄdÄjais fragments, kuram ir pareizÄ kontrolsumma, un tajÄ tiek instalÄts superbloks. Å Ä« ir gandrÄ«z tÅ«lÄ«tÄja darbÄ«ba.
SakarÄ ar to, ka ierakstÄ«Å”ana vienmÄr notiek lineÄri, tad:
var uzrÄdÄ«t labus rezultÄtus, strÄdÄjot ar SSD ar lÄnu nejauÅ”u rakstÄ«Å”anu.
NILFS2 ietaupa SSD resursus, jo gandrÄ«z nav rakstÄ«Å”anas reizinÄÅ”anas koeficienta. PrecÄ«zÄk, tas nav lielÄks par 2.Fakts ir tÄds, ka, cikliski pÄrrakstot visu disku, NILFS2 pÄrsÅ«tÄ«s nemainÄmus datus uz jauniem gabaliem (gabaliem).
Ja mums diskÄ ir 10% nemainÄ«gu datu, tad mÄs saÅemsim 10% rakstÄ«Å”anas pieaugumu ar 1 pilnÄ«gu pÄrrakstÄ«Å”anu. Nu, 50% pieaugums pie 50% ierÄ«ces pilnÄ«bas 1 pilnÄ«gai diska pÄrrakstÄ«Å”anai.
MaksimÄlais rakstÄ«Å”anas pastiprinÄjums ir 2. Tas ir ļoti zems, Åemot vÄrÄ, ka viss tiek rakstÄ«ts secÄ«gi. KopumÄ rakstÄ«Å”anas animÄcija bÅ«s mazÄka nekÄ parastajai sadrumstalotai failu sistÄmai ar 4096 baitu sektoru. (Domu iedvesmojusi komentÄt).
Unix lÄ«dzÄ«gÄs operÄtÄjsistÄmÄs, kÄ likums, ir /home mape, kurÄ tiek glabÄti lietotÄja dati. Å ajÄ mapÄ dažÄdas programmas saglabÄ savus lietotÄja iestatÄ«jumus.
Un kurÅ”, ja ne lietotÄji, kļūdÄs visbiežÄk? TÄpÄc, kÄ saka, pats Dievs pavÄlÄja lietot NILFS2 vietnÄ /home.
TurklÄt, plaÅ”i izmantojot SSD, mums vairs nav jÄuztraucas par nopietniem iztrÅ«kumiem, izmantojot CoW failu sistÄmas.
JÄ, mÄs varam izveidot FS momentuzÅÄmumus tik bieži, cik mums patÄ«k ZFS un BTRFS, taÄu vienmÄr pastÄv risks, ka starp momentuzÅÄmumiem tiks pazaudÄtas faila izmaiÅas. Un bildes vÄl jÄadministrÄ: vecÄs jÄdzÄÅ”. ProgrammÄ NILFS2 tas viss notiek automÄtiski, burtiski ik pÄc dažÄm sekundÄm.
Es izveidoju loÄ£isku sÄjumu, izmantojot lvcreate (nvme sÄjumu grupÄ, plÄnÄ baseinÄ). Iesaku to izveidot lvm sÄjumÄ, jo vÄlÄk to var viegli paplaÅ”inÄt. Es iesaku iegÅ«t 50% brÄ«vas vietas diskÄ ar NILFS2, lai nodroÅ”inÄtu pienÄcÄ«gu versiju dziļumu.
lvcreate -V10G -T nvme/thin -n home
un formatÄja to NILFS2:
mkfs.nilfs2 -L nvme_home /dev/nvme/home
mkfs.nilfs2 (nilfs-utils 2.1.5)
Start writing file system initial data to the device
Blocksize:4096 Device:/dev/nvme/home1 Device Size:10737418240
File system initialization succeeded !!
PÄc tam jums ir jÄkopÄ visi dati no paÅ”reizÄjÄs /home.
Es to izdarÄ«ju tÅ«lÄ«t pÄc datora palaiÅ”anas, pirms pieteicos savÄ kontÄ kÄ root lietotÄjs. Ja es pieteiktos kÄ mans lietotÄjs, dažas programmas atvÄrtu ligzdas un failus mana lietotÄja mapÄ /home/user, kas apgrÅ«tinÄtu tÄ«ras kopijas izveidi. KÄ zinÄms, saknes lietotÄja mÄjas mape parasti atrodas /root ceļÄ, tÄpÄc /home nodalÄ«jumÄ faili netiks atvÄrti.
mkdir /mnt/newhome
mount -t nilfs2 /dev/nvme/home /mnt/newhome
cp -a /home/. /mnt/newhome
Opcija noatime nepiecieÅ”ams, lai uzlabotu veiktspÄju, lai laiks nemainÄs ar katru piekļuvi failam. TÄlÄk mÄs pÄrstartÄjam.
AttÄlu veidi programmÄ NILFS2.
Parasts momentuzÅÄmums bez imunitÄtes pret dzÄÅ”anu tiek saukts par kontrolpunktu vai atkopÅ”anas punktu.
MomentuzÅÄmums, kas ir aizsargÄts pret automÄtisku dzÄÅ”anu, tiek saukts par momentuzÅÄmumu, pÄc tam vienkÄrÅ”i par momentuzÅÄmumu.
Kontrolpunktu apskate tiek veikta, izmantojot komandu lscp
SkatÄ«t momentuzÅÄmumus lscp -s
MÄs jebkurÄ laikÄ varam izveidot momentuzÅÄmumus un kontrolpunktus, izmantojot:
mkcp [-s] ŃŃŃŃŠ¾Š¹ŃŃŠ²Š¾
MÄs atjaunojam datus.
NILFS ļauj mums uzstÄdÄ«t tik daudz vecu momentuzÅÄmumu, cik mÄs vÄlamies paralÄli darbam ar galveno FS filiÄli. Bet tikai lasÄ«Å”anas režīmÄ.
Viss ir sakÄrtots Å”Ädi. RegulÄros kontrolpunktus, ko veido NILFS2, var automÄtiski dzÄst jebkurÄ laikÄ (kad beidzas diska vieta vai saskaÅÄ ar nilfs_cleanerd noteikumiem), tÄpÄc pirms instalÄÅ”anas mums ir jÄpÄrvÄrÅ” kontrolpunkts momentuzÅÄmumÄ vai, krieviski runÄjot, momentuzÅÄmums ir jÄuztver.
chcp ss Š½Š¾Š¼ŠµŃ_ŃŠµŠŗŠæŠ¾ŠøŠ½ŃŠ°
PÄc tam mÄs varam uzstÄdÄ«t momentuzÅÄmumu, piemÄram, Å”Ädi:
mount -t nilfs2 -r -o cp=Š½Š¾Š¼ŠµŃ_ŃŠµŠŗŠæŠ¾ŠøŠ½ŃŠ° /dev/nvme/home /mnt/nilfs/Š½Š¾Š¼ŠµŃ_ŃŠµŠŗŠæŠ¾ŠøŠ½ŃŠ°
PÄc tam mÄs kopÄjam atjaunotos failus no momentuzÅÄmuma uz /home.
Un pÄc tam no momentuzÅÄmuma noÅemam neizdzÄÅ”anas karogu, lai turpmÄk automÄtiskais atkritumu savÄcÄjs varÄtu noÅemt novecojuÅ”os datus:
chcp cp Š½Š¾Š¼ŠµŃ_ŃŠµŠŗŠæŠ¾ŠøŠ½ŃŠ°
Utilītas NILFS2
Bet Ŕī ir problÄma. JÄ, protams, mÄs varam izveidot failu sistÄmu, mainÄ«t tÄs lielumu tieÅ”saistÄ, apskatÄ«t izaicinÄjumu punktu sarakstu, izveidot un dzÄst tos. Nilfs2-utils pakete nodroÅ”ina minimÄlu džentlmeÅu komplektu.
TÄ kÄ NTT ir samazinÄjis savu finansÄjumu, nav Ätru zema lÄ«meÅa utilÄ«tu, kas ļautu parÄdÄ«t failu izmaiÅu vÄsturi vai veikt atŔķirÄ«bas starp momentuzÅÄmumiem.
Mana n2u utilīta
Lai aizpildÄ«tu Å”o vakuumu, es uzrakstÄ«ju jÅ«su n2u utilÄ«ta, kas var parÄdÄ«t izmaiÅu vÄsturi noteiktÄ failÄ/direktorijÄ:
n2u log filename
Izvade ir aptuveni Å”Äda:
CHECKPOINT DATE TIME TYPE SIZE MODE
1787552 2019-11-24 22:08:00 first 7079 cp
1792659 2019-11-25 23:09:05 changed 7081 cp
Tas darbojas diezgan Ätri izvÄlÄtajai ievieÅ”anas metodei: tÄ meklÄ atŔķirÄ«bas starp failiem, izmantojot bisection metodi, Ätri uzstÄdot un salÄ«dzinot failu/direktoriju dažÄdos momentuzÅÄmumos.
Izmantojot taustiÅu, varat iestatÄ«t virkni kontrolpunktu -cp CP1:CP2 vai -cp {YEAR-MM-DD}:{YEAR-MM-DD}.
Varat arÄ« redzÄt atŔķirÄ«bu starp kontrolpunktiem konkrÄtam failam vai direktorijam:
n2u diff -r cp1:cp2 filename
Varat parÄdÄ«t visu izmaiÅu hronoloÄ£iju: visas atŔķirÄ«bas starp konkrÄta faila/direktorija kontrolpunktiem:
n2u blame [-r cp1:cp2] filename
Å ajÄ komandÄ tiek atbalstÄ«ts arÄ« datuma intervÄls.
Kliedziens izstrÄdÄtÄjiem
HabrÄ ir daudz speciÄlistu. LÅ«dzu, pabeidziet NILFS2. Veiciet replikÄciju, zema lÄ«meÅa Ätru atŔķirÄ«bu starp pÄrskatÄ«jumiem, atgriezenisko saiti un citus labumus!
NILFS2 izstrÄdÄtÄji: Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi un Satoshi Moriai. Citi lielÄkie lÄ«dzstrÄdnieki ir: Andreas Rohner, Den McGee, David Arendt, David Smid, dexen deVries, Dmitrijs Smirnovs, Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, VjaÄeslavs Dubeiko.
Amblin Entertainment un Universal Pictures par brÄ«niŔķīgu filmu sÄriju. "Atpakaļ uz nÄkotni". Ieraksta pirmais attÄls ir Åemts no filmas āAtpakaļ uz nÄkotni 3ā.
PS PamanÄ«tÄs kļūdas lÅ«dzu sÅ«tiet privÄtÄ ziÅojumÄ. Par to es vairoju savu karmu.
Varat eksperimentÄt ar NILFS2, pasÅ«tot virtuÄlo maŔīnu no RUVDS ar kuponu zemÄk. Visiem jaunajiem klientiem ir pieejams 3 dienu bezmaksas izmÄÄ£inÄjuma periods.