Confronto tra i filesystem BTRF e XFS

Confronto tra i filesystem BTRF e XFS
Ci sono molti filesystem disponibili per l'uso con Linux. I filesystem Linux più comuni includono EXT4, BTRFS, XFS e ZFS. Ogni filesystem ha i suoi casi d'uso, pro e contro univoci. A causa della varietà di opzioni disponibili, potresti avere difficoltà a decidere quale filesystem utilizzare.Per aiutarti con la tua scelta, questo articolo confronta i filesystem XFS e BTRFS. Se hai difficoltà a decidere se utilizzare il filesystem XFS o il filesystem BTRFS, questo articolo dovrebbe aiutare. Cominciamo!

Introduzione ai filesystem XFS e BTRFS

System XFS: XFS è un filesystem di journaling a 64 bit ad alte prestazioni. È stato originariamente sviluppato da Silicon Graphics, Inc. Nel 1993 per il sistema operativo Irix e successivamente è stato portato sul kernel Linux nel 2001.

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

Confronto delle caratteristiche

I filesystem XFS e BTRFS sono stati progettati per risolvere diversi tipi di problemi. Sebbene l'obiettivo di progettazione del filesystem XFS fosse diverso da quello del filesystem BTRFS, poiché sono entrambi filesystem, possiamo confrontarli in profondità.

  • Dimensione massima della partizione: Il filesystem XFS supporta dimensioni di partizione fino a 1 byte inferiore a 8 EIB (8 EIB - 1 byte).
  • Il filesystem BTRFS supporta dimensioni di partizione fino a 16 EIB.
  • Dimensione massima del file: Il filesystem XFS supporta dimensioni di file fino a 1 byte e meno di 8 EIB (8 EIB - 1 byte).
  • Il filesystem BTRFS supporta dimensioni di file fino a 16 EIB.
  • Lunghezza massima del nome file: Il filesystem XFS supporta i nomi di file fino a 255 caratteri (255 byte) di lunghezza.
  • Il filesystem BTRFS supporta anche file di file fino a 255 caratteri (255 byte) di lunghezza.
  • Caratteri consentiti in directory e nomi di file: Il filesystem XFS consente di tutti i caratteri tranne il / E NULLO (\ 0) caratteri in directory e nomi di file.
  • Il filesystem BTRFS consente anche qualsiasi caratteri tranne il / E NULLO (\ 0) caratteri in directory e nomi di file.

NOTA: Non è possibile creare un file o una directory con il nome . E .. In entrambi i filesystem XFS o BTRFS.

  • Lunghezza massima del percorso: Il filesystem XFS non ha alcun limite alla lunghezza del percorso di un file o di una directory. Quindi, puoi creare strutture di directory profonde e mantenere i tuoi file in queste strutture.
  • Lo stesso vale per il filesystem BTRFS.
  • Numero massimo di file: Puoi creare un massimo di 264 (= 18.446.744.073.709.551.616 ~ = 18 quintillion) in un filesystem XFS.
  • Lo stesso vale per il filesystem BTRFS.
  • Metodo di allocazione degli inodi: Un inode è una struttura di dati del filesystem utilizzato per descrivere un file o una directory. Quindi, una singola directory o file richiede un inode, due directory o file richiederanno due inodi e così via.
  • Nel filesystem EXT4, si definisce il numero di inode che il filesystem può supportare durante la creazione del filesystem. Non è possibile modificarlo dopo che il filesystem è stato creato. 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 delle principali limitazioni al filesystem EXT4.
  • A differenza del filesystem EXT4, l'allocazione di inode è flessibile nel filesystem XFS. Quindi, il filesystem può aggiungere tutti gli inodi necessari e non si esaurisce mai gli inodi.
  • Quanto sopra è vero anche per il filesystem BTRFS.
  • Supporto checksum/ECC: Il filesystem BTRFS mantiene il checksum CRC32C dei dati e dei metadati archiviati nel filesystem. Pertanto, nel caso della corruzione dei dati, il filesystem BTRFS può rilevare la corruzione e recuperare i file o i metadati corrotti.
  • Il filesystem XFS mantiene solo il checksum CRC32 dei metadati. Non mantiene un checksum dei dati archiviati nel filesystem, a differenza del filesystem BTRFS.
  • Supporto a diario e copia su scrittura: Il filesystem XFS è un filesystem di journaling. Non ha supporto copy-on-write (mucca).
  • Il filesystem BTRFS è un filesystem Copy-on-Write (Cow) e non ha un supporto per il diario.
  • Scatta del filesystem: Il filesystem XFS non può prendere le snapshot del filesystem.
  • Il filesystem BTRFS può prendere le snapshot del filesystem. Con BTRFS, puoi prendere snapshot di sola lettura e istantanei scrivibili del filesystem.

