Il confronto tra i filesystem BTRFS vs EXT4

Il confronto tra i filesystem BTRFS vs EXT4
Ci sono molti filesystem là fuori per Linux. I più comuni sono Ext4, BTRFS, XFS, ZFS e così via. Ognuno dei filesystem ha i suoi casi d'uso, pro e contro. Potresti avere difficoltà a decidere quale filesystem utilizzare.

In questo articolo, confronterò Ext4 e il filesystem BTRFS. Quindi, se hai difficoltà a decidere se utilizzare il filesystem EXT4 o il filesystem BTRFS, allora

Introduzione ai filesystem EXT4 e BTRFS:

Filesystem EXT4: EXT4 è la quarta versione del filesistema Ext (Extended). È un successore del filesystem EXT3. La prima versione del filesystem EXT è stata rilasciata nel 1992 per il sistema operativo Minix. È stato successivamente portato su sistemi operativi Linux. Il filesystem EXT4 è stato rilasciato nel 2008. Ext4 è un filesystem a giornale.

System BTRFS: BTRFS o il filesystem B-Tree è un filesystem moderno di copia-on-write (Cow). È nuovo rispetto al filesstem ext. È stato progettato per i sistemi operativi Linux presso Oracle Corporation nel 2007. Nel novembre 2013, il filesystem BTRFS è stato dichiarato stabile per il kernel Linux.

Confronti di funzionalità dei filesystem EXT4 e BTRFS:

Il filesystem EXT4 e BTRFS è stato progettato per risolvere diversi tipi di problemi. Quindi, l'obiettivo di progettazione del filesystem EXT4 era diverso dal filesystem BTRFS. Tuttavia, sono filesystems. Hanno alcune somiglianze che possiamo confrontare.

io. Dimensione massima della partizione: Il filesystem EXT4 supporta le dimensioni delle partizioni fino a 1 EIB.

Il filesystem BTRFS supporta le dimensioni delle partizioni fino a 16 EIB.

ii. Dimensione massima del file: Il filesystem EXT4 supporta le dimensioni dei file fino a 16 TIB (per dimensioni standard a 4 kib).

Il filesystem BTRFS supporta le dimensioni dei file fino a 16 EIB.

iii. Lunghezza massima del nome file: Il filesystem EXT4 supporta fino a 255 caratteri (255 byte) nomi di file lunghi.

Il filesystem BTRFS supporta anche fino a 255 caratteri (255 byte) nomi di file lunghi.

iv. Caratteri consentiti in directory e nomi di file: Il filesystem EXT4 consente di tutti i caratteri tranne il / E Null (\ 0) caratteri in directory e nomi di file.

NOTA: Non è possibile creare un file o una directory con il nome. e ... nel filesystem EXT4 o BTRFS.

v. Lunghezza massima del percorso: Il filesystem EXT4 non ha alcun limite alla lunghezza del percorso di un file o directory. Quindi, puoi creare strutture di directory molto profonde e mantenere i tuoi file lì.

Lo stesso vale per il filesystem BTRFS.

vi. Numero massimo di file: È possibile creare a massimi 232 (= 4.294.967.296 ~ = 4 miliardi) in un filesystem EXT4.

È possibile creare al massimo 264 (= 18.446.744.073.709.551.616 ~ = 18 Quintillion) in un filesystem BTRFS.

vii. Metodo di allocazione degli inodi: Un inode è una struttura di dati del filesystem che viene utilizzata per descrivere un file o una directory. Quindi, una directory o un file richiede 1 inode. 2 directory o 2 file richiederanno 2 inodi.

Nel filesystem EXT4, si definisce il numero di inode che il filesystem può supportare mentre si crea il filesystem. Non è possibile modificarlo dopo la creazione del filesystem. Se crei troppi file piccoli, potresti avere uno spazio su disco gratuito sul tuo filesystem, ma non sarai in grado di creare nuovi file/directory a meno che tu non abbia inodi gratuiti. Questa è una grande limitazione del filesystem EXT4.

Nel filesystem BTRFS, l'allocazione di inode è flessibile. Il filesystem può aggiungere tutte le inode necessarie. Quindi, non finirai mai gli inodi.

viii. Supporto checksum/ECC: Il filesystem EXT4 non mantiene il checksum dei dati archiviati sul filesystem.

Il filesystem BTRFS mantiene il checksum CRC32C dei dati archiviati sul filesystem. Quindi, in caso di corruzione dei dati, il filesystem BTRFS può rilevarlo e recuperare il file corrotto.

ix. Supporto a diario e copia su scrittura: Il filesystem EXT4 è un filesystem di journaling. Non ha alcun supporto per copie-on-write (mucca).

Il filesystem BTRFS è un filesystem Copy-on-Write (Cow) e non ha alcun supporto a giornale.

X. Scatta del filesystem: Il filesystem EXT4 non può prendere le snapshot del filesystem.

Il filesystem BTRFS può prendere le snapshot. Puoi prendere istantanee di sola lettura e istantanei scrivibili.

