NILFS2 — njĂ« sistem skedari i papĂ«rshkueshĂ«m nga plumbat pĂ«r /home

NILFS2 — njĂ« sistem skedari i papĂ«rshkueshĂ«m nga plumbat pĂ«r /home

Si është e njohur, nëse një problem mund të ndodhë, ai do të ndodhë patjetër. Ndoshta, të gjithë kemi pasur raste kur aksidentalisht është fshirë një skedar i rëndësishëm ose është fshirë teksti në një redaktues teksti.

Nëse jeni hostues ose pronar i një faqeje, ndoshta keni hasur në hakime të llogarive të përdoruesve ose të faqes suaj. Në raste të tilla, është e rëndësishme të riktheni kronologjinë, të gjeni mënyrën e depërtimit dhe dobësinë që përdori sulmuesi.

Për zgjidhjen e problemeve të tilla, sistemi i skedarëve NILFS2 është një zgjidhje e shkëlqyer.

Ai është i pranishëm në bërthamën Linux që nga versioni 2.6.30.

Karakteristika e këtij sistemi skedari është se ai është si një sistem kontrolli versioni: gjithmonë mund të ktheheni pas në gjendjen e sistemit dhe të shihni si ishte ai disa kohë më parë.

Për të siguruar këtë funksionalitet, nuk keni nevojë të konfiguroni skripte Cron, të bëni snapshot-e etj. Sistemi i skedarëve NILFS2 e bën këtë automatikisht. Ai nuk shkruan kurrë të dhëna të vjetra dhe gjithmonë shkruan në zona të reja të disku, nëse ka mjaft hapësirë të lirë në disk. Në përputhje të plotë me parimin Copy-on-Write.

Faktikisht, çdo ndryshim në skedarin shkakton krijimin automatik të një snapshot-i të ri të sistemit të skedarëve, kështu që mund ta përdorni këtë FS si një makinë kohezjacente dhe të ktheni gjendjen e skedarëve pas.

Historia

NILFS2 — njĂ« sistem skedari i papĂ«rshkueshĂ«m nga plumbat pĂ«r /homeNILFS2 u zhvillua nga Nippon Telegraph and Telephone Corporation, nĂ« fakt, njĂ« kompani e shtetit (aq mĂ« shumĂ« e ka kontrollin) dhe kompania mĂ« e madhe e telekomunikacionit nĂ« Japoni. MĂ« konkretisht, nĂ« laboratorin CyberSpace Laboratories nĂ«n drejtimin e Ryusuke Konishi..

Për çfarë është zhvilluar konkretisht, nuk dihet, megjithatë, mund të supozojmë se një sistem i tillë i skedarëve, me funksionalitetin e tij "makina e kohës", është ideal për ruajtjen e të dhënave në të cilat mund të ketë dëshirë që agjencitë e sigurisë të hetojnë, për t'i riparë të gjitha ngjarjet e SMS-ve, e-maileve etj.

NILFS2 gjithashtu është një mjet shumë i vlefshëm për shërbimet e sigurisë së brendshme, pasi lejon rikthimin e të gjitha e-maileve të fshira në bazën e të dhënave postare, për të zbuluar gabimet e punonjësve, të cilët më vonë mund të përpiqen t'i maskojnë duke fshirë ose duke ndryshuar skedarët e tyre.

Si mund të ndjekim të gjithë historinë e korrespondencës?Në Linux në servera (dhe në të vërtetë, pikërisht aty ku duhet të vendoset NILFS2 për qëllime të sigurisë së brendshme), shpesh përdoret mënyra e ruajtjes së mesazheve përmes sistemeve të skedarëve. Formati i njohur si Maildir.Bëhet mjaft e thjeshtë që të instaloni Courier Mail Server dhe të konfiguroni ruajtjen e e-maileve në Maildir. Formati tjetër mbox përbëhet nga një skedar i madh tekstual që lehtë mund të parse në mesazhe të veçanta.

