Samsung lleva dos años desarrollando un nuevo sistema de archivos, denominado F2FS (Flash-friendly File System), especialmente diseñado para los dispositivos de almacenamiento basados en NAND Flash (SSD, eMMC y tarjetas SD), que ahora presenta y propone como estándar en la industria.
El uso masivo de este tipo de dispositivos ha llevado al fabricante coreano a diseñar F2FS buscando rendimiento, fiabilidad y robustez. El sistema de archivos F2FS se basa en LFS (Log-structured File System), adaptado al almacenamiento de las memorias NAND Flash, que difieren considerablemente de los discos duros tradicionales.
Hemos elegido un enfoque de sistema de archivos con estructura de registro, pero hemos intentado adaptarlo a la nueva forma de almacenamiento de información.
Según comenta Jaegeuk Kim, ingeniero de Samsung, F2FS corrige varios problemas antiguos de registro en los sistemas de archivos estructurados.
Ver 15 comentarios
15 comentarios
Brayan Habid
Al fin se avanza en ese tema, para dejar atrás a sistemas tan poco eficientes para las memorias como el fat32
darkyevon
Para el que tenga mas curiosidad sobre que es un sistema de ficheros, entre otras cosas define dónde y que forma cada archivo en un sistema de almacenamiento.
Imaginaros una serie de tablas o listas enlazadas unas a otras, en forma de árbol. Las de los extremos apuntarían directamente a los "trozos" que conforman los ficheros y su localización en el disco duro(cilindro, pista, sector). En estas tablas pueden aparecer los trozos en orden, pese a que físicamente puedan estar muy distantes. Las otras tablas superiores en la jerarquía , apuntan a otras tablas, lo que reduce el tiempo de localización de los archivos. Dichas tablas también ocupan espacio en el propio disco duro.
Hay muchas implementaciones y variaciones según el sistema de ficheros, pero la idea es esa.
Imagino que el sistema de ficheros podrá mejorarse en su diseño, ya que en principio están construidos para evitar la fragmentación de ficheros y el aprovechamiento de los bloques. La fragmentación se produce en todos los sistemas de almacenamiento reescribibles cuando añades y borras información. Cuando no queda espacio, se rellenan todos los huecos libres, por lo que la información queda dispersa físcamente en el disco. En los discos duros convencionales afecta gravemente al rendimiento, ya que es un sistema mecánico el que lee los trozos del fichero. Si estan muy dispersos, puede ser que requieras mover el brazo lector. En el tiempo que se estabiliza para leer en el sitio que toca ya te has pasado por decir algo media vuelta, por lo que debes esperar a que el disco de una vuelta completa para poder leer el siguiente fragmento del archivo.
En las memorias de este tipo no tiene sentido, ya que al no ser un sistema mecánico da igual si la información está totalmente dispersa. El tema de aprovechamiento de espacio también lo desconozco ya que no se como están organizados.
lesan
Falta un añadido, el sistema ha sido creado para Linux/Android. Aunque ya esta disponible para probar en Linux normal, la realidad es que ha sido creado para optimizar el rendimiento en SSD y cia.
Esto sería para desplazar a EXT4 y exFAT. Complicado, pero si el rendimiento es bueno, puede merecer la pena.
pedromendez1993
Pues gracias por explicarnos el tema para los que no tenemos ni idea, digo...
ArangeL
ext4 y BTFS tienen soporte NATIVO para unidades SDD (que es NAND Flash) (Android usa ext4). Pueden proponer como estandar para la industria usar ext4, no tiene problemas de patentes ni NADIE que pueda cobrar por uso de él.
Pero claro... cada uno desarrollando sus propios sistemas FS (sin liberar la licencia a la comunidad o de dominio público, para prevenir futuros problemas con patentes) para luego cobrar "royalties" (ej: Microsoft - vFat/REfs, Samsung - F2FS, los que desconozco y los que llegarán).
* Edito: *
He comprobado que lo liberado a la comunidad son el código fuente de las herramientas y el sistema de ficheros. Quedan pendiente el problema de la licencia por uso y patentes.
josemicoronil
Creo que para crear un nuevo estándar deberían mirar en primer lugar la retrocompatibilidad y en segundo lugar el si verdaderamente nos beneficia bastante o no. Antes de que empecemos a discutir sobre los sí y los no de ésto creo que deberíamos de ber un poco más. Salu2
jurrabi
Leo aquí a gente medio informada, desinformada e interesada... hacía tiempo que no veía interés por un tema tan básico para el almacenamiento de información (que si os dais cuenta es lo que tienen en común absolutamente TODOS los gadgets actuales del mundo).
A mi lo que me llama la atención de todo esto es que se haya elegido LFS como base para este nuevo F2FS. A primera vista yo diría que es una elección justamente anti-intuitiva y me explico:
La principal razón del diseño de cualquier sistema LFS (Log-structured file system o traducido "Sistema de Archivos estructurados-en-log") es (podéis comprobarlo en la wikipedia y otras fuentes) "La mejora del rendimiento en escritura al realizarse estas de forma consecutiva en una estructura de diario (log) que evita los saltos (seek times) tan costosos en dispositivos ópticos y magnéticos".
Pero precisamente los tiempos de búsqueda cuasi-instantáneos es una de las ventajas de los dispositivos basados en memoria por lo que no logro entender el sentido de esta elección.
Básicamente los sistemas basados en LFS escriben en los dispositivos todos los cambios como si fuera un diario o bitácora, donde cada entrada se escribe a continuación de la anterior sin importar si están relacionadas (en términos de datos si pertenecen al mismo archivo).
Esto tiene algunas ventajas (a parte de la velocidad de escritura objetivo de su diseño) como la fiabilidad ante errores (si se va la luz sólo hay que encontrar la última entrada del diario coherente y descartar las siguientes, en lugar de lo que se hace en otros sistemas que tienen que comprobar la integridad de todos los bloques uno a uno).
También permite fácilmente el mantenimiento de versiones de un mismo archivo (ya que la los cambios no sobre-escriben el fichero originar sino que se guardan como una entrada de modificación nueva). Pensando en memorias para cámaras no veo que se hagan muchas versiones de una foto (quizá ediciones?) aunque si podría ser deseable en discos de uso más general como un SSD (pero tampoco lo veo para un disco de Sistema, quizá uno con documentos de trabajo diaro pero quien usa un SSD para eso?).
Pero por contra tiene infinitas pegas en búsquedas, lecturas y, sobre todo, con los necesarios procesos de recolección de basura. (Básicamente cuando se quiere espacio se va a la cola del log y si la última entrada ya tiene una versión posterior se borra. Si no la tiene se debe mover al comienzo de la cola y seguir buscando. Os imaginais lo que puede ser eso?)
Precisamente debido a estos procesos de recolección de basura son TREMENDAMENTE INEFICIENTES cuando los discos se aproximan a su ocupación máxima, cosa que me parece muy común en discos no demasiado grandes como las memorias Flash o los SSD.
En resumen, que si alguien me dijera que quiere crear un sistema de archivos nuevo para memorias flash y que le diga cual no tomar como base te aseguro que mi primera elección serían los basados en LFS...
Pero claro, eso es sólo una opinión de aficionado.
Y por cierto, que el enlace al KLF mencionado en el artículo hace referencia a una charla enfocada a desarrolladores de Sistemas de Archivos para tratar de contar las ideas que tienen para mejorar el rendimiento de LFS en memorias Flash... seguro que fue interesante, pero no sé si tendría demasiada buena acogida.