¿Qué sistema de archivos elegir para mi servidor NAS?

¿Qué sistema de archivos elegir para mi servidor NAS?

Sergio De Luz

Elegir el sistema de archivos correcto para usarlo en un servidor NAS es una decisión muy importante, dependiendo del uso que le vayamos a dar, podremos elegir un sistema de archivos u otro, ya que podría proporcionarnos un mayor rendimiento, una mejor integridad de datos y otras características. Generalmente los sistemas operativos de los servidores NAS como QNAP, Asustor o Synology soportan el popular sistema de archivos EXT4 pero también Btrfs e incluso ZFS. ¿Qué sistema de archivos debo elegir para mi servidor NAS para ámbito doméstico o profesional?

Tener un NAS en casa tiene muchas ventajas y podemos tener tanto almacenamiento como necesitemos. Como sabrás, un NAS no tiene un espacio concreto sino que cuenta con bahías o receptáculos que nos permiten introducir los discos que necesitemos o que nos hagan falta. A diferencia de un disco duro que tiene el espacio que compras en un primer momento, un NAS no y se adapta a lo que quieras añadir. Podemos añadir los diferentes discos en las bahías correspondientes y podemos tener hasta más de 50 TB  de almacenamiento. Pero, ¿qué tipo de sistema de archivo tenemos que utilizar en estos discos en el NAS?

Tanto un pendrive que tengas por casa hasta un dispositivo más complejo como un NAS utiliza un sistema de archivos diferente y no todos ellos tienen las mismas posibilidades, las mismas ventajas o la misma compatibilidad. Por eso es importante que sepas que hay diferentes tipos de ellos y no todos van a ser una buena opción según tus necesidades.

 

¿Qué es un sistema de archivos y para qué sirven?

Todos los sistemas operativos incorporan un sistema de archivos, o varios sistemas de archivos diferentes, para controlar cómo se almacena y cómo se recupera la información de los diferentes soportes, como discos duros, unidades SSD y también unidades de almacenamiento extraíble como pendrives o tarjetas de memoria. Si no tuviéramos un sistema de archivos, el sistema operativo no sabría dónde termina un determinado dato grabado y dónde empieza el siguiente, por tanto, es uno de los aspectos más importantes que debemos tener en cuenta.

Las principales funciones de cualquier sistema de archivos es asignar espacio a los diferentes archivos, administrar el espacio libre, estructurar la información guardada para que sea accesible de forma fácil y rápida. Otro aspecto muy importante que debemos tener en cuenta son los sectores, más concretamente su tamaño, en estos sectores es donde se almacena la información. Otras características de los sistemas de archivos son que proporcionan métodos para crear, copiar, mover, renombrar e incluso eliminar los archivos y directorios que nosotros tenemos en el soporte. Los sistemas de archivos también incorporan algunas características muy importantes como listas de control de accesos (ACL) para controlar los permisos, mecanismos para evitar o mitigar la fragmentación, posibilidad de tener journaling (mejora la integridad del sistema de archivos) y la posibilidad de configurar cuotas de discos entre otras funcionalidades.

Actualmente disponemos de un total de tres sistemas de archivos diferentes que son ampliamente utilizados en servidores NAS de los diferentes fabricantes, y, por supuesto, en los sistemas operativos basados en Linux y FreeBSD para almacenamiento de datos en servidores, estos sistemas de archivos son EXT4, Btrfs y ZFS, los tres sistemas de archivos tienen características diferentes, y unos se comportan mejor en diferentes escenarios.

 

EXT4

EXT4 es el principal sistema de archivos de cualquier sistema operativo basado en Linux. Hay que tener en cuenta que este sistema de archivos es transaccional (con journaling). Además, incorpora mejoras muy importantes respecto a sus predecesores como soporte para volúmenes más grandes, menor uso de CPU y mejoras en la velocidad de lectura y escritura.

