Tipuri de sisteme de fișiere

Sistemul de operare Linux suportă un număr imens de tipuri diferite de sisteme de fișiere. Din punctul de vedere al Linux, sistemele de fișiere pot fi împărțite în patru grupe:

  • Sisteme de fișiere "nativ". Înseamnă că sistemul de fișiere acceptă toate atributele specifice pentru Linux: drepturi de acces, timbre, informații despre proprietarul fișierului etc.
  • Sisteme de fișiere "non-native". Adică sisteme de fișiere care nu suportă atributele Linux;
  • Virtual. Acestea sunt sisteme de fișiere care nu au suport fizic;
  • Sisteme de fișiere de rețea.

Pentru sistemele de fișiere "native" este posibil să poarte:

Sistemul de fișiere ext2

- Da, este același lucru, singurul sistem de fișiere care îmi convine complet.

În plus, ext2 are limitări grave:

  • Dimensiunea maximă a fișierului este 2048 GB.
  • Dimensiunea maximă a sistemului de fișiere este de 32768 GB.
  • Numărul maxim de subdirectoare într-un singur director este 32768.

Sisteme de fișiere Journaled

Acum, sistemul de fișiere ext2 este aproape niciodată folosit. Și nu este chiar în limitele sale, ext2 este un sistem de fișiere destul de fiabil. Este vorba despre viteza de încărcare a serverelor Linux. Este necesar ca serverul să funcționeze în mod constant. Dar miracolele nu se întâmplă, uneori serverul trebuie să fie supraîncărcat. Sarcina dvs. este să vă asigurați că, după căderea sistemului, acestea vor fi supraîncărcate cât mai repede posibil. Când serverul este pornit, discurile sunt verificate. Procedura de verificare a sistemelor de fișiere, în special a celor mari, este o procedură destul de lungă. Dacă există mai multe astfel de sisteme de fișiere, atunci verificarea acestora poate dura foarte mult timp. Și serverul ar trebui să funcționeze!

Pentru a reduce timpul petrecut în timpul verificării și pentru a crește fiabilitatea, s-au dezvoltat sisteme de fișiere de jurnalizare. Dacă ați lucrat cu baze de date, probabil știți un astfel de lucru ca o tranzacție. Mai multe instrucțiuni SQL sunt combinate într-o tranzacție. Sistemul trebuie să execute toți operatorii. Dacă cel puțin una dintre ele nu funcționează, sistemul revine la începutul tranzacției. Dacă sistemul a fost dezactivat în timpul tranzacției, atunci când este activat, dacă este posibil, încearcă să execute operatorii rămași sau să revină la începutul tranzacției.

În sistemele de fișiere moderne, a fost adăugat suport pentru jurnalul de tranzacții. Din punctul de vedere al funcționării sistemului de fișiere, toate operațiile din fișier arată ca o singură tranzacție. Dacă vă uitați mai atent la operațiile de fișiere de pe Linux, scrierea sau modificarea unui fișier este o procedură destul de complicată, constând în multe acțiuni cu date pe disc. Dacă utilizați jurnalul de tranzacții înainte de orice modificări fizice aduse discurilor în revista deschide o nouă tranzacție în care toate acțiunile care urmează să fie efectuate cu sistemul de fișiere va fi scris. Și numai după ce tranzacția este salvată pe disc, vor fi efectuate modificări în sistemul de fișiere.

Dacă sistemul de fișiere va fi oprit în mod corect, programul va verifica primul jurnal de tranzacții în căutarea și pe baza datelor stocate în el, sau să încerce să se întoarcă de sistem (derulare înapoi) la începutul tranzacției sau, în cazul în care este posibil să se completeze pașii din tranzacție. Având în vedere că jurnalul este mic (32 MB în sistemul de fișiere ext3), procesul de recuperare a sistemului de fișiere este în mod semnificativ accelerat.

Sistemul de fișiere ext3

Când a existat nevoia de a introduce sisteme de fișiere jurnalizate pe Linux, RedHat a dezvoltat sistemul de fișiere ext3. În RedHat, ei au mers cu cea mai mică rezistență - pe baza ei au luat bine-cunoscut ext2 și a adăugat sprijin pentru revista.

Prin dispozitivul său fizic, ext2 este identic cu ext3. Această caracteristică permite utilizarea acelorași utilitare pentru a lucra cu ext3 (crearea, verificarea și configurarea sistemelor de fișiere), precum și pentru lucrul cu ext2.

În ciuda adăugării unui jurnal, ext3 rulează mai repede decât ext2. Avantajele ext3 ar trebui să includă și abilitatea de a loga nu numai acțiunile necesare, ci și date pe care alte sisteme de jurnalizare nu le permit. Datorită acestei caracteristici, ext3 este considerat foarte fiabil.

