GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar instantáneas, clones y replicación en ZFS en Linux

En el tutorial anterior, aprendimos cómo crear un zpool y un sistema de archivos o conjunto de datos ZFS. En este tutorial, le mostraré paso a paso cómo trabajar con instantáneas, clones y replicaciones de ZFS. Instantánea, clon. y la replicación son las funciones más potentes del sistema de archivos ZFS.

Instantáneas de ZFS:descripción general

La instantánea es una de las características más poderosas de ZFS, una instantánea proporciona una copia de solo lectura en un momento dado de un sistema de archivos o volumen que no consume espacio adicional en el grupo de ZFS. La instantánea usa solo espacio cuando se cambian las referencias a bloques. Las instantáneas preservan el espacio en disco al registrar solo las diferencias entre el conjunto de datos actual y una versión anterior.

Un ejemplo típico de uso de una instantánea es tener una forma rápida de realizar una copia de seguridad del estado actual del sistema de archivos cuando se realiza una acción riesgosa, como una instalación de software o una actualización del sistema.

Crear y destruir una instantánea ZFS

No se puede acceder directamente a las instantáneas de los volúmenes, pero se pueden clonar, respaldar y revertir. Crear y destruir una instantánea ZFS es muy fácil, podemos usar los comandos zfs snapshot y zfs destroy para eso.

Cree un grupo llamado grupo de datos.

# zpool create datapool mirror /dev/sdb /dev/sdc 
# zpool list
NOMBRE       TAMAÑO  ASIGNACIÓN   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
datapool  1.98G    65K  1.98G         -     0% 0%  1.00x  EN LÍNEA  -

Ahora, tenemos un grupo llamado grupo de datos, luego tenemos que crear un sistema de archivos ZFS para simular la función de instantánea.

# zfs create datapool/docs -o mountpoint=/docs
# zfs list -r datapool
NOMBRE            USED  AVAIL  REFER  MOUNTPOINT
datapool       93.5K  1.92G    19K  /datapool
datapool/docs    19K  1.92G    19K  /docs

Para crear una instantánea del sistema de archivos, podemos usar el comando de instantánea zfs especificando el grupo y el nombre de la instantánea. Podemos usar la opción -r si queremos crear una instantánea de forma recursiva. El nombre de la instantánea debe cumplir los siguientes requisitos de denominación:

[correo electrónico protegido][correo electrónico protegido]
# zfs snapshot datapool/[email protected]
# zfs list -t snapshot
NOMBRE                     USED  AVAIL  REFER  MOUNTPOINT
datapool/[email protected]      0      -  19.5K  -

Se crea una instantánea para datapool/docs.

Para destruir la instantánea, podemos usar el comando zfs destroy como de costumbre.

# zfs destroy datapool/[email protected]
# zfs list -t snapshot
no hay conjuntos de datos disponibles

Revertir una instantánea

Para la simulación, necesitamos crear un archivo de prueba en el directorio /docs.

# echo "versión 1"> /docs/data.txt
# cat /docs/data.txt
versión 1
# zfs snapshot datapool/[email protected]
# zfs list -t snapshot
NOMBRE                     USED  AVAIL  REFER  MOUNTPOINT
datapool/[email protected]     9K      -  19.5K  -

Ahora cambiamos el contenido de /docs/data.txt

# echo "versión 2"> /docs/data.txt
# cat /docs/data.txt
versión 2

Podemos revertir completamente a una instantánea anterior que nos dará la copia de un momento en el momento en que se tomó la instantánea.

# zfs list -t snapshot
NOMBRE                     USED  AVAIL  REFER  MOUNTPOINT
grupo de datos/[email protected]  9.50K      -  19.5K  -
# zfs rollback datapool/[email protected]
# cat /docs/data.txt
versión 1

Como podemos ver, el contenido de data.txt vuelve al contenido anterior.

Si queremos cambiar el nombre de la instantánea, podemos usar el comando de cambio de nombre zfs.

- 19.5K  -

Nota:un conjunto de datos no se puede destruir si existen instantáneas de este conjunto de datos, pero podemos usar la opción -r para anular eso.

# zfs destroy datapool/docs
no puede destruir 'datapool/docs':el sistema de archivos tiene hijos
use '-r' para destruir los siguientes conjuntos de datos:
datapool/[email protected]
# zfs destroy -r datapool/docs
# zfs list -t snapshot
no hay conjuntos de datos disponibles

Descripción general de los clones de ZFS

Un clon es un volumen de escritura o un sistema de archivos cuyo contenido inicial es el mismo que el conjunto de datos a partir del cual se creó.

Crear y destruir un clon de ZFS

Los clones solo se pueden crear a partir de una instantánea y una instantánea no se puede eliminar hasta que elimine el clon que se basa en esta instantánea. Para crear un clon, use el comando zfs clone.

# zfs create datapool/docs -o mountpoint=/docs
# zfs list -r datapool
NOMBRE            USED  AVAIL  REFER  MOUNTPOINT
datapool       93.5K  1.92G    19K  /datapool
datapool/docs    19K  1.92G    19K  /docs
# mkdir /docs/carpeta{1..5}
# ls /docs/
carpeta1  carpeta2  carpeta3  carpeta4  carpeta5
# zfs snapshot datapool/[email protected]
# zfs list -t snapshot
NOMBRE                  USED  AVAIL  REFER  MOUNTPOINT
datapool/[email protected]      0      -    19K  -

Ahora creamos un clon del grupo de datos de instantáneas/[email protected]

