Tutoriales

ZFS vs EXT4 vs BTRFS – Sistema de archivos para NAS ¿cuál es mejor?

A la hora de comprar un NAS de determinada marca debemos hacernos la pregunta de ¿qué sistema de archivos es mejor entre ZFS vs EXT4 vs BTRFS? El mundo de los servidores de archivos es más complejo de lo que parece, ya que bajo el dispositivo en sí y su hardware tenemos un aspecto tan importante como es el sistema de ficheros, y este en gran medida dictaminará la capacidad, seguridad, velocidad y ámbito de trabajo del NAS o servidor.

Un usuario doméstico casual no tiene las mismas necesidades que una empresa o incluso grandes corporaciones, por ello se debe elegir el sistema más cómodo para trabajar en cada momento. Cada uno tendrá sus ventajas y desventajas, claro está, partiendo de aquí seguramente a todos os suene el Ext4 por ser el sistema de archivos típico de Linux.

Sistema de archivos qué es y para qué sirve

Un sistema de archivos es la estructura que se encarga de almacenar, recuperar y organizar datos para que el sistema operativo (SO) pueda trabajar con ellos de forma ordenada y eficiente. Si no existiera dicho sistema, los datos serían cadenas binarias almacenadas consecutivamente sin orden o información sobre su ubicación y tamaño, siendo imposible para el sistema detectar elementos “con sentido”.

Sus funciones básicas son la de administrar el espacio dentro del disco duro, para de esta forma poder asignar espacio a los archivos que se van a grabar, y proporcionar acceso a los ya presentes. Tengamos en cuenta que a nivel de hardware la información son ceros y unos dispuestos en cadenas, sin un sistema que imponga orden sería imposible interpretar qué dato de está leyendo en cada momento.

Cada sistema operativo tendrá su propio sistema de archivos para trabajar, y dependiendo también del tipo de dispositivo se podrán aplicar distintos sistemas según las necesidades. Todos habremos visto alguna vez los volúmenes NFTS de Windows, exFAT de pendrive o incluso FAT32 de los USB más antiguos. El sistema de archivos también se encarga de todo lo relacionado con los metadatos asociados al almacenamiento, reglas de acceso y privilegios, encriptación o recuperación de errores, muy importante esta parte para NAS, carpetas, etc.

Cada dato se almacena en bloques de un mismo tamaño, que en discos duros mecánicos llamados sectores, y en SSD celdas de memoria, los cuales irán asignados a direcciones de memoria para poder localizarlos. Los sistemas de archivos tienen la llamada tabla de particiones que define la estructura lógica donde se guarda la información, y que, en función del ancho de palabra que pueda manejar, podrá trabajar con mayor o menor cantidad de direcciones de memoria. Esto será fundamental para determinar la capacidad del sistema de archivos.

Sistemas de archivos ZFS vs EXT4 vs BTRFS

Quizás os resulten extraños o desconocidos esos tipos de sistemas de archivos, normal, ya que se utilizan en el entorno de servidores, NAS y en general sistemas Linux. En Windows se utiliza NTFS, mientras que en Mac Os es HFS, quizás estos sí que os suenen, especialmente el típico FAT o sus variantes para memorias externas USB.

Veamos las principales características de cada uno de estos sistemas para saber cuál es mejor en determinadas aplicaciones.

EXT4

Empezamos con Ext4 (fourth extended filesystem), el sistema de archivos que se anunció en 2006 como actualización de ext3 para los sistemas operativos basados en Linux. El sistema se define como transaccional (con journaling) un mecanismo que realiza un seguimiento a los cambios que se producen en los datos almacenados, y que aún están por confirmar. De esta forma se asegura la presencia de la última versión del fichero para que, en caso de fallo repentino, exista menor probabilidad de corrupción.

Entre las mejoras en la versión 4 tenemos soporte para volúmenes de 1 EiB y ficheros de 16 TiB, mejoras en el esquema de bloques Extents (conjunto de bloques físicos contiguos) que reducen la fragmentación, y por ende, mejoras de velocidad en lectura y escritura consumiendo menos recursos de hardware.

