NILFS2 – eto faili bulletproof fun / ile

NILFS2 – eto faili bulletproof fun / ile

Bi o ṣe mọ, ti wahala ba le ṣẹlẹ, dajudaju yoo ṣẹlẹ. Boya gbogbo eniyan ti ni awọn ọran nigbati faili pataki kan laipe kan paarẹ lairotẹlẹ, tabi ti yan ọrọ lairotẹlẹ ati run ni olootu ọrọ.

Ti o ba jẹ oluṣeto tabi oniwun oju opo wẹẹbu, lẹhinna o ti ṣe alabapade gige sakasaka awọn akọọlẹ olumulo tabi oju opo wẹẹbu rẹ. Ni iru awọn iru bẹẹ, o ṣe pataki lati mu akoko-akọọlẹ pada, wa ọna ti titẹsi ati ailagbara ti o lo nipasẹ ikọlu.

Eto faili NILFS2 jẹ pipe fun yiyan iru awọn iṣoro bẹ.

O ti wa ninu ekuro Linux lati ẹya 2.6.30.

Iyatọ ti eto faili yii ni pe o jọra si eto iṣakoso ẹya: o le nigbagbogbo yi pada ipo ti eto naa pada ki o wo bi o ti dabi igba diẹ sẹhin.

Lati pese iṣẹ ṣiṣe yii, iwọ ko nilo lati tunto awọn iwe afọwọkọ Cron, ya awọn fọto, ati bẹbẹ lọ. Eto faili NILFS2 ṣe gbogbo eyi funrararẹ. Ko ṣe atunkọ data atijọ ati nigbagbogbo kọwe si awọn agbegbe titun ti disk ti aaye disk ọfẹ ba wa. Ni kikun ni ibamu pẹlu ilana Daakọ-lori-Kọ.

Ni otitọ, eyikeyi iyipada si faili laifọwọyi ṣẹda aworan tuntun ti eto faili, nitorinaa o le lo FS yii bi ẹrọ akoko kan ki o tun pada ipo awọn faili pada.

История

NILFS2 – eto faili bulletproof fun / ileNILFS2 ti a ni idagbasoke ninu ogbun ti Nippon Teligirafu ati Telephone Corporation, ni otitọ, ohun-ini ti ijọba (o ni ipin iṣakoso) ati ile-iṣẹ ibaraẹnisọrọ ti o tobi julọ ni Japan. Ni pataki diẹ sii, ninu Awọn ile-iṣẹ CyberSpace labẹ adari Ryusuke Konishi.

Kini gangan ti o ti ni idagbasoke fun jẹ aimọ, sibẹsibẹ, o le ṣe akiyesi pe iru FS kan, pẹlu iṣẹ “ẹrọ akoko” rẹ, jẹ apẹrẹ fun titoju data ti awọn iṣẹ oye le fẹ lati ma wà sinu lati tun ṣe gbogbo aworan ti SMS, imeeli, bbl

NILFS2 tun jẹ ohun elo ti o niyelori pupọ fun awọn iṣẹ aabo inu, bi o ṣe gba ọ laaye lati gba gbogbo awọn lẹta ti o paarẹ pada ninu ibi ipamọ data meeli, ti n ṣafihan awọn ẹgbẹ ti awọn oṣiṣẹ ti o le gbiyanju lati parada wọn nipa piparẹ tabi yiyipada awọn faili wọn.

Bawo ni o ṣe le tọpa gbogbo itan-akọọlẹ ifọrọranṣẹ rẹ?Lori awọn olupin Linux (ati pe eyi ni ibiti NILFS2 yẹ ki o fi sii fun awọn idi aabo inu), ọna faili ti titoju awọn imeeli ni igbagbogbo lo lati tọju awọn ifiranṣẹ imeeli. Awọn ki-npe ni kika Maildir. To lati fi Oluranse Mail Server ati tunto ibi ipamọ meeli ni Maildir. Ọna kika miiran apoti jẹ faili ọrọ ti o tobi ti o le ṣe itupalẹ ni rọọrun sinu awọn ifiranṣẹ kọọkan.

