¿Por qué ZFS en Linux Ubuntu es tan bueno? Descubre sus ventajas

Sistema de archivos ZFS en Linux Ubuntu. ¿Cuáles son las características de su estructura, ventajas y desventajas? Vamos a analizarlo juntos en nuestro artículo.

¿Por qué ZFS en Linux Ubuntu es tan bueno? Descubre sus ventajas

ZFS o Zettabyte File System es un sistema de archivos creado originalmente por Sun Microsystems para el sistema operativo Solaris. Admite grandes cantidades de datos, combina los conceptos de un sistema de archivos, un administrador de disco lógico y medios físicos, así como una administración simple de volúmenes de almacenamiento.

Es un sistema de archivos de próxima generación, diseñado originalmente para proporcionar soluciones NAS con seguridad, confiabilidad y rendimiento mejorados. A diferencia de otros sistemas, ZFS es un sistema de archivos de 128 bits que ofrece una capacidad de almacenamiento prácticamente ilimitada. ZFS es un proyecto de código abierto con licencia CDDL (Licencia común de desarrollo y distribución).

Estructura ZFS - Zettabyte File System

Para usar el sistema de archivos ZFS “de la caja”, debe instalar FreeBSD o un sistema operativo que use el kernel de illumos, una bifurcación del kernel de OpenSolaris.

Si quiere usar ZFS en Ubuntu, debe añadir soporte para ello manualmente, lo cual es fácil de hacer con sólo unos pocos comandos. Volveremos a hablar de esto más adelante. Ahora mismo, vamos a ver las ventajas y desventajas del sistema de archivos.

Ir a ver
Sistema de archivos ZFS en Linux Ubuntu. Qué tiene de bueno ZFS

Sistema de archivos ZFS en Linux Ubuntu. Qué tiene de bueno ZFS

Ventajas de ZFS

Las siguientes son algunas de las ventajas de ZFS:

Ha simplificado la administración

Aquí se unifica la gestión de volúmenes, RAID y sistemas de archivos. Todo lo que necesitas son unos cuantos comandos para crear volúmenes, niveles de redundancia, sistemas de archivos, compresión, puntos de montaje y mucho más.

Esto también facilita la supervisión, ya que hay dos o incluso tres niveles menores para ver.

La siguiente ventaja es garantizar la integridad de los datos

Cuando se escriben datos, se calcula una suma de comprobación y se escribe junto con ellos. Posteriormente, cuando se vuelven a leer los datos, se vuelve a calcular la suma de comprobación. Si hay una discrepancia entre las sumas de comprobación escritas y los datos leídos, se detecta un error. El sistema intentará entonces corregir dicho error automáticamente.

ZFS también escala bien con la capacidad de agregar nuevos dispositivos, administración de caché y similares.

Función de copia al grabar

En la mayoría de los sistemas de archivos, los datos se pierden para siempre después de sobrescribirlos. Por otro lado, en ZFS, la información nueva se graba en otro bloque.

Función de copia al grabar

Luego los metadatos de los sistemas de archivos se actualizan hasta la nueva información una vez que se completa la grabación. Esto hace que los datos antiguos se conserven en caso de que se bloquee el sistema u otro evento malicioso.

Tiene funciones de almacenamiento integradas

  • La replicación es el proceso de hacer una copia de algo.

  • La deduplicación es un proceso que elimina las copias redundantes de datos y reduce la carga en el almacenamiento.

    Deduplicación
  • La compresión es una opción que ahorra espacio en disco y agrega velocidad, en el proceso se reduce la cantidad de bits necesarios para representar los datos.

  • Las instantáneas son un conjunto de marcadores de referencia para datos en un momento determinado.

    Instantáneas
  • Los clones son una copia idéntica de algo.

Limitaciones de ZFS

Pero como cualquier sistema de archivos, ZFS también tiene su parte de debilidades.

ZFS sufre un terrible rendimiento cuando se llena al 80% o más de su capacidad

