Si está ejecutando Linux, y particularmente si está ejecutando una base de datos en Linux, ha sido difícil recomendar cualquier sistema de archivos que no sea el antiguo ext3 en los últimos años. Algunas de las alternativas que parecían interesantes en un momento (jfs, ReiserFS) están completamente abandonadas en este momento. El que ha sido casi viable desde hace algún tiempo es XFS, originalmente un proyecto SGI. Y ha vuelto a ser el centro de atención esta semana.
XFS había sufrido una serie de problemas en el pasado. Dado que fue diseñado para hardware estable, al principio no era tan robusto en hardware de PC barato estándar; bastante de eso se limpió hace dos años. Tenía este extraño problema con los archivos puestos a cero que asustaba a algunas personas. Fue tratado como un ciudadano de segunda clase en las distribuciones de Linux orientadas a los negocios como RedHat, lo que requiere que compile su propio kernel; incluso en el CentOS menos restrictivo, tenía que realizar algunos pasos de configuración extraños para agregar compatibilidad con XFS, y el resultado obviamente no era compatible. Y como uno de los primeros sistemas de archivos en activarse y utilizar agresivamente las barreras de escritura, las implementaciones eran vulnerables a las unidades y los controladores que no vaciaban sus cachés cuando se les indicaba, un problema que ya no encontrará con tanta frecuencia en el hardware moderno si configura bien (excepto por SSD, pero esa es otra historia).
¿Entonces, para qué molestarse? Bueno, el rendimiento es una de las principales razones. Me encontré trabajando con XFS nuevamente cuando trabajé recientemente con el software gratuito Single Node Edition de Greenplum. Greenplum me dijo rotundamente que no recomendaban nada más que XFS para instalaciones de alto rendimiento, y dadas las similitudes subyacentes con la comunidad de PostgreSQL, sentí que valía la pena investigar por qué eso era un poco más.
El momento en que resultó ser perfecto. Una de las otras limitaciones de ext3 es que en hardware común solo admitirá 16 TB de almacenamiento. Dado que ahora puede colocar tanto almacenamiento en un rack de discos de tamaño mediano, eso claramente no es suficiente para los sistemas de gama alta hoy en día, y mucho menos dentro de unos años. Al darse cuenta de eso, RedHat ha estado reviviendo seriamente su soporte para XFS en su distribución de Linux. RHEL 5.4, lanzado hace unos meses, lo volvió a agregar como un módulo opcional para algunos clientes. Todavía no podías instalar en XFS, e incluso la versión de CentOS no admitía instalaciones de 32 bits, pero claramente estaba dando pasos hacia la corriente principal nuevamente.
Ayer se lanzó la primera versión beta pública de RHEL6, y XFS vuelve a estar en el conjunto de funciones principales. Se encuentra junto a ext4 en la lista de sistemas de archivos admitidos, lo que indica su idoneidad para instalaciones grandes en particular. Así que ahora puedo decirles a las personas que tienen soporte XFS disponible en forma un tanto aproximada en RHEL/CentOS 5.4, con la expectativa de que sea un sistema de archivos compatible de primera clase a medida que los sistemas se actualicen a RHEL6 y sus derivados en el futuro, y tengo alguna esperanza de que será confiable.
Con el soporte de Enterprise Linux y, en consecuencia, el lado de la estabilidad percibida del código XFS finalmente bajo control nuevamente, ¿qué tal el rendimiento? Bueno, resulta que Greenplum tenía razón acerca de que valía la pena ejecutar XFS. Tomé mi servidor de prueba y formateé una de sus unidades moderadamente rápidas con tres combinaciones diferentes de sistema de archivos/montaje:ext3 ordenado, ext3 journal y xfs. Después de tres ejecuciones de bonnie++ 1.96 con cada sistema de archivos, los resultados que vi se desglosaron así:
- ext3 ordenado:39-58 MB/s de escritura, 44-72 MB/s de lectura
- diario ext3:25 - 30 MB/s de escritura, 49 -67 MB/s de lectura
- xfs:68-72 MB/s de escritura, 72-77 MB/s de lectura
Si bien los mejores resultados de lectura de ext3 se acercaron a niveles similares a los de xfs, en promedio lo hizo mucho mejor. Y los resultados de escritura fueron al menos un 25 % mejores en todos los casos. También me gustó el rendimiento más ajustado y predecible; el rendimiento inconsistente es algo con lo que a menudo lucho en ext3.
Normalmente no soy uno de los primeros en adoptar las nuevas versiones de Linux, pero la versión beta de RHEL6 con compatibilidad total con XFS ha reemplazado a la nueva versión de Ubuntu, completamente decepcionante, en la parte superior de mi lista de sistemas operativos para instalar a continuación. No es frecuente que vea que la tecnología del sistema de archivos tiene una segunda oportunidad para impresionar, pero XFS parece haber hecho una transición inesperada para volver a ser completamente relevante nuevamente, por ahora. No estoy seguro de cuánto tiempo será así, con ext4 ya disponible y btrfs acercándose a la calidad de producción al alcanzar recientemente un formato de disco estable. Será interesante ver cómo se desarrolla este conjunto revitalizado de opciones de sistemas de archivos en Linux.