NILFS2 - sistema ta' fajls li ma jgħaddix balal għal /home

NILFS2 - sistema ta' fajls li ma jgħaddix balal għal /home

Kif tafu, jekk jista 'jiġri l-inkwiet, żgur li se jiġri. Probabbilment kulħadd kellu każijiet meta fajl importanti reċenti tħassar aċċidentalment, jew test ġie magħżul u meqrud aċċidentalment f'editur tat-test.

Jekk inti hoster jew sid ta 'websajt, allura probabilment iltqajt ma' hacking tal-kontijiet tal-utent jew il-websajt tiegħek. F'każijiet bħal dawn, huwa importanti li tiġi restawrata l-kronoloġija, issib il-metodu tad-dħul u l-vulnerabbiltà użata mill-attakkant.

Is-sistema tal-fajls NILFS2 hija perfetta biex issolvi problemi bħal dawn.

Ilu preżenti fil-kernel tal-Linux mill-verżjoni 2.6.30.

Il-partikolarità ta' din is-sistema ta' fajls hija li hija simili għal sistema ta' kontroll tal-verżjoni: tista' dejjem tirreġġa' lura l-istat tas-sistema lura u tħares lejn kif kienet xi żmien ilu.

Biex tipprovdi din il-funzjonalità, m'għandekx bżonn tikkonfigura skripts Cron, tieħu snapshots, eċċ. Is-sistema tal-fajls NILFS2 tagħmel dan kollu waħedha. Qatt ma tissostitwixxi data antika u dejjem tikteb f'żoni ġodda tad-diska jekk ikun hemm biżżejjed spazju ħieles fuq id-diska. F'konformità sħiħa mal-prinċipju tal-Kopja fuq il-Kitba.

Fil-fatt, kwalunkwe bidla għal fajl awtomatikament toħloq stampa ġdida tas-sistema tal-fajls, sabiex tkun tista 'tuża din l-FS bħala magna tal-ħin u tirrivolġi l-istat tal-fajls.

Story

NILFS2 - sistema ta' fajls li ma jgħaddix balal għal /homeNILFS2 ġie żviluppat fil-fond ta ' Nippon Telegraph and Telephone Corporation, fil-fatt, l-istat (għandha sehem ta 'kontroll) u l-akbar kumpanija tat-telekomunikazzjoni fil-Ġappun. B'mod aktar speċifiku, fil-Laboratorji CyberSpace taħt it-tmexxija Ryusuke Konishi.

Għal xiex kien żviluppat eżatt mhuwiex magħruf, madankollu, wieħed jista’ jassumi li tali FS, bil-funzjonalità ta’ “magna tal-ħin” tagħha, hija ideali għall-ħażna ta’ data li s-servizzi tal-intelliġenza jistgħu jkunu jridu jħaffru fiha sabiex jerġgħu juru l-istampa kollha ta’ SMS, emails, eċċ....

NILFS2 huwa wkoll potenzjalment għodda siewja ħafna għas-servizzi tas-sigurtà interna, peress li jippermettilek li tirkupra l-ittri kollha mħassra fid-database tal-posta, u tiżvela l-jambs tal-impjegati li sussegwentement jistgħu jippruvaw jaħbihom billi jħassru jew jibdlu l-fajls tagħhom.

Kif tista 'ssegwi l-istorja kollha tal-korrispondenza tiegħek?Fuq servers Linux (u dan huwa fejn NILFS2 għandu jiġi installat għal skopijiet ta 'sigurtà interna), il-metodu tal-fajl tal-ħażna tal-emails ħafna drabi jintuża biex jaħżnu messaġġi tal-email. L-hekk imsejjaħ format Maildir. Biżżejjed biex tpoġġi Courier Mail Server u kkonfigurat il-ħażna tal-posta f'Maildir. Format ieħor mbox huwa fajl test kbir li jista 'jiġi parsed faċilment f'messaġġi individwali.

