Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon RAID y ZFS: ¿Qué son y para qué sirven?


Todos nosotros conocemos y hemos trabajado con sistema de archivos como NTFS en Windows, o EXT4 en Linux, sin embargo, existen otros sistemas de archivos con diferentes características, funcionamiento y rendimiento. Vamos a hablar en detalle sobre el sistema de archivos ZFS, el mejor sistema de archivos para servidores NAS donde la integridad de los archivos es uno de los aspectos más importantes, sin olvidar la protección de los datos frente a un ransomware o malfuncionamiento de uno de los discos. ¿Estás preparado para saberlo todo sobre ZFS?





ZFS es un sistema de archivos que incluye funciones RAID, mientras que RAID es una tecnología que usa varios discos. ZFS es más flexible y ofrece más funciones que otros tipos de RAID

RAID

Es una tecnología de almacenamiento de datos que combina varios discos duros en un solo volumen lógico para mejorar el rendimiento, la capacidad o la redundancia de los datos.
Se puede implementar mediante software o hardware, y existen diferentes niveles como RAID 0 (sin redundancia, solo rendimiento), RAID 1 (duplicación de datos), etc.

Son dos configuraciones diferentes de discos duros que ofrecen distintas ventajas y desventajas. Te explico las principales diferencias:

RAID 0: 

Los datos se dividen en bloques y se distribuyen entre los discos. Por ejemplo, si tienes dos discos (igual tamaño), los datos se almacenan de manera alternada en cada uno de ellos.

Ventajas:


- Rendimiento: Mejora el rendimiento de lectura y escritura, ya que los datos se acceden en paralelo.

- Uso eficiente del almacenamiento: Utiliza todo el espacio disponible de los discos, ya que no hay duplicación de datos.

Desventajas:

- Sin redundancia: Si uno de los discos falla, se pierden todos los datos, ya que no hay copias de seguridad de la información.

RAID 1:

Los datos se duplican exactamente en ambos discos (igual tamaño). Es decir, todo lo que se escribe en un disco también se escribe en el otro.

Ventajas:

- Redundancia: Si un disco falla, los datos siguen estando disponibles en el otro, lo que mejora la seguridad.

- Recuperación de fallos: Es ideal para protección de datos, ya que proporciona una copia exacta de los datos en otro disco.

Desventajas:

 
- Espacio reducido:
El espacio utilizable es solo el de un disco, ya que los datos se duplican. Por ejemplo, si tienes dos discos de 1 TB, solo tendrás 1 TB disponible para almacenamiento.

-  Rendimiento: Aunque la lectura puede mejorar al tener dos discos disponibles, la escritura no tiene tanto incremento de rendimiento como RAID 0.

ZFS

Es un sistema de archivos avanzado y un gestor de volúmenes. Conocido por su robustez, escalabilidad y características de gestión de datos. ZFS combina las funciones de un sistema de archivos tradicional con las de un gestor de volúmenes, lo que permite gestionar tanto los discos físicos como los sistemas de archivos de manera más eficiente.



Ventajas:

- Integridad de los datos: Utiliza checksums para garantizar la integridad de los datos. Puede detectar y corregir errores de corrupción de datos        automáticamente, asegurando que los datos almacenados sean siempre correctos.

- RAID Z:
ZFS incluye su propio sistema de RAID Z, ofrece redundancia de datos de manera más eficiente que los sistemas RAID tradicionales, reduciendo el impacto en el rendimiento y mejorando la recuperación de fallos.

- Instantáneas (Snapshots): Permiten crear copias exactas del sistema de archivos en un momento específico, sin necesidad de detener el sistema o interrumpir el servicio. Facilita la creación de backups o la restauración del sistema a un punto anterior.

- Compresión y deduplicación: ZFS admite compresión en tiempo real, reduce el uso de espacio en disco sin afectar el rendimiento. También ofrece deduplicación, que elimina datos redundantes para maximizar el uso del almacenamiento.

- Escalabilidad: Diseñado para manejar grandes volúmenes de almacenamiento (hasta petabytes), lo que lo hace ideal para centros de datos y sistemas de almacenamiento masivo.

- Fácil expansión:
Es posible añadir nuevos discos o ampliar volúmenes de almacenamiento sin interrumpir el sistema. Es sencillo y se gestiona automáticamente.

- Gestión simplificada: Combina tanto el sistema de archivos como la gestión de volúmenes en una sola capa, simplificando la administración del almacenamiento, reduce la necesidad de herramientas y configuraciones adicionales.

- Resiliencia frente a fallos: Es resistente a fallos de hardware y puede recuperar datos con paridad o duplicación de manera eficiente, protegiendo contra la pérdida de información.

Desventajas:

- Requiere mucho recursos de hardware: Conocido por ser intensivo en memoria RAM. Necesita al menos 1 GB de RAM por cada terabyte de almacenamiento utilizado, lo que puede hacer que no sea adecuado para sistemas con recursos limitados.

- No es ideal para discos pequeños: Funciona mejor con discos de mayor capacidad. Los sistemas con muchos discos pequeños pueden no beneficiarse de las ventajas de ZFS debido a su estructura interna de gestión de datos.

- Requiere una configuración de discos adecuada: Necesita discos específicos o arreglos de discos bien configurados para funcionar de manera óptima. Esto puede requerir planificación adicional al crear el almacenamiento.

- Rendimiento en algunos casos: En situaciones donde no se usa toda su funcionalidad (como compresión o deduplicación), el rendimiento de ZFS puede no ser el mejor en comparación con otros sistemas de archivos más ligeros y sencillos.


¿Cuál es mejor?


ZFS tiende a ser más robusto y avanzado en comparación con RAID tradicional, ya que ofrece no solo las ventajas de RAID sino también una gestión más eficiente y avanzada del almacenamiento, integridad de datos y características adicionales como compresión y snapshots.
Es generalmente la mejor opción si necesitas una solución de almacenamiento más confiable y avanzada como centros de datos y servidores de gran capacidad como entornos empresariales.

Sin embargo, si solo necesitas una configuración de almacenamiento básica, RAID puede ser suficiente para aplicaciones más simples o en entornos donde no se requieren las funcionalidades avanzadas de ZFS. 

¿Qué es ZFS y qué características tiene?

ZFS es un sistema de archivos que fue desarrollado originalmente por Sun Microsystems para su sistema operativo Solaris, el código fuente se publicó en el año 2005 como parte del sistema operativo OpenSolaris, pero esto hizo que ZFS pudiera utilizarse en otros sistemas operativos y entornos. En un primer momento hubo problemas con los derechos de ZFS, por lo que se decidió hacer diferentes «ports» para adaptarlo a los diferentes sistemas operativos sin tener problemas de licencias. En el año 2013 se lanzó OpenZFS bajo el paraguas de proyecto Umbrella, de tal forma que ZFS podía ser utilizado sin problemas en sistemas operativos como Linux y FreeBSD entre otros. Desde este momento, podemos encontrarnos con el sistema de archivos ZFS en FreeBSD, NetBSD, Linux como Debian o Ubuntu entre otras.

El sistema de archivos ZFS se utiliza de forma nativa en sistemas operativos basados en FreeBSD, como los populares FreeNAS o XigmaNAS, dos sistemas operativos que están orientados específicamente para servidores NAS. El fabricante QNAP con su sistema operativo QTS basado en Linux, ha estado utilizando EXT4 durante muchos años, pero recientemente ha lanzado un nuevo sistema operativo llamado QuTS Hero que permite utilizar el sistema de archivos ZFS para el almacenamiento masivo, gracias a esta decisión, podremos beneficiarnos de una gran cantidad de mejoras en la integridad de archivos y en su protección frente a posibles errores de escritura.

Actualmente, el fabricante QNAP tiene servidores NAS que únicamente soportan el sistema de archivos ZFS, todos los NAS que tienen una «h» de «Hero» en su modelo es porque disponen del sistema operativo QuTS Hero, y, por tanto, tenemos el sistema de archivos ZFS. En estos servidores NAS disponemos de memoria RAM de tipo ECC (con corrección de errores), esta característica es fundamental cuando estamos usando ZFS porque permite detectar y corregir errores antes de escribirlo en disco. ZFS hace un uso intensivo de la memoria RAM como primer caché, con el objetivo de proporcionar el mejor rendimiento en lectura y en escritura, además, si activamos la deduplicación también vamos a tener un gran consumo de memoria RAM.

Normalmente se recomienda tener 2GB de RAM por cada 1TB de datos que vayamos a utilizar en el pool, aunque podría ser menor. Por este motivo, los NAS de QNAP con QuTS Hero son capaces de soportar hasta 128GB de memoria RAM ECC, con el objetivo de almacenar una gran cantidad de información en ZFS y obtener el mejor rendimiento posible. En las últimas semanas, QNAP también ha lanzado nuevos servidores NAS que nos permiten elegir entre el sistema operativo QTS normal o QuTS Hero, de esta forma, el usuario podrá elegir entre EXT4 o ZFS como sistema de archivo para el almacenamiento de todos los datos en su servidor, estos NAS también tienen la posibilidad de instalar memoria RAM non-ECC (para EXT4) y RAM ECC si vas a elegir ZFS como sistema de archivos.

Antes de empezar a explicar las principales características de ZFS, vamos a hablar de sus «límites». ZFS se ha diseñado de tal forma que nunca tengamos limitaciones en la vida real. ZFS permite crear 248 instantáneas de forma nativa, y también permite crear hasta 248 número de ficheros en el sistema de archivos. Otros límites son los 16 exabytes para el tamaño máximo de un sistema de ficheros, e incluso 16 exabytes para el tamaño máximo de un fichero. La capacidad máxima de almacenamiento un «pool» es de 3 × 1023 petabytes, por lo que tendremos espacio más que de sobra en caso de necesitarlo, además, podremos tener hasta 264 discos en un zpool, y 264 zpools en un sistema.

Espacios de almacenamiento virtuales (Storage pools)

En ZFS existen lo que se denomina «espacios de almacenamiento virtuales», o también conocidos como vdevs, que básicamente son el dispositivo de almacenamiento, es decir, los discos duros o SSD para el almacenamiento. Con ZFS no tenemos los típicos RAID que encontramos en sistemas de archivos como EXT4, los típicos RAID 0, RAID 1 o RAID 5 entre otros, también existen aquí, pero de diferente manera.

Un «pool» puede ser de varios tipos, dependiendo de lo que nosotros queramos en cuanto a velocidad, espacio de almacenamiento e integridad de los datos en caso de que uno o varios discos fallen:

  • Stripe: todos los discos se meten dentro de un «pool» y se suman las capacidades de los diferentes discos. En caso de fallo de un disco, perderemos toda la información. Este tipo de pool es como el RAID 0 pero permite incorporar múltiples discos en él.
  • Mirror: todos los discos se meten dentro de un «pool» y se replican, la capacidad máxima del pool será la misma que la menor capacidad de uno de los discos. Todos los discos en el mirror están replicados, por tanto, solamente perderemos información si se rompen todos los discos del mirror. Este tipo de pool es como un RAID 1, pero permite incorporar múltiples discos en él.
  • RAID Z1: todos los discos se meten dentro del pool. Suponiendo que todos los discos tengan la misma capacidad, se suma la capacidad de todos los discos menos la de uno (si tenemos 3 discos de 4TB, el espacio de almacenamiento efectivo sería de 8TB). Permite que uno de los discos se pueda romper, y la información quede intacta. El funcionamiento es como un RAID 5 que todos conocemos. Un RAID Z1 debe tener 3, 5 o 9 discos en cada vdev, por tanto, podremos tener en un vdev un total de 9 discos y que, si falla uno, no tengamos pérdida de datos, en caso de fallar un segundo disco, perderemos toda la información.
  • RAID Z2: todos los discos se meten dentro del pool. Suponiendo que todos los discos tengan la misma capacidad, se suma la capacidad de todos los discos menos la de dos discos (si tenemos 4 discos de 4TB, el espacio de almacenamiento efectivo sería de 8TB). Permite que dos de los discos se puedan romper, y la información quede intacta. El funcionamiento es similar a un RAID 6 que todos conocemos. Un RAID Z2 debe tener 4, 6 o 10 discos en cada vdev, por tanto, podremos tener en un vdev un total de 10 discos y que, si fallan dos, no tengamos pérdida de datos, en caso de fallar un tercer disco, perderemos toda la información.
  • RAID Z3: todos los discos se meten dentro del pool. Suponiendo que todos los discos tengan la misma capacidad, se suma la capacidad de todos los discos menos la de tres (si tenemos 5 discos de 4TB, el espacio de almacenamiento efectivo sería de 8TB). Permite que tres de los discos se puedan romper, y la información quede intacta. Un RAID Z3 debe tener 5, 7 o 11 discos en cada vdev, por tanto, podremos tener en un vdev un total de 1 discos y que, si fallan tres, no tengamos pérdida de datos, en caso de fallar un cuarto disco, perderemos toda la información.

Otras configuraciones que podremos realizar con ZFS, es definir un disco como «Hot Spare«, o también conocido como «Repuesto», para que, en caso de fallo de un disco, automáticamente entre en funcionamiento este disco de respaldo y comience el proceso de resilvering (regeneración de los datos utilizando este nuevo disco que acabamos de introducir al pool). También tenemos la posibilidad de definir un disco como «caché«, que básicamente es activar el L2ARC y tener un mayor rendimiento, esto es ideal si lo utilizamos con un SSD rápido, de tal forma que aumentemos el rendimiento global del sistema, si vas a utilizar un HDD normal, no notarás ninguna mejoría e incluso podría empeorar el rendimiento. Por último, también tenemos la posibilidad de definir un disco como «LOG» (SLOG ZFS Intent Log) para almacenar los registros de escritura que deberían haber ocurrido, esto es de ayuda en caso de un corte en el suministro eléctrico.

ZFS se ayuda del caché que hemos comentado anteriormente para acelerar enormemente las transferencias de datos, tanto en lectura como escritura, además, no solamente mejoraremos al lectura y escritura secuencial sino también la lectura y escritura aleatoria.

 Nomenclatura propia de ZFS

ZFS utiliza el concepto de VDEV, Virtual DEVice. Un VDEV no es más que un conjunto de una o más unidades de almacenamiento físico. Es similar a los volúmenes de otros sistemas de almacenamiento.  A partir de uno o más VDEV se crea el pool de almacenamiento. ZFS cuenta con siete tipos de VDEV:
  1. disk: Es el sistema por defecto y representa discos físicos.
  2. file: Ficheros cuyo espacio se hayan asignado de antemano.
  3. mirror: RAID 1 estándar.
  4. raidz1/2/3: Niveles RAID, no estándar, basados en paridad distribuida.
  5. spare: Discos duros marcados como "de reserva" para utilizarse en un RAID.
  6. cache: Sistema para utilizarse como caché  de disco de nivel 2.
  7. log: Sistema de registro independiente llamado "ZFS Intent Log" o ZIL.

Hay que tener en cuenta que cada VDEV individual que se añada al pool de almacenamiento será utilizado para distribuir dinámicamente los stripes de datos que se vayan añadiendo, es decir, se formará un RAID 0 con ellos.


Por otro lado, ZFS denomina datasets a los sistemas de ficheros. 

La forma de trabajar es la siguiente: se van creando VDEV a partir de las unidades de almacenamiento, cada VDEV pasa al pool de almacenamiento y a partir de este pool se van creando cada dataset. Los datasets ven el pool completo, de modo que si creamos un pool de 100GB cada vez que creemos un dataset nuevo, tendrá un tamaño de 100GB. Conforme se vayan llenando los diferentes datasets, el tamaño de todos irá disminuyendo. A la hora de crear un dataset podemos limitarlo a un tamaño menor en caso de necesitarlo.

Por ejemplo, podemos crear un pool para almacenar el directorio home de nuestros usuarios y crear un dataset diferente para cada usuario del sistema. En el caso de querer restringir el tamaño del directorio home de un usuario en concreto, simplemente restringimos el tamaño del dataset correspondiente en el momento de la creación.

Para hacer pruebas podemos utilizar ficheros ya existentes como unidades de almacenamiento a la hora de crear los VDEV (VDEV de tipo file), algo que nos puede dar bastante juego en entornos de prácticas. 

Fuentes:

https://slimbook.com/blog/tutoriales-2/post/raid-y-zfs-que-son-y-para-que-sirven-453

https://www.redeszone.net/tutoriales/servidores/sistema-archivos-zfs-servidores/


0 comentarios :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.