JavaScript is required to for searching.
Omitir Vínculos de navegación
Salir de la Vista de impresión
Administración de Oracle Solaris 11.1: sistemas de archivos ZFS     Oracle Solaris 11.1 Information Library (Español)
search filter icon
search icon

Información del documento

Prefacio

1.  Sistema de archivos ZFS de Oracle Solaris (introducción)

2.  Procedimientos iniciales con Oracle Solaris ZFS

3.  Administración de agrupaciones de almacenamiento de Oracle Solaris ZFS

4.  Gestión de componentes de la agrupación raíz ZFS

5.  Administración de sistemas de archivos ZFS de Oracle Solaris

6.  Uso de clones e instantáneas de Oracle Solaris ZFS

Información general de instantáneas de ZFS

Creación y destrucción de instantáneas de ZFS

Conservación de instantáneas de ZFS

Cambio de nombre de instantáneas de ZFS

Visualización y acceso a instantáneas de ZFS

Cálculo del espacio para instantáneas de ZFS

Restablecimiento de una instantánea ZFS

Identificación de diferencias entre instantáneas de ZFS (zfs diff)

Información general sobre clones de ZFS

Creación de un clon de ZFS

Destrucción de un clon de ZFS

Sustitución de un sistema de archivos ZFS por un clon de ZFS

Envío y recepción de datos ZFS

Cómo guardar datos de ZFS con otros productos de copia de seguridad

Identificación de flujos de instantáneas de ZFS

Envío de una instantánea ZFS

Recepción de una instantánea ZFS

Aplicación de valores de propiedad diferentes a un flujo de instantáneas de ZFS

Envío y recepción de flujos de instantáneas ZFS complejos

Duplicación remota de datos de ZFS

7.  Uso de listas de control de acceso y atributos para proteger archivos Oracle Solaris ZFS

8.  Administración delegada de ZFS Oracle Solaris

9.  Temas avanzados de Oracle Solaris ZFS

10.  Recuperación de agrupaciones y solución de problemas de Oracle Solaris ZFS

11.  Archivado de instantáneas y recuperación de agrupaciones raíz

12.  Prácticas de ZFS recomendadas por Oracle Solaris

A.  Descripciones de versiones de Oracle Solaris ZFS

Índice

Envío y recepción de datos ZFS

El comando zfs send crea una representación de flujo de datos de una instantánea que se graba en una salida estándar. De forma predeterminada, se crea un flujo de datos completo. Puede redirigir la salida a un archivo u otro sistema. El comando zfs receive crea una instantánea cuyo contenido se especifica en el flujo de datos que figura en la entrada estándar. Si se recibe un flujo de datos completo, también se crea un sistema de archivos. Con estos comandos puede enviar y recibir datos de instantáneas ZFS y sistemas de archivos. Consulte los ejemplos de la sección siguiente.

Para guardar datos ZFS existen las soluciones de copia de seguridad siguientes:

Cómo guardar datos de ZFS con otros productos de copia de seguridad

Aparte de los comandos zfs send y zfs receive, para guardar archivos ZFS también son aptas utilidades de archivado como los comandos tar y cpio. Estas utilidades permiten guardar y restaurar atributos de archivos ZFS y ACL. Seleccione las opciones correspondientes para los comandos tar y cpio.

Para obtener información actualizada sobre problemas con ZFS y productos de copia de seguridad de otros proveedores, consulte las Notas de la versión Oracle Solaris 11.

Identificación de flujos de instantáneas de ZFS

Una instantánea de un volumen o sistema de archivos ZFS se convierte en un flujo de instantáneas mediante el comando zfs send. Luego, puede utilizar el flujo de instantáneas para volver a crear un volumen o sistema de archivos ZFS mediante el comando zfs receive.

Según las opciones de zfs send que se han utilizado para crear el flujo de instantáneas, se generan distintos tipos de formatos de flujo.

Un paquete de flujos es un tipo de flujo que contiene uno o varios flujos completos o incrementales. Existen tres tipos de paquetes de flujos:

Envío de una instantánea ZFS