Ext3 acceptă trei moduri de funcționare:

  • Writeback - acest mod nu înregistrează date. În primul rând, așa-numitele metadate (fișier inode, referințe bloc) sunt plasate în jurnal. Numai după ce se află în jurnal, datele sunt scrise în sistemul de fișiere.
  • Comandat (modul implicit) - acest mod este similar celui descris mai sus. Singura diferență este că în modul de scriere a textului, toate metadatele sunt plasate pentru prima dată în jurnal și numai atunci sistemul de fișiere se schimbă. Și în modul comandat, când informațiile blocului sunt plasate în jurnal, acest bloc se schimbă imediat în sistemul de fișiere. Apoi, informațiile despre blocul următor sunt plasate în jurnal, blocul este înregistrat și așa mai departe. Adică, datele se modifică în paralel cu schimbarea jurnalului.
  • Jurnal - modul de înregistrare completă. Metadatele și datele intră în jurnal. Și numai după aceea există o schimbare în sistemul de fișiere.

ReiserFS sistem de fișiere

S-a rezolvat problema introducerii de fișiere mici pe disc. De exemplu, în ext2 / 3, pentru a găzdui un fișier care conține un singur caracter, întregul bloc va fi ocupat pe disc. Blocul ext2 / 3 poate avea o dimensiune de la 1 la 8 Kbytes (dimensiunea depinde de dimensiunea sistemului de fișiere). Și în ReiserFS într-un bloc pot fi plasate datele mai multor fișiere. În plus, dacă dimensiunea fișierului este foarte mică, datele pot fi plasate în inode, adică direct în metadate.

Sistemul de fișiere se bazează pe copaci optimizați (copac B). Acest lucru crește viteza de căutare în sistemul de fișiere și elimină problema limitării numărului de fișiere și directoare din director.

Cu fișiere mari, acest sistem de fișiere se ocupă, de asemenea, foarte confident.

Pentru versiunea 3.6 a sistemului de fișiere ReiserFS, există următoarele restricții:

  • Dimensiunea maximă a fișierului este de 8 TB (pentru computerele pe 32 de biți);
  • Dimensiunea maximă a sistemului de fișiere este de 16 TB.

Acum, următoarea versiune a ReiserFS este în curs de dezvoltare - cea de-a patra. Este de așteptat ca acesta să fie inclus în kernelle versiunii 2.6.17 sau 2.6.18.

Sistem de fișiere JFS

JFS este un sistem de fișiere jurnal. Principalul său hobby este utilizarea împreună cu LVM (Logical Volume Manager). LVM vă permite să combinați mai multe partiții fizice hard disk într-o singură logică, care poate fi apoi defalcate în secțiuni ca un hard disk obișnuit. În același timp, unele tipuri de LVM permit conexiunea on-the-fly a noului spațiu pe disc. Și în cazul în care secțiuni tot mai folosi sistemul de fișiere ext3, la un moment dat, vei primi un mesaj despre imposibilitatea de a crea un nou fișier. Faptul este că atunci când se formatează o partiție în ext3, va fi rezervată în avans, în funcție de dimensiune, numărul finit de inode. Adică numărul maxim de fișiere este cunoscut în prealabil. Dacă dimensiunea sistemului de fișiere nu crește, atunci acest număr de inode este suficient pentru funcționarea normală. În JFS există posibilitatea creșterii dinamice a sistemului de fișiere și a numărului de inode. Datorită acestei proprietăți, pe măsură ce mărimea sistemului de fișiere crește, nu există restricții privind numărul de fișiere create.

Pentru sistemul de fișiere JFS, există următoarele restricții:

  • Dimensiunea maximă a fișierului este limitată de dimensiunea sistemului de operare.
  • Dimensiunea maximă a sistemului de fișiere este de 512 TB.

Sistemul de fișiere XFS

Suportul pentru fișierele mari este posibil datorită faptului că XFS este un sistem de fișiere pe 64 de biți. Și viteza sistemului de fișiere este realizată prin utilizarea copacilor B + pentru căutarea și descrierea structurilor interne.

Pe plan intern, sistemul de fișiere este destul de complex și nu văd nevoia unei scurte descrieri a structurii acestuia. Mai ales din moment ce există articole bune pe Internet care detaliază XFS:

Microsoft File Systems

Dacă vorbim despre sistemele de fișiere ale Microsoft, Linux suportă FAT și NTFS. Cu FAT totul este foarte simplu, structura sistemului de fișiere este cunoscută, deci în Linux este pe deplin suportată. Singurul lucru care trebuie luat în considerare atunci când se utilizează FAT, în Linux sunt două dintre soiurile sale:

FAT sprijin ar trebui să fie incluse în acest caz, dacă intenționați să utilizați dischetele și o varietate de USB-drive-uri: carduri de memorie flash, hard disk-uri, etc. Faptul este că toate acestea sunt de obicei formatate în FAT.

