NILFS2 - usa ka bulletproof file system alang sa /home

NILFS2 - usa ka bulletproof file system alang sa /home

Sama sa imong nahibal-an, kung mahitabo ang kasamok, mahitabo gyud kini. Tingali ang tanan adunay mga kaso sa diha nga ang usa ka bag-o nga importante nga file aksidenteng napapas, o ang teksto aksidenteng gipili ug gilaglag sa usa ka text editor.

Kung ikaw usa ka hoster o tag-iya sa website, nan tingali nakasugat ka og pag-hack sa mga account sa gumagamit o sa imong website. Sa ingon nga mga kaso, importante nga ibalik ang kronolohiya, pangitaa ang pamaagi sa pagsulod ug ang kahuyang nga gigamit sa tig-atake.

Ang NILFS2 file system perpekto para sa pagsulbad sa maong mga problema.

Anaa na kini sa Linux kernel sukad sa bersyon 2.6.30.

Ang pagkatalagsaon sa kini nga sistema sa file mao nga kini parehas sa usa ka sistema sa pagkontrol sa bersyon: mahimo nimo kanunay nga ibalik ang kahimtang sa sistema ug tan-awon kung unsa kini kaniadto.

Aron mahatagan kini nga gamit, dili nimo kinahanglan nga i-configure ang mga script sa Cron, pagkuha mga snapshot, ug uban pa. Ang NILFS2 file system nagabuhat niini sa iyang kaugalingon. Wala kini mag-overwrite sa daan nga datos ug kanunay nga nagsulat sa bag-ong mga lugar sa disk kung adunay igo nga libre nga espasyo sa disk. Sa bug-os nga pagpahiuyon sa prinsipyo sa Copy-on-Write.

Sa tinuud, ang bisan unsang pagbag-o sa usa ka file awtomatiko nga nagmugna usa ka bag-ong snapshot sa file system, aron magamit nimo kini nga FS ingon usa ka makina sa oras ug i-rewind ang kahimtang sa mga file.

История

NILFS2 - usa ka bulletproof file system alang sa /homeAng NILFS2 naugmad sa kahiladman sa Nippon Telegraph and Telephone Corporation, sa pagkatinuod, ang gipanag-iya sa estado (kini adunay nagkontrol nga stake) ug ang pinakadako nga kompanya sa telekomunikasyon sa Japan. Labaw nga espesipiko, sa CyberSpace Laboratories ubos sa pagpangulo Ryusuke Konishi.

Wala mahibal-an kung unsa gyud ang pagkagama niini, bisan pa, mahimo’g hunahunaon nga ang ingon nga FS, uban ang pag-andar sa "time machine", maayo alang sa pagtipig sa mga datos nga gusto sa mga serbisyo sa paniktik nga pagkalot aron ma-replay ang tibuuk nga litrato sa SMS, email, ug uban pa....

Ang NILFS2 mahimo usab nga usa ka bililhon nga himan alang sa internal nga mga serbisyo sa seguridad, tungod kay gitugotan ka nga mabawi ang tanan nga natangtang nga mga sulat sa database sa mail, nga nagpadayag sa mga jamb sa mga empleyado nga mahimo’g mosulay sa pagtakuban kanila pinaagi sa pagtangtang o pagbag-o sa ilang mga file.

Giunsa nimo masubay ang imong tibuok kasaysayan sa sulat?Sa mga server sa Linux (ug dinhi kinahanglan i-install ang NILFS2 alang sa internal nga katuyoan sa seguridad), ang pamaagi sa file sa pagtipig sa mga email kanunay nga gigamit sa pagtipig sa mga mensahe sa email. Ang gitawag nga format Maildir. Igo na nga ibutang Courier Mail Server ug i-configure ang pagtipig sa mail sa Maildir. Lain nga format mbox kay usa ka dako nga text file nga daling ma-parse sa indibidwal nga mga mensahe.