Puede utilizar el comando zfs send para enviar una copia de un flujo de instantáneas y recibirlo en otra agrupación del mismo sistema o en otra agrupación de un sistema diferente que se utiliza para almacenar datos de copia de seguridad. Por ejemplo, para enviar el flujo de instantáneas de otra agrupación al mismo sistema, utilice una sintaxis similar a la siguiente:

# zfs send tank/dana@snap1 | zfs recv spool/ds01

Puede utilizar zfs recv como alias para el comando zfs receive.

Si envía el flujo de instantáneas a otro sistema, utilice el comando ssh para enviar la salida zfs send. Por ejemplo:

sys1# zfs send tank/dana@snap1 | ssh sys2 zfs recv newtank/dana

Si se envía un flujo de datos completo, no debe existir el sistema de archivos de destino.

Los datos incrementales se pueden guardar con la opción zfs send - i. Por ejemplo:

sys1# zfs send -i tank/dana@snap1 tank/dana@snap2 | ssh sys2 zfs recv newtank/dana

El primer argumento (snap1) es la instantánea anterior, y el segundo (snap2), la instantánea posterior. En este caso, para que la recepción incremental sea posible, debe existir el sistema de archivos newtank/dana.


Nota - Si se accede a la información de archivos en el sistema de archivos original recibido, es posible que la operación de recepción de instantáneas incrementales falle y se muestre un mensaje similar al siguiente:

cannot receive incremental stream of tank/dana@snap2 into newtank/dana: 
most recent snapshot of tank/dana@snap2 does not match incremental source

Considere la posibilidad de establecer la propiedad atime en off si necesita acceder a la información de archivos en el sistema de archivos original recibido o si también necesita recibir instantáneas incrementales en el sistema de archivos recibido.


El origen de instantánea1 incremental se puede especificar como último componente del nombre de la instantánea. Este método abreviado significa que sólo se debe indicar el nombre después del signo de arroba @ para instantánea1, que se supone que procede del mismo sistema de archivos que instantánea2. Por ejemplo:

sys1# zfs send -i snap1 tank/dana@snap2 | ssh sys2 zfs recv newtank/dana

Esta sintaxis de acceso directo es equivalente a la sintaxis incremental en el ejemplo anterior.

Si se intenta generar un flujo de datos incremental a partir de una instantánea1 de otro sistema de archivos, aparece en pantalla el mensaje siguiente:

cannot send 'pool/fs@name': not an earlier snapshot from the same fs

Si tiene que almacenar muchas copias, puede ser conveniente comprimir una representación de flujos de datos de instantáneas de ZFS mediante el comando gzip. Por ejemplo:

# zfs send pool/fs@snap | gzip > backupfile.gz

Recepción de una instantánea ZFS

Al recibir una instantánea de sistema de archivos, debe tener en cuenta los aspectos siguientes:

Por ejemplo:

# zfs send tank/gozer@0830 > /bkups/gozer.083006
# zfs receive tank/gozer2@today < /bkups/gozer.083006
# zfs rename tank/gozer tank/gozer.old
# zfs rename tank/gozer2 tank/gozer

Si realiza un cambio en el sistema de archivos de destino y quiere efectuar otro envío incremental de una instantánea, antes debe restaurar el sistema de archivos receptor.

Considere el siguiente ejemplo. En primer lugar, efectúe un cambio como éste en el sistema de archivos:

sys2# rm newtank/dana/file.1

A continuación, realice un envío incremental de tank/dana@snap3. Pero antes debe restaurar la versión previa del sistema de archivos receptor para recibir la nueva instantánea incremental. O puede eliminar el paso de restauración usando la opción -F. Por ejemplo:

sys1# zfs send -i tank/dana@snap2 tank/dana@snap3 | ssh sys2 zfs recv -F newtank/dana

Al recibir una instantánea incremental, ya debe existir el sistema de archivos de destino.

Si efectúa cambios en el sistema de archivos y no restaura el sistema de archivos receptor para recibir la nueva instantánea incremental, o no utiliza la opción -F, verá una mensaje similar a éste:

sys1# zfs send -i tank/dana@snap4 tank/dana@snap5 | ssh sys2 zfs recv newtank/dana
cannot receive: destination has been modified since most recent snapshot

Para que la opción -F funcione debidamente, primero hay que efectuar estas comprobaciones:

Aplicación de valores de propiedad diferentes a un flujo de instantáneas de ZFS

Puede enviar un flujo de instantáneas de ZFS con un valor de propiedad de sistema de archivos determinado, pero puede especificar un valor de propiedad local diferente cuando recibe el flujo de instantáneas. También puede especificar que se utilice el valor de propiedad original al recibir el flujo de instantáneas para volver a crear el sistema de archivos original. Además, puede desactivar una propiedad del sistema de archivos al recibir el flujo de instantáneas.

En algunos casos, es posible que las propiedades del sistema de archivos de un flujo de envío no se apliquen al sistema de archivos receptor o que las propiedades del sistema de archivos local, como el valor de propiedad mountpoint, interfieran con una restauración.

Por ejemplo, el sistema de archivos tank/data tiene la propiedad compression desactivada. Una instantánea del sistema de archivos tank/data se envía con propiedades (opción -p) a una agrupación de seguridad y es recibida con la propiedad compression activada.

# zfs get compression tank/data
NAME       PROPERTY     VALUE     SOURCE
tank/data  compression  off       default
# zfs snapshot tank/data@snap1
# zfs send -p tank/data@snap1 | zfs recv -o compression=on -d bpool
# zfs get -o all compression bpool/data
NAME        PROPERTY     VALUE     RECEIVED  SOURCE
bpool/data  compression  on        off       local

En el ejemplo, la propiedad compression está activada cuando se recibe la instantánea en bpool. Por lo tanto, para bpool/data, el valor compression está activado.

Si este flujo de instantáneas se envía a una nueva agrupación, restorepool, para fines de recuperación, es posible que desee mantener todas las propiedades originales de las instantáneas. En este caso, debe utilizar el comando zfs send -b para restaurar las propiedades originales de las instantáneas. Por ejemplo:

# zfs send -b bpool/data@snap1 | zfs recv -d restorepool
# zfs get -o all compression restorepool/data
NAME              PROPERTY     VALUE     RECEIVED  SOURCE
restorepool/data  compression  off       off       received 

En el ejemplo, el valor de compresión es off, que representa el valor de compresión de la instantánea del sistema de archivos original tank/data.

Si tiene un valor de propiedad de sistema de archivos local en un flujo de instantáneas y desea desactivar la propiedad cuando lo reciba, utilice el comando zfs receive -x. Por ejemplo, el siguiente comando envía un flujo de instantáneas recursivas de los sistemas de archivos de directorios principales con todas las propiedades del sistema de archivos reservadas para una agrupación de seguridad, pero sin valores de propiedad de cuota:

# zfs send -R tank/home@snap1 | zfs recv -x quota bpool/home
# zfs get -r quota bpool/home
NAME                   PROPERTY  VALUE  SOURCE
bpool/home             quota     none   local
bpool/home@snap1       quota     -      -
bpool/home/lori        quota     none   default
bpool/home/lori@snap1  quota     -      -
bpool/home/mark        quota     none   default
bpool/home/mark@snap1  quota     -      -

Si la instantánea recursiva no se recibe con la opción -x, la propiedad de cuota se establecerá en los sistemas de archivos recibidos.

# zfs send -R tank/home@snap1 | zfs recv bpool/home
# zfs get -r quota bpool/home
NAME                   PROPERTY  VALUE  SOURCE
bpool/home             quota     none   received
bpool/home@snap1       quota     -      -
bpool/home/lori        quota     10G    received
bpool/home/lori@snap1  quota     -      -
bpool/home/mark        quota     10G    received
bpool/home/mark@snap1  quota     -      -

Envío y recepción de flujos de instantáneas ZFS complejos

En esta sección se describe cómo utilizar las opciones zfs send -I y -R para enviar y recibir flujos de instantáneas más complejos.

Al enviar y recibir flujos de instantáneas ZFS complejos, tenga en cuenta los puntos siguientes:

Ejemplo 6-1 Envío y recepción de flujos de instantáneas ZFS complejos

Un grupo de instantáneas incrementales se puede combinar en una instantánea utilizando la opción zfs send -I. Por ejemplo:

# zfs send -I pool/fs@snapA pool/fs@snapD > /snaps/fs@all-I

Luego deberá eliminar snapB, snapC y snapD.

