XFS, un sistema de archivos de alto rendimiento

xfs

Este un sistema de archivos de alto rendimiento, de 64 bits y con soporte de journaling. Debido a sus características tiene un gran potencial de uso en en servidores que deben manejar una gran carga de lectura/escritura a disco, bases de datos de tipo ‘standalone’ y sistemas grandes de hosting (webhosting) compartidos, entre otras aplicaciones.

Historia

XFS fue creado por Silicon Graphics en 1993. Fue el sistema de archivos por defecto en IRIX, el sistema operativo de SGI, desde la versión 5.3. En mayo del 2000 XFS fue liberado bajo una licencia de tipo open source, lo que permitió su desarrollo e integración a las diversas distribuciones.

Se incorporó al kernel Linux en el 2001, a partir de la versión 2.4.25, cuando Marcelo Tosatti, a cargo de la rama 2.4 del kernel determinó que se encontraba en un punto apto de estabilidad como para ser incluido en la rama principal. Actualmente la mayoría de las distribuciones tienen el soporte para XFS, contando con Debian, Ubuntu, las distros de SUSE, Gentoo, Fedora, Slackware, entre otras.

Características principales

Almacenamiento

Soporta sistemas de archivos de hasta 8 exabytes, lo cual se ve afectado por los límites de cada sistema operativo. En el caso de Linux de 32 bits el límite corresponde a 16 terabytes.

Journaling

Provee de un registro a modo de bitácora para los metadatos del sistema de archivos, en donde las actualizaciones al mismo se escriben primero en un registro serial, para luego ser escritos realmente en los bloques de disco. El journal es un búfer circular de bloques de discos que no es leído de forma convencional por el sistema de archivos.

Grupos de asignación

Los sistemas de archivos XFS están particionados internamente en grupos de asignación, los cuales están dispuestos como regiones de un mismo tamaño, en forma lineal dentro del sistema de archivos. Tanto los archivos como directorios pueden crear grupos de asignación. Cada grupo gestiona sus propios nodos y espacio libre por separado, proveyendo de escalabilidad y paralelismo, de tal manera que hilos y procesos pueden realizar operaciones de E/S simultáneamente sobre el mismo sistema de archivos.

Asignación basada en unidades

Los bloques usados en sistemas de archivos XFS son gestionados con unidades de largo variable llamados ‘extents’. Un ‘extent’ está constituido por uno o más bloques contiguos.

Tamaños de bloque variable

El tamaño del bloque del sistema de archivos representa la unidad mínima de asignación  permite que se creen sistemas de archivos con tamaños de bloque de entre 512 botes hasta 64 kb, permitiendo que el sistema de archivos pueda ser ajustado para el tipo de uso en particular que se le va a dar.

E/S directa

Para aplicaciones que requieren operaciones de alto rendimiento a disco, XFS provee de una implementación directa de E/S que permite que las operaciones no sean almacenadas en caché, sino que se apliquen directamente al espacio de usuario.

Snapshots

Si bien es cierto que XFS no provee soporte directo para tomar snapshots, permite que se realice de una forma indirecta, en la cual el sistema de archivos detiene temporalmente el sistema de E/S, utilizando la herramienta xfs_freeze, permitiendo que el gestionado de volúmenes tome la snapshot, luego de lo cual el sistema de E/S continúa con las operaciones de forma normal.

Redimensionamiento en caliente

XFS provee de la herramienta xfs_growfs para realizar operaciones de redimensionamiento del sistema de archivos en caliente. Los sistemas de archivos XFS pueden ser extendidos siempre y cuando exista espacio no asignado en el dispositivo que aloja al sistema de archivos.

Artículos Relacionados

Estamos atentos a su requerimiento

Atención Comercial

Dubeliz Hernandez
Dubeliz Hernandez

Gestor Segmento Corporativo

Estoy disponible

No disponible