Kung ang mail server naggamit sa usa ka database, nan ang NILFS2 maghimo niini nga posible nga ibalik ang eksaktong oras sa mga pagbag-o sa database ug ang abilidad sa pagpasig-uli sa database sa bisan asa niini nga mga gutlo. Ug unya kinahanglan nimo nga gamiton ang mga himan sa database aron makita kung unsa ang naa sa kini nga punto sa oras ...

Bisan pa, adunay nahitabo nga sayup. Bisan ang gobyerno sa Japan nagbag-o sa hunahuna bahin sa pag-monitor sa tanan (a la ang prinsipyo sa Yarovaya), o ang paghimo sa NILFS2 sa tradisyonal nga mga HDD nahimo nga ubos sa par, ug ang NILFS2 gipagawas sa ilawom sa lisensya sa GPL ug dali nga nakasulod sa Linux kernel, tungod kay wala'y partikular nga mga reklamo mahitungod sa kodigo nga gisulat nga hilabihan ka kwalipikado nga Hapon, ang mga developers sa Linux kernel wala niini.

Unsa ang NILFS2?

Gikan sa punto sa paggamit: sa usa ka sistema sa pagkontrol sa bersyon SVN. Ang matag checkpoint sa FS usa ka pasalig nga awtomatiko nga gihimo nga wala nahibal-an sa tiggamit kung adunay bisan unsang pagbag-o: pagtangtang, pagbag-o sa sulud sa usa ka file o pagbag-o sa mga katungod sa pag-access. Ang matag commit adunay usa ka numero nga pagtaas sa linya.

Gikan sa punto sa panglantaw sa programmer: usa ka circular buffer. Ang sistema sa file nagtigum og mga kausaban ug gisulat kini ngadto sa usa ka tipak nga katumbas sa gibana-bana nga 8 MB (2000 * 4096, diin ang 2000 mao ang gidaghanon sa mga elemento sa block ug ang 4096 mao ang gidak-on sa panid sa panumduman). Ang tibuuk nga disk gibahin sa ingon nga mga tipak. Ang pagrekord nagpadayon nga sunud-sunod. Kung mahurot na ang libre nga espasyo, ang labing karaan nga mga snapshot matangtang ug ang mga tipak ma-overwrite.

Basic nga NILFS2 goodies

  • Versioning!!!
  • Ang pamaagi alang sa pagpasig-uli sa usa ka file system human sa usa ka kapakyasan mao ang yano: sa diha nga loading, ang katapusan nga chunk nga adunay husto nga checksum gipangita, ug ang usa ka superblock gibutang niini. Kini usa ka hapit dayon nga operasyon.
  • Tungod sa kamatuoran nga ang pagrekord kanunay nga nagpadayon sa linya, unya:
    • makapakita ug maayong mga resulta kung nagdagan sa SSD nga adunay hinay nga random nga pagsulat.
    • Ang NILFS2 nagtipig sa kahinguhaan sa SSD, tungod kay hapit wala’y hinungdan nga pagpadaghan sa pagsulat.
      Mas tukma, kini dili molapas sa 2.Ang kamatuoran mao nga sa diha nga cyclically rewriting sa tibuok disk, NILFS2 pagbalhin sa dili mausab nga data ngadto sa bag-ong mga piraso (tipak).

      Kung kami adunay 10% nga wala’y pagbag-o nga datos sa disk, nan makakuha kami usa ka 10% nga pagtaas sa pagsulat nga adunay 1 nga kompleto nga pagsulat pag-usab. Aw, usa ka 50% nga pagtaas sa 50% nga kapuno sa aparato alang sa 1 nga kompleto nga pagsulat pag-usab sa disk.

      Ang maximum write gain mao ang 2. Kini ubos kaayo sa pagkonsiderar nga ang tanan gisulat nga sunud-sunod. Sa kinatibuk-an, ang pagsulat nga animation mahimong mas gamay kaysa sa naandan nga fragmented file system nga adunay 4096-byte nga sektor. (Hunahuna dinasig sa komentaryo).

  • Potensyal nga kasayon ​​sa pagpatuman sa replikasyon sa usa ka hilit nga NILFS2 FS

NILFS2 para sa /balay

Sa mga operating system nga sama sa Unix, ingon nga usa ka lagda, adunay usa ka /home folder diin ang data sa user gitipigan. Ang lainlaing mga programa nagtipig sa ilang piho nga mga setting sa user niini nga folder.

Ug kinsa, kung dili mga tiggamit, kanunay nga masayop? Busa, ingon sa ilang giingon, ang Diyos mismo nagmando sa paggamit sa NILFS2 sa /balay.

Dugang pa, sa kaylap nga paggamit sa mga SSD, dili na kami kinahanglan mabalaka bahin sa grabe nga mga drawdown kung mogamit mga sistema sa file sa CoW.

Oo, makahimo kami og mga snapshot sa FS sa kanunay nga gusto namon sa ZFS ug BTRFS, apan kanunay adunay peligro nga ang nawala nga pagbag-o sa file matapos sa taliwala sa mga snapshot. Ug ang mga litrato kinahanglan pa nga ipangalagad: ang mga daan kinahanglan nga tangtangon. Sa NILFS2, kining tanan awtomatikong mahitabo, sa literal matag pipila ka segundo.

Naghimo ako usa ka lohikal nga gidaghanon gamit ang lvcreate (sa grupo sa volume sa nvme, nipis nga pool nga nipis). Girekomendar nako ang paghimo niini sa lvm volume, tungod kay kini dali nga mapalapad sa ulahi. Girekomenda ko nga adunay 50% nga libre nga espasyo sa disk nga adunay NILFS2 alang sa disente nga giladmon sa bersyon.

lvcreate -V10G -T nvme/thin -n home

ug gi-format kini sa 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 !!

Pagkahuman niini, kinahanglan nimo nga kopyahon ang tanan nga datos gikan sa karon / balay.

Gibuhat nako kini dayon pagkahuman sa pag-boot sa kompyuter, sa wala pa mag-log in sa akong account, ingon nga gamut nga tiggamit. Kon ako mag log in isip akong user, ang ubang mga programa mag-abli sa mga socket ug files sa akong user /home/user folder, nga makapalisod sa limpyo nga kopya. Sama sa imong nahibal-an, ang home folder alang sa root user kasagaran nahimutang sa / root path, mao nga walay mga file nga maablihan sa / home partition.

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

Alang sa katapusang linya, tan-awa usa ka artikulo.

Sunod atong i-edit ang /etc/fstab, diin ang file system para sa /home gi-mount, sa

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

Kapilian noatime gikinahanglan aron mapauswag ang pasundayag aron dili mausab ang oras sa matag pag-access sa file. Sunod atong reboot.

Mga tipo sa mga imahe sa NILFS2.

Ang regular nga snapshot nga walay resistensya sa pagtangtang gitawag nga checkpoint o recovery point.
Ang snapshot nga giprotektahan gikan sa auto-deletion gitawag nga snapshot, unya snapshot lang.

Ang pagtan-aw sa mga checkpoint gihimo gamit ang lscp command

Tan-awa ang mga snapshot lscp -s

Makahimo kami og mga snapshot ug mga checkpoint sa among kaugalingon bisan unsang orasa gamit ang:

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

Gipahiuli namon ang datos.

Gitugotan kami sa NILFS sa pag-mount sa daghang mga daan nga mga snapshot nga gusto namon nga parehas sa pagtrabaho kauban ang panguna nga sanga sa FS. Pero sa read mode lang.

Ang tanan gihan-ay sama niini. Ang mga regular nga checkpoint nga gihimo sa NILFS2 mahimong awtomatiko nga mapapas bisan unsang orasa (kung mahurot na ang espasyo sa disk o sumala sa mga lagda sa nilfs_cleanerd), mao nga sa dili pa i-install kinahanglan naton i-convert ang checkpoint sa usa ka snapshot o, sa pagsulti sa Russian, kuhaa ang snapshot.

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

Human niana, mahimo natong i-mount ang snapshot, pananglitan, sama niini:

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