Jekk is-server tal-posta juża database, allura NILFS2 jagħmilha possibbli li tirrestawra l-ħin eżatt tal-bidliet fid-database u l-abbiltà li tirrestawra d-database fi kwalunkwe minn dawn il-mumenti. U mbagħad trid tuża għodod tad-database biex tara x'kien hemm fiha f'dak il-mument...

Madankollu, xi ħaġa marret ħażin. Jew il-gvern Ġappuniż bidel fehmtu dwar il-monitoraġġ ta 'kulħadd (a la-prinċipju ta' Yarovaya), jew il-prestazzjoni ta 'NILFS2 fuq HDDs tradizzjonali rriżulta li kienet taħt il-par, u NILFS2 ġie rilaxxat taħt il-liċenzja GPL u malajr ħafna daħal fil-kernel Linux, peress li ma kien hemm l-ebda ilmenti partikolari dwar il-kodiċi miktub Ġappuniż kwalifikat ħafna, l-iżviluppaturi tal-kernel Linux ma kellhomx.

X'inhu NILFS2?

Mil-lat ta 'użu: fuq sistema ta' kontroll tal-verżjoni SVN. Kull punt ta 'kontroll FS huwa impenn li jsir awtomatikament mingħajr l-għarfien tal-utent kull meta jkun hemm xi bidla: kemm jekk tkun tħassir, tibdil tal-kontenut ta' fajl jew tibdil tad-drittijiet tal-aċċess. Kull impenn għandu numru li jiżdied b'mod lineari.

Mil-lat ta' programmatur: buffer ċirkolari. Is-sistema tal-fajls takkumula l-bidliet u tiktebhom f'biċċa daqs bejn wieħed u ieħor 8 MB (2000 * 4096, fejn 2000 huwa n-numru ta 'elementi fil-blokk u 4096 huwa d-daqs tal-paġna tal-memorja). Id-disk kollu huwa maqsum f'biċċiet bħal dawn. Ir-reġistrazzjoni tipproċedi sekwenzjali. Meta jispiċċa l-ispazju ħieles, l-eqdem snapshots jitħassru u l-biċċiet jinkitbu fuqhom.

Goodies bażiċi NILFS2

  • Verżjoni!!!
  • Il-proċedura għar-restawr ta 'sistema ta' fajls wara falliment hija sempliċi: waqt it-tagħbija, l-aħħar biċċa li għandha l-checksum korretta hija mfittxija, u superblock huwa installat fuqha. Din hija operazzjoni kważi immedjata.
  • Minħabba l-fatt li r-reġistrazzjoni dejjem tipproċedi b'mod lineari, allura:
    • jista 'juri riżultati tajbin meta taħdem fuq SSD b'kitba każwali bil-mod.
    • NILFS2 jiffranka r-riżorsi SSD, peress li kważi m'hemm l-ebda fattur ta 'multiplikazzjoni tal-kitba.
      B'mod aktar preċiż, mhuwiex aktar minn 2.Il-fatt hu li meta tikteb mill-ġdid ċiklikament id-disk kollu, NILFS2 jittrasferixxi data li ma tistax tinbidel għal biċċiet ġodda (biċċiet).

      Jekk ikollna 10% ta 'dejta li ma tinbidel fuq id-diska, allura se nġibu żieda ta' 10% ta 'kitba b'kitba mill-ġdid kompluta. Ukoll, żieda ta '1% fil-milja ta' 50% tal-apparat għal kitba mill-ġdid kompluta tad-diska.

      Il-qligħ massimu tal-kitba huwa 2. Dan huwa baxx ħafna meta wieħed iqis li kollox huwa miktub sekwenzjali. B'mod ġenerali, l-animazzjoni tal-kitba tkun inqas minn dik ta 'sistema ta' fajls frammentata konvenzjonali b'settur ta '4096 byte. (Ħsieb ispirat minn jikkummenta).

  • Faċilità potenzjali ta' implimentazzjoni ta' replikazzjoni għal FS NILFS2 remot

NILFS2 għal /home

F'sistemi operattivi bħal Unix, bħala regola, hemm folder /home li fih tinħażen id-dejta tal-utent. Diversi programmi jsalvaw is-settings speċifiċi għall-utent tagħhom f'dan il-folder.

U min, jekk mhux l-utenti, jagħmel żbalji l-aktar spiss? Għalhekk, kif jgħidu, Alla nnifsu ordna l-użu ta 'NILFS2 fuq /home.

Barra minn hekk, bl-użu mifrux ta 'SSDs, issa m'għandniex għalfejn ninkwetaw dwar tnaqqis serju meta nużaw is-sistemi tal-fajl CoW.

Iva, nistgħu noħolqu snapshots FS kemm inħobbu f'ZFS u BTRFS, iżda dejjem hemm riskju li bidla tal-fajl mitlufa tispiċċa bejn l-istampaturi. U l-istampi għad iridu jiġu amministrati: dawk qodma jeħtieġ li jitħassru. F'NILFS2, dan kollu jiġri awtomatikament, litteralment kull ftit sekondi.

Ħloqt volum loġiku bl-użu ta 'lvcreate (fil-grupp ta' volum nvme, thin pool thin). Nirrakkomanda li tinħoloq fuq il-volum lvm, peress li tista 'tiġi estiża faċilment aktar tard. Nirrakkomanda li jkollok 50% spazju ħieles fuq id-diska b'NILFS2 għal fond tal-verżjoni deċenti.

