Sistemes de fitxers
Introducció
Quan treballes amb emmagatzematge, hi ha diferents sistemes de fitxers que pots triar.
Aquests sistemes de fitxers són una part importantíssima per qualsevol sistema operatiu, ja que sense ells no podriem emmagatzemar dades en dispositius físics. Però saps realment què és un sistema de fitxers, quins tipus hi ha o quines diferències tenen entre si?
Si has respòs no a alguna d’aquestes preguntes, segueix llegint que les resoldrem en aquest post. Sense més preàmbuls, comencem.
Què és un sistema de fitxers?
Un sistema de fitxers és bàsicament és una capa entre el sistema operatiu i el hardware d’emmagatzematge perquè el sistema pugui emmagatzemar i accedir a les dades.
Sense un sistema de fitxers, un dispositiu d’emmagatzematge contindria dades abocades directament sense ordre i el sistema no sabria distingir quines dades pertanyen a on.
A més d’aquestes característiques bàsiques de gestió de fitxers, també ofereixen funcionalitats com l’encriptació, l’administració eficient de l’espai i la preservació de la integritat de les dades
Funcionament
Els sistemes de fitxers emmagatzemen les dades per blocs de tamanys predefinits.
Un bloc és la unitat bàsica d’emmagatzematge.
Si un fitxer omple un bloc i necessita més espai, omplirà un altre bloc que estigui disponible, encara que no sigui contigu. Quan un disc té els seus fitxers separats en blocs que no estan seguits, direm que tenim fragmentació.
Al haver-hi tantes possibilitats de tenir els fitxers fragmentats, el sistema de fitxers ha de tenir un “índex” per saber quin bloc és de cada fitxer. Aquest índex és diferent segons el sistema de fitxers.
Sistemes de fitxers principals
Familia ext (extended file system)
Aquesta familia és el sistema de fitxers per defecte a Linux des de fa uns anys.
Aquests sistemes de fitxers tenen certes coses en comú, entre elles l’ús d’inodes.
ext2
-
Segona versió del sistema de fitxers ext, introduïda l’any 1993
-
No té journaling
-
Mida màxima de fitxers pot variar entre 16GB i 2TB
-
Mida màxima del sistema de fitxers entre 2TB i 32TB
ext3
-
Tercera versió d’ext, introduida l’any 2001
-
Implementa journaling de tres tipus disponibles:
-
Journal
La metadata i el contingut estan guardats al diari (journal).
-
Ordered (per defecte)
Només es guarda la metadata al diari desprès d’escriure el contingut al disc.
-
Writeback
Només la metadata es guarda al diari, i pot escriure’s abans o desprès que el contingut sigui escrit al disc.
-
El journaling és un mecanisme pel que un sistema guarda les operacions que es realitzen en els fitxers perquè, en cas que falli alguna, poder restablir les dades afectades.
-
Mida individual de fitxers de 16GB a 2TB
-
Mida màxima del sistema de fitxers de 2TB a 32TB
-
Es pot convertir un sistema de fitxers d’ext2 a ext3 directament
-
Un directori pot tenir fins a 32.000 subdirectoris
ext4
-
Quarta i última versió d’ext, introduida l’any 2008
-
Mida individual de fitxers de 16GB a 16TB
-
Mida màxima del sistema de fitxers d'1 EB (exabyte), que és l’equivalent a més d’un milió de TeraBytes.
-
Un directori pot tenir fins a 64.000 subdirectoris
-
Opció de deshabilitar el journaling
-
Altres millores de rendiment i fiabilitat
XFS
XFS és un sistema de fitxers d’alt renciment. Entre les seves característiques, les principals són:
-
Gran escalabilitat i rendiment amb fitxers grans
-
Consistència de dades (implementa journaling de la metadata)
-
Operacions E/S paral·leles
-
Poca fragmentació
-
Suport per E/S directe sobrepassant cache del kernel
A més aquest sistema de fitxers també funciona amb inodes però no de la mateixa manera que els ext. Amb xfs no hi ha límit d’inodes, motiu de pes per triar aquest sistema de fitxers per sobre altres segons la situació.
Algunes desavantatges que té XFS venen a l’hora de recuperar dades, ja que amb falles de disc té poca seguretat. Aquest sistema de fitxers també és poc eficaç contra el “bit rot”, que fa impossible recuperar fitxers en cas de pèrdua de dades. Per últim, XFS no es comporta massa bé amb molts fitxers petits.
BTRFS (B-Tree File System)
És un sistema de fitxers basat en el mecanisme copy-on-write (COW).
El mecanisme copy on write consisteix en, quan modifiques un fitxer, el sistema de fitxers no sobreescriurà les dades. El que farà serà escriure-les en un altre lloc i, quan hagi acabat la operació, apuntarà cap als nous blocs escrits, i la informació vella es mantindrà fins que es recicli.
Aquest mètode prevé de problemes com escriptures parcials (que poden corrompre les dades), ja que amb COW o hi ha hagut escriptura o no n’hi ha hagut, no té punt mig.
Aquest sistema d’fitxers està centrat en preservar la integritat de les dades, i conté característiques com:
-
Subvolums
-
Auto-reparació
-
Compressió
-
Defragmentació
ZFS (Zettabyte File System)
Aquest sistema d’fitxers té funcionalitats extres respecte als altres mencionats, ja que pot funcionar inclús com a LVM (Logical Volume Manager) i RAID.
Algunes característiques més destacades de ZFS són:
-
Molta escalabilitat amb suport de dades molt gros (fins a mil milions de TB)
-
Gran protecció contra la corrupció de dades
-
Compressió de dades eficient
-
Snapshots
-
Verificació d’integritat contínua amb reparació automàtica
Amb tot això, ZFS consumeix molts recursos, pel que no és gaire eficient per entorns petits.
TLDR
Quin utilitzar?
Amb tota aquesta informació, potser et segueixes preguntant quin hauries d’utilitzar. La resposta depèn del teu cas d’ús, però aquí afegeixo un resum general:
-
Ext4: Per a ús general en escriptoris i servidors
-
XFS: Quan calgui manejar fitxers molt grans en entorns d’alt rendiment
-
BTRFS: Per servidors o backups amb necessitat d’snapshots
-
ZFS: Per NAS i sistemes crítics que requereixin protecció avançada de dades.
Comparació entre els sistemes de fitxers
Sistema de fitxers | Mida màxima de fitxer | Mida màxima del sistema | Característiques clau | Desavantatges |
---|---|---|---|---|
Ext4 | 16TB | 1EB | Generalista, fiable, opcional journaling | Limitat per sistemes molt grans |
XFS | 8EB | 8EB | Alt rendiment, escalabilitat | Díficil recuperació de dades |
BTRFS | 16EB | 16EB | Snapshots, copy-on-write | Immadur per certs casos |
ZFS | 16EB | 256EB | RAID integrat, compressió | Alt consum de recursos |
I fins aquí el post d’avui. Probablement més endavant faré un post específic sobre algun d’aquests sistemes de fitxers, si escau. Si t’ha semblat útil pots deixar un comentari i compartir-lo. Ens veiem al següent!