Quali sono i migliori filesystem Linux nel 2021?

Quando formatti un disco rigido per installare il tuo sistema Linux, devi decidere il miglior filesystem Linux da usare. Nel 2021, l’opzione più popolare è EXT4. È il migliore, però, e se hai alternative, dovresti sceglierle? Vediamo le (possibili) opzioni.
Il “Quarto filesystem esteso” è completamente retrocompatibile con EXT2 ed EXT3 ed è considerato lo standard per la maggior parte delle distribuzioni Linux, rimanendo popolare come i suoi predecessori.
È una delle opzioni più sicure e stabili oggi disponibili poiché supporta il journaling, prevenendo (per quanto possibile) la perdita di dati dopo un arresto anomalo del sistema o una perdita di alimentazione.
Due delle sue caratteristiche più importanti sono “estensioni” e “allocazione ritardata”, che gestiscono in modo intelligente il modo in cui i dati vengono scritti sul supporto di archiviazione per migliorare le prestazioni e ridurre la frammentazione.
Il “file system b-tree” è stato inizialmente progettato da Oracle e ha continuato a crescere in popolarità, al punto che molti lo considerano il vero successore della dinastia EXT.
Btrfs è dotato di funzionalità avanzate, come la deframmentazione automatica e la compressione trasparente. Segue un approccio copy-on-write, salvando nuove iterazioni di dati e metadati invece di influenzare quelle esistenti (“shadowing”). Ciò consente anche istantanee di diversi stati del filesystem, nonché facile replica, migrazione e backup incrementali. I controlli del filesystem online e offline riducono ulteriormente la possibilità di perdita di dati.
BtrFS supporta nativamente il RAID, ma non segue l’approccio tipico del software RAID striping o del mirroring dei blocchi hardware. Invece, garantisce che ogni blocco su un dispositivo abbia una copia su un altro e mantenga i CRC per tutti i dati. Pertanto, in caso di errore, può estrarre informazioni da backup e checksum per ricostruire dati danneggiati o mancanti.
Vale la pena notare che BtrFS è anche “compatibile con SSD” poiché disabilita automaticamente le sue funzionalità che sono utili per gli HDD meccanici ma potrebbero usurare gli SSD.
XFS è stato creato da Silicon Graphics quasi tre decenni fa per le sue workstation grafiche specializzate nel rendering di grafica 3D.
Ecco perché XFS rimane una delle migliori opzioni per i sistemi che leggono e scrivono costantemente dati. Grazie all’utilizzo di “allocation groups” parti del filesystem che contengono i propri inode e spazio libero è possibile che più thread leggano e scrivano dati contemporaneamente in parallelo. Il supporto per l’allocazione ritardata, gli inode allocati dinamicamente e gli algoritmi read-ahead avanzati aiutano a ottenere prestazioni eccellenti, in particolare su pool di archiviazione su larga scala fino a centinaia di TB.
Il suo supporto per l’inserimento nel journal è limitato, tuttavia, rispetto alle alternative più moderne ed è probabilmente più incline alla perdita di dati. Inoltre, non si ridimensiona bene per scenari quotidiani più tipici e per lo più a thread singolo, come quando si elimina un gruppo di foto dalla cartella “Immagini”. In altre parole, è fantastico se stai configurando il tuo data center ma forse non per il tipico uso personale.
Uno dei filesystem (relativamente) più recenti, “Flash-Friendly File System” è una delle migliori opzioni da utilizzare con l’archiviazione basata su flash.
Creato inizialmente a tale scopo da Samsung, F2FS divide il supporto di memorizzazione in parti più piccole che contengono zone che includono anche parti più piccole e così via, e cerca di usarne molte invece di riutilizzare le stesse. In combinazione con il supporto per TRIM/FITRIM, questo lo rende più amichevole per i media basati su flash che vengono forniti con un numero finito di scritture.
Non ha senso approfondire le funzionalità di F2FS poiché non eccelle in nulla rispetto a tutte le alternative per quanto riguarda la velocità o la sicurezza dei dati, né nell’usarlo con i media tipici, dove ogni altro filesystem sarebbe dotato di una funzionalità migliore- impostato. La storia cambia se si parla di storage basato su flash, però, per il quale è stato esplicitamente creato.
OpenZFS è un fork dello Zettabyte File System (ZFS) che è apparso inizialmente su Solaris di Sun. Fino al 2010, ZFS poteva essere utilizzato su Linux principalmente tramite FUSE, a causa di problemi di licenza. È stato dopo il 2010 che il suo sviluppo ha iniziato ad aprirsi e nel 2016 Ubuntu ha supportato, per impostazione predefinita, la sua versione open source. Da allora, quando le persone si riferiscono a “ZFS”, di solito parlano della sua variante aperta invece di Solaris ZFS che continua a evolversi ma su un percorso parallelo.
ZFS differisce da tutte le alternative in quanto combina il filesystem con un gestore di volumi. Per questo motivo, non gestisce solo file e directory, ma anche i supporti fisici su cui risiedono. Grazie a ciò, ogni dispositivo di archiviazione può essere assegnato a un pool che viene trattato come una singola risorsa. Se sei mai a corto di spazio, puoi aggiungere nuovo spazio di archiviazione a questo pool per espanderlo, lasciando che ZFS si occupi dei dettagli.
Gestendo i media stessi, ZFS eccelle anche nel supporto per RAID. È possibile configurare array RAID della maggior parte dei tipi (RAID 0, 2, 5, ecc.) ma anche utilizzare l’approccio “RAIDZ”. A differenza dei tipici array RAID, RAIDZ utilizza strisce di larghezza variabile tra le unità che include, aumentando la sua tolleranza alla perdita di dati dopo un’interruzione di corrente.
ZFS segue anche un approccio copy-on-write, dove invece di modificare i dati esistenti, salva solo le modifiche (“delta”) tra la vecchia e la nuova versione. Ciò consente l’archiviazione trasparente e intelligente di più copie di dati, senza occupare molto spazio, che possono funzionare come backup o istantanee. L’utente può tornare agli stati precedenti del filesystem, ripristinando le modifiche, o fare il contrario: trascinare tutte le modifiche in cloni di dati esistenti.
Queste sono alcune delle caratteristiche che lo aiutano a eliminare quasi ogni possibilità di perdita di dati, almeno in teoria.
Il Journaling File System di IBM è stato uno dei primi filesystem a supportare il journaling, riducendo le possibilità di perdita di dati. Utilizza estensioni come molte altre alternative moderne e gruppi di allocazione come XFS, con l’obiettivo di offrire prestazioni di lettura/scrittura elevate.
Non dando la priorità a una singola funzionalità, è un ottimo tuttofare con carichi di lavoro diversi per esigenze diverse. Sfortunatamente, questo significa anche che non eccelle in nulla. Inoltre, ha alcuni problemi che molte persone considererebbero un aspetto negativo quando scelgono un filesystem per la loro archiviazione. Ad esempio, può ritardare indefinitamente l’aggiornamento del suo journal, aumentando le possibilità di perdita di dati e quasi annullando il fatto che si tratta di un file system con journaling. È migliore nelle scritture parallele che sono più utili per server e database di grandi dimensioni, ma hanno prestazioni peggiori di EXT4 negli scenari di utilizzo desktop più comuni.
Questi sono probabilmente i motivi per cui non è così popolare come altri filesystem, che possono funzionare più velocemente o essere meglio protetti contro la perdita di dati.
C’è un motivo per cui EXT4 è la scelta predefinita per la maggior parte delle distribuzioni Linux. È provato, testato, stabile, offre ottime prestazioni ed è ampiamente supportato. Se stai cercando stabilità, EXT4 è il miglior filesystem Linux per te.
Se non hai paura di dover affrontare un ecosistema un po’ meno maturo, però, BtrFS potrebbe essere l’opzione migliore per te.
Per l’uso su server in cui si desidera eliminare quasi completamente ogni possibilità di perdita di dati e la stabilità è il nome del gioco, si consiglia di esaminare ZFS. Per trarne davvero vantaggio, però, preparati a leggere molto. Per fortuna, possiamo aiutare con la sua configurazione iniziale.
Per i supporti flash, F2FS è l’opzione migliore per impostazione predefinita.
Qualunque sia il file system che scegli, ricordati di cancellare completamente il tuo HDD in anticipo se vuoi rendere il suo contenuto esistente quasi irrecuperabile.
Ricevi gli aggiornamenti dei nostri ultimi tutorial.
La vita reale di OK è iniziata intorno alle 10, quando ha ricevuto il suo primo computer, un Commodore 128. Da allora, ha sciolto i tasti dei tasti digitando 24 ore su 24, 7 giorni su 7, cercando di diffondere The Word Of Tech a chiunque fosse abbastanza interessato da ascoltare. O meglio, leggi.
Pensare a BTRFS come al “vero successore della dinastia EXT” mostra segni di manie di grandezza e non serve a BTRFS né a nessuno.
EXT lo ha mantenuto semplice per decenni, è rimasto compatibile con se stesso e competitivo nelle prestazioni per gli altri. Questo è il motivo per cui è il filesystem più popolare. Non c’è dinastia qui che ha bisogno di essere sfidata o sostituita. Semmai va copiato e preso come esempio di cosa si tratta. La sua consistenza è ciò in cui gli utenti si fidano e la fiducia è ciò di cui i filesystem hanno bisogno per vincere quando vogliono affermarsi. In un certo senso i filesystem di un sistema operativo sono l’equivalente delle banche nell’economia. Proprio come devi fidarti di una banca per prendersi cura dei tuoi soldi, è necessario fidarsi di un filesystem per fare lo stesso con i tuoi dati.
Quindi, mentre ammiro BTRFS per le sue numerose funzionalità, BTRFS non ha superato una delle leggi fondamentali nella programmazione, ma ha solo dimostrato che la legge era giusta ancora una volta: più il software diventa complesso, più diventa complicato per gli sviluppatori mantenerlo e per gli utenti per usarlo. Come conseguenza di questa legge, il software complesso contiene più bug e gli utenti tendono a commettere più errori con esso. È per questo che i BTRFS non prenderanno mai la corona. Non è una questione di maturità. La scelta del filesystem quindi è una questione di necessità contro fiducia e non di quanta paura si ha di usarlo.
BTRFS è il miglior filesystem per quelli di noi che hanno bisogno delle sue funzionalità e merita tanto rispetto e lodi quanto EXT.
Ho fatto alcuni confronti con i benchmark del filesystem alcuni anni fa e anche un paio di mesi fa (non pubblicato) e sono rimasto sorpreso dalla scarsa prestazione di JFS rispetto agli altri.
Mi sono reso conto, dopo quei primi benchmark, che JFS rispecchia la filosofia progettuale che ha guidato IBM praticamente sin dall’inizio. Farlo rapidamente non è la loro principale preoccupazione. Farlo *correttamente* lo è. JFS ha solo il set generico di sintonizzabili (vedi jfs_mkfs(8) e jfs_tune(8)) più alcune opzioni di utilità da montare (vedi mount(8)). Ciò rende quasi impossibile rovinare il filesystem in condizioni di utilizzo normale.
Mettilo a confronto con la miriade di opzioni mkfs, admin e mount di XFS. È stato progettato per essere aggressivamente veloce, utilizzando cache e threading pesanti. Ma questa dipendenza dal core di memoria per le prestazioni ha presentato un problema agli sviluppatori Irix al Mips: cosa succede se viene a mancare l’alimentazione? Una storia che ho sentito è che c’erano un paio di grandi condensatori che fungevano da backup per l’alimentatore. Mantenevano una carica sufficiente per mantenere in funzione la scheda madre e i dischi rigidi, abbastanza a lungo da scaricare i buffer sul disco in caso di segnale di interruzione dell’alimentazione.
Se la storia è vera, allora è una chiara situazione di una progettazione software complessa (ma completamente specificata) che si trasforma in una progettazione hardware più complessa (ma si spera sufficiente).
Non sto dicendo che nessuno dei due sia migliore dell’altro. Sto semplicemente sottolineando che hanno priorità di progettazione diverse, mirate a diversi casi d’uso.
—–
FWIW, c’è una cosa importante per aiutare un filesystem a funzionare più velocemente: distribuire l’I/O del disco su diversi controller.
Il RAID è uno degli acceleratori comunemente usati e il RAID-0 integrato per Btrfs funziona egregiamente. Ma i filesystem con journal discreti offrono un’altra possibilità: rendere il journal esterno. Ext3/4, JFS, XFS e ReiserFS offrono tutti questa opzione. Sul mio desktop, Ext4 e XFS competono per le prestazioni, quando hanno riviste esterne.[ab] [cd] Vale a dire, se /dev/sd
e /dev/sd
sono su bus IDE o SATA differenti, un filesystem Ext4 su /dev/sdb2 potrebbe avere un journal su /dev/sdd3. Entrambi i bus possono eseguire il proprio I/O indipendentemente l’uno dall’altro.
Grazie per aver spiegato i punti di forza e di debolezza dei vari file system disponibili per Linux.
Leave a Reply