16 de junio de 2013

Red Hat piensa que XFS es mejor sistema de archivos que Ext4

Hace cosa de un año escribí una entrada sobre el renacer de XFS. Hace unos días se supo que Red Hat no sólo va a soportar XFS en RHEL 7, sino que planea usarlo como sistema de archivos por defecto.

Retomando la cuestión, si dejamos a un lado los de última generación (ZFS/Btrfs), XFS es el mejor sistema de archivos. La razón por la que la familia Ext ha tenido mayor protagonismo en Linux es que, como se ha recalcado aquí, los sistemas de archivo son como los navegadores web: la calidad de la implementación importa mucho más que el formato o estándar a implementar. Hasta el punto de que un sistema de archivos obsoleto, como Ext4, es uno de los mejores por tener una buena implementación, mientras que Reiserfs v3 tienen un formato mejor, pero una implementación desfasada.

XFS tiene un buen diseño, y, en parte, una buena implementación. Su problema fue que al pasar de Irix a Linux, la implementación no encajó demasiado bien. Tardaron años en adaptarlo. Pero ese inconveniente ya está superado, se ha solucionado la lentitud del journaling con archivos pequeños, y por otra parte Ext4 tiene defectos de diseño que cada vez cuesta más superar, y que ni tan siquiera una buena implementación puede evitar. Ext4 ya no tiene la ventaja y no hay razones para no usar XFS.

Por otro lado tenemos a Btrfs. Es el futuro a largo plazo, pero recuerden que, en realidad, las principales novedades de estos sistemas de archivos de próxima generación no son mejoras para el rendimiento y la escalabilidad de operaciones cotidianas, sino mejoras en la gestión de almacenamiento: expansión a múltiples discos, snapshots, subvolumes, checksums (las mejoras puntuales del modelo copy-on-write y el RAID integrado son más bien una consecuencia de lo anterior). En materia de rendimiento y escalabilidad pura y dura, ni ZFS ni Btrfs dan miedo a XFS; de hecho a menudo tiene algunas ventajas sobre ellos. Hacer copias redundantes de los metadatos, por ejemplo, da seguridad, pero escribir al disco dos veces los mismos datos siempre va a ser más lento que no hacerlo, y para quienes llevan la capacidad de los discos al límite, eso importa.

De ahí que el panorama linuxero de sistemas de archivos esté evolucionando hacia una dualidad: XFS para servidores "serios" que necesitan el máximo rendimiento (bases de datos, virtualización, etc), Btrfs para lo demás, Ext4 como opción estable y segura. Y el peso de Red Hat tras esta decisión va a consolidar definitivamente este panorama.

13 comentarios:

  1. Interesante... antes de que saliera ext4 yo ya usaba xfs en lugar de ext3 y lo cierto es que lo notaba muy bueno. Tendre que probar como va ahora.

    ResponderEliminar
  2. Nosotros tenemos ahora un servidor con XFS y aunque tiene algunas ventajas (si haces trillones de ficheros pequeños no tienes que tener miedo a quedarte sin inodos y cosas por el estilo) tiene la mala costumbre de quedarse "atorado" algunas veces. No tengo ni guarra lo que pasa, pero de vez en cuando simplemente se pone a "hacer algo" y deja el resto del sistema bastante frito. Al cabo de 5 minutos todo vuelve a la normalidad, pero es bastante molesto cuando lo usas en un sistema de escritorio/servidor.

    ResponderEliminar
    Respuestas
    1. Anónimo2:44 p. m.

      A mi me pasa algo pareceido con ext4 y previamente me pasaba con Btrfs.

      Con mucha frecuencia varios procesos se ponen en "disk sleep"

      Casi siempre son los procesos de jounaling y estuve a punto de desactivarlo.

      Cuando pasa en una aplicación gráfica, era desesperante.

      Recientemente he actualizado el kernel y tiene mejor pinta, pero no estoy seguro de que se haya corregido completamente.

      Los gestores de ventanas (para mi son escritorios sencillos) como awesome o i3, no se bloquean (seguramente no acceden a disco frecuentemente, cosa que parece muy razonable para un escritorio o gestor de ventanas).

      Eliminar
    2. Ha habido muchos problemas de ese tipo (y se están reescribiendo enormes cantidades de código encargadas de esas cosas), pero no suele tener mucho que ver con los sistemas de archivo.

      Eliminar
  3. Respuestas
    1. JFS no tiene desarrollo activo desde hace años, está en modo de mantenimiento. Incluso el changelog de jfsutils mustra una absoluta falta de actividad.

      Eliminar
  4. Anónimo11:35 p. m.

    Yo empeze linux usando ReiserFS,ahora uso XFS esperando que algun dia se estabilice BTRFS

    ResponderEliminar
  5. Pense que con lo comunicado por Brian Behlendorf ( http://www.theregister.co.uk/2013/03/30/zfs_on_linux_production_ready/ ) empresas como Red Hat empezarian a usar en forma nativa y por defecto a ZFS . He de esperar que con esto no dejen de lado a BTRFS que ya se ha demorado mucho esperando su estabilidad .

    ResponderEliminar
  6. Anónimo4:15 p. m.

    Yo siempre he tenido estas 2 preguntas sin responder:

    1.- ¿Es necesario el journaling o es mejor tenerlo por alguna razón aunque lo que utilice sea un portátil con la batería siempre disponible ante una caida de alimentación o un equipo de escritorio con un SAI, que a estos efectos es lo mismo?¿Gano algo con desactivarlo en esta situación?

    2.- ¿Es recomendable usar XFS en un Servidor empotrado cuya memoria es de tipo flash o basada en tarjetas SD? ¿Esta pensado para trabajar con memorias de este tipo y con relativamente poco tamaño (hablo del orden de 4 GB)?

    ResponderEliminar
    Respuestas
    1. 1: Desactivar las medidas de integridad de datos (tanto el journaling como el soporte de "barreras") definitivamente mejora el rendimiento, aunque dudo que sea notorio en el uso habitual del equipo (es decir, es mensurable principalmente con microbenchmarks). Ahora bien: el journaling no se pensó sólo para casos en los que haya un corte de alimentación, sino también para cuelgues del sistema. Sin jornaling no sólo te expones a perder datos, sino también a perder el sistema de archivos por entero y todos sus datos.

      2: Ni idea

      Eliminar
  7. Y qué tal está Reiser ahora? No se ha actualizado desde que lo metieron entre rejas? Fue lo que empecé usando hace ya siete años o así pero al cambiar de ordenador quise probar ext4 y ya no me he dedicado a cacharrear más :P

    ResponderEliminar
  8. Anónimo4:50 p. m.

    En SAMBA copiando datos de un Win7 a un servidor SAMBA con XFS escribe más rápido el archivo que respecto el mismo servidor con sistema ext4 (en un archivo de 4GB probado), una diferencia de 30 segundos

    ResponderEliminar
  9. Anónimo4:21 p. m.

    Tengo problema en un servidor samba con sistema de archivos xfs y copiando desde un mac, copiando archivos grandes genera error -36

    ResponderEliminar