Omitir V�nculos de navegaci�n | |
Salir de la Vista de impresi�n | |
![]() |
Guía de administración de Oracle Solaris ZFS |
1. Sistema de archivos ZFS de Oracle Solaris (introducción)
2. Procedimientos iniciales con Oracle Solaris ZFS
3. Oracle Solaris ZFS y sistemas de archivos tradicionales
4. Administración de agrupaciones de almacenamiento de Oracle Solaris ZFS
5. Instalación e inicio de un sistema de archivos raíz ZFS Oracle Solaris
6. Administrar sistemas de archivos ZFS de Oracle Solaris
7. 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
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
Recepción de una instantánea ZFS
Aplicación de valores de propiedad diferentes a un flujo de instantáneas de ZFS
8. Uso de listas de control de acceso y atributos para proteger archivos Oracle Solaris ZFS
9. Administración delegada de ZFS Oracle Solaris
10. Temas avanzados de Oracle Solaris ZFS
11. Recuperación de agrupaciones y solución de problemas de Oracle Solaris 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.
Cómo guardar datos de ZFS con otros productos de copia de seguridad
Aplicación de valores de propiedad diferentes a un flujo de instantáneas de ZFS
Para guardar datos ZFS existen las soluciones de copia de seguridad siguientes:
Productos empresariales de copia de seguridad: si necesita las siguientes funciones, considere la opción de una solución empresarial de copia de seguridad:
Restauración por archivo
Verificación de soportes de copia de seguridad
Administración de soportes
Instantáneas de sistemas de archivos y restauración de instantáneas: utilice los comandos zfs snapshot y zfs rollback para crear con facilidad una copia de un sistema de archivos y restablecer su versión anterior si es preciso. Esta solución es válida, por ejemplo, para restaurar uno o varios archivos de una versión anterior.
Para obtener más información sobre cómo crear y restaurar una versión de instantánea, consulte Información general de instantáneas de ZFS.
Guardar instantáneas: utilice los comandos zfs send y zfs receive para enviar y recibir una instantánea ZFS. Puede guardar cambios incrementales entre instantáneas, pero no puede restaurar archivos de manera individual. Es preciso restaurar toda la instantánea del sistema de archivos. Estos comandos no constituyen una solución de copia de seguridad completa para guardar los datos de ZFS.
Repetición remota: utilice los comandos zfs send y zfs receive para copiar un sistema de archivos de un sistema a otro. Este proceso difiere del producto para la administración de volúmenes tradicional que quizá refleje dispositivos a través de una WAN. No se necesita ninguna clase de configuración ni hardware especiales. La ventaja de repetir un sistema de archivos ZFS es poder volver a crear un sistema de archivos de una agrupación de almacenamiento en otro sistema y especificar distintos niveles de configuración de ese nuevo conjunto, por ejemplo RAID-Z, pero con los mismos datos del sistema de archivos.
Utilidades de archivado: guarde datos de ZFS con utilidades de archivado como tar, cpio y pax, o productos de copia de seguridad de otros proveedores. Actualmente, tanto tar como cpio traducen correctamente las listas ACL, pero no ocurre lo mismo con pax.
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 de Solaris 10 o las preguntas frecuentes sobre ZFS en:
http://hub.opensolaris.org/bin/view/Community+Group+zfs/faq/#backupsoftware
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:
host1# zfs send tank/dana@snap1 | ssh host2 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:
host1# zfs send -i tank/dana@snap1 tank/dana@snap2 | ssh host2 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.
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:
host1# zfs send -i snap1 tank/dana@snap2 > ssh host2 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
Al recibir una instantánea de sistema de archivos, debe tener en cuenta los aspectos siguientes:
Se recibe tanto la instantánea como el sistema de archivos.
Se desmontan el sistema de archivos y todos los sistemas de archivos descendientes.
Mientras se efectúa la recepción, no es posible acceder a los sistemas de archivos.
El sistema de archivos original que se va a recibir no debe existir mientras se transfiere.
Si el nombre del sistema de archivos ya existe, puede utilizar el comando zfs rename para cambiar el nombre del sistema de archivos.
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:
host2# 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:
host1# zfs send -i tank/dana@snap2 tank/dana@snap3 | ssh host2 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:
host1# zfs send -i tank/dana@snap4 tank/dana@snap5 | ssh host2 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:
Si la instantánea más reciente no coincide con el origen incremental, no se completan la restauración ni la recepción, y se genera un mensaje de error.
Si inadvertidamente se indica un nombre de sistema de archivos que no coincide con el origen incremental especificado en el comando zfs receive, no se completan la restauración ni la recepción, y se genera el siguiente mensaje de error:
cannot send 'pool/fs@name': not an earlier snapshot from the same fs
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 deshabilitar 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 deshabilitada. 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 habilitada.
# 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á habilitada 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 deshabilitar 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 - -
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:
Utilice la opción zfs send -I para enviar todos los flujos incrementales de una instantánea a una instantánea acumulativa. Utilice también esta opción para enviar un flujo incremental de la instantánea original para crear un clon. Para que se acepte el flujo incremental, la instantánea original ya debe estar en la parte receptora.
Utilice la opción zfs send -R para enviar un flujo de repetición de todos los sistemas de archivos descendientes. Cuando se recibe el flujo de repetición, se conservan todas las propiedades, las instantáneas, los sistemas de archivos descendientes y los duplicados.
Utilice ambas opciones para enviar un flujo de repetición incremental.
Se mantienen los cambios de propiedades y también las operaciones rename y destroy de instantáneas y sistemas de archivos.
Si no se especifica zfs recv -F al recibir el flujo de repetición, se omiten las operaciones destroy de conjuntos de datos. La sintaxis zfs recv -F en este caso también mantiene su propiedad de aplicar rollback (inversión) si es preciso.
Al igual que en otros casos (que no sean zfs send -R) - i o -I, si se utiliza -I, se envían todas las instantáneas entre snapA y snapD. Si se utiliza -i, sólo se envía snapD (para todos los descendientes).
Para recibir cualquiera de estos nuevos tipos de flujos zfs send, el sistema receptor debe ejecutar una versión del software capaz de enviarlos. La versión del flujo se incrementa.
Sin embargo, puede acceder a los flujos desde versiones de agrupaciones más antiguas utilizando una versión del software más reciente. Por ejemplo, puede enviar y recibir flujos creados con las opciones más recientes a o desde una agrupación de la versión 3. Sin embargo, debe ejecutar software reciente para recibir un flujo enviado con las opciones más recientes.
Ejemplo 7-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 repetir el conjunto de datos users y sus descendientes y para enviar a otra agrupación el flujo repetido, 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 -
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.