Articulo de referencia

LogFS

LogFS es un sistema de archivos flash escalable y estructurado en registros de Linux , diseñado para su uso en dispositivos de memoria flash de gran capacidad . Fue escrito por ...

LogFS es un sistema de archivos flash escalable y estructurado en registros de Linux , diseñado para su uso en dispositivos de memoria flash de gran capacidad . Fue escrito por Jörn Engel [ 1 ] y patrocinado en parte por el CE Linux Forum .

LogFS se introdujo en el núcleo principal de Linux en la versión 2.6.34, publicada el 16 de mayo de 2010. Se eliminó del código fuente durante la ventana de fusión de la versión 4.10, en diciembre de 2016, porque "no recibió mantenimiento durante años y aparentemente no se utilizaba". [ 2 ]

Historia

A fecha de noviembre de 2008 LogFS era lo suficientemente maduro como para superar todas sus pruebas y, posteriormente, se incluyó en el núcleo principal de Linux, marcado como "experimental", en la versión 2.6.34, publicada el 16 de mayo de 2010. Sin embargo, no atrajo a una gran base de usuarios y se eliminó del núcleo en diciembre de 2016.

Operación

LogFS surgió a raíz de las dificultades que presentaba JFFS2 con unidades de memoria flash de gran capacidad. LogFS almacena el árbol de inodos en la unidad; JFFS2 no lo hace, lo que le obliga a escanear toda la unidad al montarla y almacenar en caché todo el árbol en la RAM. En unidades de gran capacidad, el escaneo puede tardar decenas de segundos y el árbol puede ocupar una cantidad considerable de memoria principal. LogFS evita estos inconvenientes, pero realiza más trabajo mientras el sistema está en funcionamiento y utiliza parte del espacio de la unidad para almacenar el árbol de inodos.

LogFS almacena el árbol de inodos de un archivo en la unidad, lo que significa que al escribir en el archivo, cada nodo ancestro del árbol debe reescribirse. Esto se realiza mediante una actualización de "árbol errante". El nodo más bajo del árbol (es decir, los datos) se escribe primero, y cada nodo se escribe en orden ascendente del árbol, hasta que se actualiza el inodo raíz. Escribir la raíz al final mantiene la atomicidad de la actualización.

Un bloque de memoria flash es la unidad de borrado y suele ser mayor que un bloque del sistema de archivos. LogFS gestiona esta diferencia empaquetando varios bloques del sistema de archivos en un único bloque de memoria flash. Una entrada de "suma" al final del bloque de memoria flash registra los datos almacenados en él. Cuando se han movido o eliminado todos los bloques del sistema de archivos del bloque de memoria flash, este puede borrarse y utilizarse para nuevos datos.

Para aprovechar al máximo la memoria flash, es necesario compactar los datos para que los bloques de memoria flash se llenen de datos útiles. Esto se logra mediante la recolección de basura . La estrategia de recolección de basura de LogFS se basa en que los datos de los archivos se coloquen de una manera específica en los bloques de memoria flash: un bloque de memoria flash solo contendrá datos de archivos del mismo nivel en el árbol de inodos. LogFS puede recolectar la basura del nivel superior de los árboles usando solo 1 bloque de memoria flash vacío. Puede recolectar la basura de los 2 niveles superiores de los árboles usando 2 bloques de memoria flash vacíos. Y puede recolectar la basura de los N niveles de los árboles usando N bloques de memoria flash vacíos. El algoritmo tiene una complejidad exponencial en el peor de los casos, pero este caso es poco frecuente y el algoritmo requiere reservar solo unos pocos bloques de memoria flash.

Véase también

Referencias

  1. Jörn Engel; Robert Mertens (18 de septiembre de 2005). "LogFS: finalmente un sistema de archivos flash escalable" (PDF) .{{cite journal}}: Para citar una revista se requiere |journal=( ayuda )
  2. Jonathan Corbet (21/12/2016). "4.10 Ventana de fusión, parte 2" . Consultado el 02/06/2020 . El sistema de archivos logfs, sin mantenimiento durante años y aparentemente sin uso, ha sido eliminado del kernel.
  • logfs.org/logfs/ en Wayback Machine (archivado el 16/06/2010)
  • Introducción a LogFS (vídeo)