sisteme de fișiere Linux

O serie de articole despre sisteme de fișiere Linux.

Un pic de teorie pentru a înțelege.

Puteți crea un fișier în interiorul care - linia „Fata Tanya a mers în celule.“ Salvați-l pe un sistem de fișiere normale, de exemplu, Ext4 sau NTFS. Acum, dacă deschideți un fișier și adăugați oa doua linie, „Din nou nu este necesar să se hrănească crocodil“, sistemul de fișiere, menținând în același timp pe deplin suprascrie versiunea anterioară a fișierului. Aceasta este, versiunea fișierului, în cazul în care există doar o singură linie, nu mai există.

Când doriți să citiți acest fișier, vedeți doar cea mai recentă versiune, dar cu ajutorul unor instrumente Btrfs este posibil să se întoarcă la starea sa. Astfel Btrfs poate păstra istoricul modificărilor aduse fiecărui fișier - eliminând nevoia de logare, Btrfs doar își amintește periodic starea FS, iar cea mai mică eroare este readusă la versiunea anterioară.

Utilizarea Btrfs în Ubuntu.

Ubuntu de instalare a sprijinit mult timp Btrfs, astfel încât nici o problema cu ea:

sisteme de fișiere Linux

Btrfs se ocupă de volume sau subvolume - cum ar fi secțiuni din sistemul de fișiere. „Oricare ar fi“ - pentru că volumele sunt mai mult ca cataloage decât în ​​secțiuni. Dar o astfel de director special poate fi montat ca o ramură. instalare Ubuntu creează un volum separat pentru sistem și pentru directorul de start:

sisteme de fișiere Linux

Acest lucru se face, deoarece este mult mai rapid și mai ușor pentru a menține starea unui întreg volum, decât starea fiecăruia dintre miile de fișiere în volum. A doua comandă arată că Btrfs @ volum și @Home creat, ci pentru a le vedea în managerul de fișiere nu va funcționa. Trebuie să montați mai întâi rădăcina Btrfs (a nu se confunda cu rădăcină de sistem):

sisteme de fișiere Linux

Ce se poate face cu volume Btrfs.

Economisiți spațiu pe disc.

Pentru fiecare volum, puteți activa compresia transparentă a unuia dintre cei doi algoritmi: zlib și LZO. Primul comprimă mai bine, dar al doilea ordin de mărime mai repede se execută. Pentru sistemele folosesc de obicei LZO și zlib are sens pe volume mari, care sunt rareori citite. Activați compresia mount opțiune compresa = LZO în fișierul / etc / fstab:

sisteme de fișiere Linux

După repornire, comprimarea va fi activat. Observați modul în care este montat în directorul specificat - prin opțiunea subvol = nuzhnyy_tom.

Asigurare de la un upgrade nu a reușit.

Înainte de fiecare sistem de actualizare am face un instantaneu al volumului sistemului. Iată cum ar putea arăta în Ubuntu:

sisteme de fișiere Linux

Puteți salva, și că, cu un director de origine, și în general orice volum. implicit Instantaneu Btrfs este deschis pentru intrări, dar puteți crea un instantaneu al unei numai citire:

sudo Btrfs subvolum instantaneu -r iskhodnyy_tom instantaneu

Imaginați-vă că după ce actualizați sistemul nu funcționează corect, sau nu se încarcă. Apoi, va trebui pur și simplu să specificați în / etc / fstab ultimul instantaneu ca volumul sistemului prin intermediul opțiunii subvol = nuzhnyy_tom. Acest lucru se poate face prin intermediul LiveCD.

Unul FS, pe cât mai multe unități.

Pentru o mașină virtuală cu Ubuntu, am creat o unitate virtuală. Imaginați-vă că în afara spațiului pe ea. În acest caz, am putea adăuga o altă unitate virtuală în setările VirtualBox, și apoi adăugați-l și Btrfs:

sisteme de fișiere Linux

Dupa cum se poate vedea, Btrfs aplicat automat modelul RAID1 - date otzerkalirovala pe unitatea adăugată, dar puteți modifica nivelurile RAID. Același lucru se poate face pe o mașină reală - pentru a adăuga sau elimina unități fără a fi nevoie de a repartiționarea și să le formatați din nou.

Utilizarea Btrfs pe SSD.

După cum sa menționat în articolul precedent, tehnologia COW conduce la o fragmentare ridicată a fișierelor - toate modificările în piesele lor scrise în locuri diferite FS. Acesta este motivul pentru care Btrfs (și ZFS), se recomandă a fi utilizat pe SSD, în cazul în care fragmentarea nu se simte.

