Btrfs

Introducere în sistemul de fișiere Btrfs

Introducere în sistemul de fișiere Btrfs
Btrfs (B-Tree Filesystem) este un sistem de fișiere modern copiat pe scriere (CoW) pentru Linux. Btrfs își propune să implementeze multe caracteristici avansate ale sistemului de fișiere, concentrându-se în același timp pe toleranță la erori, reparații și administrare ușoară. Sistemul de fișiere btrfs este conceput pentru a suporta cerința de servere de stocare mari și de înaltă performanță. Este potrivit pentru centre de date la scară petabyte, precum și pentru smartphone-uri celulare.În acest articol, voi discuta sistemul de fișiere Btrfs și caracteristicile sale. Asadar, haideti sa începem.

Copiere pe scriere - Sistem de fișiere CoW:

Btrfs este un sistem de fișiere copy-on-write (CoW). Într-un sistem de fișiere CoW, atunci când încercați să modificați datele de pe sistemul de fișiere, sistemul de fișiere copiază datele, modifică datele și apoi scrie datele modificate înapoi într-o altă locație gratuită a sistemului de fișiere.

Principalul avantaj al sistemului de fișiere Copy-on-Write (CoW) este că dimensiunea datelor pe care dorește să o modifice este copiată într-o locație diferită, modificată și stocată într-o amploare diferită a sistemului de fișiere. Extinderea datelor originale nu este modificată. Deci, sistemul de fișiere btrfs poate elimina riscul de corupție a datelor sau de actualizare parțială în caz de întrerupere a alimentării în timpul modificării datelor, deoarece datele originale sunt păstrate neschimbate.

Principalul dezavantaj al sistemului de fișiere Copy-on-Write (CoW) este că fișierele mari tind să se fragmenteze pe măsură ce sunt modificate. Deci, defragmentarea este necesară din când în când. Din fericire, sistemul de fișiere btrfs acceptă defragmentarea online. Deci, nu trebuie să demontați sistemul de fișiere pentru a defragmenta un sistem de fișiere btrfs.

Principalele caracteristici ale sistemului de fișiere Btrfs:

Principalele caracteristici ale sistemului de fișiere Btrfs sunt:

i) Stocare bazată pe fișiere: Într-un sistem de fișiere bazat pe extensie, unitatea de stocare se numește extindere. O măsură este o zonă contiguă de stocare care este rezervată pentru un fișier. Un fișier necesită o singură măsură, indiferent cât de mic este fișierul. Pentru fișierele mai mari (dimensiunea fișierului mai mare decât dimensiunea extensiei), vor fi necesare mai multe extensii. Pentru fișierele mai mari, metadatele vor fi utilizate pentru a urmări măsurile pe care le folosește fișierul. În sistemul de fișiere Btrfs, metadatele au o dimensiune semnificativ mai mică. Metadatele mai mici îmbunătățesc eficiența stocării și performanța sistemului de fișiere.

ii) Suport imens pentru dimensiunea fișierului: Într-un sistem de fișiere Btrfs, un singur fișier poate avea aproximativ 264 octeți sau 16 EiB (exbibite) în dimensiune. Indiferent cât de mare devine fișierul dvs., Btrfs îl poate susține.

iii) Ambalarea eficientă a spațiului a fișierelor mici: În mod normal, indiferent cât de mic este un fișier, va fi nevoie de un bloc sau o singură măsură pentru a stoca fișierul. Acest lucru pierde mult spațiu pe disc. Pentru a rezolva această problemă, sistemul de fișiere Btrfs încorporează fișiere mai mici în metadate pentru a stoca în mod eficient fișiere mai mici.

iv) Directoare indexate eficiente din punct de vedere spațial: Directoarele sistemului de fișiere btrfs sunt indexate în două moduri diferite. Pentru căutarea numelui de fișier, se utilizează indexarea bazată pe cheie. Pentru a face referință la date, se utilizează indexarea cheilor bazată pe inode. Indexarea pe două niveluri îmbunătățește performanța căutării directorului / fișierului și reduce cerințele de stocare pentru indexuri.

v) Alocarea dinamică a inodului: Aveți nevoie de 1 inod pentru a face referire la 1 fișier. Multe sisteme de fișiere (i.e., Ext4) au un număr fix de inode. Deci, dacă creați prea multe fișiere mici, este posibil să aveți mult spațiu pe disc, dar nu veți putea crea fișiere noi. De asemenea, nu puteți crește numărul maxim de inode odată ce sistemul de fișiere este creat.

Btrfs rezolvă această problemă prin alocarea inodurilor dinamic pe măsură ce sunt necesare. Deci, puteți crea câte fișiere doriți, atâta timp cât aveți spațiu liber pe disc.

vi) Instantanee scrise și instantanee numai în citire: Sistemul de fișiere Btrfs acceptă instantanee. Puteți face un instantaneu al sistemului de fișiere curent, pe care îl puteți utiliza pentru a vă restabili datele dacă ați eliminat din greșeală unele fișiere sau ați corupt unele date.

În mod implicit, instantaneele btrfs sunt numai în citire. După ce ați realizat un instantaneu numai în citire, nu puteți schimba niciun fișier / director din acel instantaneu. În orice caz, dacă doriți să schimbați orice fișier / director după ce ați făcut o captură a sistemului de fișiere Btrfs existent, puteți schimba instantaneul numai în citire într-un instantaneu care poate fi scris și să modificați orice fișiere / directoare din acel instantaneu.

vii) Subvolumele: Un sistem de fișiere Btrfs poate avea multe subvolumuri. Un subvolum este un arbore binar numit (arborele B) (sau rădăcină internă / logică a sistemului de fișiere) a arborelui rădăcină existent al sistemului de fișiere (principal) al sistemului de fișiere btrfs. Un subvolum nu este un dispozitiv bloc propriu. Dar, puteți monta subvolumele Btrfs individual. Vă puteți gândi la subvolumele ca la spații de nume.

viii) Suport volumul suport cota conștientizată: Puteți aloca cote și pentru subvolumele. După depășirea cotei, nu veți mai putea adăuga date noi în subvolum. Nu veți avea nevoie de programe separate pentru a crea cote de subvolum Btrfs.

ix) Sume de control privind datele și metadatele: Pentru a evita corupția datelor, Btrfs folosește în mod implicit algoritmi crc32c checksum pentru date și metadatele sistemului de fișiere. Sumele de verificare sunt stocate în sistemul de fișiere pentru a verifica automat erorile sistemului de fișiere și corupțiile de date în fundal.

Btrfs are suport pentru mulți alți algoritmi de sumă de control: xxhash, sha256 și blake2b.

x) Compresie: Sistemul de fișiere Btrfs acceptă compresia de fișiere transparentă. Comprimarea și decompresia fișierelor dintr-un sistem de fișiere btrfs se fac automat în fundal.

Btrfs acceptă 3 algoritmi de compresie: ZLIB, LZO și ZSTD.

ZLIB este metoda implicită de compresie a sistemului de fișiere btrfs.

xi) Suport integrat pentru mai multe dispozitive: Sistemele de fișiere Btrfs au suport pentru managerul de volum logic (LVM) încorporat. Puteți adăuga mai multe dispozitive de stocare într-un singur sistem de fișiere btrfs. De asemenea, puteți configura matrice RAID pe sistemul de fișiere btrfs fără a avea nevoie de niciun software suplimentar.

Sistemul de fișiere Btrfs acceptă striping-ul de date, oglindirea datelor, striping-ul + oglindirea și implementările cu paritate simplă și duală.

Strisire date: Dacă ați adăugat mai multe dispozitive de stocare în același sistem de fișiere btrfs, btrfs poate stoca același fișier pe diferite dispozitive fizice / partiții. Aceasta se numește striping de date. Strisirea datelor îmbunătățește performanța de citire / scriere a sistemului de fișiere. RAID-0 folosește extensiv caracteristica de stripare a datelor.

Oglindirea datelor: Dacă ați adăugat mai multe dispozitive de stocare în același sistem de fișiere btrfs, toate datele scrise pe un dispozitiv de stocare vor fi scrise pe toate celelalte dispozitive de stocare. Aceasta se numește oglindirea datelor. RAID-1 utilizează caracteristica de oglindire a datelor pe scară largă.

Strisire date + paritate unică: RAID-5 folosește striparea datelor și o paritate distribuită unică. Dacă ați adăugat mai multe dispozitive de stocare într-un sistem de fișiere btrfs, atunci RAID-5 va elimina datele de pe mai multe dispozitive de stocare și va calcula și va stoca blocuri de paritate pe dispozitivele de stocare. RAID-5 poate suporta o singură defecțiune a unității.

Strisire date + dublă paritate: RAID-6 utilizează striping-ul de date și paritate distribuită dublă. Dacă ați adăugat mai multe dispozitive de stocare într-un sistem de fișiere btrfs, atunci RAID-6 va elimina datele pe mai multe dispozitive de stocare și va calcula și va stoca blocuri cu paritate dublă pe dispozitivele de stocare. RAID-6 poate suporta două defecțiuni ale unității. În afară de asta, este la fel ca RAID-5 (date striping + paritate unică).

Strisire date + oglindire: RAID-10 folosește în același timp fâșierea datelor și oglindirea datelor. RAID-10 necesită adăugarea unui număr par de dispozitive de stocare de aceeași dimensiune la un singur sistem de fișiere btrfs. Numărul minim de dispozitive de stocare pe care le puteți adăuga pe un sistem de fișiere btrfs RAID-10 este 4. Jumătate din dispozitivul de stocare va fi utilizat pentru striparea datelor, iar cealaltă jumătate va fi utilizată pentru oglindirea datelor din prima jumătate a dispozitivelor de stocare (unde datele sunt stripate).

xii) Conștientizarea și optimizările SSD: Sistemul de fișiere btrfs este conștient de SSD și are câteva caracteristici de optimizare SSD. Sistemul de fișiere btrfs are, de asemenea, suport TRIM / Discard pentru dispozitivele de stocare SSD.

Funcția TRIM poate detecta și marca extensiile de date care nu mai sunt utilizate. Odată ce extensiile sunt marcate, sistemul de fișiere btrfs le poate șterge automat, astfel încât celelalte fișiere să poată utiliza aceste extensii de date.

Funcția de renunțare va elimina toate datele extinse ale SSD-ului. Dacă doriți să vindeți SSD-ul, această caracteristică poate fi utilă.

xiii) Backup incremental eficient: Btrfs acceptă backup incremental. Prima dată când faceți o copie de rezervă a unui sistem de fișiere btrfs, acesta face o captură a sistemului de fișiere curent. Apoi, orice copie de rezervă ulterioară va fi comparată cu primul instantaneu și doar modificările vor fi stocate pe disc. Deci, orice copie de rezervă ulterioară va ocupa mai puțin spațiu pe disc, iar copiile de siguranță vor fi mai rapide.

xiv) Scrub de fundal: Este un proces de sistem de fișiere Btrfs folosit pentru a găsi și remedia erorile pe fișierele care au copii redundante (copii multiple) stocate în sistemul de fișiere Btrfs.

xv) Defragmentarea sistemului de fișiere online: Am explicat mai devreme cum funcționează sistemul de fișiere Btrfs Copy-on-Write. Fișierele mari sunt stocate în mai multe extinderi ale sistemului de fișiere Btrfs. Pe măsură ce modificați fișiere mari, extensiile care urmează să fie modificate sunt copiate în diferite extensii libere ale sistemului de fișiere și modificate acolo. Deci, extensiile de date nemodificate sunt păstrate și în cazul în care sunt necesare pentru recuperarea sistemului de fișiere. Acest lucru determină fragmentarea (extensiile de date ale unui fișier mare nu vor fi continue și vor fi împrăștiate pe întregul dispozitiv de stocare) pe sistemul de fișiere pe măsură ce fișierele mari sunt modificate. Prea multă fragmentare are un impact negativ asupra sistemului de fișiere (face ca operațiunea de citire / scriere a sistemului de fișiere să fie mai lentă).

Pentru a rezolva această problemă, sistemul de fișiere btrfs acceptă defragmentarea sistemului de fișiere online. Cu defragmentarea online, nu trebuie să demontați sistemul de fișiere pentru a defragma sistemul de fișiere. Puteți menține sistemul de fișiere în funcțiune și îl puteți defragmenta. Defragmentarea va muta extensiile de fișiere în jurul sistemului de fișiere pentru a menține extensiile aceluiași fișier mare cât mai continuu posibil. Defragmentarea îmbunătățește performanța sistemului de fișiere.

xvi) Verificarea sistemului de fișiere offline: Sistemul de fișiere Btrfs are multe instrumente încorporate pe care le puteți utiliza pentru a verifica erorile sistemului de fișiere și a le remedia. De asemenea, puteți remedia un sistem de fișiere Btrfs defect (care nu poate fi montat) cu aceste instrumente.

xvii) Conversia la loc a sistemelor de fișiere Ext2 / 3/4 și ReiserFS existente: Sistemul de fișiere Btrfs are un utilitar încorporat btrfs-convert, pe care îl puteți utiliza pentru a converti un sistem de fișiere Ext2 / 3/4 și ReiserFS existent într-un sistem de fișiere Btrfs.

Programul de conversie a sistemului de fișiere Btrfs citește metadatele unui sistem de fișiere Ext2 / 3/4 (sau ReiserFS) existent, creează metadate Btrfs și le stochează pe sistemul de fișiere. Sistemul de fișiere păstrează atât Btrfs, cât și metadatele Ext2 / 3/4 (sau ReiserFS). Sistemul de fișiere Btrfs indică aceleași blocuri de fișiere utilizate de fișierele sistemului de fișiere Ext2 / 3/4 (sau ReiserFS). Sistemul de fișiere și blocurile de date existente sunt păstrate neatinse, deoarece Btrfs este un sistem de fișiere Copy-on-Write (CoW). Când un fișier este modificat, sistemul de fișiere Btrfs copiază blocurile de date originale în noi măsuri libere și le modifică acolo.

xviii) Dispozitive de însămânțare: Sistemul de fișiere Btrfs acceptă dispozitive seed. Puteți crea un sistem de fișiere numai în citire și îl puteți folosi ca șablon (dispozitiv de origine) pentru a crea alte sisteme de fișiere Btrfs. Avantajul acestui lucru este că doar datele modificate vor fi scrise în noul sistem de fișiere. Datele originale (pe dispozitivele de semințe) vor fi păstrate așa cum sunt. Această caracteristică poate fi utilizată pentru a economisi mult spațiu pe disc și redundanță de date.

xix) Trimiteți / primiți modificări ale subvolumului: Sistemul de fișiere btrfs poate trimite / primi modificări de subvolum. Sistemul de fișiere Btrfs poate trimite modificările incrementale ale unui subvolum către alt sistem de fișiere Btrfs (poate locui și pe un alt computer) care poate primi modificările subvolumului. Această caracteristică este utilizată pentru a realiza backup-uri incrementale ale sistemului de fișiere Btrfs, fie local, fie de la distanță. Această metodă este mai rapidă și mai eficientă decât rsync.

xx) Deduplicare în lot / în afara benzii: Sistemul de fișiere Btrfs acceptă deduplicarea în lot sau în afara benzii. Duplicarea are loc după ce un fișier este scris în sistemul de fișiere. Sistemul de fișiere Btrfs scanează activ întregul sistem de fișiere pentru măsuri identice și păstrează doar o copie a fiecărei extensii (elimină extensiile redundante / duplicate). Același principiu copy-on-write (CoW) este utilizat pentru această sarcină. Deduplicarea economisește o mulțime de spații pe disc.

xxi) Suport Swapfile: Dacă utilizați Linux Kernel 5.0 sau mai nou, puteți crea fișiere swap pe sistemul de fișiere Btrfs.

Există câteva limitări ale Swapfile într-un sistem de fișiere Btrfs:

- Fișierul swap trebuie alocat ca NoCoW (nu copy-on-write)

- Fișierul swap nu trebuie să aibă nici o compresie activată.

Stabilitatea sistemului de fișiere Btrfs:

Sistemul de fișiere Btrfs este dezvoltat activ de echipa Btrfs. Majoritatea caracteristicilor sistemului de fișiere sunt stabile în momentul scrierii. Unele dintre funcțiile avansate nu sunt încă suficient de stabile pentru un mediu de producție. Echipa Btrfs lucrează din greu pentru a rezolva aceste probleme de stabilitate.

Dacă doriți să utilizați sistemul de fișiere Btrfs pe serverul de producție, verificați pagina oficială Status - btrfs Wiki pentru a afla dacă caracteristicile sistemului de fișiere de care aveți nevoie sunt suficient de stabile pentru dvs. sau nu. De asemenea, asigurați-vă că rulați câteva teste înainte de implementarea finală a sistemului de fișiere Btrfs și nu uitați să păstrați copii de rezervă ale datelor importante. Păstrarea copiilor de rezervă este întotdeauna importantă pentru mediile de producție.

Înlocuirea viitoare a sistemului de fișiere Ext4:

Sistemul de fișiere Btrfs este dezvoltat rapid. Echipa de dezvoltare Btrfs se preocupă și de stabilitatea sistemului de fișiere. Deci, încearcă din răsputeri să-l facă cât mai stabil posibil în timp ce dezvoltă sistemul de fișiere btrfs. Odată ce sistemul de fișiere btrfs este complet dezvoltat și toate caracteristicile sunt suficient de stabile, acesta poate înlocui sistemul de fișiere Ext4.

Referințe:

[1] btrfs Wiki - https: // btrfs.wiki.nucleu.org / index.php / Main_Page
[2] BTRFS - Documentația Kernel Tree - https: // www.nucleu.org / doc / html / latest / filesystems / btrfs.html
[3] BTRFS - Glosar - https: // btrfs.wiki.nucleu.org / index.php / Glosar
[4] Caracteristicile sistemului de fișiere „Btrfs” - https: // www.thegeekdiary.com / caracteristici-ale-sistemului-de-fișiere btrfs /
[5] Compararea sistemelor de fișiere - https: // ro.wikipedia.org / wiki / Comparison_of_file_systems
[6] Proiectare Btrfs - btrfs Wiki - https: // btrfs.wiki.nucleu.org / index.php / Btrfs_design
[7] poate lipsirea inodurilor ar putea fi luată „mai în serios”? - https: // lwn.net / Articole / 724522 /
[8] Crearea unui Btrfs instantanee numai în citire înscriibile - https: // markandruth.co.uk / 2016/12/29 / making-a-btrfs-read-only-snapshot-writable
[9] Fază de date - https: // ro.wikipedia.org / wiki / Data_striping
[10] Întrebări frecvente - btrfs wiki - https: // btrfs.wiki.nucleu.org / index.php / FAQ
[11] Niveluri RAID standard - https: // ro.wikipedia.org / wiki / Standard_RAID_levels
[12] Trim (calcul) - https: // ro.wikipedia.org / wiki / Trim_ (calcul)
[13] Unitate de stare solidă - ArchWiki - https: // wiki.archlinux.org / index.php / Solid_state_drive # TRIM
[14] Btrfsck - btrfs Wiki - https: // btrfs.wiki.nucleu.org / index.php / Btrfsck
[15] Conversie din Ext3 / 4 și ReiserFS - btrfs Wiki - https: // btrfs.wiki.nucleu.org / index.php / Conversion_from_Ext3
[16] Backup incremental - btrfs Wiki - https: // btrfs.wiki.nucleu.org / index.php / Incremental_Backup
[17] Deduplicare - btrfs Wiki - https: // btrfs.wiki.nucleu.org / index.php / Deduplicare
[18] Stare - btrfs Wiki - https: // btrfs.wiki.nucleu.org / index.php / Status

Cursor jumps or moves randomly while typing in Windows 10
If you find that your mouse cursor jumps or moves on its own, automatically, randomly while typing in Windows laptop or computer, then some of these s...
How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...
How to change Mouse pointer and cursor size, color & scheme on Windows 10
The mouse pointer and cursor in Windows 10 are very important aspects of the operating system. This can be said for other operating systems as well, s...