Excelente artículo sobre sistemas de archivos flash.
Una pregunta importante cuando se habla de sistemas de archivos flash es la siguiente:¿Qué es la nivelación de desgaste? Artículo de Wikipedia. Básicamente, en los discos flash puede escribir un número limitado de veces hasta que el bloque se estropee. Después de eso, el sistema de archivos (si no hay una gestión de nivelación de desgaste integrada en el hardware, como suele haber en el caso de los SSD) debe marcar ese bloque como no válido y evitar usarlo más.
Los sistemas de archivos típicos (por ejemplo, ReiserFS, NTFS, ext3, etc.) están diseñados para discos duros que no tienen tales limitaciones.
JFFS2
Incluye protección de compresión y nivelación de desgaste elegante.
YAFFS2
- Lo único que marca la diferencia:tiempos de montaje cortos, después de un desmontaje exitoso.
- Implementa la propiedad de escribir una vez:una vez que los datos se escriben en un bloque, no es necesario volver a escribirlos. Esto es importante, ya que reduce el desgaste.
Registro FS
- No es muy maduro, pero ya está incluido en el árbol del kernel de Linux.
- Admite sistemas de archivos más grandes que JFFS2/YAFFS2 sin problemas.
UBIFS
- Más maduro que LogFS
- Soporte de escritura en caché
- Sobre la escalabilidad:artículo. En discos grandes, mejor rendimiento que con JFFS2
ext4
Si ningún controlador o tarjeta (por ejemplo, las unidades SSD tienen nivelación de desgaste interna, al menos por lo general) maneja la nivelación de desgaste, entonces ext4 no es la mejor idea, ya que no está diseñado para el uso de flash sin formato.
¿Cuál es el mejor?
Por supuesto, depende del uso y el soporte. Por lo que leí en Internet, recomendaría UBIFS. Buen soporte para sistemas de archivos grandes, fase de desarrollo madura, rendimiento adecuado y sin grandes desventajas.
Estaba enfrentando el mismo problema e investigué un poco también. Eventualmente, decidí usar ext2.
Parece que algunas tarjetas SDHC implementan su propia nivelación de desgaste en la capa de hardware. Si puede conseguir tarjetas SDHC que tengan incorporado nivelador de desgaste.
Los sistemas de archivos que proporcionan nivelación de desgaste pueden interferir con la nivelación de desgaste del nivel de Flash, por lo que en realidad puede ser malo que el flash los use (el artículo de IBM citado anteriormente habla sobre cómo lo hace JFFS, por lo que está claro que eso no funcionará con nivel de flash WL). Decidí que no necesitaba el registro en diario de ext3 ya que no estoy almacenando datos críticos en él y, de todos modos, normalmente hago copias de seguridad con regularidad (cron).
También monté /tmp y /var como tmpfs para acelerar las cosas. Si tiene suficiente RAM, debe hacerlo (pero asegúrese de rotar o eliminar sus registros regularmente)
SUGERENCIA:Monte sus tarjetas SD externas con la opción "noatime"