Ti olupin meeli ba nlo aaye data kan, lẹhinna NILFS2 yoo jẹ ki o ṣee ṣe lati mu pada akoko gangan ti awọn iyipada data ati agbara lati mu pada data pada ni eyikeyi awọn akoko wọnyi. Ati lẹhinna o nilo lati lo awọn irinṣẹ data data lati rii ohun ti o wa ninu rẹ ni aaye yẹn ni akoko…

Sibẹsibẹ, ohun kan ti ko tọ. Boya ijọba ilu Japan yi ọkan rẹ pada nipa ṣiṣe abojuto gbogbo eniyan (a la the Yarovaya opo), tabi iṣẹ ti NILFS2 lori HDDs ibile wa ni isalẹ, ati pe NILFS2 ti tu silẹ labẹ iwe-aṣẹ GPL ati ni kiakia wọ ekuro Linux, niwon ko si awọn ẹdun ọkan pato nipa koodu ti a kọ ni Japanese ti o ni oye giga, awọn olupilẹṣẹ ti ekuro Linux ko ni.

Kini NILFS2 dabi?

Lati oju wiwo lilo: lori eto iṣakoso ẹya SVN. Oju-iwe ayẹwo FS kọọkan jẹ ifaramọ ti o ṣe laifọwọyi laisi imọ olumulo nigbakugba ti iyipada eyikeyi ba wa: jẹ piparẹ, yiyipada awọn akoonu ti faili kan tabi yiyipada awọn ẹtọ wiwọle. Iṣe kọọkan ni nọmba ti o pọ si laini.

Lati oju wiwo olupilẹṣẹ: ifipamọ ipin. Eto faili naa ṣajọpọ awọn ayipada ati kọ wọn sinu ṣoki ti o dọgba si isunmọ 8 MB (2000 * 4096, nibiti 2000 jẹ nọmba awọn eroja ninu bulọki ati 4096 jẹ iwọn oju-iwe iranti). Gbogbo disk ti pin si iru chunks. Gbigbasilẹ naa tẹsiwaju lẹsẹsẹ. Nigbati aaye ọfẹ ba jade, awọn aworan ifaworanhan ti atijọ ti paarẹ ati awọn ege ti wa ni tunkọ.

Ipilẹ NILFS2 goodies

  • Ti ikede!!!
  • Ilana fun mimu-pada sipo eto faili lẹhin ikuna jẹ rọrun: nigbati o ba n ṣe ikojọpọ, chunk ti o kẹhin ti o ni sọwedowo to pe ni a wa, ati pe o ti fi sori ẹrọ superblock kan lori rẹ. Eleyi jẹ ẹya fere ese isẹ.
  • Nitori otitọ pe gbigbasilẹ nigbagbogbo tẹsiwaju laini, lẹhinna:
    • le ṣe afihan awọn abajade to dara nigbati o nṣiṣẹ lori SSD pẹlu awọn kikọ lainidii ti o lọra.
    • NILFS2 ṣafipamọ awọn orisun SSD, nitori pe ko si ifosiwewe isodipupo kikọ.
      Ni pipe diẹ sii, ko ju 2 lọ.Otitọ ni pe nigba cyclically atunkọ gbogbo disk, NILFS2 yoo gbe data ti ko yipada si awọn ege tuntun (awọn ege).

      Ti a ba ni 10% ti data ti ko yipada lori disiki, lẹhinna a yoo gba 10% ilosoke kikọ pẹlu 1 atunkọ pipe. O dara, 50% ilosoke ni 50% kikun ti ẹrọ fun 1 atunkọ pipe ti disk naa.

      Awọn ti o pọju Kọ ere ni 2. Eleyi jẹ gidigidi kekere considering pe ohun gbogbo ti kọ lesese. Ni gbogbogbo, iwara kikọ yoo jẹ kere ju ti eto faili ti a ya sọtọ pẹlu eka 4096-baiti kan. (Ero ni atilẹyin nipasẹ ọrọìwòye).

  • Irọrun ti o pọju ti imuse ti ẹda si NILFS2 FS latọna jijin

NILFS2 fun / ile

Ninu awọn ọna ṣiṣe bii Unix, gẹgẹbi ofin, folda ile kan wa ninu eyiti data olumulo ti wa ni ipamọ. Awọn eto oriṣiriṣi ṣafipamọ awọn eto olumulo-pato wọn sinu folda yii.