Algunas características muy importantes de EXT4 es que permite la reserva de espacio en disco sin necesidad de rellenarlo todo con ceros, algo que se hacía habitualmente en otros sistemas de archivos, además, este espacio reservado suele ser contiguo con el objetivo de evitar o mitigar la fragmentación del sistema de archivos, esta función está relacionada con «Allocate-on-flush» o conocida como reserva de memoria retrasada, esto consiste en reservar el bloque de memoria justo cuando esté a punto de ser escrita en disco, esto mejora el rendimiento y reduce la fragmentación.

EXT4 dispone de técnicas para evitar la fragmentación como la que hemos explicado, pero también dispone de una herramienta para desfragmentar ficheros individuales o el volumen entero sin necesidad de desmontar el disco, aunque lógicamente, mientras está en proceso de desfragmentación tendremos un sistema de archivos más lento.

Este sistema de archivos tiene las siguientes características y límites:

  • Máximo tamaño del archivo: 16TiB usando bloques de 4K.
  • Máximo número de archivos: 4.000 millones
  • Tamaño máximo del nombre del archivo: 255 bytes
  • Tamaño máximo del volumen: 1EiB
  • Cifrado de datos transparente: sí
  • Copy on write: no
  • Compresión transparente: no
  • Deduplicación transparente: no

Una vez que hemos conocido las principales características de EXT4, vamos a hablar sobre Btrfs, el que se conoce como sucesor natural del sistema de archivos EXT4.

 

Btrfs

El sistema de archivos Btrfs nació como sucesor natural de EXT4, su objetivo es sustituirlo eliminando el mayor número de sus limitaciones, sobre todo lo referido al tamaño máximo de los ficheros. Las principales características de este sistema de archivos es que está orientado sobre todo a servidores, dispone de una asignación dinámica de inodos, no es necesario fijar un número máximo al crear el sistema de archivos como sí ocurre con EXT4, permite configurar volúmenes de manera muy avanzada, con la posibilidad de configurar snapshots o instantáneas escribibles y también permite snapshots de snapshots. Otras características son que permite realizar mirroring y striping a nivel de objetivo si tenemos varios discos duros, es capaz de realizar comprobación de datos y metadatos en tiempo real para mejorar al máximo la integridad de los datos.

Este sistema de archivos utiliza copy-on-write del registro de todos los datos y metadatos, también permite la compresión en línea para ahorrar espacio en disco. Btrfs es capaz de comprobar el sistema de archivos sin necesidad de desmontarlo, y si lo desmontamos la comprobación es realmente rápida, por supuesto, dispone de un modo optimizado para unidades SSD y permite desfragmentarlo sin desmontarlo.

Este sistema de archivos tiene las siguientes características y límites:

  • Máximo tamaño del archivo: 16EiB.
  • Máximo número de archivos: 18 trillones.
  • Tamaño máximo del nombre del archivo: 255 bytes
  • Tamaño máximo del volumen: 16EiB.
  • Cifrado de datos transparente: no
  • Copy on write: sí
  • Compresión transparente: sí
  • Deduplicación: sí

En términos generales, este sistema de archivos tiene una serie de ventajas que es importante conocer. Comenzando por la técnica mirroring. Básicamente, consigue guardar dos copias de metadatos en un volumen, por lo que es posible recuperar esos datos en caso de que el disco duro se dañe o tenga algún tipo de problemas. Incluso, puede reparar de manera automática los datos que sean incorrectos, ya que consigue verificar las sumas de comprobación en cada uno de los procesos de lectura. Al igual que se pueden programas copias de seguridad con gran frecuencia, entre otros muchos aspectos.

Ahora que ya conoces las principales características de Btrfs, vamos a hablar sobre ZFS, uno de los sistemas de archivos más avanzados disponibles para sistemas operativos Linux y Unix.

 

ZFS

