GNU/Linux >> Linux Esercitazione >  >> Linux

Spiegazione dei tipi di file system Linux, quale dovresti usare

Linux supporta vari file system come ext4, ZFS, XFS, Btrfs, Reiser4 e così via. Diversi tipi di file system risolvono problemi diversi e il loro utilizzo è specifico dell'applicazione.

La scelta di un file system Linux per la tua applicazione è una decisione importante. Questo tutorial descrive alcuni dei principali file system Linux e fornisce consigli sul file system più adatto alla tua applicazione.

Cos'è il file system Linux

Quasi tutti i dati e la programmazione necessari per avviare un sistema Linux e mantenerlo in funzione vengono salvati nel file system. Ad esempio, il sistema operativo stesso, i compilatori, i programmi applicativi, le librerie condivise, i file di configurazione, i file di registro, i punti di montaggio dei supporti, ecc.

I file system operano in background. Come il resto del kernel di un sistema operativo, sono in gran parte invisibili nell'uso quotidiano.

Il file system Linux è generalmente un livello integrato di un sistema operativo Linux utilizzato per gestire la gestione dei dati di archiviazione. Controlla il modo in cui i dati vengono archiviati e recuperati.

Inoltre, gestisce il nome del file, la dimensione del file, la data di creazione e molte altre informazioni su un file.

File system Ext4

Nel 1992 è stato lanciato l'Extended File System o ext specifico per il sistema operativo Linux. Ha le sue radici nel sistema operativo Minix. Nel 1993 è stato rilasciato un aggiornamento chiamato Extended File System 2 o ext2 che è stato il file system predefinito in molte distribuzioni Linux per molti anni.

Nel 2001 ext2 è stato aggiornato a ext3, che ha introdotto il journaling per la protezione contro la corruzione in caso di arresti anomali o interruzioni di corrente.

Ext4 (quarto file system esteso) è stato introdotto nel 2008 ed è il file system Linux predefinito dal 2010. È stato progettato come una revisione progressiva del file system ext3 e ha superato alcune limitazioni in ext3.

Di conseguenza, ext4 presenta vantaggi significativi rispetto al suo predecessore, come design migliorato, prestazioni migliori, affidabilità e nuove funzionalità.

Al giorno d'oggi ext4 è il file system predefinito sulla maggior parte delle distribuzioni Linux. Può supportare file di grandi dimensioni e file system fino a 16 terabyte.

Supporta anche un numero illimitato di sottodirectory (il file system ext3 supporta solo fino a 32.000). Inoltre, ext4 è retrocompatibile con ext3 ed ext2, consentendo di montare queste versioni precedenti con il driver ext4.

C'è un motivo per cui ext4 è la scelta predefinita per la maggior parte delle distribuzioni Linux. È provato, testato, stabile, offre prestazioni eccellenti ed è ampiamente supportato. Quindi, se stai cercando stabilità, ext4 è il miglior filesystem Linux per te.

Nonostante le sue caratteristiche, ext4 non supporta la compressione trasparente, la crittografia trasparente o la deduplicazione dei dati.

File system XFS

XFS è un file system altamente scalabile sviluppato da Silicon Graphics e distribuito per la prima volta nel sistema operativo IRIX basato su Unix nel 1994. È un file system di journaling e, come tale, tiene traccia delle modifiche in un registro prima di eseguire il commit delle modifiche al sistema di file.

Il vantaggio è la coerenza garantita del file system e il ripristino rapido in caso di interruzioni di corrente o arresti anomali del sistema.

Inizialmente, XFS è stato creato per supportare filesystem estremamente grandi con dimensioni fino a 16 exabyte e dimensioni file fino a 8 exabyte. Di conseguenza, ha una lunga storia di esecuzione su server e array di archiviazione di grandi dimensioni.

Una caratteristica notevole di XFS è Guaranteed Rate IO. Ciò consente alle applicazioni di riservare la larghezza di banda. Il file system calcola le prestazioni disponibili e regola il suo funzionamento in base alle prenotazioni esistenti.

XFS ha la reputazione di operare in ambienti che richiedono prestazioni e scalabilità elevate e quindi viene regolarmente misurato come uno dei file system con le prestazioni più elevate su sistemi di grandi dimensioni con carichi di lavoro aziendali.

