F2FS

F2FS
Desarrollador Kim Hae Geuk (Kim Jaegeuk, Kor. 김재극 ), Samsung Electronics , Motorola Mobility , Huawei y Google
sistema de archivos Flash : sistema de archivos amigable 
Día de entrega Febrero de 2013 [1] ( Linux )
Estructura
Contenido de la carpeta Tabla hash multinivel
Colocación de archivos Bitfields (espacio libre), Tabla
Restricciones
Tamaño máximo de archivo 3,94 TB
Máximo de archivos Depende del tamaño del volumen
Longitud máxima del nombre de archivo 255 bytes, 512 unicode para etiqueta de volumen
Tamaño de volumen máximo 16TB
Capacidades
Propiedades hora de modificación (mtime), hora de cambio de atributo (ctime), hora de acceso (atime)
Precisión de almacenamiento de fecha 1 ns
Atributos Atributos extendidos POSIX (xattrs)
Derechos de acceso POSIX , LCA
Compresión de fondo LZO, LZ4, zstd
Cifrado de fondo [2]
SO compatible linux y android

F2FS ( English  Flash-Friendly File System ) es un sistema de archivos centrado en el uso de memoria flash , incluido el uso con SSD para servidores y computadoras personales, con tarjetas de memoria ( eMMC / SD ) y con varios chips flash integrados para dispositivos de consumo.

El autor es el desarrollador de Samsung Kim Jaegeuk (Kim Jaegeuk, Kor. 김재극 ). El código fuente del sistema fue abierto por Samsung en octubre de 2012 [3] [4] , luego de lo cual fue finalizado por los ingenieros de Samsung, teniendo en cuenta los comentarios de la comunidad.

La compatibilidad con F2FS se ha incluido en el kernel de Linux desde la versión 3.8 [5] . Paralelamente, se está desarrollando el paquete f2fs-tools, que contiene un conjunto de utilidades para el mantenimiento de particiones F2FS (mkfs.f2fs, fsck.f2fs).

Diseñado específicamente para las características específicas de la memoria flash y tiene en cuenta características tales como un tiempo de acceso constante y un recurso limitado para la cantidad de ciclos de reescritura de datos .

Características

El almacenamiento de estructuras de datos se organiza en forma de un árbol LSM , cuando se actualiza la información, se utiliza el mecanismo de copia en escritura ; cuando se modifican, los datos no se sobrescriben, sino que se almacenan en una nueva ubicación. Para acelerar la ejecución de operaciones en el proceso de trabajo, los índices con información sobre la distribución de datos se almacenan en RAM . El esquema de operación del sistema tiene como objetivo extender la vida útil de las unidades flash, teniendo en cuenta la geometría interna de la ubicación de los chips en el soporte y la operación del controlador; los datos se distribuyen de la manera más uniforme posible, lo que minimiza la escritura repetida en los mismos bloques. Para ello, se utiliza un algoritmo de almacenamiento secuencial, en el que los nuevos datos siempre se escriben solo en las áreas posteriores a los datos registrados anteriormente, sin tener en cuenta la posible fragmentación. Tras llegar al final del volumen, la grabación comienza desde el principio, ocupando, si es posible, los bloques liberados. Para eliminar los conflictos con la lógica del controlador de la unidad, F2FS tiene en cuenta las características específicas de la capa FTL ( Flash Translation Layer ), que realiza una tarea similar de llenado uniforme en muchas unidades. Para adaptar F2FS a varios tipos de unidades flash, que difieren en sus características según la geometría interna y el esquema de control, se proporciona una amplia gama de parámetros para controlar la estructura de distribución de datos en la partición y la capacidad de seleccionar varios algoritmos para borrar y se proporciona la asignación de bloques.

El sistema está protegido del “efecto bola de nieve” que se manifiesta cuando se utilizan árboles errantes ( wandering tree ): en una situación en la que se crean nuevos elementos en lugar de reescribirlos (cambia el número de bloque), para árboles en los que el nodo padre se refiere al hijo nodos, cambiar el nodo conduce a la reconstrucción de todos los nodos aguas arriba. El sistema necesita un recolector de elementos no utilizados que se ejecuta en segundo plano cuando el sistema está inactivo.

Para garantizar la integridad, se utiliza un modelo con puntos de ejecución fijos y la capacidad de revertir los cambios ( rollback en inglés  ) para guardar puntos en caso de problemas.

La partición F2FS está formada por segmentos de 2 MB, los segmentos se agrupan en secciones, que a su vez se combinan en zonas.

Se admite tanto el esquema de control de acceso tradicional de Unix como mecanismos avanzados como xattr y POSIX ACL .

A partir de GRUB 2.04 (5 de julio de 2019), es posible utilizar una partición F2FS como arrancable. Para versiones anteriores, tenía que crear una partición de arranque separada en ext4 u otros sistemas de archivos compatibles con GRUB.

Notas

  1. Extraiga el nuevo sistema de archivos F2FS de Jaegeuk Kim Archivado el 30 de junio de 2016 en Wayback Machine fusionado por Linus Torvalds
  2. Jaegeuk Kim. Actualizaciones de f2fs para v4.2 (24 de junio de 2015). Consultado el 7 de octubre de 2020. Archivado desde el original el 17 de enero de 2016.
  3. Este es un nuevo conjunto de parches para el sistema de archivos f2fs. Archivado el 18 de enero de 2013 en Wayback Machine , LKML, 2012-10-05.
  4. Samsung abrió el código para F2FS, un nuevo sistema de archivos para unidades flash Archivado el 18 de abril de 2021 en Wayback Machine // opennet.ru , 05/10/2012
  5. El kernel de Linux 3.8 incluirá el sistema de archivos F2FS , OpenNET . Archivado el 12 de octubre de 2020. Consultado el 7 de octubre de 2020.

Enlaces