NILFS2 - e bulletproof Dateiesystem fir /home

NILFS2 - e bulletproof Dateiesystem fir /home

Wéi Dir wësst, wann Ierger ka geschéien, wäert et definitiv geschéien. Wahrscheinlech hat jiddereen Fäll wou eng rezent wichteg Datei zoufälleg geläscht gouf, oder Text zoufälleg ausgewielt an an engem Texteditor zerstéiert gouf.

Wann Dir en Hoster oder Websäit Besëtzer sidd, dann hutt Dir wahrscheinlech Hacking vu Benotzerkonten oder Är Websäit begéint. An esou Fäll ass et wichteg d'Chronologie ze restauréieren, d'Method fir d'Entrée ze fannen an d'Schwachheet, déi vum Ugräifer benotzt gëtt.

Den NILFS2 Dateisystem ass perfekt fir sou Probleemer ze léisen.

Et ass präsent am Linux Kernel zënter Versioun 2.6.30.

D'Besonderheet vun dësem Dateiesystem ass datt et ähnlech wéi e Versiounskontrollsystem ass: Dir kënnt ëmmer den Zoustand vum System zréckrollen a kucken wéi et virun enger Zäit war.

Fir dës Funktionalitéit ze bidden, musst Dir keng Cron Scripte konfiguréieren, Snapshots maachen, etc. Den NILFS2 Dateiesystem mécht dëst alles selwer. Et iwwerschreift ni al Daten a schreift ëmmer op nei Gebidder vun der Disk wann et genuch fräi Plaatz ass. Ganz am Aklang mam Copy-on-Write Prinzip.

Tatsächlech erstellt all Ännerung vun enger Datei automatesch en neie Snapshot vum Dateiesystem, sou datt Dir dës FS als Zäitmaschinn benotze kënnt an den Zoustand vun de Dateien zréckspullt.

Geschicht

NILFS2 - e bulletproof Dateiesystem fir /homeNILFS2 gouf am Déiften vun entwéckelt Nippon Telegraph and Telephone Corporation, Tatsächlech, de Staat-Besëtz (et huet eng Kontroll Aktionär) an de gréisste Telekommunikatioun Firma a Japan. Méi spezifesch, an de CyberSpace Laboratoiren ënner der Leedung Ryusuke Konishi.

Fir wat se genee entwéckelt gouf ass onbekannt, et kann een awer dovun ausgoen, datt esou e FS mat senger "Zäitmaschinn" Funktionalitéit ideal ass fir Daten ze späicheren, déi d'Geheimdéngscht an d'Geheimdéngschter wëlle gräifen, fir dat ganzt Bild ze widderhuelen. SMSen, E-Mailen, etc....

NILFS2 ass och potenziell e ganz wäertvollt Tool fir intern Sécherheetsservicer, well et Iech erlaabt all geläschte Bréiwer an der Mail-Datebank ze recuperéieren, andeems d'Jambs vu Mataarbechter opgedeckt ginn, déi duerno probéieren se ze verkleeden andeems se hir Dateien läschen oder änneren.

Wéi kënnt Dir Är ganz Korrespondenzgeschicht verfollegen?Op Linux Serveren (an dat ass wou NILFS2 fir intern Sécherheetszwecker installéiert soll ginn), gëtt d'Dateimethod fir E-Mailen ze späicheren ganz dacks benotzt fir E-Mail Messagen ze späicheren. De sougenannte Format Maildir. Genuch ze setzen Courrier Mail Server a konfiguréieren Maillagerung an Maildir. Aner Format mbox ass eng grouss Textdatei déi einfach an eenzel Messagen parséiert ka ginn.

Wann de Mail-Server eng Datebank benotzt, da wäert NILFS2 et méiglech maachen de genauen Timing vun den Datenbankännerungen an d'Fäegkeet fir d'Datebank zu engem vun dësen Momenter ze restauréieren. An da musst Dir Datebank Tools benotzen fir ze kucken wat et zu deem Zäitpunkt war ...

Allerdéngs ass eppes falsch gaang. Entweder d'japanesch Regierung huet sech Gedanken iwwer d'Iwwerwaachung vun jidderengem geännert (a la de Yarovaya Prinzip), oder d'Leeschtung vun NILFS2 op traditionellen HDDs huet sech ënner der Par erausgestallt, an NILFS2 gouf ënner der GPL Lizenz verëffentlecht a ganz séier an de Linux Kernel erakomm, well et waren keng speziell Reklamatiounen iwwer de Code geschriwwen héichqualifizéiert Japanesch, d'Entwéckler vum Linux Kernel hunn et net.

Wéi ass NILFS2?

Aus enger Benotzungssiicht: op engem Versiounskontrollsystem SVN. All FS Checkpoint ass e Verpflichtung deen automatesch ouni de Benotzer säi Wëssen gemaach gëtt wann et eng Ännerung ass: sief et Läschen, den Inhalt vun enger Datei änneren oder d'Zougangsrechter änneren. All Engagement huet eng Zuel déi linear eropgeet.