Oggi XFS è supportato dalla maggior parte delle distribuzioni Linux ed è diventato il filesystem predefinito su Red Hat Enterprise Linux, Oracle Linux, CentOS e molte altre distribuzioni.

I migliori casi d'uso per il file system XFS

Quindi, hai un server di grandi dimensioni? Hai grandi requisiti di archiviazione o disponi di un'unità SATA lenta locale?

Se sia il tuo server che il tuo dispositivo di archiviazione sono grandi e non è necessario ridurre le dimensioni del filesystem, è probabile che XFS sia la scelta migliore.

XFS è un filesystem eccellente, che si adatta bene ai server di grandi dimensioni. Ma anche con array di archiviazione più piccoli, XFS funziona molto bene quando le dimensioni medie dei file sono grandi, ad esempio centinaia di megabyte.

File system Btrfs

Btrfs è il file system Linux generico di nuova generazione che offre funzionalità uniche come gestione avanzata dei dispositivi integrati, scalabilità e affidabilità. È concesso in licenza in base alla GPL e aperto al contributo di chiunque. Per il file system vengono utilizzati nomi diversi, inclusi "Butter FS", "B-tree FS" e "Better FS".

Lo sviluppo di Btrfs è iniziato in Oracle nel 2007. È stato fuso nel kernel Linux principale nel 2009 e ha debuttato nella versione Linux 2.6.29.

Btrfs non è un successore del file system ext4 predefinito utilizzato nella maggior parte delle distribuzioni Linux, ma offre una migliore scalabilità e affidabilità. Invece, Btrfs è un file system copy-on-write (CoW) destinato a risolvere vari punti deboli negli attuali file system Linux.

Btrfs principalmente focus su tolleranza ai guasti, proprietà autorigeneranti e facile amministrazione.

Btrfs può supportare una partizione fino a 16 exbibyte e un file della stessa dimensione. Quindi, se sei confuso dai numeri, tutto ciò che devi sapere è che Btrfs può supportare fino a sedici volte i dati di Ext4.

Come funziona Copy-on-Write e perché lo vorresti

In un file system tradizionale, la modifica di un file legge i dati, li cambia e poi li riscrive nello stesso posto. In un file system copia su scrittura, legge i dati, li modifica e li scrive in una nuova posizione. Ciò impedisce la perdita di dati durante la transazione di lettura-modifica-scrittura perché i dati sono sempre su un disco.

Dal momento che non si "ripunta" fino a quando il nuovo blocco non è stato completamente scritto, se si perde alimentazione o si arresta in modo anomalo nel mezzo di una scrittura, si finisce con il vecchio blocco o il nuovo blocco, ma non con un blocco corrotto scritto a metà bloccare. Quindi non è necessario fsck filesystem all'avvio e riduci il rischio di danneggiamento dei dati.

Puoi eseguire lo snapshot del filesystem in qualsiasi momento, creando una voce snapshot nei metadati con il set di puntatori corrente.

Questo protegge i vecchi blocchi dalla raccolta di dati inutili in seguito e consente al filesystem di presentare un volume com'era durante lo snapshot. In altre parole, hai capacità di rollback istantaneo. Puoi persino clonare quel volume per renderlo scrivibile in base allo snapshot.

L'altra scelta è ZFS su Linux, che potrebbe essere più stabile, ma richiede alcuni passaggi in più per l'installazione su distribuzioni Linux tipiche.

Caratteristiche di Btrfs

  • Copia su Write (CoW) e snapshot – Rendi indolori i backup incrementali anche da un filesystem "caldo" o da una macchina virtuale (VM).
  • Checksum a livello di file – I metadati per ogni file includono un checksum utilizzato per rilevare e riparare gli errori.
  • Compressione – I file possono essere compressi e decompressi al volo, il che velocizza le prestazioni di lettura.
  • Deframmentazione automatica – Un thread in background ottimizza i filesystem mentre sono in uso.
  • Sottovolumi – I filesystem possono condividere un singolo pool di spazio invece di essere inseriti nelle loro partizioni.
  • RAID – Btrfs esegue le sue implementazioni RAID, quindi LVM o mdadm non devono disporre di RAID. Attualmente sono supportati RAID 0, 1 e 10. RAID 5 e 6 sono considerati instabili.
  • Le partizioni sono facoltative – Sebbene Btrfs possa funzionare con le partizioni, ha il potenziale per utilizzare direttamente dispositivi grezzi (/dev/).
  • Deduplicazione dei dati – Il supporto per la deduplicazione dei dati è limitato; tuttavia, la deduplica alla fine diventerà una funzionalità standard in Btrfs. Ciò consente a Btrfs di risparmiare spazio confrontando i file tramite differenze binarie.

Btrfs è un filesystem che non necessita di amministrazione una volta implementato. Pertanto, non dovresti mai eseguire fsck comando su di esso. Ogni volta che si verificano errori o incongruenze, dovrebbe semplicemente gestirli ed essere sulla buona strada.

Sebbene sia vero che Btrfs è ancora considerato sperimentale ed è attualmente in fase di sviluppo attivo, il momento in cui Btrfs diventerà il filesystem predefinito per i sistemi Linux si sta avvicinando. Alcune distribuzioni Linux hanno già iniziato a passare ad esso con le loro versioni attuali.

Se non hai paura di avere a che fare con un ecosistema un po' meno maturo, Btrfs potrebbe essere l'opzione migliore per te.

File system ZFS

ZFS (Zettabyte File System) rimane uno dei filesystem tecnicamente più avanzati e completi di funzionalità da quando è apparso nell'ottobre 2005. È un filesystem locale (es. ext4) e un gestore di volumi logici (es. LVM) creato da Sun Microsystems.

ZFS è stato pubblicato con una licenza open source fino a quando Oracle non ha acquistato Sun Microsystems e ha chiuso la licenza.

Puoi pensare a ZFS come un gestore di volumi e un array RAID in uno , che consente di aggiungere dischi extra al volume ZFS, che consente di aggiungere ulteriore spazio al file system. Inoltre, ZFS viene fornito con alcune altre funzionalità che il RAID tradizionale non ha.

ZFS dipende fortemente dalla memoria, quindi per iniziare sono necessari almeno 8 GB. In pratica, usa il più possibile per il tuo hardware/budget.

ZFS è comunemente usato da accumulatori di dati, utenti NAS e altri fanatici che preferiscono affidarsi a un proprio sistema di archiviazione ridondante piuttosto che al cloud. È un file system fantastico per gestire più dischi di dati e rivaleggia con alcune delle superbe configurazioni RAID.

ZFS è simile ad altri approcci di gestione dello storage, ma in qualche modo è radicalmente diverso. Ad esempio, ZFS di solito non utilizza Linux Logical Volume Manager (LVM) o le partizioni del disco ed è generalmente conveniente eliminare le partizioni e le strutture LVM prima di preparare il supporto per uno zpool.

Lo zpool è l'analogo dell'LVM. Uno zpool si estende su uno o più dispositivi di archiviazione e i membri di uno zpool possono essere di vario tipo. Gli elementi di archiviazione di base sono dispositivi singoli, mirror e raidz. Tutti questi elementi di archiviazione sono chiamati vdevs.

ZFS può rafforzare l'integrità dello storage molto meglio di qualsiasi controller RAID, poiché ha una profonda conoscenza della struttura del filesystem. Di conseguenza, la sicurezza dei dati è un'importante caratteristica di progettazione di ZFS. Tutti i blocchi scritti in uno zpool vengono sommati in modo aggressivo per garantire la coerenza e la correttezza dei dati.

Per l'uso del server in cui vuoi eliminare quasi del tutto ogni possibilità di perdita di dati e la stabilità è il nome del gioco, potresti voler esaminare ZFS.

Caratteristiche ZFS

Scalabilità infinita . Bene, non è tecnicamente infinito, ma è un filesystem a 128 bit in grado di gestire zettabyte (un miliardo di terabyte) di dati. Pertanto, non importa quanto spazio sul disco rigido hai, ZFS sarà adatto per gestirlo.

Massima integrità . Tutto ciò che fai all'interno di ZFS utilizza un checksum per garantire l'integrità dei file. Di conseguenza, puoi essere certo che i tuoi file e le loro copie ridondanti non subiranno un danneggiamento silenzioso dei dati. Inoltre, mentre ZFS è impegnato a controllare l'integrità dei tuoi dati, eseguirà riparazioni automatiche ogni volta che può.

Favorire il pool . I creatori di ZFS vogliono che tu lo consideri simile al modo in cui il tuo computer utilizza la RAM. Quando hai bisogno di più memoria nel tuo computer, inserisci un altro stick e il gioco è fatto.

Allo stesso modo, con ZFS, quando hai bisogno di più spazio su disco rigido, inserisci un altro disco rigido e il gioco è fatto. Non è necessario dedicare tempo a partizionare, formattare, inizializzare o eseguire altre operazioni sui dischi. Quando hai bisogno di un "pool" di archiviazione più grande, aggiungi semplicemente i dischi.

RAID . ZFS è in grado di supportare molti livelli RAID diversi, offrendo prestazioni paragonabili a quelle dei controller RAID hardware. Ciò ti consente di risparmiare denaro, semplificare la configurazione e accedere a livelli RAID superiori che ZFS ha migliorato.

File system Reiser4

ReiserFS è un file system per computer per uso generico con journaling progettato e implementato inizialmente da un team di Namesys guidato da Hans Reiser. Introdotto nella versione 2.4.1 del kernel Linux, è stato il primo file system di journaling incluso nel kernel standard.

Ad eccezione degli aggiornamenti di sicurezza e delle correzioni di bug critici, Namesys ha interrotto lo sviluppo su ReiserFS. Reiser4 è il filesystem successore di ReiserFS. Ha aggiunto la crittografia, prestazioni migliorate e molto altro.

Reiser4 richiede un kernel con patch. Sfortunatamente, non è ancora incluso nel kernel Linux ufficiale, ma sono già disponibili patch per Linux-5.x. Le ragioni per cui Reiser4 non è presente nel kernel Linux oggi possono essere riassunte come affermazioni che sono necessari ulteriori test.

Reiser4 fornisce l'utilizzo dello spazio su disco più efficiente tra tutti i file system in tutti gli scenari e carichi di lavoro. ReiserFS offre vantaggi rispetto ad altri file system, soprattutto quando si gestisce un numero elevato di file di piccole dimensioni.

Supporta il journaling per un ripristino rapido in caso di problemi. La struttura del file system è basata su alberi. Inoltre, Reiser4 consuma un po' più di CPU rispetto ad altri filesystem.

Reiser4 ha una capacità unica di ottimizzare lo spazio su disco occupato da piccoli file (meno di un blocco). Questo perché sono archiviati interamente nel loro inode, senza allocare blocchi nell'area dati.

Oltre a implementare le tradizionali funzioni del filesystem Linux, Reiser4 offre agli utenti alcune funzionalità aggiuntive:compressione e crittografia trasparenti dei file, inserimento completo nel journal dei dati ed estensibilità quasi illimitata (con l'aiuto dell'architettura plug-in).

Tuttavia, non c'è supporto per IO diretto (i lavori per l'implementazione sono iniziati), quote e POSIX ACL.

Conclusione

La scelta del file system che soddisfi le vostre specifiche esigenze applicative richiede la consultazione e la ricerca di vari parametri.

Questo articolo illustra i vantaggi delle opzioni del file system ext4, ZFS, XFS, Btrfs e Reiser4 per aiutarti a decidere il file system corretto per i tuoi ambienti applicativi.

Grazie per aver trascorso il tuo tempo qui.


Linux
  1. Quale soluzione di backup open source usi?

  2. Quale comando del terminale Linux usi di più?

  3. Codice di Visual Studio o Atom? Quale editor di codice dovresti usare?

  4. Quale file system usare tra OSX e Linux

  5. Perché si dovrebbe usare sudo?

Fedora Vs Red Hat:quale distribuzione Linux dovresti usare e perché?

Tutto ciò che devi sapere sul file system Linux

Spiegazione dei comandi Apt vs Apt-get:quale usare?

Terraform vs Ansible:qual è la differenza e quale dovresti usare?

Linux Mint vs Ubuntu:qual è il migliore per te?

Le 5 migliori app Linux essenziali di cui hai bisogno oggi