# zfs clone datapool/[email protected] datapool/pict
# zfs list
NOMBRE            USED  DISPONIBLE REFERIR MOUNTPOINT
datapool        166K  1.92G    19K /datapool
datapool/docs    19K 1.92G    19K  /docs
grupo de datos/imagen     1K  1.92G    19K  /grupo de datos/imagen

El proceso de clonación ha finalizado, el grupo de datos de la instantánea/[email protected] se ha clonado en /datapool/pict. Cuando verificamos el contenido del directorio /datapool/pict, el contenido debe ser el mismo que /datapool/docs.

# ls /datapool/pict
carpeta1  carpeta2  carpeta3  carpeta4  carpeta5

Después de clonar una instantánea, la instantánea no se puede eliminar hasta que elimine el conjunto de datos.

# zfs destroy datapool/[email protected]
no puede destruir 'datapool/[email protected]':la instantánea tiene clones dependientes
use '-R' para destruir los siguientes conjuntos de datos:
conjunto de datos/imagen
# zfs destruye datapool/pict

Finalmente podemos destruir la instantánea.

# zfs destroy datapool/[email protected]
# zfs list -t snapshot
no hay conjuntos de datos disponibles

Descripción general de la replicación ZFS

La base para esta replicación de ZFS es una instantánea, podemos crear una instantánea en cualquier momento y podemos crear tantas instantáneas como queramos. Al crear, transferir y restaurar instantáneas continuamente, puede proporcionar sincronización entre una o más máquinas. ZFS proporciona una función de serialización integrada que puede enviar una representación de flujo de los datos a la salida estándar.

Configurar replicación ZFS

En esta sección, quiero mostrarle cómo replicar un conjunto de datos de un grupo de datos a un grupo de respaldo, pero es posible no solo almacenar los datos en otro grupo conectado al sistema local, sino también enviarlos a través de una red a otro sistema. Los comandos utilizados para replicar datos son zfs send y zfs receive.

Cree otro grupo llamado grupo de respaldo.

# zpool create backuppool mirror sde sdf
# zpool list
NOMBRE         SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
backuppool  1.98G    50K  1.98G         -     0 %       0     0    EN LÍNEA
grupo de datos    1,98 G   568 K  1,98 G         -     0 %     0 %  1,00x  EN LÍNEA  -

Compruebe el estado de la piscina:

# zpool status
  pool:datapool
 state:ONLINE
  escaneo:ninguno solicitado
config:

        NAME        STATE     READ WRITE CKSUM
DataPool en línea 0 0 0
Mirror-0 en línea 0 0 0
SDB Online 0 0 0
SDC Online 0 0 0 0

Errores:No hay errores de datos conocidos

pool:backuppool
 estado:ONLINE
  escaneo:ninguno solicitado
config:

        NOMBRE        ESTADO     READ WRITE CKSUM
        backuppool    ONLINE       0     0     0
mirror-0  ONLINE       0     0     0
            sde     ONLINE       0     0     0
            sdf     ONLINE       0     0     0     0     0

Errores de datos:No hay errores de datos conocidos:No hay errores de datos conocidos:

Cree un conjunto de datos que replicaremos.

# zfs snapshot datapool/[email protected]
# zfs list -t snapshot
NOMBRE                  USED  AVAIL  REFER  MOUNTPOINT
datapool/[email protected]      0      -    19K  -
# ls /docs/
carpeta1  carpeta2  carpeta3  carpeta4  carpeta5

Es hora de hacer la replicación.

# grupo de datos de envío de zfs/[email protected] | zfs recibir backuppool/backup
# zfs list
NOMBRE                UTILIZADO  DISPONIBLE  REFERIR  MOUNTPOINT
backuppool           83K  1.92G    19K  /backuppool
backuppool/backup    19K  1.92G   backup /
grupo de datos            527K  1,92G    19K  /grupo de datos
grupo de datos/docs        19K  1,92G    19K  /docs
# ls /backuppool/backup
carpeta1  carpeta2  carpeta3  carpeta4  carpeta5

El grupo de datos del conjunto de datos/[email protected] se ha replicado con éxito en el grupo de respaldo/copia de seguridad.

Para replicar un conjunto de datos en otra máquina, podemos usar el siguiente comando:

# grupo de datos de envío de zfs/[email protected] | ssh otro servidor zfs recv backuppool/backup

Listo.

Conclusión

La instantánea, la clonación y la replicación son las funciones más potentes de ZFS. Las instantáneas se usan para crear copias puntuales de sistemas de archivos o volúmenes, la clonación se usa para crear un conjunto de datos duplicado y la replicación se usa para replicar un conjunto de datos de un grupo de datos a otro grupo de datos en la misma máquina o para replicar grupos de datos entre diferentes máquinas.


Linux
  1. Cómo instalar y usar telnet en Kali Linux

  2. Cómo utilizar TimeShift para realizar copias de seguridad y restaurar Ubuntu Linux

  3. ¿Qué es un comando Chown en Linux y cómo usarlo?

  4. Cómo instalar y usar Flatpak en Linux

  5. Cómo instalar y usar Traceroute en Linux

Cómo crear y restaurar instantáneas de máquinas virtuales en VirtualBox

Cómo utilizar Timeshift para realizar copias de seguridad y restaurar Linux

Cómo instalar y usar el navegador Tor en Linux

Cómo instalar y usar phpMyAdmin en Linux

Cómo instalar y usar el comando fd en Linux

Cómo instalar y usar Nu Shell en Linux