Ottimo articolo sui filesystem flash.
Una domanda importante quando si parla di filesystem flash è la seguente:cos'è il livellamento dell'usura? Articolo Wikipedia. Fondamentalmente, sui dischi flash puoi scrivere un numero limitato di volte finché il blocco non va a male. Dopodiché, il filesystem (se non esiste una gestione integrata del livellamento dell'usura sull'hardware, come nel caso degli SSD di solito c'è) deve contrassegnare quel blocco come non valido ed evitare di usarlo più.
I filesystem tipici (ad esempio ReiserFS, NTFS, ext3 e così via) sono progettati per i dischi rigidi, che non hanno tali limitazioni.
JFFS2
Include compressione ed elegante protezione livellante dall'usura.
YAFFS2
- L'unica cosa che fa la differenza:brevi tempi di montaggio, dopo aver eseguito correttamente l'operazione di smontaggio.
- Implementa la proprietà write once:una volta che i dati vengono scritti su un blocco, non è necessario riscriverli. Questo è importante, in quanto riduce l'usura.
LogFS
- Non molto maturo, ma già incluso nell'albero del kernel di Linux.
- Supporta filesystem più grandi di JFFS2/YAFFS2 senza problemi.
UBIFS
- Più maturo di LogFS
- Scrivi supporto per la memorizzazione nella cache
- Sulla scalabilità:articolo. Su dischi di grandi dimensioni, prestazioni migliori rispetto a JFFS2
est4
Se nessun driver o scheda (ad esempio le unità SSD hanno il livellamento dell'usura interno, almeno di solito) gestisce il livellamento dell'usura, ext4 non è l'idea migliore, in quanto non è destinato all'utilizzo di flash non elaborati.
Qual è il migliore?
Ovviamente dipende dall'utilizzo e dal supporto. Da quello che ho letto su Internet, consiglierei UBIFS. Buon supporto per filesystem di grandi dimensioni, fase di sviluppo matura, prestazioni adeguate e nessun enorme svantaggio.
Stavo affrontando lo stesso problema e ho fatto anche delle ricerche. Alla fine ho deciso di usare ext2.
Sembra che alcune schede SDHC implementino il proprio livellamento dell'usura a livello hardware. Se riesci a procurarti delle schede SDHC che hanno il livellamento dell'usura integrato.
I filesystem che forniscono il livellamento dell'usura possono interferire con il livellamento dell'usura a livello di Flash, quindi può effettivamente essere dannoso per il flash utilizzarli (l'articolo IBM citato sopra parla di come lo fa JFFS, quindi è chiaro che non funzionerà con livello di flash WL). Ho deciso che non avevo bisogno del journaling di ext3 poiché non memorizzo dati critici su di esso e di solito eseguo comunque il backup regolarmente (cron).
Ho anche montato /tmp e /var come tmpfs per velocizzare le cose. Se hai abbastanza RAM dovresti farlo (ma assicurati di ruotare o cancellare regolarmente i tuoi log)
SUGGERIMENTO:montare le schede SD ext con l'opzione "noatime"