C NTFS este un pic mai complicat. Acest sistem de fișiere este în mod normal acceptat în modul read-only. În modul de înregistrare, nu se recomandă utilizarea acestuia. Deși modul de scriere este acceptat, dar dacă citiți documentația pentru driverele NTFS, veți vedea că există litere mari: în modul de scriere puteți schimba conținutul fișierelor existente, în nici un caz nu puteți crea fișiere noi, ștergeți sau redimensionați pe cele existente - sistem de fișiere.

Sistemele de fișiere iso9660 și udf

Aceste sisteme de fișiere sunt utilizate pentru a stoca informații pe discuri CD și DVD.

Inițial, iso9660 a fost un sistem de fișiere foarte simplu, cu multe restricții. De exemplu, nume de fișiere, ca și în MS DOS, limita numărului de atașamente de directoare. Prin urmare, mai multe extensii au fost scrise pentru iso9660, care își extind capabilitățile. Inclusiv, adăugiri care vă permit să salvați atributele fișierelor UNIX. Toate programele de completare sunt acceptate de driverul sistemului de fișiere și nu ar trebui să existe probleme când lucrați. Mai mult decât atât, driverul iso9660 suportă, așa cum sună ciudat, modul de înregistrare. Se folosește la crearea imaginilor CD-ROM.

Și cu udf nu s-au observat probleme speciale. Astfel, lucrul cu discuri CD și DVD este acceptat în Linux fără restricții.

Sistemul de fișiere proc

Acesta este un sistem de fișiere foarte util. În munca ta ca administrator, de multe ori te vei întoarce la capacitățile sale. Într-unul din primele capitole despre organizarea sistemului de fișiere Linux, am vorbit pe scurt despre scopul acestui sistem de fișiere. Amintiți-vă că fișierele din directorul / proc sunt reprezentate de maparea zonei de date a kernelului către sistemul de fișiere. Adică, dacă vizualizați conținutul unui fișier, de fapt, vedeți o anumită parte din zona de date a kernelului.

Mai jos voi descrie câteva fișiere interesante pe care le puteți găsi în directorul / proc. Conținutul fișierelor din sistemul dvs. va fi diferit de conținutul fișierelor prezentate ca exemple.

/ proc / cmdline

Conține linia de comandă trecută la kernel atunci când pornește.

/ proc / cpuinfo

Informații despre procesor sau procesoare.

/ proc / partiții

Conține o listă de partiții ale tuturor unităților conectate.

Lista de dispozitive detectate pe magistrala PCI.

Acest fișier poate fi folosit pentru a diagnostica motivele pentru care unele dispozitive nu funcționează. Fiți atenți la întreruperi: dacă este 0, înseamnă că dispozitivul nu a fost alocat o întrerupere pentru nici un motiv. Nu voi cita complet conținutul acestui fișier, este foarte mare.

/ proc / swapuri

Conține o listă de fișiere swap și partiții conectate.

/ proc / versiune

Conține informații despre versiunea sistemului de operare și despre kernelul Linux.

Informații despre proces

În plus față de fișierele din / proc, există directoare care au un număr ca nume. Fiecare director descrie un proces al cărui PID corespunde cu numele directorului. Fișierele din acest director descriu parametrii procesului. Conținutul uneia dintre directoare este prezentat mai jos.

Doar câteva dintre fișierele din eșantion conțin informații care ar putea fi înțelese fără nici o prelucrare preliminară.

Conține argumentele liniei de comandă.

Conține valorile variabilelor de mediu din mediul de proces.

Acesta conține informații despre starea procesului într-un format care poate fi citit de om.

Alte directoare

O comă a directoarelor care descriu procesele sistemului, pot exista și alte directoare în / proc. Mai jos este scopul unora dintre ei:

  • ide - informații despre dispozitivele conectate la interfața ide.
  • irq - informații despre distribuția întreruperilor.
  • net - informații despre rețea. Conținutul mesei arp și tabelul de rutare. Statistici privind interfețele și protocolul de rețea. Și așa mai departe.
  • scsi - informații despre dispozitivele SCSI.
  • sys - conține parametri variabili ai sistemului.

Sistemul de fișiere / proc / sys este un subiect separat. Cu ajutorul fișierelor din acest director puteți modifica parametrii sistemului "în zbor". Este suficient să notați valoarea dorită într-un anumit fișier. Nu voi descrie / proc / sys, există prea multe informații și este prea mult de știut pentru a înțelege ce fișiere sunt folosite. Deci vă voi spune unde să găsiți documentația și descrierea acestui sistem de fișiere:

Sistemul de fișiere Sysfs

Sistemul virtual de fișiere sysfs este o caracteristică a kernel-ului Linux 2.6. Sistemul de fișiere afișează câteva structuri de date kernel, descriind practic dispozitivele care sunt în prezent în sistem.

Sysfs este folosit de udev pentru a crea dinamic fișiere de dispozitiv.

Articole similare