Vun engem Programméierer Siicht: engem kreesfërmeg Puffer. De Dateiesystem sammelt Ännerungen a schreift se an e Stéck gläich wéi ongeféier 8 MB (2000 * 4096, wou 2000 d'Zuel vun Elementer am Block ass an 4096 d'Gréisst vun der Erënnerungssäit ass). De ganzen Disk ass an esou Stécker opgedeelt. D'Opnahm geet sequenziell weider. Wann de fräie Raum leeft, ginn déi eelst Schnappschëss geläscht an d'Stécker iwwerschriwwen.

Basis NILFS2 Goodies

  • Versioun!!!
  • D'Prozedur fir e Dateiesystem no engem Versoen ze restauréieren ass einfach: beim Luede gëtt de leschte Stéck gesicht deen de richtege Checksum huet, an e Superblock ass drop installéiert. Dëst ass eng bal direkt Operatioun.
  • Wéinst der Tatsaach, datt d'Opnam ëmmer linear weidergeet, dann:
    • kann gutt Resultater weisen wann Dir op enger SSD mat luesen zoufälleg Schreiwen leeft.
    • NILFS2 spuert SSD Ressource, well et bal kee Schreifmultiplikatiounsfaktor gëtt.
      Méi präzis ass et net méi wéi 2.D'Tatsaach ass datt wann Dir de ganzen Disk zyklesch nei schreift, wäert NILFS2 onverännerbar Daten op nei Stécker (Stécker) transferéieren.

      Wa mir 10% vun onverännert Daten op der Disk hunn, da kréie mir eng 10% Schreiferhéijung mat 1 komplette Rewrite. Gutt, eng 50% Erhéijung bei 50% Fülle vum Apparat fir 1 komplette Rewrite vun der Scheif.

      De maximale Schreifgewënn ass 2. Dëst ass ganz niddereg wann Dir bedenkt datt alles sequenziell geschriwwe gëtt. Am Allgemengen wäert d'Schreifanimatioun manner sinn wéi déi vun engem konventionelle fragmentéierte Dateiesystem mat engem 4096-Byte Sektor. (Gedanke inspiréiert vun kommentéieren).

  • Potenziell Liichtegkeet vun der Implementatioun vun der Replikatioun op eng Remote NILFS2 FS

NILFS2 fir / doheem

An Unix-ähnleche Betribssystemer gëtt et als Regel en /home Dossier an deem Benotzerdaten gespäichert sinn. Verschidde Programmer späicheren hir Benotzerspezifesch Astellungen an dësem Dossier.

A wien, wann net Benotzer, mécht Feeler am meeschten? Dofir, wéi se soen, Gott selwer bestallt d'Benotzung vun NILFS2 op / doheem.

Ausserdeem, mat der verbreeter Notzung vun SSDs, musse mir elo keng Suergen méi iwwer schwéiere Réckzuch wann Dir CoW Dateisystemer benotzt.

Jo, mir kënnen FS-Snapshots esou dacks erstellen wéi mir an ZFS an BTRFS wëllen, awer et besteet ëmmer e Risiko datt eng verluerene Dateiännerung tëscht de Schnappschëss enden. An d'Biller mussen nach verwalt ginn: déi al mussen geläscht ginn. An NILFS2 geschitt all dat automatesch, wuertwiertlech all puer Sekonnen.

Ech hunn e logesche Volumen mat lvcreate erstallt (an der nvme Volume Grupp, dënn Pool dënn). Ech recommandéieren et um lvm Volumen ze kreéieren, well et spéider einfach erweidert ka ginn. Ech recommandéieren 50% fräi Plaatz Plaz mat NILFS2 fir anstänneg Versioun Déift.

lvcreate -V10G -T nvme/thin -n home

an et an NILFS2 formatéiert:

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 !!

Duerno musst Dir all Daten aus dem aktuellen /home kopéieren.

Ech hunn dat direkt nom Start vum Computer gemaach, ier ech a mengem Kont aloggen, als Root Benotzer. Wann ech mech als mäi Benotzer aloggen, géifen e puer Programmer Sockets a Dateien am /home/user Dossier vu mengem Benotzer opmaachen, wat eng propper Kopie schwéier mécht. Wéi Dir wësst, ass den Dossier doheem fir de Root Benotzer normalerweis um /root Wee, sou datt keng Dateien op der /home Partition opmaachen.

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

Fir déi lescht Zeil, kuckt Artikel.

Als nächst änneren mir /etc/fstab, an deem de Dateiesystem fir /home montéiert ass, op

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

Optioun noatime néideg fir d'Performance ze verbesseren, sou datt d'Zäit net mat all Dateizougang ännert. Als nächst restarte mir.

Zorte vu Biller an NILFS2.

E reegelméissege Snapshot ouni Immunitéit fir d'Läschung gëtt e Checkpoint oder Erhuelungspunkt genannt.
E Snapshot geschützt vun der automatescher Läschung gëtt e Snapshot genannt, dann einfach e Snapshot.