# zfs destroy pool/fs@snapB
# zfs destroy pool/fs@snapC
# zfs destroy pool/fs@snapD

Para recibir la instantánea combinada, use el siguiente comando.

# zfs receive -d -F pool/fs < /snaps/fs@all-I
# zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
pool                      428K  16.5G    20K  /pool
pool/fs                    71K  16.5G    21K  /pool/fs
pool/fs@snapA              16K      -  18.5K  -
pool/fs@snapB              17K      -    20K  -
pool/fs@snapC              17K      -  20.5K  -
pool/fs@snapD                0      -    21K  -

También puede utilizar el comando zfs send -I para combinar una instantánea y una instantánea clónica para crear un conjunto de datos combinado. Por ejemplo:

# zfs create pool/fs
# zfs snapshot pool/fs@snap1
# zfs clone pool/fs@snap1 pool/clone
# zfs snapshot pool/clone@snapA
# zfs send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I
# zfs destroy pool/clone@snapA
# zfs destroy pool/clone
# zfs receive -F pool/clone < /snaps/fsclonesnap-I

Puede utilizar el comando zfs send -R para repetir un sistema de archivos ZFS y todos los sistemas de archivos descendientes, hasta la instantánea en cuestión. Cuando se recibe este flujo, se conservan todas las propiedades, las instantáneas, los sistemas de archivos descendientes y los duplicados.

En el ejemplo siguiente, se crean instantáneas de los sistemas de archivos de usuario. Se crea un flujo de repetición de todas las instantáneas de usuario. A continuación, se destruyen y se recuperan las instantáneas y los sistemas de archivos originales.

# zfs snapshot -r users@today
# zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
users               187K  33.2G    22K  /users
users@today            0      -    22K  -
users/user1          18K  33.2G    18K  /users/user1
users/user1@today      0      -    18K  -
users/user2          18K  33.2G    18K  /users/user2
users/user2@today      0      -    18K  -
users/user3          18K  33.2G    18K  /users/user3
users/user3@today      0      -    18K  -
# zfs send -R users@today > /snaps/users-R
# zfs destroy -r users
# zfs receive -F -d users < /snaps/users-R
# zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
users               196K  33.2G    22K  /users
users@today            0      -    22K  -
users/user1          18K  33.2G    18K  /users/user1
users/user1@today      0      -    18K  -
users/user2          18K  33.2G    18K  /users/user2
users/user2@today      0      -    18K  -
users/user3          18K  33.2G    18K  /users/user3
users/user3@today      0      -    18K  -

En el ejemplo siguiente, el comando zfs send -R se ha usado para replicar el sistema de archivos users y sus descendientes, y para enviar el flujo replicado a otra agrupación, users2.

# zfs create users2 mirror c0t1d0 c1t1d0
# zfs receive -F -d users2 < /snaps/users-R
# zfs list
NAME                 USED  AVAIL  REFER  MOUNTPOINT
users                224K  33.2G    22K  /users
users@today             0      -    22K  -
users/user1           33K  33.2G    18K  /users/user1
users/user1@today     15K      -    18K  -
users/user2           18K  33.2G    18K  /users/user2
users/user2@today       0      -    18K  -
users/user3           18K  33.2G    18K  /users/user3
users/user3@today       0      -    18K  -
users2               188K  16.5G    22K  /users2
users2@today            0      -    22K  -
users2/user1          18K  16.5G    18K  /users2/user1
users2/user1@today      0      -    18K  -
users2/user2          18K  16.5G    18K  /users2/user2
users2/user2@today      0      -    18K  -
users2/user3          18K  16.5G    18K  /users2/user3
users2/user3@today      0      -    18K  -

Duplicación remota de datos de ZFS

Los comandos zfs send y zfs recv se utilizan para copiar de forma remota una representación de flujos de datos de instantánea de un sistema a otro. Por ejemplo:

# zfs send tank/cindy@today | ssh newsys zfs recv sandbox/restfs@today

Este comando envía los datos de instantánea tank/cindy@today y los recibe en el sistema de archivos sandbox/restfs. El comando también crea una instantánea restfs@today en el sistema newsys. En este ejemplo, se ha configurado al usuario para que utilice el comando ssh en el sistema remoto.