+++ title = “File system a confronto” date = “2017-08-14T23:40:15+02:00” categorie = [] draft = false [image] url = “https://gmg.elinvention.ovh/mgoblin_media/media_entries/177/pexels-photo-117729.medium.jpeg” +++
Su GNU/Linux, a differenza di altri sistemi operativi, abbiamo a disposizione un’ampia scelta di file system, ognuno con i suoi punti di forza e le sue debolezze. I file system più popolari che troviamo sui moderni sistemi GNU/Linux, sono senz’altro ext4, XFS, btrfs e ZFS.
È sempre utile tenere sotto mano i dati relativi alle prestazioni. Per questo mi affido ai dati forniti da phoronix.com, ad esempio questo articolo.
Il file system più conosciuto ed utilizzato, in quanto default di molte tra le più popolari distribuzioni come Ubuntu e Debian. Si tratta della quarta iterazione dei file system ext (EXTended file system), è stabile e veloce. Tuttavia non ha alcune caratteristiche importanti specialmente in ambito server.
Caratteristiche:
Difetti:
ext4 ha provato di essere un file system longevo e continuerà ad essere usato ancora estensivamente per molto tempo. Non ho mai avuto particolari problemi nella gestione e uso di file system ext4.
XFS è un file system a 64 bit journaled sviluppato da Silicon Graphics nel 1993 e tuttora in sviluppo ad esempio da Red Hat che ha deciso di impostarlo di default nel suo sitema operativo orientato alle aziende. XFS è stabile e veloce specialmente per l’accesso parallelo ai file.
Caratteristiche:
Difetti:
La mia, ancor breve, esperienza con XFS è stata positiva. Sto provando XFS su questo server e devo dire che la differenza in prestazioni rispetto a btrfs è notevole. A difesa di btrfs, visto che supporta la compressione trasparente, su microSD era più veloce di ext4, ma su hard disk XFS lo batte decisamente.
Lo sviluppo di btrfs è stato iniziato da Oracle nel 2007, in risposta a ZFS.
btrfs è un file system CoW (Copy on Write), cioè quando si modifica un blocco, invece di attuarla direttamente, il blocco viene copiato con la modifica altrove. Questo approccio porta a molti vantaggi: il journaling non è necessario, i blocchi originali vengono mantenuti e quindi gli snapshot sono implementabili senza perdita di prestazioni. In questo modo, btrfs incorpora le funzionalità di LVM (Logical Volume Manager).
La teoria di btrfs non fa una grinza, purtroppo però in pratica non è tutto così bello. Nella pratica lo sviluppo di btrfs è un po’ rallentato e da un po’ di cicli di kernel vengono mandati solo pochi bug-fix, nonostante btrfs soffra di alcuni problemi e lacune che lo rendono meno fruibile.
Come avevo già detto in un mio [precedente articolo][btrfs], btrfs può essere utile quando si ha a che fare con dispositivi di massa lenti come le microSD, visto che supporta la compressione trasparente, ma su dispositivi più veloci non ne val la pena, perché le prestazioni di questo file system in molti casi sono piuttosto basse. C’è da dire però che almeno supporta i checksum per individuare i dati corrotti e questo può essere una delle cause della perdita di prestazioni rispetto alla concorrenza.
Inoltre mi sono ritrovato a dover risolvere alcuni problemi fastidiosi. Ad esempio lo spazio disponibile viene gestito in modo particolare e capita di ritrovarsi senza spazio pur eliminando i file pesanti non più necessari! Lo spazio libero tornerà disponibile solo dopo una lunga operazione di balance, il che ricorda troppo la deframmentazione dei vecchi tempi.
Caratteristiche:
Difetti:
Purtroppo btrfs promette molte cose, ma per il momento ha ancora troppi bug e il suo sviluppo sembra stia rallentando sempre di più. In definitiva non lo raccomando, a meno che non siate disposti a sacrificare prestazioni e spazio libero in cambio delle funzionalità che offre ovvero snapshot e sottovolumi.
Lo sviluppo di ZFS (Zettabyte file system) è stato iniziato da Sun Microsystems nel 2005, con una licenza incompatibile con il kernel Linux, la CDDL, il che lo rende distribuibile solo separatamente dal kernel. Come btrfs, è un file system CoW (Copy on Write). In risposta a ZFS, Oracle aveva iniziato a sviluppare btrfs, ma nonostante l’acquisizione di Sun ha deciso di mandare avanti entrambi i progetti.
Caratteristiche:
Svantaggi:
Sicuramente ho tralasciato qualcosa, perché non ho esperienza con ZFS e perché la lista di funzionalità è infinita. Senz’altro un file system valido, ma ovviamente relegato a certi tipi di utilizzo e requisiti. Pur non avendo provato ZFS, credo che i file system CoW non siano ancora pronti ad un uso desktop… o forse sono i desktop a non essere ancora pronti?
Con questo dubbio si conclude l’articolo, ma non ciò che posso raccontarvi. A presto!
[btrfs]: {{< ref “/blog/aumentare-le-prestazioni-con-btrfs.md” >}}