Il sistema operativo Linux supporta una vasta gamma di file system. In questo articolo, discuteremo i vantaggi e gli svantaggi nell’utilizzo del file system Btrfs.
Contenuti
- Cos'è il file system Btrfs?
- Le caratteristiche del file system Btrfs
- La struttura del file system Btrfs
- I principali svantaggi del file system Btrfs
- Funzionalità di ripristino del file system Btrfs
- Come aprire un'unità Btrfs in Windows?
- Le migliori alternative al file system Btrfs?
Cos’è il file system Btrfs?
Btrfs è un file system relativamente nuovo per sistemi operativi UNIX-like che ha molte funzionalità moderne e fornisce allo stesso tempo elevate prestazioni.
Il file system Btrfs è stato originariamente sviluppato come alternativa a ZFS. Il motivo è che ZFS è sviluppato da SunMicrosystems e quindi distribuito su base proprietaria. Ciò è contrario alla filosofia di Linux, che è disponibile gratuitamente. L’obiettivo principale era colmare le molte debolezze dei file system Linux e rendere la gestione di Btrfs il più semplice possibile.
La prima versione del file system Btrfs risale al 2007. È stata introdotta da Oracle. Come molti altri file system, Btrfs utilizzava gli indirizzi dei blocchi per archiviare le informazioni. Tuttavia, la struttura dei metadati che archivia gli indirizzi dei blocchi era organizzata sotto forma di B-tree.
La più importante innovazione è che ora, quando vengono apportate modifiche al file, non viene modificato l’intero file, ma solo la parte che contiene le modifiche.
L’uso del B-tree consente di implementare il metodo “copy-on-write“, che si basa sull’utilizzo di una copia di tutti i blocchi di dati durante la lettura delle informazioni. Grazie a questo approccio, le prestazioni del file system sono notevolmente aumentate. In alcuni casi, è persino più veloce di Ext4. Inoltre, tale struttura consente di effettuare snapshot del file system senza degradazione delle prestazioni.
Il file system Btrfs è attualmente in fase di sviluppo e sempre più spesso ci sono notizie su Internet sulla possibilità di utilizzare Btrfs invece di Ext4 nelle nuove distribuzioni Linux. Questo è il motivo per cui questo file system sta attirando sempre più attenzione sia tra i professionisti che tra gli utenti Linux comuni.
Le caratteristiche del file system Btrfs
La struttura a B-trees consente agli sviluppatori di introdurre molte funzionalità moderne che mancano, ad esempio, in Ext4. Tra le più significative ci sono le seguenti:
1) La dimensione massima dei file scrivibili è aumentata notevolmente. Ora è di 16 exabyte (invece di 1 exabyte in Ext4);
2) La possibilità di creare snapshot senza perdita di prestazioni. Gli utenti possono ora creare snapshot di sola lettura o di scrittura;
3) Possibilità di verificare l’integrità del file system senza smontarlo. In Btrfs, la verifica dell’integrità viene effettuata con pochi comandi;
4) È presente un nuovo processo in background, il cui compito principale è quello di rilevare e correggere gli errori. Lo stesso processo deframmenta e deduplica automaticamente i dati;
5) Il numero di inode viene allocato dinamicamente. Ciò significa che non si incorrerà mai in una situazione in cui si ha spazio libero su un disco, ma non si può creare un file a causa della mancanza di inode liberi.
6) Utilizzo di checksum per dati e metadati. Viene utilizzato l’algoritmo crc32 per calcolarli. Questo approccio consente di rilevare rapidamente le corruzioni dei blocchi;
7) Btrfs è completamente ottimizzato per l’installazione e il lavoro su SSD. Il tipo di unità viene rilevato automaticamente e vengono applicati i relativi parametri del file system;
8) È ora possibile implementare configurazioni complesse a più dischi. Ora è possibile creare un analogo di RAID 0, 1, 5, 6 o 10 utilizzando le possibilità del file system. I livelli 5 e 6 sono ancora in fase sperimentale. In futuro, è previsto anche di implementare la ridondanza per singoli file e cartelle.
9) È stata implementata la compressione. Per questo vengono utilizzati Zlib e LZO;
10) Supporto per subvolumi;
Gli sviluppatori hanno dedicato molto impegno a Btrfs. Ciò ha permesso loro di creare un file system abbastanza efficiente, che è già stato implementato in molte distribuzioni Linux, a livello sperimentale. Pertanto, c’è una forte possibilità che Btrfs verrà utilizzato in Linux in modo permanente a breve.
La struttura del file system Btrfs
La struttura del file system Btrfs è leggermente diversa rispetto ai file system convenzionali. Schematicamente, appare qualcosa del genere:
Questo schema dovrebbe essere visualizzato dal basso verso l’alto. In primo luogo, possiamo vedere i blocchi di memoria che il file system ha allocato nell’ordine appropriato. Dopo di che, vengono combinati in uno spazio di indirizzamento logico. Quindi, a questo livello, a ogni blocco viene assegnato un indirizzo.
Successivamente, vengono utilizzati metadati ed estensioni, che sono indirizzati a livello logico. A questo livello, viene anche implementata la ridondanza (qualcosa di analogo a RAID 0, 1, 5, 6, 10).
Il penultimo livello è quello delle sottovolumi. A questo livello avviene l’incapsulamento dei livelli inferiori. Ciò consente di visualizzare i dati nel modo a cui siamo tutti abituati: come file e cartelle.
L’ultimo livello è dove i dati utente sono già nella loro forma normale.
Gli utenti più esperti potrebbero aver notato che Btrfs non utilizza un superblocco o altri elementi familiari del file system. La ragione è che consente di utilizzare meglio lo spazio libero del disco e migliora le prestazioni del file system.
Nonostante tutti i vantaggi del file system Btrfs, ha anche alcuni svantaggi. Saranno discussi nel paragrafo successivo di questo articolo.
I principali svantaggi del file system Btrfs
La maggior parte dei vantaggi del file system Btrfs sono già stati menzionati nel secondo paragrafo di questo articolo come innovazioni. Quindi non ha senso ripeterli una seconda volta. Vorremmo invece concentrarci sui principali svantaggi di Btrfs, che sono anche abbastanza numerosi:
- Alto livello di frammentazione dei dati – si verifica a causa dell’uso della tecnologia “copy-on-write”. Più spesso osservato durante la sovrascrittura di un gran numero di piccoli blocchi di dati.
- Sviluppo attivo – anche se il file system Btrfs è abbastanza stabile, regolarmente aggiunge nuove funzionalità o aggiorna quelle vecchie a causa dello sviluppo attivo. Ciò può portare a problemi e potenziale perdita di dati. In alcuni casi, dopo l’aggiornamento di diverse funzionalità del file system, i programmi che le utilizzavano possono comportarsi in modo non corretto.
- Troppo poca documentazione – anche se il file system Btrfs è stato rilasciato più di un decennio fa (in realtà, è solo un anno più giovane di Ext4), al momento non c’è molta documentazione. Pertanto, gli utenti possono avere domande a cui non è facile rispondere.
- Per lavorare con snapshot, è meglio utilizzare una utility speciale, poiché l’utilizzo della funzionalità standard di Linux non sempre funziona correttamente e può portare a corruzione dei dati.
Anche se ci sono molti più vantaggi che svantaggi, consigliamo di considerare attentamente prima di iniziare a utilizzare il file system Btrfs. Ciò eviterà molti problemi in futuro.
Funzionalità di ripristino del file system Btrfs
Nel secondo paragrafo di questo articolo, abbiamo accennato al lavoro con i sottovolumi e i metadati. Vediamo ora questi processi in maggior dettaglio.
Innanzitutto, va detto che la possibilità di combinare più dischi in uno spazio logico (una sorta di analogo di LVM) consente di effettuare lo specchio sia dei metadati che dei sottovolumi. Questa opzione è configurabile durante la creazione del file system.
Ma il punto è il seguente: se l’utente ha configurato lo specchio dei metadati, in caso di corruzione dei file o della struttura del file system, una delle copie verrà utilizzata come fonte per il recupero dei dati. Ma soprattutto, poiché i metadati sono molto più piccoli dei dati dell’utente, non vi è praticamente alcuna degradazione delle prestazioni.
Mentre un array RAID 1 normale scriverà a metà della velocità di un disco normale, con Btrfs non si avrà praticamente alcuna degradazione delle prestazioni.
Oltre a RAID 1, è possibile utilizzare tutti i tipi di RAID classici.
Per scegliere un tipo di RAID per i propri sottovolumi, leggere l’articolo “Che cosa sono gli array RAID e come utilizzarli?“. Troverete molte informazioni utili su questo argomento.
Un altro punto importante è l’uso di checksum per i dati dell’utente e per i metadati. Quando si legge un file, Btrfs li analizza costantemente e in caso di una minima discrepanza con una delle copie dei metadati, il sistema ripristina automaticamente le informazioni.
In questo modo, il file system Btrfs consente di individuare efficacemente i danni nascosti e di riparare i file corrotti.
Come aprire un’unità Btrfs in Windows?
Non è raro che gli utenti Linux debbano aprire una chiavetta USB o un disco rigido rimovibile in un sistema operativo Windows, sia per copiare semplicemente dei file che per compiti più specifici. Tuttavia, in ogni caso, si verificherà un errore quando si connette un’unità con il sistema di file Btrfs.
La ragione è che Windows di default può riconoscere solo tre tipi di sistema di file: NTFS, FAT (16, 32) e exFat. Non comprende tutti gli altri.
Tuttavia, ci sono diversi modi relativamente facili per aprire un’unità Btrfs in Windows.
Il primo (e più corretto) modo è utilizzare il programma RS Partition Recovery. Tutto ciò che serve è installare il programma. Quindi si può immediatamente lavorare con l’unità Btrfs. Tutto è estremamente semplice.
RS Partition Recovery è molto facile da usare e non richiede molte risorse del computer.
Ma soprattutto, RS Partition Recovery consente di recuperare dati persi. Se si elimina accidentalmente un file importante o si formatta un’unità, si potrà recuperare informazioni importanti senza problemi.
Inoltre, RS Partition Recovery supporta TUTTI i moderni sistemi di file, quindi si potrà aprire quasi tutte le unità in Windows. Indipendentemente dal tipo di sistema di file.
Tutti gli elementi sopra citati rendono il programma RS Partition Recovery uno strumento universale che dovrebbe essere presente nell’arsenale di ogni utente.
Il secondo modo è installare un driver speciale che leggerà il sistema di file Btrfs. Attualmente ci sono due driver di diversi produttori, WinBtrfs e Btrfs for Windows.
Entrambi questi driver funzionano, sebbene con bassa velocità. Ma il principale svantaggio di questo metodo è che spesso questi driver entrano in conflitto con i driver dei dispositivi Windows.
Quindi, molto spesso, invece del supporto del sistema di file Btrfs, gli utenti finiscono con un Windows non funzionante. Inoltre, non è raro che un conflitto di driver causi il malfunzionamento del sistema con un’unità Btrfs e corrompa i dati.
A volte è davvero difficile ripristinare la funzionalità di Windows e l’ultima soluzione è reinstallare completamente Windows. Di solito, ciò porta alla perdita di dati sull’unità C:.
Per questo motivo, consigliamo di utilizzare il primo metodo poiché è più efficiente e sicuro.
Le migliori alternative al file system Btrfs?
Anche se il file system Btrfs offre elevate prestazioni e tutte le funzionalità moderne, molte persone sono ancora restie ad utilizzarlo, sostenendo che l’affidabilità è molto più importante delle prestazioni.
Vale la pena sottolineare che oggi Btrfs è abbastanza affidabile ed è stato aggiunto a molte distribuzioni Linux a livello di test. Se ciò non vi convince, allora la migliore alternativa a Btrfs per uso domestico è Ext4.
È stato testato nel tempo e tutti sanno cosa aspettarsi. Ma dovrete sacrificare molte funzionalità moderne, tra cui alcune delle funzionalità di sicurezza che Btrfs ha.
Se stiamo parlando di un server, la migliore alternativa è il file system ZFS. In questo caso, dovrete imparare molti comandi e utilità per utilizzarlo. In caso contrario, non sarete in grado di utilizzarlo al massimo delle sue potenzialità.
Quindi dovreste considerare attentamente tutte le opzioni per scegliere quella che meglio si adatta alle vostre esigenze.
Speriamo di aver reso il più facile possibile la scelta del file system da utilizzare.