Ventajas y desventajas

Los sistemas operativos suelen tener a disposición del usuario diferentes sistemas de archivos para almacenar y recuperar los datos en un momento determinado. Windows utiliza NTFS y, antiguamente, FAT32 (estándar en pendrives por su compatibilidad con todos los sistemas), GNU/Linux suele utilizar por defecto EXT4 o XFS y MacOS el nuevo sistema AFS.

Estos sistemas suelen ser estables, seguros y rápidos. Ideales para un usuario final. Pero, en el mundo de los servidores y del almacenamiento de grandes cantidades de datos, la cosa cambia y las prioridades son otras. Las necesidades de funciones avanzadas, como la de gestionar una gran capacidad de almacenamiento, autoreparación (self healing), modelo transaccional (copy on write), instantáneas (snapshots), gestor de volúmenes para discos en RAID, compresión transparente…, son prioritarias.

Por lo tanto, los usuarios de servidores NAS pueden decantarse por diferentes sistemas de archivos que cubran estas necesidades y aquí encontramos diferentes opciones que, con sus pros y sus contras, intentan cubrirlas. Los más comunes son Ext4, ZFSBtrfs, y hago una pequeña mención sobre XFS, muy comentado los últimos meses.

EXT4

Si hay algo que se puede decir de este sistema es que está súper probado, le sobra rendimiento y estabilidad y seguro podemos confiar en él. Pero también podemos decir que le faltan muchas funciones avanzadas de las que sí disponen Btrfs o ZFS.

Foto: qnap.com

Sin embargo, es una de las opciones favoritas en servidores NAS y viene por defecto en productos de Qnap. El porqué de esta elección tiene un poco más que ver con las falencias de Btrfs que con las cualidades propias de Ext4.

Básicamente, Btrfs tiene una mayor latencia de E/S, lo que hace a Ext4 bastante mejor en rendimiento. Esto también dificulta que los discos puedan desarrollar todo su potencial y resulta incluso más ineficaz para las unidades de estado sólido (SSD).

En cuanto al apartado de instantáneas, Btrfs no permite separar los volúmenes para el almacenamiento de datos y el uso de instantáneas. Es decir, que los archivos de instantáneas ocuparán espacio de almacenamiento, lo que aumenta la dificultad para administrarlo y genera cierto riesgo en los datos.

Estas ventajas de Ext4 sobre Btrfs seguramente se irán reduciendo a medida de que Btrfs progrese en su desarrollo. Pero, al momento actual, es una gran justificación a favor de Ext4, principalmente en entornos que manejen grandes volúmenes de datos, donde el sistema de archivos pueda representar un cuello de botella en la velocidad de transferencia. De hecho, es uno de los puntos prioritarios planteados a mejorar en Btrfs por parte de sus desarrolladores.

No creo necesario profundizar más en interminables discusiones sobre qué sistema es mejor. No obstante, si lo consideran necesario, pueden empezar leyendo por aquí.

ZFS

Muchos los consideran como el mejor sistema de archivos, aunque tiene algunos aspectos negativos que hacen generar sentimientos encontrados.

En su lanzamiento, por el año 2005, fue rompedor en comparación a los gestores de volúmenes y sistema de archivos que se utilizaban en ese momento.

Sun Microsystems, su creadora, abrió el código fuente y esto permitió utilizarlo en GNU/Linux y FreeBSD. Incluso Apple comenzó a trabajar en un nuevo sistema de archivos para MacOS basado en las tecnologías de ZFS.

En términos futbolísticos, ZFS estaba frente al arco (o portería), sin defensores cerca y con tiempo de sobra para definir de la mejor manera, pero no lo hizo. Allá por 2007 el futuro brillante del sistema de archivos se empezó a ensombrecer. Surgieron problemas de licencias, demandas y dudas sobre el futuro del sistema.

NetApp, una empresa desarrolladora de servicios de datos y “cloud computing“, demandó a Sun alegando que sus patentes fueron infringidas por ZFS. Sun contrademandó y los problemas legales se prolongaron.

Finalmente se determinó que Sun no copió el código de NetApp, pero el enfoque de la función copy on write era similar. Esto hizo que muchas empresas se preocuparan de que la demanda de NetApp pudiera afectar la disponibilidad futura de ZFS de código abierto.  ¿Tan preocupante? Si, de hecho Apple dejó de soportar ZFS en Mac OS X 10.6 “Snow Leopard” justo antes de su lanzamiento.

Eran momentos financieros difíciles para Sun, y Oracle se lanzó a comprar la compañía. Esto generó aún más dudas sobre el futuro de ZFS, ya que Oracle no estaba en la lista de compañías “buena onda” de las empresas y usuarios defensores del software libre.

La licencia que Sun aplicó al código de ZFS se consideró incompatible con la GPLv2, y fue la piedra en el zapato para su inclusión en el sistema operativo más importante para servidores: GNU/Linux (al menos hasta la interpretación legal de Canonical).

ZFS por defecto en FreeNAS

Posteriormente, FreeBSD y empresas como NexentaStor y Greenbytes impulsaron ZFS en el ámbito empresarial, pero el tiempo había pasado y ya había otras opciones que prometían muchísimo.

Al día de hoy, OpenZFS sigue evolucionando con pocos cambios significativos con respecto al sistema de hace 10 o 12 años atrás. Muchas críticas continúan recayendo en funciones como la deduplicación, que es una devoradora de memoria RAM. ¡Llega a recomendarse la módica suma de 32 hermosos Gb de RAM para pequeños servidores de empresas!

Por otra parte, los precios, rendimiento y calidad actual de los discos SSD convierten a este tipo de almacenamiento en ideales para utilizarlos como caché, pero ZFS nunca logró aprovechar ni gestionar correctamente esta tecnología.

Otro aspecto negativo del sistema es su falta de flexibilidad. Una vez construido un volumen ZFS, este quedará así, siendo difícil o imposible realizar ciertas modificaciones. Por ejemplo, hay pocas formas de expandir un pool de almacenamiento, y es muy difícil reducir uno. Pero tranquilos que, de “pools de almacenamiento”, tendremos algunas líneas en otros artículos, más adelante.

En fin, ZFS se resume en “comprar discos y una gran cantidad de RAM, crear un RAID y nunca volver a tocar ese sistema”. 😛 (También hay algo sobre arrays en próximos artículos.)

Luego de mencionar los aspectos negativos, tal vez la sensación que quede no sea la mejor y el lector decida pensar en otras opciones.

En GNU/linux se utilizan varios sistemas de archivos y gestores de volúmenes harto probados. La combinación LVM y Ext4 es muy común. De hecho, es el estándar de Qnap. Btrfs es una combinación de administrador de volúmenes y sistema de archivos, similar a ZFS pero con mayor flexibilidad. Hablaremos de él más adelante.

Por el lado de Windows, Microsoft está desarrollando su propio sistema de archivos de nueva generación, ReFS.

Apple tiene su APFS, que se parece mucho a Btrfs y ReFS, aunque implementado de manera completamente diferente, con un enfoque más centrado en el ‘clienteléase usuario final-. Y claro, también le faltan algunas características: los datos del usuario no se comprueban y no es compatible con la función de compresión transparente.

No obstante, APFS es un gran sistema de archivos para iOS y MacOS y, seguramente, será el “tiro de gracia” para el soporte de ZFS en esa plataforma.

Aún así, ZFS es mejor que muchos sistemas de archivos existentes en ciertos escenarios. La falta de comprobación de integridad, redundancia y recuperación de errores hace que NTFS, HFS y Ext4 sean inapropiados para usar como una plataforma de almacenamiento a largo plazo. Y Btrfs sigue en estado inestable a lo que respecta a RAID 5 y 6.

Al momento actual, ZFS sigue siendo considerado por muchos como el mejor sistema de archivos y, dado que fue diseñado con la seguridad de los datos como principal objetivo, cualquiera que confíe sus datos en él puede dormir tranquilo sabiendo que están a buen resguardo.

Btrfs

Es un sistema de archivos basado en el principio de Copy-on-Write (CoW), inicialmente diseñado en Oracle Corporation para su uso en GNU/Linux. El desarrollo de Btrfs comenzó en 2007 y en agosto de 2014 se ha considerado estable.

Btrfs tiene como objetivo abordar carencias de otros sistemas de archivos, como la falta de gestión de pools, instantáneas (snapshots), sumas de comprobación (checksums) y expansión integral de múltiples dispositivos en sistemas de archivos GNU/Linux.

Es decir, dejar de lado herramientas como MDADM, LVM, sistemas de integridad de archivos, etc, y tenerlo todo integrado, de forma nativa, en el sistema de archivos.

Una de las características más atractivas que nos proporciona este sistema de archivos es la compresión al vuelo, es decir, que, al guardar un fichero, este se guarda comprimido pero, llegado el momento de la lectura, se descomprime.

En comparación con los volúmenes Ext4, Btrfs no requiere el doble de espacio de almacenamiento para los datos de historial y versionado de los archivos. Es decir, puede conservar versiones históricas de los archivos sin consumir demasiado espacio de almacenamiento. Esto se produce porque, al ser ficheros exactamente iguales, las copias del original están referenciadas al original pero, si se produce un cambio, la copia ocupa el tamaño del original más el cambio.

Permite, además, administrar ‘cuotas’ a los usuarios para cada carpeta compartida.

También se puede seleccionar una carpeta compartida y clonar todo su contenido de forma prácticamente instantánea. Esto resulta útil a la hora de probar actualizaciones para sitios web o bases de datos en las que es necesario clonar rápidamente los datos.

Rockstor utiliza BTRFS por defecto

En cuanto a los subvolúmenes en Btrfs, se trata de directorios internos del pool que podemos montar en nuestro sistema, dando la oportunidad de tener un mismo dispositivo de bloques montado en varias localizaciones. Además, gracias a la funcionalidad de snapshots que nos proporciona Btrfs, nos permite tener copias de estos directorios.

En la configuración de discos en RAID 1 se pueden mezclar discos de diferentes tamaños y expandir un disco a la vez. En Btrfs el raid 1 no es como el raid 1 tradicional que encontramos en ZFS, raid por hardware o algún gestor de RAID por software en Linux, como MD.

Btrfs ha evolucionado, alcanzando la mayoría de las características de ZFS, pero todavía hay un largo camino por recorrer. Btrfs aún carece de algunas características elementales, como el cifrado de disco. Esto se debe a cierta complejidad inherente a la funcionalidad y porque la implementación de dicha característica podría romper la compatibilidad con versiones anteriores.

Algunos lo asocian a inconvenientes en determinados escenarios con RAID 5 y 6, donde se podrían generar problemas con errores de cálculo de paridad y la consecuente pérdida de datos. Esto viene siendo corregido hace mucho tiempo, pero es el motivo por el cual RAID 5 y 6 no son considerados estables por el momento.

Foto: synology.com

Synology ha implementado capas intermedias de software para garantizarse el control total sobre la comunicación en RAIDs a fin de lograr la mayor estabilidad posible. Pero esto puede causar que ciertas características propias de Btrfs no estén disponibles. Por otra parte, Raid 0, 1 y 10 son altamente estables y recomendables.

El año pasado Red Hat, uno de los desarrolladores de este sistema de archivos, anunciaba que retiraba de sus futuras versiones el soporte a Btrfs. Esto sembró ciertas dudas en cuanto al progreso del proyecto.

Después de esto, desde SUSE aseguraron que seguirán adelante con el desarrollo según lo previsto, junto a otros contribuidores como Facebook y Fujitsu. ¿Facebook? Si, imaginen por un momento los miles de memes y videos que se comparten en whatssapp. Archivos repetidos por millones. Y con este tipo de sistemas que con funciones de deduplicación y compresión transparente, el espacio ocupado por todos esos archivos multimedia sería “relativamante bajo”… Voilá.

XFS

XFS es el más antiguo de los sistema de archivos con journaling. Es estable y con un código bien depurado. Su desarrollo lo comenzó en 1993 la compañía SGI. El sistema de archivos fue liberado bajo la licencia GPL en mayo de 2000 y, posteriormente, portado a GNU/Linux, apareciendo por primera vez en una distribución entre el 2001 y el 2002.

Presenta algunas desventajas importantes cuando los comparamos con otros sistemas, como ZFS o Btrfs: falta de soporte de compresión o de suma de comprobación para protección contra la corrupción silenciosa de datos. Además se le culpa de un rendimiento bajo en comparación con otros sistemas.

Cómo comentaba en el párrafo anterior, hace unos meses, cuando Red Hat se retiró del desarrollo de Btrfs, indicó que el sistema de archivos por defecto sería XFS. Asimismo, la empresa está desarrollando Stratis Storage. Stratis es un sistema similar a Btrfs o ZFS. Fue pensado para facilitar la configuración y administración de discos con funciones avanzadas. Aún se encuentra en desarrollo y no se espera que esté completa en 2018 pero, posiblemente, se implemente en próximas versiones de Fedora. Veremos cómo se comporta la comunidad con este nuevo sistema.

 

Después de todas estas líneas ¿Qué sistema de archivo te convence más? Por lo pronto te diré que, a nivel usuario hogareño, no creo que tengas problemas con ninguno, pero la elección es tuya.

 

¡Hasta la próxima!


Bibliografia

mit.edu – rhel file systems

forum.synology.com – BTRFS

phoronix.com – linux 4.14 file systems

qnap.com – ext4

Respecto a los derechos de las imagenes:

La imagen principal se distribuye bajo licencia CC0.

Las imagenes de Synology y Qnap fueron obtenidas de sus paginas web respectivas.

El resto de imágenes de distribuyen bajo licencia CC0 o son capturas de pantalla del autor.

8
Queremos saber tu opinión, deja un comentario

avatar
5 Comment threads
3 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
JavierinsituPercaff_TI99truko22uname Recent comment authors

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

  Subscribe  
más nuevo más antiguo más votado
Notificarme de
trackback

[…] entrada A B C del sistema de almacenamiento de un NAS: El sistema de Archivos se publicó primero en […]

uname
Lector
uname

Me pregunto como habría evolucionado ReiserFs si su creador no estuviera en la cárcel.

truko22
Lector

Entiendo ahora mas el panorama, muchas gracias. En el caso de ext ¿seguira mejorando? digo en optimizacion y rendimiento, lo veo que sigue siendo la mejor opcion para un usuario comun con su computador personal.

Percaff_TI99
Lector
Percaff_TI99

Yo lo veo más o menos así:

1- ZFS (Bugatti)
2- BtrFS (Ferrari)
3- Ext4 (Mercedez)

UFS (Unix File System) es otro gran sistema de archivos. Personalmente creo que para usuarios que no requieran trabajar con grandes volúmenes de datos y buscan flexibilidad coincido en que LVM + Ext4 es una muy buena opción. Una vez familiarizado con ese concepto BtrFS les resultará más fácil de implementar en el futuro.

Entre tantas bondades ZFS puede montar un RAID tan rápido como un chasquido entre los dedos -asombroso-. Es cierto que tiene limitaciones y hay que hacer “cierta magia” para expandir/reducir un pool. Aunque ZFS está pensado para grandes escalas, hay quienes nos gustaría tener una Bugatti en el garaje, el problema es mantenerla.

trackback

[…] A B C del sistema de almacenamiento de un NAS: el sistema de archivos […]