Ext4 es un sistema compatible hacia adelante y hacia atrás, por lo que Ext3 puede ser actualizado a la última versión manteniendo la estructura antigua para que sea leída y modificada por Ext4. Sin embargo una estructura Ext4 no podrá ser reconvertida a Ext3. El límite de creación de subdirectorios se duplica de 32.000 a 64.000, admitiendo encriptación AES-256 bits.

Ext4 añade una función para reservar espacio a ficheros sin necesidad de rellenarlos con ceros, y en la medida de lo posible se reservarán bloques contiguos, esto se llama asignación persistente. Allocate-on-flush o reserva de memoria retrasada es otra función relacionada que reserva un bloque de memoria justo antes de que el dato sea escrito en el disco, optimizando recursos y reduciendo la fragmentación. Cuenta con desfragmentación en línea y comprobación del sistema de archivos más eficiente al saltarse los bloques no asignados.

ZFS

ZFS (Zettabyte File System) es un sistema de archivos que fue desarrollado por Sun Microsystems y lanzado en 2005 para Solaris. Éste destaca por su gran capacidad de direccionamiento con su ancho de palabra de 128 bits para soportar volúmenes de 16 EiB y tamaños de archivo de 16 EiB. Soporta administración de volúmenes y espacios de almacenamiento, y funciones de control basadas en bloques, esto es muy importante.

Podemos considerarlo como el sistema más avanzado para NAS en cuanto a seguridad y recuperación frente a pérdida de datos. Utiliza los denominados Storage Pools, que son espacios de almacenamiento virtuales simples, una capa adicional frente a los sistemas tradicionales que utilizan el gestor de volúmenes por separado. Se introduce el concepto de vdevs o dispositivos virtuales para la asignación de cada dispositivo de almacenamiento ya sea local o remoto.

Los Storage Pools pueden ser simples (sin redundancia como un disco duro normal), mirror (en espejo como un RAID 1), o RAID-Z (utilizando paridad en 3 o más vdevs como un RAID 5). ZFS soporta tanto discos duros mecánicos como SSD, para los cuales se define el ZIL o ZFS Intent Log. Se trata de una caché implementada a partir de los vdevs llamada registro de intentos (o intenciones), para reducir la sobrecarga en el proceso de escritura de datos en el sistema, que como veremos ahora es bastante peculiar.

Copy-on-Write (COW) es el modelo transaccional a nivel de bloque que utiliza ZFS para la escritura de datos asegurando la integridad. Consiste en realizar una suma de verificación o checksum de 256 bits que se comprobará cada vez que se lea el bloque para asegurar que no ha sido corrompido o borrado. Los datos nunca se sobrescriben en ZFS, sino que el nuevo dato se almacena en un bloque distinto, para no perder el dato original en caso de fallo repentino. El sistema copy-on-write puede generar una alta fragmentación tanto en HDD como SSD, afectando negativamente al rendimiento, precisamente por eso se rea el ZIL.

ZFS permite crear cuotas reservadas o elementos de administración avanzados como permisos e incluso sistemas de ficheros separados para cada usuario. Se utilizan bloques de tamaño variable hasta 128K, con capacidad para repartir la carga de escritura de forma equitativa en los pools. Este sistema no sobreecribe datos, así que cuando tomamos una instantánea solamente se escriben los nuevos datos, manteniendo los antiguos que sean comunes.

Hay dos tipos de sistemas de ficheros:

  • Filesystem: el sistema que por defecto permite crear directorios y almacenar datos, pudiéndose configurar como punto de montaje sin necesidad de archivo fstab.
  • Zvol: es un pseudo-dispositivo de bloques que se utiliza para ficheros swap o para discos virtuales, por ejemplo virtualización de máquinas. Este dataset también soporta instantáneas igual que Filesystem.

El sistema reparte la carga de escritura equitativamente entre los dispositivos, siendo capaz de expandir los zpool en caso de agregar más dispositivos. De esta forma se pretende optimizar el proceso de escritura mediante bandas de tamaño variable. El procesamiento de datos a nivel de bloques es una maravilla en cuanto a integridad de datos, pero un problema para los recursos del sistema, ya que se requiere gran potencia de hardware para su procesador, hablamos de procesadores de varios núcleos y 16 GB de RAM DDR4 como mínimo.

BTRFS

Por último tenemos el sistema Btrfs (B-tree File System) que comenzó a desarrollarse en 2007 por Oracle Corporation como sustituto de Ext4 mejorando la capacidad de direccionamiento de ficheros hasta 16 EiB y tamaños de volumen de hasta 16 EiB, igual que ZFS. De hecho también se trata de un sistema copy-on-write para soportar tolerancia a fallos y recuperación de ficheros, proporcionando una fácil administración, además de poderse actualizar Btrfs desde Ext3.

Las características que se detallan sobre este sistema de archivos serán no muy distintas a ZFS por su sistema COW, por ejemplo la creación de snapshots escribibles y snapshots de snapshots. Posee técnicas de Mirroring y Stripping a nivel de bloque, capacidad para crear subvolúmenes o asignación dinámica de inodos, es decir, el sistema no establece un número máximo de ficheros.

Como buen sistema para NAS, permite encriptación AES-NI, soporte de distintos algoritmos de estructuras RAID, función de optimización para almacenamiento SSD, copias de seguridad incrementales, función de compresión avanzada así como posibilidad de aumentar o reducir el tamaño del volumen en línea, relacionado con lo anteriormente mencionado sobre inodos.

Antes de terminar vamos a recopilar en una tabla las principales características de los tres sistemas de archivos estudiados.

ZFS Btrfs EXT4
Tamaño máximo del volumen 16 EiB 16 EiB 1 EiB (bloques 4K)
Tamaño máximo de un fichero 16 EiB 16 EiB 16 TiB (bloques 4K)
Cantidad máxima de ficheros 248 264 232
Tamaño máximo del nombre de archivo 255 bytes 255 Bytes 255 Bytes
Número máximo de instantáneas 248 264 232
Cifrado Sí, transparente Sí, transparente
Copy-on-write No
Deduplicación Sí, transparente No
Compresión Si, transparente Si, transparente Si

Rendimiento y uso de ZFS vs EXT4 vs BTRFS

Conocemos las principales características de estos tres sistemas de archivos así que toca hablar de dónde y cuándo es mejor utilizarlos. Podemos apoyarnos en un análisis de rendimiento efectuado por la web Phoronix con SSD Intel Optane en distintas modalidades de RAID para los sistemas de ficheros ZFS vs EXT4 vs BTRFS entre otros como XFS.

Imágenes obtenidas de www.phoronix.com

Salvo en el tiempo de lanzamiento de aplicaciones, el resto de benchmarks muestran que en lectura y escritura ZFS es el sistema de archivos más lento por su tipo de funcionamiento COW, mientras que Ext4 será normalmente el más veloz

Imágenes obtenidas de www.phoronix.com

En una anterior prueba de rendimiento para las dos plataformas sobre Linux con HDD y SSD, los resultados indicaban este mismo efecto, siendo ZFS el sistema más lento sobre ambos tipos de almacenamiento.

Ext4 para uso personal y SOHO

Por ser el sistema de ficheros más genérico, Ext4 es el más utilizado en sistemas Linux para uso genérico, es decir, plataformas de PC e incluso servidores de red. En NAS también es el sistema por defecto que utiliza QNAP en su sistema operativo QTS.

Es un sistema robusto y de gran capacidad de direccionamiento para montar RAID, ofreciendo un mayor rendimiento en lectura y escritura si lo que priorizamos es precisamente elevadas transferencias de archivos sin necesidades de deduplicación y COW.

ZFS para NAS nivel Enterprise, mainframes y Oracle

La afinidad de ZFS con productos Oracle (antes Sun) es evidente por ser su creador, pero su condición de ser el mejor sistema en cuanto a seguridad y recuperación de fallos lo hace perfecto para mainframes de servidores, superordenadores y bases de datos. Sus capacidades exceden normalmente las necesidades de una empresa pequeña, por ello se dirige a operaciones más grandes.

En el segmento de NAS, QNAP y su sistema QuTS Hero admite el sistema de archivos ZFS, obteniendo todas sus funciones para equipos muy caros y potentes como CPU Intel Core o Ryzen y configuraciones RAID-Z de varios niveles. Es una forma de acercar las bondades de este sistema a ubicaciones que no sean servidores rack, pudiendo administrarse cómodamente mediante entorno gráfico.

Btrfs para empresas

También afín a productos Oracle, ofrece una gestión más sencilla que ZFS sin renunciar a elementos avanzados como COW o alta robustez frente a pérdida de información. Su aplicación podría ser similar a ZFS, aunque dará un extra de rendimiento en apertura de instancias y transferencia con unidades SSD y sistemas RAID All-Flash.

Synology utiliza habitualmente este sistema de archivos para su sistema operativo en NAS, claro rival de QNAP en este apartado con sus dispositivos pensados para entorno empresarial. A nivel de interfaz ofrece una administración más sencilla, pero no posee tantas funcionalidades como QuTS Hero con ZFS.

Recopilando características – conclusiones sobre ZFS vs EXT4 vs BTRFS

Veamos un resumen de ventajas y desventajas para cada sistema de ficheros.

EXT4 ventajas y desventajas

  • Bajo consumo de recursos de hardware
  • Amplía vida útil de SSD
  • Reduce la fragmentación
  • Asignación persistente y suma de verificación
  • Fácil administración
  • Mejor opción para uso personal y hardware básico
  • No posee administración de disco y volumen
  • Degradación invisible de RAID
  • No tiene función Copy-on-Write ni deduplicación
  • No tiene compresión transparente

ZFS ventajas y desventajas

  • Copy-on-Write y ZIL
  • Espacios de almacenamiento virtuales y RAID-Z
  • Protección contra corrupción de datos
  • Sistema de compresión eficiente en snapshots, y ficheros
  • Verificación de integridad y autorreparación
  • Compresión y deduplicación transparente
  • Encriptación AES-NI
  • Amplía vida útil de SSD
  • Mejor opción para mainframe y Enterprise
  • Alto consumo de recursos de hardware
  • Lectura y escritura más lentos que los demás
  • COW aumenta la fragmentación

Brtfs ventajas y desventajas

  • Copy-on-Write y deduplicación
  • Compresión transparente
  • Cifrado AES-NI
  • Tolerancia a fallos autorreparación
  • Fácil de administrar
  • Soporta mayor cantidad de ficheros
  • Mirroring y Stripping a nivel de bloque
  • Buen equilibrio entre velocidad R/W y consumo de recursos
  • Mejor opción para empresas
  • COW aumenta la fragmentación
  • En continuo desarrollo, susceptible a problemas de implementación de RAID
  • Menos redundancia que ZFS

Con este resumen terminamos el artículo, no sin antes comentar que la posibilidad de utilizar los distintos sistemas de ficheros a nivel de usuario siempre vendrá predeterminada por la plataforma. Quizás se ha quedado en el tintero el sistema XFS, pero es un sistema con el cual no estamos familiarizados.

Queda claro que en temas de seguridad y administración de datos Linux ofrece una amplia gama de posibilidades frente a Windows Server por ejemplo, por ello todos los sistemas NAS se basan en el kernel de Linux.

Os dejamos con más tutoriales que pueden ser interesantes:

Recent Posts

  • Procesadores

AMD Ryzen «Strix Halo»: Diagrama revela su enorme GPU de 40 CU RDNA 3+

Un diagrama renderizado del próximo APU Ryzen Strix Halo es revelado de la mano del…

35 mins atrás
  • Reviews

Abysm DANUBE SAVA H400 Review en Español (Análisis completo)

Abysm Gaming trae sus productos a nuestro país, y se ha animado a colaborar con…

14 horas atrás
  • Procesadores

APU Ryzen «Strix Point» de 12 núcleos alcanza el rendimiento de un Ryzen 7 7700X

Unas pruebas de rendimiento filtradas en Blender nos deja ver el rendimiento de un APU…

14 horas atrás