lvcreate -V10G -T nvme/thin -n home

u ifformattjatha f'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 !!

Wara dan, għandek bżonn tikkopja d-dejta kollha mill-/home kurrenti.

Għamilt dan immedjatament wara li btajjar il-kompjuter, qabel ma dħalt fil-kont tiegħi, bħala l-utent root. Kieku kelli nilloggja bħala l-utent tiegħi, xi programmi jiftħu sockets u fajls fil-folder /home/user tal-utent tiegħi, li jagħmlu kopja nadifa diffiċli. Kif tafu, il-fowlder tad-dar għall-utent ta 'l-għerq normalment jinsab fuq il-mogħdija ta' /root, għalhekk l-ebda fajl ma jinfetaħ fuq il-partizzjoni /home.

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

Għall-aħħar linja, ara oġġett.

Sussegwentement neditjaw /etc/fstab, li fih is-sistema tal-fajls għal /home hija mmuntata, biex

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

Għażla noatime meħtieġa biex tittejjeb il-prestazzjoni sabiex l-atime ma jinbidilx ma 'kull aċċess għall-fajl. Sussegwentement aħna reboot.

Tipi ta' immaġini f'NILFS2.

Snapshot regolari mingħajr immunità għat-tħassir jissejjaħ punt ta 'kontroll jew punt ta' rkupru.
Snapshot protett minn awto-tħassir tissejjaħ snapshot, imbagħad sempliċiment snapshot.

Il-wiri tal-punti ta' kontroll isir bl-użu tal-kmand lscp

Ara snapshots lscp -s

Nistgħu noħolqu snapshots u punti ta' kontroll aħna stess fi kwalunkwe ħin billi nużaw:

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

Nirrestawraw id-dejta.

NILFS jippermettilna nimmuntaw kemm snapshots qodma kemm irridu b'mod parallel mal-ħidma mal-fergħa ewlenija tal-FS. Iżda biss fil-modalità tal-qari.

Kollox huwa rranġat hekk. Il-punti ta 'kontroll regolari li jagħmel NILFS2 jistgħu jitħassru awtomatikament fi kwalunkwe ħin (meta l-ispazju fuq id-diska jispiċċa jew skont ir-regoli nilfs_cleanerd), għalhekk qabel l-installazzjoni rridu nikkonvertiw il-punt ta' kontroll f'istampa jew, bir-Russu, naqbdu l-istampa.

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

Wara dan, nistgħu narmaw l-istampa, pereżempju, bħal dan:

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