El sistema de archivos ZFS es uno de los más avanzados que existen actualmente, destaca por su gran capacidad, por su gran seguridad respecto a la integridad de los datos y por su gran rendimiento en lectura y escritura. Esta alternativa se desarrolló por Sun Microsystems para su sistema Solaris. Y su código fuente se hizo lanzó en 2005 como parte del sistema operativo OpenSolaris. Además, hay que señalar que este sistema de archivos es la opción que usa, por ejemplo, el fabricante QNAP para sus servidores NAS. En aquellos modelos que tienen una ‘h’, da a entender que se tiene el sistema QuTS Hero y, por consiguiente, usan este sistema de archivos.

ZFS utiliza «Storage Pools» o también conocidos como vdevs, a diferencia de los sistemas de archivos tradicionales que se ponen encima de un dispositivo hardware como un disco duro, y por tanto, necesitan un gestor de volúmenes por separado. Gracias a estos vdevs, podremos configurar diferentes «pools» de tipo simple, espejo o utilizar los populares RAID-Z para proporcionar tanto redundancia de datos como un mayor rendimiento. Además, al sistema de archivos ZFS se le pueden instalar unidades SSD que actuarán como caché, o también conocido como «ZFS Intent Log» o «ZIL» para mejorar aún más el rendimiento.

Este sistema de archivos hace uso de un modelo transaccional copy-on-write, esto hace que los datos activos no se sobreescriben nunca, sino que se copian a otro lugar y los datos modificados se escriben en él, con el objetivo de mejorar enormemente la integridad de los archivos en caso de corte eléctrico. También debemos tener en cuenta que para reducir la sobrecarga se usa el ZIL cuando se necesitan escrituras síncronas. La parte negativa de CoW es que tendremos una alta fragmentación, y actualmente ZFS nos dispone de ningún método para desfragmentar el sistema de archivos, aunque en las próximas versiones se está trabajando en mejorar este aspecto.

Otras características de ZFS es que el sistema de ficheros se denomina dataset, el cual está dentro de un «storage pools», este dataset puede ser de tipo filesystem que es como un volumen normal y corriente, o también como un zvol que sería un dispositivo de bloques. Dependiendo de nuestras necesidades, tendremos que crear un tipo de dataset u otro. Otra característica muy importante de los dataset son los snapshots o también conocidas como instantáneas, el sistema de archivos ZFS es capaz de realizar un total de 281 billones de instantáneas, además, se hacen en tiempo real por cómo está creado internamente este sistema de archivos.

Este sistema de archivos nos permite configurar la compresión en línea, haciendo uso de diferentes algoritmos de compresión para mejorar la velocidad de lectura y escritura o para mejorar la compresión y ahorrar más espacio. También podremos configurar la función de deduplicación, una característica que nos permitirá ahorrar mucho espacio en disco, la parte negativa es que consume una gran cantidad de memoria RAM, por lo que es posible que no te interese demasiado activar esta funcionalidad.

Este sistema de archivos tiene las siguientes características y límites:

  • Máximo tamaño del archivo: 16EiB.
  • Máximo número de archivos: 281 billones.
  • Tamaño máximo del nombre del archivo: 255 bytes
  • Tamaño máximo del volumen: 16EiB.
  • Cifrado de datos: sí
  • Copy on write: sí
  • Compresión transparente transparente: sí
  • Deduplicación transparente: sí

En RedesZone hemos explicado en detalle este sistema de archivos ZFS, tanto sus características como su configuración en diferentes sistemas operativos orientados a servidores NAS. Ahora que ya sabemos cuáles son los tres sistemas de archivos para servidores NAS más utilizados, vamos a ver sus puntos fuertes y débiles.

 

Otros sistemas de archivos

Como has podido ver, los diferentes sistemas de archivos cumplen algunas funciones las cuales hacen que sea recomendable buscar cual es la más adecuada para nuestro sistema. Pero en el panorama actual, nos podemos encontrar muchos con sus respectivas peculiaridades. Bien sea para memorias internas o externas en cualquiera de sus versiones, o directamente para hacerlo compatible con algún dispositivo concreto como pueden ser las consolas, vamos a ver cuales son los más conocidos. Hay otros que usamos en cada dispositivo de la actualidad como puede ser un pendrive o un disco duro. Algunos de los habituales son:

  • NTFS

NTFS (New Technology File System) s e trata de un sistema de archivos que se introdujo en el año 1993 por parte de Microsoft. Actualmente es el más utilizado en los discos duros por defecto, sean HDD o SSD. No cuenta con un límite de tamaño metafórico establecido, por lo cual es ideal para archivos grandes. Pero si tiene un límite teórico muy grande. No siempre es compatible con todos los sistemas operativos. Por ejemplo, Mac permite utilizar un sistema de archivos NTFS para leer archivos, pero no para ser escrito así que debes tenerlo en cuenta porque NTFS no es una buena opción si los dos sistemas operativos que utilizan no son de Windows. Además también es incompatible con otros dispositivos como consolas que pueden leer este formato pero no todos pueden escribirlo.

  • FAT32

En este caso estamos ante un sistema muy eficiente para archivos que no superen los 4GB. Esto es así independientemente de la capacidad de la memoria. Es uno de los más utilizados, ya que tiene una compatibilidad muy alta con otros sistemas operativos o medios de reproducción.

  • FAT

Es el más antiguo de todos, y ha caído en desuso. En cambio sigue siendo compatible con algunos sistemas operativos, por lo cual se puede aplicar a memorias que no superen los 32GB. Por lo general es descartado porque cuenta con grandes limitaciones, como la facilidad para que el contenido resulte dañado, o que no cuente con permisos de seguridad. Una de sus ventajas es que es compatible con muchos sistemas operativos y puede usarse en Windows, Linux (y Android) y Mac OS.

  • exFAT

Es el sucesor de FAT32. Nació en el año 2006, en Windows XP y Vista. Actualmente es compatible con Windows y Mac, y es perfecto para memorias que se quieran utilizar en estos dos sistemas operativos. Por otro lado, elimina las restricciones de FAT32, por lo cual es muy permisivo con los archivos. Por la contra no es lo ideal para utilizar con sistemas Linux y con muchos medios de reproducción.

 

Importancia de hacer una buena elección

Estos conjuntos de reglas y estructuras que se utilizan por los sistemas operativos, para almacenar y recuperar datos como son los sistemas de archivos, es algo que puede ser un poco quebradero de cabeza. En estos casos, es importante considerar algunos factores para que la elección que hagamos, sea la más adecuada.

Para ello, es necesario tener en cuenta una serie de aspectos ante de decantarte por un sistema de archivos u otros. Por esto mismo, estos son los puntos que debes considerar para acertar en el momento de elegir alguna de estas alternativas:

  • Compatibilidad: Elegir el sistema de archivos correcto es muy importante para que todos los archivos sean compatibles con todos los sistemas operativos, o al menos con todos los posibles. Cuando elegimos un sistema para un dispositivo NAS, debemos asegurarnos de que este sea compatible con los sistemas operativos que más se utilizan hoy en día. Y así, poder acceder a todos los almacenes de datos con los que cuenta el NAS.
  • Estabilidad: Sin duda es una de las cosas a tener en cuenta, ya que esto es algo que nos va a garantizar que los datos que tenemos almacenados en los NAS, se encuentren seguros y no lleguen a corromperse. Algunos sistemas son más estables que otros, y tienen menos probabilidad de fallar. Por lo cual debemos buscar el sistema de archivos más estable y confiable.
  • Velocidad: Los sistemas de archivos son algo que afectan a las velocidades que nos puede proporcionar el NAS. No todos son igual de rápidos, y hacer la elección adecuada, nos va a ayudar a mejorar el rendimiento de forma general. Debemos buscar un sistema que sea rápido, y eficiente.
  • Funcionalidades: Hay algunos sistemas de archivos, que cuentan con funcionalidades añadidas que pueden ser útiles para los dispositivos NAS. Entre otras, la capacidad de manejo de grandes cantidades de datos, o la de detectar y corregir errores. En algunos casos, el propio NAS nos puede recomendar un sistema de archivos concreto, y así poder aprovechar todas sus funciones.
  • Escalabilidad: Siempre debemos pensar en lo que puede ocurrir si es necesario aumentar el espacio. Elegir un sistema de archivos que sea fácilmente escalable, nos va a ayudar mucho en estos casos. Pero para esto, también será muy importante la estructura que tenemos asignada al NAS en cuanto a cómo maneja el espacio.

Al tener en cuenta esta serie de aspectos, la elección puede ser menos complicada. Por lo que es importante comprobar todos estos aspectos para conseguir encontrar el sistema de archivos más adecuado para cada caso en particular. Aunque, si todavía tienes dudas, te dejamos una recomendación en las siguientes líneas.

 

¿Qué sistema de archivos elegir para mi NAS?

Una vez que hemos visto las principales características de los diferentes sistemas de archivos que podemos usar en un servidor NAS doméstico y/o profesional, vamos a ver las ventajas y desventajas de cada uno de ellos. De esta manera lo tendrás más fácil a la hora de elegir el sistema de archivos para tu servidor NAS.

Por ejemplo, uno de los primeros puntos que hay que considerar es que el sistema de archivos EXT4 es el más antiguo de todos, y está más que probado. Esto nos lleva a que este sistema de archivos es muy estable, de hecho, sigue siendo el sistema de archivos predeterminado por la gran mayoría de distribuciones Linux como Debian, Ubuntu o los sistemas operativos de QNAP, Synology y Asustor. Si necesitas almacenar una gran cantidad de datos, crear RAID y todo lo que ello conlleva, y obtener el mejor rendimiento en lectura/escritura con el menor consumo de recursos posible, seguramente EXT4 cumpla todas tus necesidades. Este sistema de archivos incorpora journaling, por lo que no deberías tener pérdida de datos en caso de corte de alimentación, no obstante, Btrfs y ZFS en este aspecto son claramente mejores.

Btrfs mejora muchos aspectos negativos de EXT4, como las limitaciones de tamaño de archivo y más, este sistema de archivos usa copy-on-write y fue diseñado para servidores muy grandes donde vayamos a almacenar muchísima información, por tanto, tenemos muchas características avanzadas que EXT4 no incorpora, como cifrado de datos transparente, compresión y deduplicación. También debemos tener en cuenta que incorpora instantáneas integradas, algo que EXT4 no tiene, soporta RAID y una asignación flexible de los inodos. No obstante, se ha comprobado que este sistema de archivos Btrfs consume más recursos del sistema que EXT4, además, obtendremos menos velocidad de lectura y escritura bajo las mismas condiciones (mismo hardware y mismo tipo de archivos a transferir).

El sistema de archivos ZFS es uno de los más avanzados que existen actualmente, este sistema de archivos es similar a Btrfs pero incorpora funcionalidades realmente interesantes como la posibilidad de agregar nuevos dispositivos al almacenamiento actual y añadir nuevo espacio inmediatamente, haciendo mucho más flexibles los «RAID» que teníamos en los otros sistemas de archivos. ZFS es sinónimo de escalabilidad, gran capacidad de almacenamiento de datos, protección contra la corrupción de los datos (integridad) y una eficiente compresión de datos, deduplicación y posibilidad de hacer instantáneas de forma rápida. Otras funciones son que permite verificar la integridad de forma continua y hacer una reparación automática de forma completamente transparente. La parte negativa de ZFS es que consume muchos recursos, de memoria RAM sobre todo, además, si activas la deduplicación tendrás un consumo de RAM adicional bastante importante.

Si tienes un servidor NAS de gama baja-media está claro que el sistema de archivos que debes usar es EXT4, en el caso de tener un NAS de gama media-alta o alta, puedes optar por Btrfs o ZFS, dependiendo de si tu sistema operativo lo soporta. Si vas a usar ZFS debes tener en cuenta que la deduplicación consume una gran cantidad de memoria RAM, es un hándicap que debemos pagar por ahorrar una gran cantidad de espacio de almacenamiento.

¡Sé el primero en comentar!