Este es un problema común con los sistemas de archivos. Cuando el pool empieza a llenar el 80% de su capacidad, hay que ampliarlo o migrar a un almacenamiento mayor.

No hay manera de reducir pool

Usted no puede eliminar dispositivos o vdev del pool una vez que se han añadido.

También tiene capacidad limitada para cambiar el tipo de redundancia

Con la excepción de pasar de un pool de una sola unidad a un pool de réplica, no se puede cambiar el tipo de redundancia. Una vez seleccionado un tipo de redundancia, la única solución es destruirlo y crear uno nuevo, restaurando los datos desde las copias de seguridad o desde otra ubicación.

Instalación de ZFS en Ubuntu

Ahora vamos a ver cómo instalar ZFS en un sistema operativo Linux utilizando el ejemplo de la versión 20.04 de Ubuntu.

La instalación requiere un terminal; pulse Ctrl+Alt+T para empezar.

Luego ejecute el siguiente comando

$ sudo apt update

Para verificar actualizaciones de la aplicación. Después de ingresar el comando, el sistema le pedirá que ingrese una contraseña, ingrese la contraseña de root y presione Enter.

sudo apt update

Y para instalar lo siguiente:

$ sudo apt install zfsutils-linux

sudo apt install zfsutils-linux

Después de ejecutar el comando de instalación, escriba "y" para confirmar y presione Entrar. Esto comenzará el proceso de instalación del programa de software.

Para verificar su instalación de ZFS, ejecute el siguiente comando.

$zfs --versión

Comprobar la versión de ZFS instalada

El resultado será la versión del programa. Ahora puede crear un pool de almacenamiento con un dispositivo virtual vdev.

pool de almacenamiento

Un pool de almacenamiento es una colección de uno o más dispositivos virtuales en los que se almacenan datos. Un pool ZFS, también conocido como Zpool, sirve como contenedor de datos de nivel superior en un sistema ZFS. Se utiliza para crear uno o varios sistemas de archivos (conjuntos de datos) o dispositivos de bloques (volúmenes). Estos sistemas de archivos y dispositivos de bloque comparten el espacio restante en el pool. Las operaciones de particionado y formateo serán realizadas por ZFS.

dispositivo virtual vdev

El dispositivo virtual (vdev) puede consistir en uno o más dispositivos físicos. Puede ser un pool o parte de un pool y puede tener un nivel de redundancia de espejo, triple espejo, RAIDZ, RAIDZ-2 o RAIDZ-3.

RAID-Z es una implementación de RAID-5 modificado. En ZFS puede eliminar los errores de escritura y los huecos presentes en el RAID-5 original. RAID-Z1 requiere al menos tres discos: dos discos para el almacenamiento de datos y un disco para la paridad.

RAID-Z2 debe tener dos discos para el almacenamiento y dos para la paridad.

RAID-Z2

RAID-Z3 - al menos dos unidades y tres discos para la paridad.

RAID-Z3

Cómo crear un RAIDz

Ahora vamos a ver cómo construir un RAID-Z a partir de discos. El primer paso es identificar las unidades de disco con las que desea construir el array.

Para comprobar las unidades de disco conectadas y determinar cuáles son necesarias, utilice una utilidad, fdisk. Ejecute el siguiente comando para construir una lista de unidades:

$ sudo fdisk -l

El resultado es una lista de unidades con información detallada sobre cada una de ellas.

Comprobación de los discos conectados

Por ejemplo, le mostraré cómo construir un RAIDZ de nivel 1, esto es una contraparte de RAID5 con un solo disco de paridad. Permite que la matriz siga funcionando sin perder datos si falla una unidad.

Tengo tres discos duros /dev/sdd, /dev/sde y /dev/sdf. Voy a crear un pool llamado zdata. Lo hago ejecutando el siguiente comando:

$ sudo zpool create ith2-zfs-raid-1p zdata /dev/sdd /dev/sde /dev/sdf

$ sudo zpool create zdata raidz /dev/sdd /dev/sde /dev/sdf

Crear un pool llamado zdata

Si se produce algún error, puede ejecutar un comando utilizando el parámetro -f después del comando zpool create , que forzará el comando.

$ sudo zpool create -f ith2-zfs-raid-1p zdata /dev/sdd /dev/sde /dev/sdf

Si quieres saber el punto de montaje después de crear el pool, ejecuta df -h:

$ df -h

Descubre el punto de montaje

El pool está montado en /zdata. Para cambiar el punto de montaje del pool, utilice la siguiente sintaxis.

$ sudo zfs set mountpoint =<path> <pool_name>

En este ejemplo, he utilizado /var/pool como nuevo punto de montaje.

$ sudo zfs set mountpoint=/var/pool zdata

Comprueba el nuevo punto:

$ df -h

Comprobamos el nuevo punto de montaje

En el pool de almacenamiento se pueden crear directorios. Para ejemplo, crearé un directorio llamado mydata

$ sudo zfs create zdata/mydata

Y para ver todos los pools de almacenamiento ZFS del sistema, ejecutamos este comando:

$ zpool list

Ver todos los pool de almacenamiento ZFS del sistema

Y para conocer la configuración y el estado de cada dispositivo del pool ZFS, ejecuta el comando status.

$zpool status

Para mostrar los eventos y solucionar los problemas, introduzca este comando.

$ sudo zpool events zdata -v

Conoce la configuración y el estado de cada dispositivo del pool ZFS

Para añadir otro disco duro al pool de almacenamiento ZFS, debe ejecutar el comando con el nombre del disco que desea añadir.

$ sudo zpool add zdata /dev/sdb

Después de añadir el disco, veamos el estado del pool:

$ zpool status

Añadir otro disco duro al pool de almacenamiento ZFS

Para eliminar el pool de almacenamiento ZFS, es necesario ejecutar el siguiente comando.

$ sudo zpool destroy zdata

Cómo crear, revertir y eliminar instantáneas ZFS

Este sistema de archivos le permite crear una instantánea de su poll.

Una instantánea es una copia de sólo lectura de un sistema de archivos creada en un momento determinado. Se pueden tomar instantáneas de conjuntos de datos completos o de grupos. La instantánea incluye la versión original del sistema de archivos, junto con cualquier cambio realizado desde que se creó la instantánea. En pocas palabras, cuando se crea una instantánea, se crea una copia diferencial de sólo lectura.

El comando utilizado para crear la instantánea es zfs snapshot, seguido del nombre de la instantánea. En este ejemplo he utilizado zdata/mydata para crear una instantánea.

sudo zfs snapshot zdata/mydata@snap1

Para verificar la instantánea, ejecute el siguiente comando:

$ zfs list -t snapshot

Crear instantánea de pool ZFS

Si lo necesitas, puede cambiarle el nombre:

sudo zfs rename zdata/mydata@snap1 zdata/mydata@snap2

Puede deshacer los cambios realizando una operación de reversión de la instantánea. Ten en cuenta que perderás todos los cambios desde que se creó la instantánea.

Para retroceder a la instantánea en cuestión, se debe ejecutar zfs rollback con el nombre de la instantánea en cuestión. Esto deshará cualquier cambio que se haya hecho en el directorio desde esa instantánea.

$ sudo zfs rollback test-pool/mydata@snap1

Revertir ZFS a la instantánea correcta

Este comando retrocederá el sistema a la fecha correcta.

Una vez completada la reversión, puede comprobar si hay archivos borrados, posteriores a la instantánea, en el directorio.

Transferir y recibir ZFS

Las instantáneas pueden guardarse en un archivo y devolverse, lo que es estupendo para crear copias de seguridad o enviar copias por la red (como por ejemplo, a través de ssh) para copiar el sistema de archivos.

El comando send, envía una instantánea del sistema de archivos que puede ser reenviado a un archivo o a otra máquina en un hilo. El comando receive acepta este flujo y escribe una copia de la instantánea en el sistema de archivos ZFS.

Por ejemplo, vamos a crear otra instantánea y la guardamos en un archivo con el siguiente comando:

sudo zfs snapshot -r zdata/mydata@snap3

sudo zfs send zdata/mydata@snap2> ~/mydata-snap.zfs

Creamos una instantánea y la guardamos en un archivo

Y luego la traemos de vuelta ejecutando el siguiente comando:

sudo zfs receive -F zdata/mydata-copy < ~/mydata-snap.zfs

 Devolver la instantánea del archivo

Con ayuda de scripts adicionales, se puede configurar la creación y envío automático de instantáneas, por ejemplo, al servidor a través del protocolo ssh.

Compresión de datos ZFS

Y como se ha mencionado anteriormente, ZFS permite comprimir automáticamente los datos. Teniendo en cuenta la potencia de los procesadores modernos, esta es una opción beneficiosa, ya que la reducción del tamaño de los datos significa que se leen y escriben menos datos físicamente, lo que da lugar a una mayor velocidad de E/S. ZFS ofrece una amplia variedad de métodos de compresión. El valor por defecto es lz4 (sustituto de alto rendimiento de lzjb), que proporciona una compresión y descompresión más rápida que lzjb, con un ratio de compresión ligeramente superior. Para cambiar el nivel de compresión, puede utilizar el comando:

sudo zfs set compression=gzip-9 zdata

O incluso puede cambiar el tipo de compresión:

sudo zfs set compression=lz4 zdata

Ver el nivel de compresión:

sudo zfs get compressratio

Compresión de datos ZFS

La opción más segura es lz4 ya que es mucho más rápido que el resto de opciones con un buen rendimiento.

Conclusión

Con todo esto en mente, ZFS es claramente un sistema de archivos que ofrece una amplia gama de capacidades. No sólo puede gestionar los datos de forma eficiente e innovadora, sino que, en caso de emergencia, también puede recuperar los datos sin interrumpir las operaciones. Además, en caso de fallo, todo el sistema puede restaurarse fácilmente mediante una función de instantánea, y volver a un punto predeterminado en el tiempo.

Si está experimentando una pérdida de información de su sistema de archivos ZFS y RAIDZ, pruebe el programa Hetman RAID Recovery. El programa puede ayudarle a restaurar archivos borrados accidentalmente de un sistema de archivos ZFS o a recuperar información de una matriz RAIDZ averiada. El programa le ayudará en caso de fallos, formateo, sobrescritura y otros casos de pérdida de datos.

Ir a ver
🔝 Los mejores softwares de recuperación de datos de disco ZFS. 🔝 Cómo recuperar datos de ZFS

🔝 Los mejores softwares de recuperación de datos de disco ZFS. 🔝 Cómo recuperar datos de ZFS

Raidel Arbelay Becerra

Autor: , Escritor técnico

Raidel Arbelay Becerra es un escritor técnico de Hetman Software y la voz y la cara del canal de YouTube de Hetman Software: Recuperación de datos. Escribe artículos, tutoriales y reseñas en profundidad sobre el funcionamiento del software de la empresa con todo tipo de dispositivos de almacenamiento.

Angel Villares

Editor: , Escritor técnico

Ángel Villares es autor y uno de los ingenieros informáticos de Hetman Software. Cuenta con casi 10 años de experiencia en el campo de la informática: administración y configuración de servidores, instalación de sistemas operativos y de diferentes programas informáticos, configuración de redes, seguridad de la información, implantación y asesoramiento en el uso de software especializado. Es un experto en el campo de la recuperación de datos, sistemas de archivos, dispositivos de almacenamiento y matrices RAID.

Recomendado para ti

Bienvenido al asistente con tecnología AI de Hetman Software.
Comenzar chat