Tipologie di File System Linux
Nel mondo Linux, il kernel è il cuore del sistema operativo, il ponte tra le applicazioni e l’effettiva elaborazione dei dati effettuata a livello hardware. Il kernel Linux ufficiale è mantenuto dallo sviluppatore Greg Kroah-Hartman sotto la supervisione di Linus Tolvalds e lo puoi trovare in kernel.org oltre che in tutte le distribuzioni GNU/Linux nelle sue varie versioni e viene chiamato “Vanilla”
Ma non esiste solo il kernel ufficiale, ci sono anche altri kernel Linux alternativi a quello ufficiale rilasciato da Linus Torvalds e dai suoi collaboratori. Questi kernel sono modificati da vari sviluppatori o comunità per aggiungere o rimuovere funzionalità, migliorare le prestazioni, supportare nuovi dispositivi o risolvere bug.
La scelta di uno di questi kernel alternativi implica in miglioramento delle prestazioni della distribuzione linux, quindi diventa un elemento che ci può portare a scegliere una determinata distribuzione in quanto supporta uno o più di questi kernel.
Vediamo ora quali sono i kernel Linux alternativi più importanti e vediamo le caratteristiche di questi kernel Linux.
EXT4
EXT4 (Fourth Extended Filesystem) è il filesystem Linux più comunemente usato. EXT4 è stato reso stabile nel kernel linux nel 2008 e da allora è diventato il filesystem predefinito per molte distribuzioni Linux grazie alla sua affidabilità, stabilità e buone prestazioni.
PRO
Stabile e affidabile e ampiamente testato.
Buone prestazioni
Supporta grandi dimensioni di file e volumi. EXT4 supporta file singoli fino a 16 TiB e filesystem fino a 1 EiB, rendendolo adatto per applicazioni con esigenze di storage considerevoli.
Journaling: previene la perdita di dati in caso di crash
In grado di crescere o ridursi.
CONTRO
Costruito su una vecchia base di codice.
Mancano molte delle funzionalità avanzate che altri filesystem offrono.
Utility di gestione
Il pacchetto per gestire ext4 è e2fsprogs
A chi è consigliato
EXT4 è consigliato per gli utenti che desiderano il filesystem più semplice e più comunemente usato. L’EXT4 è ideale per l’uso generale in ambienti desktop e server. Può essere utilizzato per l’hosting web, per server di file e in molte altre applicazioni che necessitano di un equilibrio tra prestazioni e affidabilità. Grazie alla sua capacità di gestire grandi dimensioni di file e volumi, è anche adatto per applicazioni di storage di grandi dimensioni.
BTRFS
BTRFS è un moderno filesystem copy-on-wwrite (COW) creato nel 2007 e dichiarato stabile nel kernel linux nel 2013. È ampiamente supportato ed è principalmente noto per il suo set di funzionalità avanzate.
PRO
La compressione trasparente. BTRFS supporta la compressione trasparente dei file per consentire un notevole risparmio di spazio senza alcun intervento da parte dell'utente. CachyOS viene fornito con compressione ZSTD impostata al livello 3 per impostazione predefinita.
Snapshot: Una delle caratteristiche di spicco di Btrfs è la capacità di creare rapidamente istantanee del filesystem. Gli snapshot permettono di catturare e conservare una “fotografia” dello stato attuale del filesystem, utilissima per backup e per il rollback di modifiche indesiderate.
Compressione dei dati: Btrfs supporta la compressione dei dati on-the-fly, il che significa che i dati vengono compressi automaticamente prima di essere scritti sul disco, risparmiando spazio e potenzialmente aumentando le prestazioni.
Deduplicazione: Questa funzione identifica e rimuove le copie multiple degli stessi dati, riducendo lo spazio necessario per l’archiviazione e migliorando l’efficienza.
Bilanciamento del carico e del raid integrati: Btrfs offre funzionalità avanzate di bilanciamento del carico e supporto RAID integrato, permettendo una distribuzione efficiente dei dati e fornendo resilienza contro i guasti dei dischi.
In grado di crescere o ridursi.
Sviluppo molto veloce.
CONTRO
A volte richiede deframmentazione o bilanciamento.
Le performance possono variare: A seconda del tipo di carico di lavoro e delle configurazioni, le prestazioni di Btrfs possono variare, rendendolo meno prevedibile rispetto ad altri filesystem consolidati.
Utility di gestione
Il pacchetto di utilità dello spazio utente di Btrfs è btrfs-progs
A chi è consigliato
BTRFS è consigliato per gli utenti che desiderano funzionalità snapshot/backup e compressione dei dati per maggiori prestazioni.
XFS
XFS è un filesystem di journaling ad alte prestazioni originariamente sviluppato da Silicon Graphics, Inc. È stato creato nel 1993, portato su Linux nel 2001, ed è ora ampiamente supportato dalla maggior parte delle distribuzioni Linux.
PRO
Veloce, XFS è stato originariamente progettato pensando alla velocità e alla scalabilità estrema. Può supportare filesystem di dimensioni enormi (multi-exabyte) e un numero quasi illimitato di file.
Affidabile, XFS fa uso di diverse tecnologie per prevenire la corruzione dei dati.
Resistente alla frammentazione a causa della sua natura basata sulla loro estensione e della strategia di allocazione ritardata.
Ottimo per file di grandi dimensioni: Una delle forze di XFS è la sua capacità di gestire con efficienza file di dimensioni estremamente grandi.
XFS utilizza una struttura di dati B+ tree per le sue tabelle di indirizzi, consentendo accessi rapidi e operazioni di gestione efficienti. Il suo design è focalizzato sull’ottimizzazione delle prestazioni, rendendolo una scelta eccellente per applicazioni che richiedono carichi intensivi.
CONTRO
Una delle limitazioni di XFS è l’incapacità di ridurre le dimensioni di un volume una volta creato. Mentre può essere espanso, la sua riduzione richiede un backup, una formattazione e un ripristino dei dati.
La perdita di dati potrebbe essere maggiore rispetto ad altri filesystem in caso di crash, nonostante il journaling: Anche se XFS utilizza il journaling per tracciare le modifiche, in certi scenari, come interruzioni di corrente improvvise, può comportare una maggiore perdita di dati rispetto ad altri filesystem.
Utility di gestione
Il pacchetto contenente strumenti per la gestione degli strumenti di spazio utente per gestire i filesystem XFS è xfsprogs
A chi è consigliato
XFS è il filesystem consigliato per gli utenti che non hanno bisogno di funzionalità avanzate e vogliono semplicemente un filesystem veloce e affidabile.
XFS è consigliato in ambienti dove le alte prestazioni e la scalabilità sono essenziali. È una scelta ideale per server di database ad alte prestazioni, per lavorare con la grafica e il video editing e in sistemi che gestiscono grandi set di dati. La sua capacità di gestire efficacemente file di grandi dimensioni lo rende anche ottimo per applicazioni di archiviazione di lunga durata.
ZFS
ZFS è un filesystem avanzato originariamente sviluppato da Sun Microsystems nel 2005. ZFS ha molte caratteristiche, tuttavia è stato concesso in licenza sotto CDDL, il che significa che non può essere incluso all'interno del kernel linux e richiede un modulo separato installato.
PRO
Pool di storage integrati (zpool)
Protezione avanzata contro la corruzione dei dati
Istantanee con COW
La compressione
Supporto per Raid-Z
La cache ARC consente tempi di lettura estremamente veloci su file comunemente accessibili.
CONTRO
Molto complicato da usare e capire a causa di funzionalità come zpool e ARC.
ARC richiede molta ram per essere efficace.
Non incluso nel kernel linux quindi dipendente da un modulo del kernel di terze parti (OpenZFS)
Incompatibile con la prevenzione in tempo reale
Utility di gestione
Il pacchetto contenente strumenti per la gestione degli strumenti di spazio utente per gestire i filesystem ZFS è zfs-utils
A chi è consigliato
ZFS deve essere utilizzato solo da utenti avanzati che desiderano le funzionalità avanzate di ZFS come lo spazio di archiviazione in pool o la cache ARC.
F2FS
F2FS o Flash-Friendly File System, è un file system flash creato e sviluppato da Samsung originariamente per il kernel linux. F2FS è stato creato per soddisfare specificamente il flash NAND, come le unità a stato solido (SSD) e le schede di memoria. Lanciato per la prima volta nel 2012, F2FS è stato creato per affrontare le peculiarità e le sfide legate alla scrittura e alla cancellazione dei blocchi in dispositivi basati su memoria flash. Al contrario dei dischi rigidi tradizionali (HDD) che scrivono i dati in maniera sequenziale, gli SSD hanno specifici modelli di usura e prestazioni che possono beneficiare di un approccio di gestione dei dati diverso.
PRO
Progettato specificamente per NAND flash memory:
Compressione trasparente utilizzata per ridurre le scritture su disco
Più veloce rispetto ad altri filesystem come EXT4 su SSD
Migliora la durata degli SSD: Gli SSD hanno un numero limitato di cicli di scrittura/cancellazione per cella prima che inizino a fallire. F2FS riduce le scritture inutili e equilibra l’usura su tutto il dispositivo, prolungandone la durata.
CONTRO
Non può ridursi.
Non è ideale per dischi rigidi tradizionali (HDD)
Relativamente debole fsck. (teno check del file)
Ancora in evoluzione; potrebbe non essere stabile come EXT4 o XFS: Essendo un filesystem più recente e ancora in sviluppo, potrebbero esserci bug o problemi che non sono stati ancora scoperti o risolti.
Utility di gestione
L'utilità principale per f2fs è f2fs-tools
A chi è consigliato
F2FS è consigliato solo per gli utenti che desiderano massimizzare la durata del loro flash NAND e richiedono elevate prestazioni di lettura/scrittura sui loro SSD.
BcacheFS
Bcachefs è un nuovo filesystem avanzato per Linux, con un'enfasi sull'affidabilità e la robustezza e il set completo di funzionalità che ci si aspetterebbe da un moderno filesystem.
ATTENZIONE: Bcachefs è ancora considerato sperimentale e può avere problemi.
PRO
Permette una gestione efficiente di diversi dispositivi di storage, utilizzando layout stratificati per massimizzare le prestazioni.
Supporta configurazioni RAID 1/10, oltre a caching trasparente, migliorando la resilienza e la velocità di accesso ai dati.
Implementa la compressione in modalità LZ4, gzip e ZSTD, e garantisce l’integrità dei dati con checksum e codici di correzione degli errori Reed-Solomon (RAID 5/6).
Offre la possibilità di memorizzare informazioni in forma crittografata, utilizzando algoritmi come ChaCha20 e Poly1305.
CONTRO
E' un file system ancora troppo giovane, quindi ancora sperimentale
Setup può essere complicato
A chi è consigliato
BcacheFS è particolarmente adatto per l’uso in data centers e ambienti cloud, dove la gestione efficiente e scalabile dei dati è essenziale. Adatto anche per sistemi di Backup. Va usato con cautela finché rimane sperimentale.