Btrfs - destul de modern și sistemul de fișiere avansat, acesta susține SSD, cum se spune, „din cutie.“ Jurnalul de kernel, puteți vedea următoarele linii:

Potrivit ultima linie, se poate observa că Btrfs va determina ce este pe SSD, și SSD-urile încorporate în mod automat modul de a sprijini. Acest mod poate fi, de asemenea, activată opțiunea cu același nume pentru a monta. Cu acest mod de Btrfs prezintă o mare viteză de operații multithread.

Dar trebuie avut în vedere faptul că SSD-mode nu include suport pentru TRIM! Prin urmare, este necesar să fie include opțiunea de a monta decartare, sau ca in mod regulat rula un program de fstrim. Ubuntu are o unitate separată pentru systemd periodice de lucru în afara acestui program, îl puteți activa cu comanda:

sudo systemctl permite fstrim.timer

Prevenirea ratei de degradare.

În Btrfs are o caracteristică arhitecturală neplăcută: ea pachete mici fișiere direct în arborele de metadate. metadate din lemn este ceva de genul conținutul unei cărți sau a unui motor de căutare pe internet - în general, un lucru foarte important.

În mod implicit, arborele salvat fișiere mai mari de 4 KB, iar aici se află pericolul. Datorită faptului că dimensiunea fișierului nu este cunoscută în avans, iar gama de dimensiuni este largă, Btrfs arbore de metadate este în creștere puternic, care afectează în mod negativ viteza de sistem de fișiere.

Pentru a evita acest lucru, puteți limita foarte mult dimensiunea maximă a fișierului care va fi ambalate într-un copac. Acest lucru se face opțiunea de montare max_inline indicând în octeți dimensiunea fișierului - desigur, în fișierul / etc / fstab:

sisteme de fișiere Linux

Acum, copacul va fi salvat numai fișiere de până la 256 de octeți. Puteți dezactiva pachetul, specificând 0 după semnul „egal“.

De altfel, este util să dezactivați marcajele de timp de actualizare ori de câte ori este accesat un fișier. Aceasta este o opțiune noatime. Aceasta adaugă o viteză FS puțin, și un SSD mai mult sens pentru că reducerea numărului de intrări în ea.

Dezactivarea COW pentru volume și fișiere.

Dezactivarea COW poate fi la nivelul volumului utilizând opțiunile de montare nodatacow:

sisteme de fișiere Linux

Cu toate acestea, această opțiune poate să nu funcționeze din cauza sistemului complicat de dependențe între volumele de opțiuni de montare. În acest caz, puteți dezactiva COW la nivel de atribut fișier, cu comanda:

chattr -R + C nuzhnyy_katalog

S-ar părea că tasta «+ C» trebuie, în mod logic, includ COW, dar nu invers. Pentru a activa COW, doriți să aplicați aceeași comandă, dar cu cheia «-C».

Stare Analiza Btrfs.

De multe ori oamenii nu înțeleg cum să recunoască cantitatea de spațiu liber și utilizat pe Btrfs. Faptul este că, din cauza instantanee și de compresie utilitate obișnuită „merge nebun“ și arată date eronate. Prin urmare, este necesar să se utilizeze Btrfs de utilitate:

sisteme de fișiere Linux

Concluzia ei nu este foarte clar, astfel încât să examinăm rândurile.

Prima linie este scris volumul total alocat și spațiul folosit. Cuvântul «unică» înseamnă că Btrfs este utilizat pe o singură unitate. «Totală» arată cât de mult spațiu este disponibil, de asemenea, aceasta poate fi mult mai mică decât cantitatea totală de spațiu pe disc. Nu intrați în panică, doar Btrfs alocă porțiuni de spațiu. End-o singură porție - aceasta va fi alocată o mai mult. Ei bine, «folosit» arată cât de mult spațiu ocupat de fapt, pe sistemul de fișiere.

A doua linie arată cantitatea de spațiu ocupat de rezervă de sistem. Ceva similar există în Ext4.

A treia linie este interesantă - este posibil pentru a vedea cât de mult este nevoie de același arbore de metadate. Captura de ecran arată că lemnul este alocat 2 GB, din care aproximativ 600 MB ocupat. Aceste cifre sunt luate în considerare în primul rând.

În cele din urmă, în al patrulea rând afișează informații despre zona de rezervă, dar cele mai multe legate de Btrfs. Este necesar să se asigure că, chiar și în FS complet infundate pot fi eliminate și de a crea volume și instantanee.

Deci, pentru a afla cât de mult spațiu de fapt ocupat pe Btrfs, trebuie să se uite la cifra «utilizată» în prima linie a ieșirii de comandă:

sudo Btrfs sistem de fișiere df nuzhnyy_put

Ați putea dori, de asemenea: