NILFS2 - skotheld skráarkerfi fyrir /home

NILFS2 - skotheld skráarkerfi fyrir /home

Eins og þú veist, ef vandræði geta gerst, mun það örugglega gerast. Sennilega hafa allir lent í tilfellum þar sem nýleg mikilvæg skrá var eytt fyrir slysni, eða texti var óvart valinn og eytt í textaritli.

Ef þú ert hýsingaraðili eða eigandi vefsíðu, þá hefur þú líklega lent í reiðhestur á notendareikninga eða vefsíðu þína. Í slíkum tilvikum er mikilvægt að endurheimta tímaröðina, finna innsláttaraðferðina og varnarleysið sem árásarmaðurinn notar.

NILFS2 skráarkerfið er fullkomið til að leysa slík vandamál.

Það hefur verið til staðar í Linux kjarnanum frá útgáfu 2.6.30.

Sérkenni þessa skráarkerfis er að það er svipað útgáfustýringarkerfi: þú getur alltaf snúið stöðu kerfisins til baka og skoðað hvernig það var fyrir nokkru síðan.

Til að bjóða upp á þessa virkni þarftu ekki að stilla Cron forskriftir, taka skyndimyndir osfrv. NILFS2 skráarkerfið gerir þetta allt af sjálfu sér. Það skrifar aldrei yfir gömul gögn og skrifar alltaf á ný svæði á disknum ef það er nóg laust diskpláss. Í fullu samræmi við Copy-on-Write meginregluna.

Reyndar skapar allar breytingar á skrá sjálfkrafa nýja skyndimynd af skráarkerfinu, svo þú getur notað þennan FS sem tímavél og spólað til baka stöðu skráa.

Story

NILFS2 - skotheld skráarkerfi fyrir /homeNILFS2 var þróað í dýpi Nippon Telegraph and Telephone Corporation, reyndar ríkiseigu (það á ráðandi hlut) og stærsta fjarskiptafyrirtæki Japans. Nánar tiltekið í CyberSpace Laboratories undir forystu Ryusuke Konishi.

Fyrir hvað nákvæmlega það var þróað er ekki vitað, þó má gera ráð fyrir að slík FS, með sinni „tímavél“ virkni, sé tilvalin til að geyma gögn sem leyniþjónusturnar gætu viljað grafa í til að endurspila alla myndina af SMS, tölvupóstur osfrv....

NILFS2 er einnig mögulega mjög dýrmætt tæki fyrir innri öryggisþjónustu, þar sem það gerir þér kleift að endurheimta öll eydd bréf í póstgagnagrunninum, og afhjúpar jambs starfsmanna sem gætu í kjölfarið reynt að dulbúa þá með því að eyða eða breyta skrám þeirra.

Hvernig geturðu fylgst með allri bréfaskiptasögu þinni?Á Linux netþjónum (og þetta er þar sem NILFS2 ætti að vera sett upp í innra öryggistilgangi) er skráaraðferðin við að geyma tölvupóst mjög oft notuð til að geyma tölvupóstskeyti. Svokallað snið Maildir. Nóg að setja Sendipóstþjónn og stilla póstgeymslu í Maildir. Annað snið mbox er stór textaskrá sem auðvelt er að flokka í einstök skilaboð.

Ef póstþjónninn notar gagnagrunn, þá mun NILFS2 gera það mögulegt að endurheimta nákvæma tímasetningu gagnagrunnsbreytinga og getu til að endurheimta gagnagrunninn á hvaða augnabliki sem er. Og svo þarftu að nota gagnagrunnsverkfæri til að sjá hvað var í honum á þeim tímapunkti...

Eitthvað fór þó úrskeiðis. Annað hvort skiptu japönsk stjórnvöld um skoðun varðandi eftirlit með öllum (a la Yarovaya meginreglunni), eða árangur NILFS2 á hefðbundnum harðdiskum reyndist vera undir pari, og NILFS2 var gefinn út undir GPL leyfinu og fór mjög fljótt inn í Linux kjarnann, þar sem það voru engar sérstakar kvartanir um kóðann sem skrifaður var mjög hæfu japönsku, forritarar Linux kjarnans höfðu það ekki.

Hvernig er NILFS2?

Frá sjónarhóli notkunar: á útgáfustýringarkerfi SVN. Hver FS eftirlitsstöð er skuldbinding sem er gerð sjálfkrafa án vitundar notandans í hvert skipti sem það er einhver breyting: hvort sem það er eyðing, breyting á innihaldi skráar eða breyting á aðgangsréttindum. Hver skuldbinding hefur tölu sem hækkar línulega.

Frá sjónarhóli forritara: hringlaga biðminni. Skráarkerfið safnar breytingum og skrifar þær í bút sem jafngildir um það bil 8 MB (2000 * 4096, þar sem 2000 er fjöldi þátta í reitnum og 4096 er stærð minnissíðunnar). Allur diskurinn er skipt í slíka bita. Upptakan heldur áfram í röð. Þegar laust pláss klárast er elstu skyndimyndunum eytt og klumpunum skrifað yfir.

Grunn NILFS2 góðgæti

  • Útgáfa!!!
  • Aðferðin við að endurheimta skráarkerfi eftir bilun er einföld: við hleðslu er leitað að síðasta hlutanum sem hefur rétta athugunarsummu og ofurblokk er settur upp á hann. Þetta er nánast tafarlaus aðgerð.
  • Vegna þess að upptaka gengur alltaf línulega fram, þá:
    • getur sýnt góðan árangur þegar keyrt er á SSD með hægum handahófsskrifum.
    • NILFS2 sparar SSD auðlind, þar sem það er nánast enginn skrifa margföldunarstuðull.
      Nánar tiltekið, það er ekki meira en 2.Staðreyndin er sú að þegar allt diskurinn er endurskrifaður í hringrás mun NILFS2 flytja óbreytanleg gögn í nýja hluti (klumpa).

      Ef við erum með 10% af óbreyttum gögnum á disknum, þá fáum við 10% skrifaukningu með 1 fullkominni endurskrifun. Jæja, 50% aukning við 50% fyllingu tækisins fyrir 1 heila endurskrifun á disknum.

      Hámarks skrifhagnaður er 2. Þetta er mjög lágt miðað við að allt er skrifað í röð. Almennt mun skriffjörið vera minna en í hefðbundnu sundurliðuðu skráarkerfi með 4096 bæta geira. (Hugsun innblásin af athugasemd).

  • Hugsanleg auðveld útfærsla afritunar á ytri NILFS2 FS

NILFS2 fyrir /heimili

Í Unix-líkum stýrikerfum er að jafnaði /home mappa þar sem notendagögn eru geymd. Ýmis forrit vista notendasértækar stillingar sínar í þessari möppu.

Og hverjir, ef ekki notendur, gera mistök oftast? Þess vegna, eins og þeir segja, fyrirskipaði Guð sjálfur notkun NILFS2 á /home.

Þar að auki, með útbreiddri notkun SSDs, þurfum við nú ekki lengur að hafa áhyggjur af alvarlegum niðurdrætti þegar við notum CoW skráarkerfi.

Já, við getum búið til FS skyndimynd eins oft og við viljum í ZFS og BTRFS, en það er alltaf hætta á að týnd skráabreyting lendi á milli skyndimyndanna. Og enn þarf að gefa myndirnar: eyða þarf gömlum. Í NILFS2 gerist allt þetta sjálfkrafa, bókstaflega á nokkurra sekúndna fresti.

Ég bjó til rökrétt bindi með því að nota lvcreate (í nvme volume group, thin pool thin). Ég mæli með að búa það til á lvm bindi, þar sem það er auðvelt að stækka það seinna. Ég mæli með að hafa 50% laust pláss með NILFS2 fyrir ágætis útgáfudýpt.

lvcreate -V10G -T nvme/thin -n home

og sniðið það í 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 !!

Eftir þetta þarftu að afrita öll gögn frá núverandi /home.

Ég gerði þetta strax eftir að hafa ræst tölvuna, áður en ég skráði mig inn á reikninginn minn, sem rótnotandi. Ef ég myndi skrá mig inn sem notandi minn myndu sum forrit opna fals og skrár í /home/user möppu notandans míns, sem myndi gera hreint eintak erfitt. Eins og þú veist er heimamöppan fyrir rótnotandann venjulega staðsett á /rótarslóðinni, þannig að engar skrár opnast á /home skiptingunni.

mkdir /mnt/newhome
mount -t nilfs2 /dev/nvme/home /mnt/newhome
cp -a /home/. /mnt/newhome

Fyrir síðustu línu, sjá grein.

Næst breytum við /etc/fstab, þar sem skráarkerfið fyrir /home er tengt, í

/dev/disk/by-label/nvme_home /home nilfs2    noatime 0 0

Valkostur noatime þarf til að bæta afköst þannig að tíminn breytist ekki við hvern skráaraðgang. Næst endurræsum við.

Tegundir mynda í NILFS2.

Venjulegt skyndimynd án friðhelgi fyrir eyðingu er kallað eftirlitsstöð eða endurheimtarstaður.
Skyndimynd sem varin er gegn sjálfvirkri eyðingu kallast skyndimynd, þá einfaldlega skyndimynd.

Skoðun eftirlitsstaða fer fram með lscp skipuninni

Skoða skyndimyndir lscp -s

Við getum búið til skyndimyndir og eftirlitsstöðvar sjálf hvenær sem er með því að nota:

mkcp [-s] устройство

Við endurheimtum gögn.

NILFS gerir okkur kleift að setja upp eins margar gamlar skyndimyndir og við viljum samhliða því að vinna með aðal FS greininni. En aðeins í lestrarham.

Allt er þannig raðað upp. Reglulegum eftirlitsstöðvum sem NILFS2 gerir er hægt að eyða sjálfkrafa hvenær sem er (þegar pláss á diski klárast eða samkvæmt nilfs_cleanerd reglum), þannig að fyrir uppsetningu verðum við að breyta eftirlitsstaðnum í skyndimynd eða, á rússneskumælandi, taka skyndimyndina.

chcp ss номер_чекпоинта

Eftir það getum við tengt skyndimyndina, til dæmis, svona:

mount -t nilfs2 -r -o cp=номер_чекпоинта /dev/nvme/home /mnt/nilfs/номер_чекпоинта

Eftir það afritum við endurheimtu skrárnar úr skyndimyndinni yfir á /home.
Og í kjölfarið fjarlægjum við óeyðanlega fána úr skyndimyndinni svo að í framtíðinni geti sjálfvirki sorphirðarinn fjarlægt úrelt gögn:

chcp cp номер_чекпоинта

Tól fyrir NILFS2

En þetta er vandamálið. Já, auðvitað getum við búið til skráarkerfi, breytt stærð þess á netinu, skoðað listann yfir áskorunarpunkta, búið til og eytt þeim. Nilfs2-utils pakkinn veitir lágmarks herramannssett.

Þar sem NTT hefur dregið úr fjármögnun sinni, þá eru engin hröð tól á lágu stigi sem gera þér kleift að birta sögu skráabreytinga eða gera mun á milli skyndimynda.

n2u tólið mitt

Til að fylla þetta tómarúm skrifaði ég n2u tólið þitt, sem getur sýnt sögu breytinga á tiltekinni skrá/möppu:

n2u log filename

Úttakið er eitthvað á þessa leið:

          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

Það virkar frekar fljótt fyrir valda útfærsluaðferð: það leitar að mismun á skrám með því að nota tvískurðaraðferðina, festir og ber saman skrána/skrána í mismunandi skyndimyndum.

Þú getur stillt fjölda eftirlitsstaða með því að nota takkann -cp CP1:CP2 eða -cp {YEAR-MM-DD}:{YEAR-MM-DD}.

Þú getur líka séð muninn á eftirlitsstöðvum fyrir tiltekna skrá eða möppu:

n2u diff -r cp1:cp2 filename

Þú getur sýnt alla tímaröð breytinga: allan muninn á eftirlitsstöðvum tiltekinnar skráar/möppu:

n2u blame [-r cp1:cp2] filename

Dagsetningarbil í þessari skipun er einnig stutt.

Hópur til hönnuða

Það eru margir sérfræðingar á Habré. Vinsamlegast kláraðu NILFS2. Gerðu afritun, fljótur munur á lágu stigi á milli endurskoðunar, endurtengingar og annars góðgætis!

tilvísanir

Opinber vefsíða NILFS.

Geymslur:
NILFS2.
NILFS2 tól og einingar.

Fréttabréf:
Fréttabréf í tölvupósti fyrir NILFS2 forritara. Auðkenni fyrir linux-nilfs áskrift.
Skjalasafn fréttabréfa.

nilfs_cleanerd uppsetningarleiðbeiningar.
Viðmiðun EXT4, Btrfs, XFS & NILFS2 árangurspróf.

Takk:

  • NILFS2 verktaki: Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi og Satoshi Moriai. Aðrir helstu þátttakendur eru: Andreas Rohner, Dan McGee, David Arendt, David Smid, dexen deVries, Dmitry Smirnov, Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, Vyacheslav Dubeyko.
  • Til Amblin Entertainment og Universal Pictures fyrir frábæra kvikmyndaseríu. "Aftur til framtíðar". Fyrsta myndin af færslunni er tekin úr myndinni „Back to the Future 3“.
  • Fyrirtæki RUVDS fyrir stuðning og tækifæri til að birta á blogginu þínu á Habré.

PS Vinsamlegast sendu allar villur sem þú tekur eftir í einkaskilaboðum. Ég eykur karma fyrir þetta.

Þú getur gert tilraunir með NILFS2 með því að panta sýndarvél frá RUVDS með afsláttarmiða hér að neðan. Fyrir alla nýja viðskiptavini er ókeypis prufutími í 3 daga.

NILFS2 - skotheld skráarkerfi fyrir /home

Heimild: www.habr.com

Bæta við athugasemd