Checkpoints kucken gëtt mam lscp Kommando gemaach

Kuckt Schnappschëss lscp -s

Mir kënnen Snapshots a Checkpoints selwer zu all Moment erstellen andeems Dir:

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

Mir restauréieren Daten.

NILFS erlaabt eis sou vill al Schnappschëss ze montéieren wéi mir wëllen parallel mat der Aarbecht mat der Haaptfs-Branche. Awer nëmmen am Liesmodus.

Alles ass esou arrangéiert. Regelméisseg Kontrollpunkten, déi NILFS2 mécht, kënnen zu all Moment automatesch geläscht ginn (wann d'Plaz vum Disk leeft oder no den nilfs_cleanerd Reegelen), also virun der Installatioun musse mir de Checkpoint an e Snapshot ëmsetzen oder, op Russesch schwätzen, de Snapshot erfaassen.

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

Duerno kënne mir de Snapshot montéieren, zum Beispill, sou:

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

Duerno kopéiere mir déi restauréiert Dateien aus dem Snapshot op /home.
An duerno hu mir den Net-Läsche-Fändel aus dem Snapshot ewechgeholl, fir datt an Zukunft den automateschen Dreckstécker déi aktuell Donnéeën ewechhuelen kann:

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

Utilities fir NILFS2

Awer dëst ass de Problem. Jo, natierlech kënne mir e Dateiesystem erstellen, seng Gréisst online änneren, d'Lëscht vun den Erausfuerderungspunkte kucken, se erstellen a läschen. Den nilfs2-utils Package bitt e minimale Gentleman's Set.

Zënter datt NTT seng Finanzéierung ofgeschnidden huet, ginn et keng séier Low-Level Utilities, déi Iech erlaben d'Geschicht vun de Dateiännerungen ze weisen oder d'Differenz tëscht Snapshots ze maachen.

Meng n2u Utility

Fir dëse Vakuum ze fëllen, hunn ech geschriwwen Ären n2u Utility, déi d'Geschicht vun Ännerungen an engem spezifesche Fichier/Verzeichnis weisen kann:

n2u log filename

D'Ausgab ass sou eppes:

          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

Et funktionnéiert zimmlech séier fir déi gewielte Implementéierungsmethod: et sicht no Differenzen tëscht Dateien mat der Bisektiounsmethod, séier montéiert a vergläicht d'Datei / Verzeechnes a verschiddene Schnappschëss.

Dir kënnt eng Rei vu Kontrollpunkte mat dem Schlëssel setzen -cp CP1:CP2 oder -cp {YEAR-MM-DD}:{YEAR-MM-DD}.

Dir kënnt och den Ënnerscheed tëscht Kontrollpunkte fir eng spezifesch Datei oder Verzeechnes gesinn:

n2u diff -r cp1:cp2 filename

Dir kënnt d'ganz Chronologie vun den Ännerungen weisen: all Differenzen tëscht de Kontrollpunkte vun engem spezifesche Fichier/Verzeechnes:

n2u blame [-r cp1:cp2] filename

Datumintervall an dësem Kommando gëtt och ënnerstëtzt.

E Gejäiz un d'Entwéckler

Et gi vill Spezialisten op Habré. W.e.g. fäerdeg NILFS2. Maacht Replikatioun, nidderegen Niveau séier Ënnerscheed tëscht Versiounen, Relink an aner Goodies!

Referenze

Offiziell NILFS Websäit.

Repositories:
NILFS 2.
NILFS2 Utilities a Moduler.

Newsletter:
E-Mail Newsletter fir NILFS2 Entwéckler. ID fir Linux-nilfs Abonnement.
Newsletter Archiv.

nilfs_cleanerd Setup Guide.
Benchmarking EXT4, Btrfs, XFS & NILFS2 Performance Tester.

Unerkennungen:

  • NILFS2 Entwéckler: Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi a Satoshi Moriai. Aner grouss Mataarbechter sinn: Andreas Rohner, Dan McGee, David Arendt, David Smid, dexen deVries, Dmitry Smirnov, Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, Vyacheslav Dubeyko.
  • Zu Amblin Ënnerhaalung an Universal Biller fir eng wonnerbar Serie vu Filmer. "Zréck an d'Zukunft". Déi éischt Foto vum Post ass aus dem Film "Back to the Future 3" geholl.
  • Firmen RUVDS fir Ënnerstëtzung an d'Méiglechkeet op Ärem Blog op Habré ze publizéieren.

PS Schéckt w.e.g. all Feeler déi Dir bemierkt an engem privaten Message. Ech erhéijen mäi Karma fir dëst.

Dir kënnt mat NILFS2 experimentéieren andeems Dir eng virtuell Maschinn bestellt RUVDS mam Coupon hei drënner. Fir all nei Clienten gëtt et eng gratis Testperiod vun 3 Deeg.

NILFS2 - e bulletproof Dateiesystem fir /home

Source: will.com

Setzt e Commentaire