Wara dan nikkopja l-fajls restawrati mill-istampa għal /home.
U sussegwentement ineħħu l-bandiera li ma tistax titħassar mill-istampa sabiex fil-futur il-kollettur awtomatiku taż-żibel ikun jista’ jneħħi dejta skaduta:

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

Utilitajiet għal NILFS2

Iżda din hija l-problema. Iva, ovvjament, nistgħu noħolqu sistema ta 'fajls, nibdlu d-daqs tagħha onlajn, naraw il-lista ta' challengepoints, noħolquhom u nħassruhom. Il-pakkett nilfs2-utils jipprovdi sett minimu ta 'gentleman.

Peress li NTT naqqas il-finanzjament tiegħu, m'hemm l-ebda utilitajiet veloċi ta 'livell baxx li jippermettulek turi l-istorja tal-bidliet fil-fajl jew tagħmel differenza bejn snapshots.

L-utilità tiegħi n2u

Biex timla dan il-vakwu ktibt l-utilità n2u tiegħek, li jista' juri l-istorja tal-bidliet f'fajl/direttorju speċifiku:

n2u log filename

L-output huwa xi ħaġa bħal din:

          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

Jaħdem pjuttost malajr għall-metodu ta 'implimentazzjoni magħżul: ifittex differenzi bejn il-fajls bl-użu tal-metodu ta' bisection, immuntar malajr u jqabbel il-fajl/direttorju fi snapshots differenti.

Tista' tissettja firxa ta' punti ta' kontroll billi tuża ċ-ċavetta -cp CP1:CP2 jew -cp {YEAR-MM-DD}:{YEAR-MM-DD}.

Tista 'tara wkoll id-differenza bejn il-punti ta' kontroll għal fajl jew direttorju speċifiku:

n2u diff -r cp1:cp2 filename

Tista' turi l-kronoloġija kollha tal-bidliet: id-differenzi kollha bejn il-punti ta' kontroll ta' fajl/direttorju speċifiku:

n2u blame [-r cp1:cp2] filename

L-intervall tad-data f'dan il-kmand huwa appoġġjat ukoll.

Għajta lill-iżviluppaturi

Hemm ħafna speċjalisti fuq Habré. Jekk jogħġbok spiċċa NILFS2. Agħmel replikazzjoni, diff veloċi ta' livell baxx bejn reviżjonijiet, reflink u goodies oħra!

referenzi

Il-websajt uffiċjali ta' NILFS.

Repożitorji:
NILFS2.
utilitajiet u moduli NILFS2.

Newsletters:
E-mail newsletter għall-iżviluppaturi NILFS2. ID għall-abbonament linux-nilfs.
Arkivju tal-bullettin.

gwida tas-setup nilfs_cleanerd.
Benchmarking EXT4, Btrfs, XFS & NILFS2 Testijiet tal-Prestazzjoni.

Grazzi:

  • Iżviluppaturi NILFS2: Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi u Satoshi Moriai. Kontributuri ewlenin oħra huma: Andreas Rohner, Dan McGee, David Arendt, David Smid, dexen deVries, Dmitry Smirnov, Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, Vyacheslav Dubeyko.
  • Lil Amblin Entertainment u Universal Pictures għal sensiela mill-isbaħ ta’ films. "Lura għall-Futur". L-ewwel stampa tal-post hija meħuda mill-film "Lura għall-Futur 3".
  • Kumpaniji RUVDS għall-appoġġ u l-opportunità li tippubblika fuq il-blog tiegħek fuq Habré.

PS Jekk jogħġbok ibgħat kwalunkwe żball li tinnota f'messaġġ privat. Inżid il-karma tiegħi għal dan.

Tista' tesperimenta b'NILFS2 billi tordna magna virtwali minn RUVDS bil-kupun hawn taħt. Għall-klijenti l-ġodda kollha hemm perjodu ta' prova b'xejn ta' 3 ijiem.

NILFS2 - sistema ta' fajls li ma jgħaddix balal għal /home

Sors: www.habr.com

Żid kumment