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 replicación de todos los sistemas de archivos descendentes. Cuando se recibe el flujo de repetición, se conservan todas las propiedades, las instantáneas, los sistemas de archivos descendientes y los duplicados.
Cuando se utiliza la opción zfs send –r sin la opción – c, y cuando se utiliza la opción zfs send –R, los paquetes de flujos omiten el origin de los clones en algunas circunstancias. Para obtener más información, consulte Identificación de flujos de instantáneas de ZFS.
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, solo 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.
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 -