Abbastanza complesso. Ci sono differenze significative tra i filesystem che menzioni e determinare l'impatto di queste differenze sulla velocità è, IMHO, non banale e dipende da quali operazioni verranno eseguite.
Innanzitutto, scartiamo la possibilità di installare il tuo filesystem di root su una partizione FAT o NTFS. Questi filesystem non sono adeguatamente compatibili con il kernel Linux e le autorizzazioni del filesystem Linux non funzionano correttamente su di essi, quindi avresti molti problemi interessanti.
Nota : FAT32 è una buona scelta per i supporti di installazione USB e NTFS è una buona scelta in uno scenario a doppio avvio (con Windows) per le partizioni in cui si desidera utilizzare per archiviare oggetti personali (ad esempio la propria libreria multimediale) che dovrebbero essere accessibili sia su Ubuntu (o su qualsiasi altro sistema Linux) sia su Windows. I sistemi Linux possono leggere (e scrivere su) partizioni NTFS purché siano state montate correttamente, ma le partizioni ext * non sono facilmente leggibili su Windows (per quanto ne so).
I sistemi ext * sono stati progettati per essere utilizzati con il kernel Linux. Usare ext2,3 o 4 per l'installazione di Ubuntu sarebbe perfettamente sano. Probabilmente le maggiori differenze sono
- ext2 non è journaling
- ext3 è journaling, ma per il resto ha strutture e caratteristiche di dati simili a ext2
- ext4 è journaling e ha alcune funzionalità che migliorano le prestazioni tra cui un algoritmo più veloce per l'allocazione dei blocchi rispetto ai precedenti sistemi ext *, sebbene abbia strutture di dati simili.
È importante notare, penso, che la velocità non è l'unica considerazione nella scelta di un filesystem. Ext4 ha meno limitazioni rispetto alle versioni precedenti, consentendo un filesystem più grande, sottodirectory illimitate ecc. Ext3 è considerato da alcuni come più collaudato, più sicuro e leggermente meno probabilità di perdere dati. Cercherò di concentrarmi sulla velocità qui, menzionando solo le cose più salienti oltre alle prestazioni.
Aspetta cosa? Journalling? 1
Un filesystem journaling , in breve, tiene un registro delle modifiche che non sono state ancora scritte nella parte principale del filesystem. Questo viene fatto in modo che in caso di crash, è facile controllare la coerenza del filesystem confrontando il journal con ciò che è stato scritto nell'area principale del filesystem. Ciò significa che la velocità di controllo del filesystem è molto più veloce con ext3 ed ext4. Inoltre, poiché ext4 consente di contrassegnare i blocchi non allocati, il loro controllo può essere ignorato, rendendo fsck
ancora più veloce.
Ext4 esegue inoltre il checksum del journal (consentendo meno attese di I / O durante la scrittura), con un leggero aumento complessivo della velocità rispetto a ext3.
Controllare la coerenza del filesystem potrebbe non essere necessario molto spesso e il journaling ha un prezzo: più scritture su disco. Non solo è un male per la durata della vita di un SSD veloce, ma può rallentare le prestazioni (la scrittura richiede tempo). Tuttavia, il consenso generale sembra essere che valga il costo del journaling.
Ext4 migliora le prestazioni
Ext4 supporta la fallocate()
chiamata di sistema per pre-allocare spazio per un file. Il kernel alloca alcuni blocchi e li contrassegna come inizializzati senza scriverli, il che è molto più veloce della scrittura di zero nello spazio, come è stato fatto nei filesystem più vecchi.
Utilizza inoltre l'allocazione ritardata (o allocate-on-flush ) che raggruppa le allocazioni (anziché eseguirne molte di piccole dimensioni), tendendo così a ridurre l'utilizzo della CPU ed evitare la frammentazione.
Ext4 è retrocompatibile con ext2 ed ext3, il che significa che i filesystem ext2 e 3 possono essere montati come ext4 e godono di un modesto vantaggio in termini di prestazioni poiché è possibile utilizzare alcune funzionalità come il nuovo algoritmo di allocazione dei blocchi.
Altri filesystem
Ext * non sono i soli filesystem completamente compatibili con Linux, sebbene siano i più noti e testati. Altri filesystem utilizzano alternative al journaling e presentano funzionalità innovative che possono influire sulle prestazioni. Btrfs , ad esempio, usa una copia su scritturametodo per preservare l'integrità del filesystem anziché un journal. Ha diverse strutture dati per est * sistemi. Per quanto ne so, Btrfs non è noto per fornire prestazioni generali più veloci rispetto a ext4, ma è considerato particolarmente buono per l'archiviazione di file video fotografici, poiché è meno probabile che subiscano un degrado. Consente la verifica e la pulizia della coerenza del filesystem durante l'uso, il che potrebbe far risparmiare tempo a seconda del caso d'uso. In futuro, Btrfs o un altro filesystem innovativo potrebbero essere ulteriormente sviluppati per superare in modo convincente ext4 sulla velocità generale.
Conclusione
La maggior parte degli utenti di Ubuntu alla ricerca di buone prestazioni vorranno attenersi a ext4 per ora ...
1 Questo e altri concetti del filesystem Linux sono spiegati molto bene in Comprensione del kernel Linux .