NOTA: L'istantanea del filesystem è una caratteristica importante. Puoi prendere un'istantanea del tuo filesystem utilizzando questa funzione prima di tentare eventuali azioni rischiose. Se le cose non vanno come previsto, un'istantanea ti consente di tornare in uno stato precedente in cui tutto nel sistema ha funzionato. Questa è una funzione integrata del filesystem BTRFS. Non hai bisogno di strumenti o software di terze parti per generare un'istantanea di un filesystem BTRFS.

  • Crittografia a livello di filesistema: Il filesystem BTRFS non supporta la crittografia a livello di filesystem.
  • Lo stesso vale per il filesystem XFS.
  • Deduplicazione a livello di filesistema: Il filesystem BTRFS supporta la deduplicazione a livello di filesystem. Non hai bisogno di strumenti o software di terze parti per utilizzare questa funzione.
  • Il filesystem XFS ha anche il supporto di deduplicazione, ma la funzione di deduplicazione del filesystem XFS è ancora sperimentale.

NOTA: La detenzione è una tecnica per eliminare copie duplicate di dati dal filesystem e mantenere solo una copia dei dati (dati univoci) nel filesystem. Questa tecnica viene utilizzata per salvare lo spazio su disco.

  • Supporto più dispositivi: Il filesystem BTRFS supporta più dispositivi e include supporto RAID integrato. Il filesystem BTRFS ha un gestore logico di volume logico integrato (LVM) per l'aggiunta di più dispositivi di archiviazione o partizioni a un singolo filesystem BTRFS. Un singolo filesystem BTRFS può estendersi su più dischi e partizioni.
  • Il filesystem XFS non supporta più dispositivi, il che significa che non è possibile estendere un singolo filesystem XFS su più dischi o partizioni. Per combinare più dispositivi di archiviazione e partizioni in un filesystem XFS, è necessario utilizzare gestori di volumi logici di terze parti, come LVM 2. Per impostare RAID, è necessario utilizzare strumenti di terze parti come dm-raid O mdadm.
  • Il filesystem XFS è stato progettato per eseguire le operazioni I/O (input/output) in parallelo. Se si estende il filesystem XFS su più dispositivi utilizzando LVM 2 o un gestore di volume logico diverso, le prestazioni del filesystem saranno aumentate.
  • Compressione a livello di filesistema: Il filesystem XFS non include il supporto di compressione a livello di filesystem integrato.
  • Il filesystem BTRFS include il supporto di compressione a livello di filesystem integrato. Questa funzione consente di comprimere una singola directory, un singolo file o l'intero system per salvare lo spazio su disco.
  • Funzionalità di ridimensionamento del filesystem offline: Non è possibile crescere (aumentare le dimensioni del filesystem) o restringere (diminuire la dimensione del filesystem) un filesystem XFS mentre il filesystem non è montato.
  • È possibile crescere (aumentare la dimensione del filesystem) o ridurre (diminuire la dimensione del filesystem) un filesystem BTRFS mentre il filesystem non è montato.
  • Le funzionalità di ridimensionamento del filesystem online: È possibile crescere (aumentare la dimensione del filesystem) un filesystem XFS mentre il filesystem è montato, ma non è possibile ridursi (diminuire la dimensione del filesystem) un filesystem XFS mentre il filesystem è montato.
  • È possibile crescere (aumentare la dimensione del filesistema) o ridurre (diminuire la dimensione del filesystem) un filesystem BTRFS mentre il filesystem è montato.
  • File sparsi: La funzionalità del file sparsa risparmia lo spazio del disco quando piccoli file (più piccoli della dimensione del blocco) sono archiviati sul filesystem. I filesystem XFS e BTRFS supportano entrambi i file sparsi.
  • Blocco sotto-allocazione: Il filesystem BTRFS supporta la sotto-allocazione del blocco.
  • Il filesystem XFS non 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, chiamato blocco di coda, non occupa l'intero blocco. Quando vengono archiviati molti piccoli file, non occupano l'intero blocco e si spreca molto spazio su disco. La sotto-allocazione del blocco consente di archiviare parti di un altro blocco di file nel blocco di coda (l'ultimo blocco di un altro file che non ha occupato l'intero blocco) per salvare lo spazio su disco.

  • Imballo di coda: Il filesystem BTRFS supporta l'imballaggio della coda.
  • Il filesystem XFS non supporta l'imballaggio della coda.

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

  • System basato su estensione: Entrambi i filesystem XFS e 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.

  • Dimensione del blocco file variabile: 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 XFS supporta la dimensione del blocco fisso.
  • 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.
  • Allocate-on-flush: Sia i filesystem XFS che BTRFS supportano Allocate-on-Flush.

