Las instantáneas se crean con el comando zfs snapshot o zfs snap que toma como único argumento el nombre de la instantánea que se va a crear. El nombre de las instantáneas se asigna de la forma siguiente:
filesystem@snapname volume@snapname
El nombre de la instantánea debe cumplir los requisitos de denominación establecidos en Requisitos de asignación de nombres de componentes de ZFS.
En el siguiente ejemplo, se crea una instantánea de tank/home/cindy que se denomina friday.
# zfs snapshot tank/home/cindy@friday
Puede crear instantáneas de todos los sistemas de archivos descendientes con la opción –r. Por ejemplo:
# zfs snapshot -r tank/home@snap1 # zfs list -t snapshot -r tank/home NAME USED AVAIL REFER MOUNTPOINT tank/home@snap1 0 - 2.11G - tank/home/cindy@snap1 0 - 115M - tank/home/lori@snap1 0 - 2.00G - tank/home/mark@snap1 0 - 2.00G - tank/home/tim@snap1 0 - 57.3M -
Las instantáneas no tienen propiedades modificables. Las propiedades de conjuntos de datos no se pueden aplicar a una instantánea. Por ejemplo:
# zfs set compression=on tank/home/cindy@friday cannot set property for 'tank/home/cindy@friday': this property can not be modified for snapshots
Para destruir instantáneas se utiliza el comando zfs destroy. Por ejemplo:
# zfs destroy tank/home/cindy@friday
Los conjuntos de datos no se pueden destruir si tienen una instantánea. Por ejemplo:
# zfs destroy tank/home/cindy cannot destroy 'tank/home/cindy': filesystem has children use '-r' to destroy the following datasets: tank/home/cindy@tuesday tank/home/cindy@wednesday tank/home/cindy@thursday
Además, si se han creado clones a partir de una instantánea, deben destruirse antes de poder destruir la instantánea.
Para obtener más información sobre el subcomando destroy, consulte Destrucción de un sistema de archivos ZFS.
Políticas de retención de datos o de instantáneas automáticas diferentes pueden significar que las instantáneas más antiguas se destruyen de manera inadvertida. Si una instantánea eliminada es parte de una operación de envío y recepción de zfs en curso, la operación puede fallar. Para evitar este escenario, considere colocar una retención en una instantánea.
La función de conservación impide que se destruya una instantánea. Además, esta función permite suprimir una instantánea con clones durante la eliminación del último clon con el comando zfs destroy –d. Cada instantánea tiene asociado un número de referencia de usuario, que se inicializa a cero. Este recuento aumenta una unidad cuando se aplica una retención a una instantánea y disminuye una unidad cuando se libera una retención.
En la versión anterior de Oracle Solaris, solo era posible destruir una instantánea mediante el comando zfs destroy si ésta no tenía clones. En esta versión de Oracle Solaris, la instantánea también debe tener un recuento de referencia de usuario cero.
Se puede aplicar la función de conservación a una instantánea o a un conjunto de ellas. Por ejemplo, la siguiente sintaxis coloca una etiqueta de retención, keep, en tank/home/cindy/snap@1:
# zfs hold keep tank/home/cindy@snap1
Puede utilizar la opción –r para conservar las instantáneas de todos los sistemas de archivos descendientes. Por ejemplo:
# zfs snapshot -r tank/home@now # zfs hold -r keep tank/home@now
Esta sintaxis agrega una sola referencia, keep, a la instantánea o al conjunto de instantáneas. Cada instantánea tiene su propio espacio de nombre de etiqueta y las etiquetas de conservación deben ser exclusivas dentro de ese espacio. Si se ha aplicado la función de conservación a una instantánea, fallará cualquier intento de destruirla mediante el comando zfs destroy. Por ejemplo:
# zfs destroy tank/home/cindy@snap1 cannot destroy 'tank/home/cindy@snap1': dataset is busy
Para destruir una instantánea retenida, use la opción –d. Por ejemplo:
# zfs destroy -d tank/home/cindy@snap1
Utilice el comando zfs holds para ver una lista de instantáneas conservadas. Por ejemplo:
# zfs holds tank/home@now NAME TAG TIMESTAMP tank/home@now keep Fri Aug 3 15:15:53 2012
# zfs holds -r tank/home@now NAME TAG TIMESTAMP tank/home/cindy@now keep Fri Aug 3 15:15:53 2012 tank/home/lori@now keep Fri Aug 3 15:15:53 2012 tank/home/mark@now keep Fri Aug 3 15:15:53 2012 tank/home/tim@now keep Fri Aug 3 15:15:53 2012 tank/home@now keep Fri Aug 3 15:15:53 2012
Puede utilizar el comando zfs release para eliminar la conservación de una instantánea o de un conjunto de instantáneas. Por ejemplo:
# zfs release -r keep tank/home@now
Si la instantánea se libera, se podrá destruir mediante el comando zfs destroy. Por ejemplo:
# zfs destroy -r tank/home@now
Hay dos nuevas propiedades que identifican la información de retención de instantánea.
La propiedad defer_destroy está activada si la instantánea se ha marcado para su destrucción posteriormente, mediante el comando zfs destroy –d. De lo contrario, la propiedad es off.
La propiedad userrefs indica el número de retenciones de esta instantánea, también denominado recuento de referencia de usuario.
Se puede cambiar el nombre de las instantáneas, pero debe hacerse en la agrupación y el conjunto de datos en que se crearon. Por ejemplo:
# zfs rename tank/home/cindy@snap1 tank/home/cindy@today
Además, la siguiente sintaxis de acceso directo es equivalente a la sintaxis anterior:
# zfs rename tank/home/cindy@snap1 today
La siguiente operación de cambio de nombre de instantánea no es posible porque los nombres del sistema de archivos y la agrupación de destino no coinciden con los del sistema de archivos y la agrupación a partir de los cuales se creó la instantánea:
# zfs rename tank/home/cindy@today pool/home/cindy@saturday cannot rename to 'pool/home/cindy@today': snapshots must be part of same dataset
El comando zfs rename –r permite cambiar el nombre de instantáneas de forma recursiva. Por ejemplo:
# zfs list -t snapshot -r users/home NAME USED AVAIL REFER MOUNTPOINT users/home@now 23.5K - 35.5K - users/home@yesterday 0 - 38K - users/home/lori@yesterday 0 - 2.00G - users/home/mark@yesterday 0 - 1.00G - users/home/neil@yesterday 0 - 2.00G - # zfs rename -r users/home@yesterday @2daysago # zfs list -t snapshot -r users/home NAME USED AVAIL REFER MOUNTPOINT users/home@now 23.5K - 35.5K - users/home@2daysago 0 - 38K - users/home/lori@2daysago 0 - 2.00G - users/home/mark@2daysago 0 - 1.00G - users/home/neil@2daysago 0 - 2.00G -