Pagkahuman gikopya namo ang gipahiuli nga mga file gikan sa snapshot sa /home.
Ug pagkahuman among tangtangon ang dili pagtangtang nga bandila gikan sa snapshot aron sa umaabot ang awtomatik nga tigkolekta sa basura makatangtang sa karaan nga datos:

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

Mga gamit alang sa NILFS2

Apan mao kini ang problema. Oo, siyempre, makahimo kita og file system, usbon ang gidak-on niini online, tan-awon ang listahan sa mga challengepoints, paghimo ug pagtangtang niini. Ang nilfs2-utils nga pakete naghatag og gamay nga set sa gentleman.

Tungod kay gipugngan sa NTT ang pondo niini, wala’y paspas nga ubos nga lebel nga mga utilities nga nagtugot kanimo sa pagpakita sa kasaysayan sa mga pagbag-o sa file o paghimo og kalainan tali sa mga snapshot.

Akong n2u utility

Aron mapuno kini nga haw-ang akong gisulat imong n2u utility, nga mahimong magpakita sa kasaysayan sa mga pagbag-o sa usa ka piho nga file/direktoryo:

n2u log filename

Ang output sama niini:

          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

Kini dali nga molihok alang sa gipili nga pamaagi sa pagpatuman: nangita kini mga kalainan tali sa mga file gamit ang pamaagi sa bisection, paspas nga pag-mount ug pagtandi sa file / direktoryo sa lainlaing mga snapshot.

Mahimo nimong itakda ang lainlaing mga checkpoint gamit ang yawe -cp CP1:CP2 o -cp {YEAR-MM-DD}:{YEAR-MM-DD}.

Makita usab nimo ang kalainan tali sa mga checkpoint alang sa usa ka piho nga file o direktoryo:

n2u diff -r cp1:cp2 filename

Mahimo nimong ipakita ang tibuuk nga kronolohiya sa mga pagbag-o: tanan nga mga kalainan tali sa mga checkpoint sa usa ka piho nga file / direktoryo:

n2u blame [-r cp1:cp2] filename

Gisuportahan usab ang agwat sa petsa niini nga sugo.

Usa ka singgit sa mga developers

Adunay daghang mga espesyalista sa Habré. Palihug tapusa ang NILFS2. Paghimo og replikasyon, ubos nga lebel nga paspas nga kalainan tali sa mga rebisyon, pag-reflink ug uban pang mga butang!

mga pakisayran

Opisyal nga website sa NILFS.

Mga tipiganan:
NILFS2.
NILFS2 utilities ug modules.

Mga newsletter:
E-mail newsletter para sa mga developer sa NILFS2. ID alang sa suskrisyon sa linux-nilfs.
Archive sa newsletter.

nilfs_cleanerd giya sa pag-setup.
Pag-benchmark sa EXT4, Btrfs, XFS & NILFS2 Mga Pagsulay sa Pagganap.

Salamat:

  • Mga developer sa NILFS2: Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi ug Satoshi Moriai. Ang ubang dagkong mga tigtampo mao sila: Andreas Rohner, Dan McGee, David Arendt, David Smid, dexen deVries, Dmitry Smirnov, Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, Vyacheslav Dubeyko.
  • Ngadto sa Amblin Entertainment ug Universal Pictures para sa nindot nga serye sa mga pelikula. "Balik sa Umaabot". Ang unang hulagway sa post gikuha gikan sa salida nga "Back to the Future 3".
  • Mga kompanya RUVDS alang sa suporta ug oportunidad sa pagmantala sa imong blog sa Habré.

PS Palihug ipadala ang bisan unsang mga sayup nga imong namatikdan sa usa ka pribado nga mensahe. Nadugangan ko ang akong karma niini.

Mahimo kang mag-eksperimento sa NILFS2 pinaagi sa pag-order sa usa ka virtual machine gikan sa RUVDS uban sa kupon sa ubos. Alang sa tanan nga bag-ong mga kliyente adunay usa ka libre nga panahon sa pagsulay nga 3 ka adlaw.

NILFS2 - usa ka bulletproof file system alang sa /home

Source: www.habr.com

Idugang sa usa ka comment