NOTA: Il filesystem assegna uno spazio del buffer nella memoria del sistema. 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.

  • Supporto TRIM: Sia i filesystem di XFS che BTRFS supportano il rivestimento, che è 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 progressivamente più lenta mentre l'SSD si riempie di nuovi dati.

Vantaggi di XFS su BTRFS

XFS è un filesystem di journaling a 64 bit stabile per dispositivi di archiviazione ad alta capacità.

È possibile utilizzare il filesystem XFS per i seguenti motivi:

  • Supporto I/O parallelo (input/output)

Il filesystem XFS supporta I/O paralleli e può fornire più flussi di dati per i file a causa del suo design.

  • Grande supporto di partizione

Il filesystem XFS supporta dimensioni di partizione fino a 8 EIB (fino a 8 EIB - 1 byte).

  • Supporto file di grandi dimensioni

Il filesystem XFS supporta dimensioni di file fino a 8 EIB (fino a 8 EIB - 1 byte).

  • Supporto di journaling

Il journaling garantisce la coerenza dei dati nel filesystem in caso di interruzione di corrente o arresto anomalo del sistema. In caso di interruzione di corrente o arresto anomalo del sistema, i dati archiviati nel diario verranno recuperati e applicati al filesystem.

  • I/O diretto

Questa è una caratteristica importante del filesystem XFS. È essenziale per le applicazioni che richiedono un'elevata velocità di lettura/scrittura a dispositivi di archiviazione. L'I/O diretto consente dispositivi di archiviazione Accesso diretto al buffer di dati utilizzando DMA (accesso a memoria diretta) in modo che la larghezza di banda I/O completa possa essere utilizzata.

  • I/O garantiti

Il filesystem XFS può riservare la larghezza di banda del dispositivo di archiviazione per determinate applicazioni. Questa funzione è ideale per applicazioni in tempo reale (e.G., video streaming).

Svantaggi del filesystem XFS

Ci sono alcuni svantaggi nel filesystem XFS.

Gli svantaggi del filesystem XFS includono quanto segue:

  • Nessun supporto LVM integrato

Rispetto al filesystem BTRFS, il filesystem XFS non ha un gestore del volume logico integrato. Quindi, dovrai usare LVM 2 Per la gestione del volume logico.

  • Nessun supporto RAID integrato

Rispetto al filesystem BTRFS, il filesystem XFS non ha un supporto RAID integrato. Quindi, dovrai usare dm-raid O mdadm Per configurare RAID.

  • Nessun supporto istantanee

Il filesystem XFS non ha una funzione snapshot del filesystem, a differenza del filesystem BTRFS.

  • Il journaling non può essere disabilitato

Come con alcuni altri filesystem di journaling, non è possibile disabilitare la funzione di journaling del filesystem XFS. Il journaling non fa bene alle unità flash USB. Se si utilizza il filesystem XFS su un'unità flash USB, la durata del disco flash USB verrà ridotta a causa del sovraccarico di journaling.

Vantaggi di BTRF su XFS

Il filesystem BTRFS è un filesystem moderno di copia-on-write (mucca) progettato per server di archiviazione ad alta capacità e ad alte prestazioni. XFS è anche un filesystem di journaling a 64 bit ad alte prestazioni che è anche in grado di fare operazioni I/O parallele. Il filesystem XFS contiene molte caratteristiche importanti, tra cui I/O diretto, I/O a tasso garantito e altro ancora. Rispetto al filesystem XFS, tuttavia, il filesystem BTRFS presenta molti vantaggi.

I vantaggi del filesystem BTRFS sul filesystem XFS includono quanto segue:

i) Snapshot a livello di filesystem integrato.

ii) Supporto multiplo del dispositivo.

iii) Supporto RAID integrato.

iv) Allocazione flessibile degli inodi.

v) ottimizzazioni per la memorizzazione di file più piccoli (file sparsi, sotto-allocazione del blocco, imballaggio della coda, dimensione del blocco variabile).

vi) Supporto di compressione a livello di filesystem integrato.

Queste sono le funzionalità del filesystem che potrebbero farti scegliere il filesystem BTRFS sul filesystem XFS.

Conclusione

Questo articolo ha confrontato i filesystem BTRFS e XFS, incluso un confronto delle caratteristiche più importanti di ciascun filesystem. Questo articolo dovrebbe aiutarti a decidere tra i filesystem BTRFS e XFS. Scegli qualunque sistema funzioni meglio per te, in base alle tue esigenze e preferenze uniche.

Riferimenti:

  1. XFS - Wikipedia - https: // en.Wikipedia.org/wiki/xfs
  2. Confronto di file system - Wikipedia - https: // en.Wikipedia.org/wiki/confronto_of_file_systems
  3. XFS - Archwiki - https: // wiki.Archlinux.org/indice.PHP/XFS