NĂ«se serveri i postĂ«s pĂ«rdor njĂ« bazĂ« tĂ« dhĂ«nash, atĂ«herĂ« NILFS2 do tĂ« ofrojĂ« mundĂ«sinĂ« pĂ«r tĂ« rikthyer kohĂ«n e saktĂ« tĂ« ndryshimeve tĂ« bazĂ«s dhe mundĂ«sinĂ« pĂ«r tĂ« rikthyer bazĂ«n nĂ« çdo nga kĂ«to momente. MĂ« pas, duhet tĂ« pĂ«rdorni mjetet e DB pĂ«r tĂ« parĂ« se çfarĂ« kishte nĂ« tĂ« nĂ« atĂ« moment kohor


Megjithatë, diçka shkoi keq. Mund të jetë që qeveria japoneze ka ndryshuar mendje për të spiunuar të gjithë (siç është parimi i Jarovaya), apo se performanca e NILFS2 në HDD tradicionale rezultoi të ishte shumë e ulët, dhe NILFS2 u lëshua nën licencën GPL dhe shumë shpejt hyri në bërthamën Linux, pasi nuk kishte pretendime të veçanta ndaj kodit të shkruar nga inxhinierët e kualifikuar japonezë.

Si i ngjan NILFS2?

Nga pikĂ«pamja e pĂ«rdorimit: si njĂ« sistem kontrolli versioni. SVN. Çdo pikĂ« kontrolli i FS Ă«shtĂ« njĂ« komit qĂ« bĂ«het automatikisht pa e ditur pĂ«rdoruesi nĂ« çdo ndryshim: qoftĂ« fshirja, ndryshimi i pĂ«rmbajtjes sĂ« skedarit apo tĂ« privilegjeve. Çdo komit ka njĂ« numĂ«r qĂ« rritet linearisht.

Nga pikëpamja e programuesit: si një buffer cilindrik. Sistemi i skedarëve grumbullon ndryshimet dhe i shkruan ato në një copë të barabartë me rreth 8 MB (2000 * 4096, ku 2000 është numri i elementeve në bllok dhe 4096 është madhësia e faqes së memories). I gjithë disku është i ndarë në këto copëza. Shkrimi ndodh në menyra të rregullta. Kur mbaron hapësira e lirë, snapshot-at më të vjetër fshihen, dhe copëzat riprogramohen.

Pikat kryesore të NILFS2

  • Versionizimi!!!
  • Procedura e rikthimit tĂ« FS pas njĂ« dĂ«shtimi Ă«shtĂ« elementare: gjatĂ« ngarkimit, kĂ«rkohet copĂ«za mĂ« e fundit qĂ« ka njĂ« gjithĂ«pĂ«rfshirĂ«se tĂ« saktĂ« tĂ« kontrollit dhe superbloku vendoset mbi tĂ«. Kjo Ă«shtĂ« njĂ« operacion praktikisht momental.
  • Duke qenĂ« se shkrimi gjithmonĂ« ndodh linear, atĂ«herĂ«:
    • mund tĂ« tregojĂ« rezultate tĂ« mira nĂ« punĂ«n mbi SSD, me shkrim tĂ« ngadaltĂ« tĂ« rastĂ«sishĂ«m.
    • NILFS2 kursen burimet e SSD, pasi nuk ka faktor tĂ« multiplicimit tĂ« shkrimit.
      Më saktësisht, ai nuk është më shumë se 2.E vërteta është se gjatë ripërtypjes ciklike të tërë diskut, NILFS2 do të zhvendosi të dhënat që nuk ndryshojnë në copa të reja (Chunks).

      Nëse kemi 10% të dhënash të pandryshuara në disk, atëherë do të kemi një rritje të shkarkimit prej 10% gjatë një ripërtypjeje të plotë. Dhe gjithashtu një rritje prej 50% nëse 50% e pajisjes është e mbushur gjatë një ripërtypjeje të plotë të diskut.

      Koeficienti maksimal i forcës së shkarkimit është 2. Kjo është shumë pak në krahasim me faktin se gjithçka shkruhet në mënyrë të vazhdueshme. Në përgjithësi, shumëfishimi i shkarkimit do të jetë më i ulët se ai i një sistemi skedarësh të zakonshëm të fragmentuar me sektor prej 4096 bytes. koment).

  • ThjeshtĂ«sia e mundshme e realizimit tĂ« replikimit nĂ« njĂ« sistem skedarĂ«sh NILFS2 tĂ« largĂ«t

NILFS2 për /home