Ati tani, ti kii ṣe awọn olumulo, ṣe awọn aṣiṣe nigbagbogbo? Nítorí náà, gẹ́gẹ́ bí wọ́n ṣe sọ, Ọlọ́run fúnra rẹ̀ pàṣẹ pé kí a lo NILFS2 lórí / home.

Pẹlupẹlu, pẹlu lilo ibigbogbo ti awọn SSDs, a ko ni lati ṣe aniyan nipa awọn iyasilẹ lile nigba lilo awọn eto faili CoW.

Bẹẹni, a le ṣẹda awọn aworan FS ni igbagbogbo bi a ṣe fẹ ninu ZFS ati BTRFS, ṣugbọn ewu nigbagbogbo wa pe iyipada faili ti o padanu yoo pari laarin awọn aworan. Ati pe awọn aworan tun nilo lati ṣakoso: awọn atijọ nilo lati paarẹ. Ni NILFS2, gbogbo eyi n ṣẹlẹ laifọwọyi, gangan ni gbogbo iṣẹju diẹ.

Mo ti da a mogbonwa iwọn didun lilo lvcreate (ni nvme iwọn didun Ẹgbẹ, tinrin pool tinrin). Mo ṣeduro ṣiṣẹda rẹ lori iwọn didun lvm, nitori o le ni irọrun faagun nigbamii. Mo ṣeduro nini aaye disk ọfẹ 50% pẹlu NILFS2 fun ijinle ẹya ti o tọ.

lvcreate -V10G -T nvme/thin -n home

o si ṣe ọna kika rẹ ni 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 !!

Lẹhin eyi, o nilo lati daakọ gbogbo data lati lọwọlọwọ / ile.

Mo ṣe eyi lẹsẹkẹsẹ lẹhin booting kọnputa, ṣaaju ki o to wọle sinu akọọlẹ mi, bi olumulo gbongbo. Ti MO ba wọle bi olumulo mi, diẹ ninu awọn eto yoo ṣii awọn iho ati awọn faili ninu folda olumulo / ile / olumulo, eyiti yoo jẹ ki ẹda mimọ le nira. Bi o ṣe mọ, folda ile fun olumulo root nigbagbogbo wa lori ọna / root, nitorinaa ko si awọn faili ti yoo ṣii lori ipin / ile.

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

Fun laini ikẹhin, wo nkan.

Nigbamii ti a satunkọ /etc/fstab, ninu eyiti awọn faili eto fun / ile ti wa ni agesin, si

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

Aṣayan noatime nilo lati mu ilọsiwaju ṣiṣẹ ki atiime ko yipada pẹlu iraye si faili kọọkan. Nigbamii ti a atunbere.

Awọn oriṣi awọn aworan ni NILFS2.

Aworan aworan deede laisi ajesara si piparẹ ni a pe ni aaye ayẹwo tabi aaye imularada.
Aworan aworan ti o ni aabo lati piparẹ aifọwọyi ni a pe ni fọtoyiya, lẹhinna aworan aworan lasan.

Wiwo awọn aaye ayẹwo ni lilo pipaṣẹ lscp

Wo snapshots lscp -s

A le ṣẹda awọn aworan aworan ati awọn aaye ayẹwo funrara wa nigbakugba nipa lilo:

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

A mu data pada.

NILFS gba wa laaye lati gbe bi ọpọlọpọ awọn snapshots atijọ bi a ṣe fẹ ni afiwe pẹlu ṣiṣẹ pẹlu ẹka akọkọ FS. Sugbon nikan ni kika mode.

Ohun gbogbo ti ṣeto bi eleyi. Awọn aaye ayẹwo deede ti NILFS2 ṣe le paarẹ laifọwọyi ni eyikeyi akoko (nigbati aaye disk ba jade tabi ni ibamu si awọn ofin nilfs_cleanard), nitorinaa ṣaaju fifi sori ẹrọ a gbọdọ yi aaye ayẹwo pada si aworan aworan tabi, ni ede Russian, mu aworan naa.

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

Lẹhin iyẹn, a le gbe aworan naa, fun apẹẹrẹ, bii eyi:

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

Lẹhin eyi a daakọ awọn faili ti a mu pada lati aworan aworan si /home.
Ati pe lẹhinna a yọ asia ti a ko le parẹ kuro ni fọtoyiya ki ni ọjọ iwaju olugba idọti adaṣe le yọ data ti igba atijọ kuro:

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

Awọn ohun elo fun NILFS2

Ṣugbọn eyi ni iṣoro naa. Bẹẹni, nitorinaa, a le ṣẹda eto faili kan, yi iwọn rẹ pada lori ayelujara, wo atokọ awọn aaye ipenija, ṣẹda ati paarẹ wọn. Nilfs2-utils package pese kan iwonba jeje ṣeto.

Niwọn igba ti NTT ti dinku igbeowosile rẹ, ko si awọn ohun elo kekere ti o yara ti o gba ọ laaye lati ṣafihan itan-akọọlẹ ti awọn ayipada faili tabi ṣe iyatọ laarin awọn aworan.

Mi n2u IwUlO

Lati kun igbale yii Mo kowe rẹ n2u IwUlO, eyiti o le ṣe afihan itan-akọọlẹ ti awọn ayipada si faili kan pato/ilana:

n2u log filename

Abajade jẹ nkan bi eyi:

          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

O ṣiṣẹ ni iyara pupọ fun ọna imuse ti o yan: o wa awọn iyatọ laarin awọn faili nipa lilo ọna bisection, gbigbe ni iyara ati afiwe faili / liana ni oriṣiriṣi awọn fọto.

O le ṣeto ibiti awọn aaye ayẹwo ni lilo bọtini -cp CP1:CP2 tabi -cp {YEAR-MM-DD}:{YEAR-MM-DD}.

O tun le wo iyatọ laarin awọn aaye ayẹwo fun faili kan pato tabi ilana:

n2u diff -r cp1:cp2 filename

O le ṣe afihan gbogbo akoole awọn ayipada: gbogbo awọn iyatọ laarin awọn aaye ayẹwo ti faili kan pato/ilana:

n2u blame [-r cp1:cp2] filename

Aarin ọjọ ni aṣẹ yii tun ni atilẹyin.

A igbe si awọn Difelopa

Ọpọlọpọ awọn alamọja lo wa lori Habré. Jọwọ pari NILFS2. Ṣe atunwi, iyatọ iyara kekere-kekere laarin awọn atunyẹwo, isọdọtun ati awọn ire miiran!

jo

Oju opo wẹẹbu NILFS osise.

Awọn ibi ipamọ:
NILFS2.
NILFS2 igbesi ati modulu.

Awọn iwe iroyin:
Iwe iroyin imeeli fun awọn oludasilẹ NILFS2. ID fun linux-nilfs alabapin.
Iwe akọọlẹ iwe iroyin.

nilfs_cleanard oso itọsọna.
Benchmarking EXT4, Btrfs, XFS & Awọn Idanwo Iṣe NILFS2.

O ṣeun:

  • NILFS2 Difelopa: Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi ati Satoshi Moriai. Awọn oluranlọwọ pataki miiran ni: Andreas Rohner, Dan McGee, David Arendt, David Smid, dexen deVries, Dmitry Smirnov, Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, Vyacheslav Dubeyko.
  • Si Idanilaraya Amblin ati Awọn aworan Agbaye fun jara ti awọn fiimu iyalẹnu. "Pada si ojo iwaju". Aworan akọkọ ti ifiweranṣẹ naa ni a ya lati fiimu naa “Back to the Future 3”.
  • Awọn ile-iṣẹ RUVDS fun atilẹyin ati anfani lati gbejade lori bulọọgi rẹ lori Habré.

PS Jowo firanṣẹ awọn aṣiṣe eyikeyi ti o ṣe akiyesi ni ifiranṣẹ aladani kan. Mo mu karma mi pọ si fun eyi.

O le ṣàdánwò pẹlu NILFS2 nipa pipaṣẹ ẹrọ foju kan lati RUVDS pẹlu coupon ni isalẹ. Fun gbogbo awọn alabara tuntun akoko idanwo ọfẹ wa ti awọn ọjọ 3.

NILFS2 – eto faili bulletproof fun / ile

orisun: www.habr.com

Fi ọrọìwòye kun