NOTA: L'istantanea del filesystem è una caratteristica importante. Utilizzando questa funzione, puoi prendere un'istantanea del tuo filesystem prima di provare qualsiasi cosa rischiosa. Se le cose non vanno come previsto, puoi tornare in uno stato iniziale in cui tutto funzionava. Questa è una funzione integrata del filesystem BTRFS. Non hai bisogno di strumenti/software di terze parti per farlo su un filesystem BTRFS.

xi. Crittografia a livello di filesistema: Il filesystem EXT4 ha un supporto sperimentale per la crittografia a livello di filesistema.

Il filesystem BTRFS non ha alcun supporto per la crittografia a livello di filesystem.

XII. Deduplicazione a livello di filesistema: Il filesystem EXT4 non ha un supporto di deduplicazione.

Il filesystem BTRFS supporta la deduplicazione a livello di filesystem. Non hai bisogno di strumenti/software di terze parti per questo.

NOTA: La depulsione è una tecnica per eliminare/rimuovere copie duplicate di dati dal filesystem e mantenere solo una copia dei dati (dati univoci) sul filesystem. Questa tecnica viene utilizzata per salvare gli spazi del disco.

XIII. Supporto più dispositivi: Il filesystem BTRFS supporta più dispositivi e ha un supporto RAID integrato. Il filesystem BTRFS ha un gestore del volume logico (LVM) integrato che viene utilizzato per aggiungere più dispositivi di archiviazione o partizioni a un singolo filesystem BTRFS. Un singolo filesystem BTRFS può estendersi su più dischi e partizioni.

Il filesystem EXT4 non supporta più dispositivi. Non è possibile attraversare un singolo filesystem EXT4 su più dischi o partizioni. Per combinare più dispositivi di archiviazione e partizioni in un filesystem EXT4, è necessario utilizzare i gestori di volumi logici di terze parti come LVM 2. Per impostare RAID, è necessario utilizzare strumenti di terze parti come DM-Raid o MDADM.

xiv. Compressione a livello di filesistema: Il filesystem EXT4 non ha un supporto di compressione a livello di filesystem integrato.

Il filesystem BTRFS ha un supporto di compressione a livello di filesystem integrato. Può comprimere una singola directory o un singolo file o l'intero filesystem per salvare lo spazio su disco.

xv. Funzionalità di ridimensionamento del filesystem offline: Il filesystem EXT4 ha il supporto per la crescita del filesystem offline (aumenta la dimensione del filestem) e la riduzione (diminuzione della dimensione del filesistema).

Il filesystem BTRFS supporta anche il filesystem offline in crescita e si restringe.

XVI. Le funzionalità di ridimensionamento del filesystem online: Il filesystem EXT4 ha il supporto per la crescita online (aumenta la dimensione del filestem quando montato). Ma non ha alcun supporto per il restringimento del filesystem online (diminuire le dimensioni del filesmem quando montato).

È possibile crescere (aumentare la dimensione del filesystem) e ridurre (diminuire la dimensione del filesistema) BTRFS FILESYSYSYS ONLINE (quando montato).

XVII. File sparsi: Funzione file sparsa Salva spazio su disco quando vengono archiviati piccoli file (più piccoli della dimensione del blocco). Il filesystem EXT4 e BTRFS supporta i file sparsi.

XVIII. Blocco sotto-allocazione: Il filesystem EXT4 non supporta la sotto-allocazione del blocco.

Il filesystem BTRFS supporta la sotto-allocazione del blocco.

NOTA: Quando un filesystem memorizza file di grandi dimensioni in un filesystem, il file di grandi dimensioni viene suddiviso in blocchi e i blocchi vengono archiviati nel filesystem. L'ultimo blocco del file non occupa l'intero blocco. Quest'ultimo blocco si chiama The Tail Block. Allo stesso modo, quando vengono archiviati molti piccoli file, non occupano l'intero blocco. Quindi, un sacco di spazio su disco viene sprecato. La sotto-allocazione del blocco è un metodo per archiviare parti di un altro blocco di file sul blocco di coda (l'ultimo blocco di un altro file che non ha occupato l'intero blocco) e salvare gli spazi del disco.

XIX. Imballo di coda: Il filesystem EXT4 non supporta l'imballaggio della coda.

Il filesystem BTRFS supporta l'imballaggio della coda.

NOTA: L'imballaggio della coda fa parte della sotto-allocazione del blocco. Come ho già discusso, piccoli file non occupano un intero blocco di file. Quindi, per archiviare in modo efficiente piccoli file (i.e. Codici di origine del programma) Nel filesystem, il blocco di coda di un piccolo file viene utilizzato per archiviare altri piccoli file. L'imballaggio della coda migliora le prestazioni del filesystem e risparmia molto spazio su disco in un filesystem in cui molti piccoli file (i.e. I codici di origine del programma) sono archiviati.

xx. System basato su estensione: Sia i filesystem EXT4 che BTRFS sono filesystems estendenti.

NOTA: Una misura è un'area contigua del dispositivo di archiviazione riservato per un file in un filesystem. I filesystem basati su estensione archiviano file di grandi dimensioni in un'area di archiviazione contigua. Ciò migliora le prestazioni del filesystem e aumenta l'efficienza di archiviazione.

xxi. Dimensione del blocco file variabile: Il filesystem EXT4 supporta la dimensione del blocco fisso. La dimensione del blocco viene impostata prima che venga creato il filesystem. Una volta creato il filesystem, non è possibile modificare la dimensione del blocco.

Il filesystem BTRFS supporta la dimensione del blocco variabile. Il filesystem può determinare la migliore dimensione del blocco possibile per archiviare un file sul filesystem in base alle dimensioni del file. Questa funzione può salvare molto spazio su disco.

XXII. Allocate-on-flush: Sia il filesystem EXT4 che BTRFS supportano Allocate-on-Flush.

NOTA: Il filesystem assegna uno spazio del buffer nella memoria del computer. Quando ci sono richieste di scrittura del disco, il filesystem non scrive i blocchi di dati direttamente sul dispositivo di archiviazione. Invece, il filesystem memorizza i blocchi di dati nella memoria del buffer. Quando la memoria del buffer è piena, il filesystem scrive contemporaneamente tutti i blocchi di dati in sospeso sul dispositivo di archiviazione. Ciò riduce l'utilizzo della CPU, accelera il disco e riduce la frammentazione del disco.

XXIII. Supporto TRIM: Sia il TRIM del filesystem EXT4 che BTRFS. È una caratteristica molto importante per i dispositivi di archiviazione SSD.

NOTA: Quando si rimuove un file da un SSD, il comando TRIM notifica il dispositivo di archiviazione SSD delle pagine (blocchi di file) che non sono più necessari. L'SSD cancella le pagine non necessarie (blocchi di file) dall'archiviazione flash e prepara le pagine (blocchi di file) per la memorizzazione di nuovi dati. Senza supporto TRIM, la velocità di scrittura SSD diventerebbe più lenta poiché l'SSD è riempito con nuovi dati.

Vantaggi di EXT4 su BTRFS:

Il filesystem EXT4 è un filesystem molto vecchio. È stato utilizzato sul sistema operativo Linux per molto, molto tempo. Per questo motivo, il filesystem EXT4 è molto stabile. Il filesystem EXT4 è ancora il filesystem predefinito in molte distribuzioni popolari Linux (i.e. Ubuntu/Debian). Se è necessario archiviare alcuni dati come normale utente Linux, puoi tenere gli occhi chiusi e utilizzare il filesystem EXT4. Il filesystem EXT4 ha un supporto di journaling. Quindi, i tuoi file dovrebbero essere sicuri anche quando c'è un'interruzione di corrente. È un buon filesystem per l'uso quotidiano.

Vantaggi di BTRFS su Ext4:

Il filesystem BTRFS è un filesystem moderno di copia-on-write (Cow) progettato per server di archiviazione ad alta capacità e ad alte prestazioni. Quindi, ha molte funzionalità avanzate che il filesystem EXT4 non ha. Il filesystem EXT4 è stato progettato per essere un semplice filesystem locale.

Le caratteristiche principali del filesystem BTRFS che sono utili per gli utenti di Linux quotidiani:

  1. Snapshot a livello di filesystem integrato.
  2. Supporto per dispositivi multipli.
  3. Supporto RAID integrato.
  4. Allocazione flessibile inde.
  5. Ottimizzazioni per l'archiviazione di file più piccoli (file sparsi, sotto-allocazione del blocco, imballaggio della coda, dimensione del blocco variabile).
  6. Supporto di compressione a livello di filesystem integrato.

Queste sono le funzionalità del filesystem per le quali è possibile scegliere di utilizzare il filesystem BTRFS sul filesystem EXT4.

Conclusione:

In questo articolo, ho confrontato i filesystem BTRF e EXT4. Ho confrontato le caratteristiche principali del filesstem BTRFS e EXT4. Questo articolo dovrebbe aiutarti a decidere tra BTRFS e il filesystem EXT4.

Riferimenti:

  1. ext4 - wikipedia - https: // en.Wikipedia.org/wiki/ext4
  2. BTRFS - Wikipedia - https: // en.Wikipedia.org/wiki/btrfs
  3. kernel/git/torvalds/linux.GIT - Tree di sorgente del kernel Linux - https: // git.kernel.Org/Pub/SCM/Linux/Kernel/Git/Torvalds/Linux.git/commit/?ID = 4204617D142C0887E45FDA2562CB5C58097B918E
  4. Confronto di filesystems - Wikipedia - https: // en.Wikipedia.org/wiki/confronto_of_file_systems
  5. Deduplicazione dei dati - Wikipedia - https: // en.Wikipedia.org/wiki/data_deduplication
  6. File sparsa - Wikipedia - https: // en.Wikipedia.org/wiki/spara_file
  7. Blocco Subalocazione - Wikipedia - https: // en.Wikipedia.org/wiki/block_suballocation
  8. Estensione (file system) - wikipedia - https: // en.Wikipedia.org/wiki/extent_ (file_systems)
  9. Allocate -on -flush - Wikipedia - https: // en.Wikipedia.Org/Wiki/Allocate-on-Flush
  10. Trim (calcolo) - Wikipedia - https: // en.Wikipedia.org/wiki/trim_ (calcolo)