Në sistemet operative të ngjashme me Unix, zakonisht ekziston dosja /home, ku ruhen të dhënat e përdoruesve. Programet e ndryshme ruajnë në këtë dosje cilësimet që lidhen me përdoruesin specifik.

Dhe kush, nëse jo përdoruesit, shpeshherë bën gabime? Prandaj, siç thuhet, vetë Zoti na e ka urdhëruar të përdorim NILFS2 për /home.

Për më tepër, me shpërndarjen e gjerë të SSD-ve, tani nuk kemi pse të shqetësohemi për rëniet e mëdha gjatë përdorimit të sistemeve skedarësh me CoW.

Po, ne mund të krijojmë sa të duam skena (snapshot) në ZFS dhe BTRFS, por gjithmonë ka rrezik që ndonjë ndryshim i humbur në skedar të mbetet mes skenave. Dhe skenat duhet gjithashtu të administrohen: të fshihen ato të vjetra. Në NILFS2, gjithçka ndodh automatikisht çdo pak sekonda.

Unë krijova një vëllim logjik me ndihmën e lvcreate (në grupin e vëllimeve nvme, pellg me hollësi të hollë). Rekomandoj të krijoni saktësisht në vëllimin lvm, pasi mund të zgjerohet lehtësisht më vonë. Rekomandoj të keni 50% hapësirë të lirë në disk me NILFS2 për një thellësi të kënaqshme të versioneve.

lvcreate -V10G -T nvme/thin -n home

dhe e formatuam në NILFS2:

mkfs.nilfs2 -L nvme_home /dev/nvme/home

mkfs.nilfs2 (nilfs-utils 2.1.5)
Fillon të shkruajë të dhënat fillestare të sistemit të skedarëve në pajisje
      Blocksize:4096  Pajisja:/dev/nvme/home1  Madhësia e Pajisjes:10737418240
Inizializimi i sistemit të skedarëve përfundoi me sukses !!

Pas kësaj, është e nevojshme të kopjoni të gjitha të dhënat nga /home aktuale.

Unë e bëra këtë menjëherë pas ngarkimit të kompjuterit, para se të hyja në llogarinë time, nga përdoruesi root. Nëse do të isha futur me përdoruesin tim, ndonjë program do të kishte hapur soket dhe skedarë në dosjen time /home/user, duke e bërë kopjimin e pastër të vështirë. Siç dihet, dosja e shtëpisë për përdoruesin root zakonisht ndodhet në rrugën /root, prandaj nuk do të hapet asnjë skedar në ndarjen /home.

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

Për sa i përket rreshtit të fundit, shihni më poshtë. artikullin.

Më pas redaktoni /etc/fstab, ku sistemi i skedarëve montohet për /home, në

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

Opcioni noatime nevojitet për të përmirësuar performancën, në mënyrë që kur të aksesohen skedarët, atime të mos ndryshojë. Më pas, rindezim.

Llojet e skenave në NILFS2.

Një skenë e zakonshme pa imunitet ndaj fshirjes quhet pikë kontrolli (checkpoint).
Një skenë me mbrojtje ndaj fshirjes automatik quhet skenë (snapshot), e më pas thjesht skenë.

Për të parë pikë kontrolli, përdorim komandën lscp

Për të parë skenat (snapshots) lscp -s

Ne mund të krijojmë edhe vet skena dhe pikë kontrolli në çdo kohë me:

mkcp [-s] pajisje

Rivendosim të dhënat.

NILFS na lejon të montojmë sa të duam skena të vjetra në mënyrë paralel me punën në degën kryesore të sistemit të skedarëve. Por vetëm në modalitetin për lexim.

E gjithë kjo funksionon kështu. Pikët e zakonshme të kontrollit që bën NILFS2 mund të fshihen automatikisht në çdo kohë (kur të përfundojë hapësira e diskut ose sipas rregullave të nilfs_cleanerd), prandaj para montimit, ne duhet të kalojmë pikën e kontrollit në skenë ose, siç quhet në rusisht, të regjistrojmë skenën.

chcp ss numri_pikës_kontrolluese

Pas kësaj, mund të montojmë skenën, për shembull, kështu:

mount -t nilfs2 -r -o cp=numri_pikës_kontrolluese /dev/nvme/home /mnt/nilfs/numri_pikës_kontrolluese

Pas kësaj, ne kopjojmë skedarët që do të rikthehen nga skena në /home.
Dhe më pas heqim flamurin e papërputhshmërisë nga skena, që në të ardhmen ndihmuesi automatik i riciklimit të mund të fshijë të dhënat e vjetra:

chcp cp numri_pikës_kontrolluese

Utilitetet për NILFS2

Këtu kemi probleme. Po, me siguri, mund të krijojmë sisteme skedarësh, të ndryshojmë madhësinë e tyre online, të shohim listën e pikëve të kontrollit, t'i bëjmë dhe t'i fshijmë ato. Pakoja nilfs2-utils ofron një grup minimal të mjeteve.

Dhe ndërsa NTT e ndaloi financimin, nuk ka mjete të shpejta dhe të nivelit të ulët që lejojnë të shikohet historia e ndryshimeve të skedarëve, të bëhet diferenca midis skenave.

Utiliteti im n2u

Për të mbushur këtë boshllëk, shkrova utilitetin tim n2u, i cili mund të nxjerrë historinë e ndryshimeve për një skedar/directory specifik:

n2u log emri_skedar

Të dhënat dalin më pak kështu:

          CHECKPOINT        DATA     KOHA     LLOJI          GJERSIA  MODI
             1787552  2019-11-24 22:08:00    i parë          7079    cp
             1792659  2019-11-25 23:09:05  ndryshuar          7081    cp

Funksionon mjaft shpejt për metodën e preferuar të implementimit: kërkon diferencat midis skedarëve përmes metodës së ndarjes në gjysmë, duke montuar dhe krahasuar shpejt skedarin/direktorinë në pamje të ndryshme.

Mund të caktoni një gamë kontrollesh duke përdorur çelësin -cp CP1:CP2 ose -cp {YEAR-MM-DD}:{YEAR-MM-DD}.

Gjithashtu mund të shihni diferencën midis kontrolleve për një skedë apo direktorion specifike:

n2u diff -r cp1:cp2 emri_i_skedarit

Mund të nxirrni të gjithë historinë e ndryshimeve: të gjitha diferencat midis kontrolleve të një skedari/direktorie të caktuar:

n2u blame [-r cp1:cp2] emri_i_skedarit

Intervali i datave në këtë komandë gjithashtu mbështetet.

Thirrje për zhvilluesit

Në Habra ka shumë specialistë. Ju lutem, përmirësoni NILFS2. Bëni replikimin, diferencën e shpejtë në nivel të ulët midis revizionëve, reflink dhe karakteristika të tjera!

Linke

Faqja zyrtare e NILFS.

Repozitoret:
NILFS2.
NILFS2 utilitetet dhe moduli.

Abonimet:
Abonimi me email i zhvilluesve të NILFS2. Identifikues për abonim linux-nilfs.
Arkiva e abonimeve.

Udhëzimi për konfigurimin e nilfs_cleanerd.
Testet krahasuese të performancës EXT4, Btrfs, XFS & NILFS2.

Falënderime:

  • Zhvilluesit e NILFS2: Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi dhe Satoshi Moriai. KontributorĂ« tĂ« tjerĂ« tĂ« mĂ«dhenj janĂ«: Andreas Rohner, Dan McGee, David Arendt, David Smid, dexen deVries, Dmitry Smirnov, Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, Vyacheslav Dubeyko.
  • Kompani Amblin Entertainment dhe Universal Pictures pĂ«r serinĂ« e mrekullueshme tĂ« filmave «Kthehu nĂ« tĂ« Ardhmen». Imazhi i parĂ« i postĂ«s Ă«shtĂ« marrĂ« nga filmi «Kthehu nĂ« tĂ« Ardhmen — 3».
  • Kompania RUVDS pĂ«r mbĂ«shtetje dhe mundĂ«sinĂ« e publikimit nĂ« blogun e tij nĂ« HabrĂ«.

P.S. Dërgoni gabimet e vërejtura në mesazh privat. Po e rris karmën për këtë.

Mund të provoni NILFS2 duke porositur një makinë virtuale nga RUVDS me kuponin më poshtë. Për të gjithë klientët e rinj, periudhë prove falas prej 3 ditësh.

NILFS2 — njĂ« sistem skedari i papĂ«rshkueshĂ«m nga plumbat pĂ«r /home

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster