Omitir V�nculos de navegaci�n | |
Salir de la Vista de impresi�n | |
![]() |
Administración de Oracle Solaris: sistemas de archivos ZFS Oracle Solaris 11 Information Library (Español) |
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. Gestión de componentes de la agrupación raíz ZFS
6. Administración de 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
Identificación de flujos de instantáneas de 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
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
12. Archivado de instantáneas y recuperación de agrupaciones raíz
13. Prácticas de ZFS recomendadas por Oracle Solaris
Una instantánea es una copia de sólo lectura de un sistema de archivos o volumen. Las instantáneas se pueden crear de forma casi inmediata y al principio consumen poco espacio en el disco de la agrupación. Sin embargo, a medida que los datos dentro del conjunto de datos activo cambian, la instantánea consume espacio en el disco, ya que sigue haciendo referencia a los datos antiguos e impide que el espacio en disco se libere.
Las instantáneas de ZFS presentan las características siguientes:
Se mantienen en sucesivos reinicios del sistema.
El número máximo teórico de instantáneas es 264.
Las instantáneas no utilizan un almacén de copia de seguridad independiente. Las instantáneas consumen espacio en el disco directamente de la misma agrupación de almacenamiento que el sistema de archivos o el volumen a partir del que se crearon.
Las instantáneas recursivas se crean rápidamente como una operación atómica Las instantáneas se crean todas juntas (todas a la vez) o no se crea ninguna. La ventaja de las operaciones atómicas de instantáneas estriba en que los datos se toman siempre en un momento coherente, incluso en el caso de sistemas de archivos descendientes.
No se puede acceder directamente a las instantáneas de volúmenes, pero se pueden clonar, hacer copias de seguridad, invertir, etc. Para obtener información sobre cómo hacer copias de seguridad de una instantánea ZFS, consulte Envío y recepción de datos ZFS.
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 ejemplo siguiente, se crea una instantánea de tank/home/matt denominada friday.
# zfs snapshot tank/home/matt@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 zfs list -t snapshot -r tank/home NAME USED AVAIL REFER MOUNTPOINT tank/home@snap1 0 - 34K - tank/home/mark@snap1 0 - 2.00G - tank/home/matt@snap1 0 - 1.00G - tank/home/tom@snap1 0 - 2.00G -
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/matt@friday cannot set property for 'tank/home/matt@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/matt@friday
Los conjuntos de datos no se pueden destruir si tienen una instantánea. Por ejemplo:
# zfs destroy tank/home/matt cannot destroy 'tank/home/matt': filesystem has children use '-r' to destroy the following datasets: tank/home/matt@tuesday tank/home/matt@wednesday tank/home/matt@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.
Si se implementan diferentes directivas de instantáneas automáticas de manera que zfs receive destruye accidentalmente las instantáneas más antiguas porque ya no existen en la parte remitente, debería considerar el uso de la función de conservación de instantáneas.
La función de conservación impide que se destruya una instantánea. Además, esta función permite que una instantánea con clones se elimine en espera de la eliminación del último clon mediante 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, sólo 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 May 6 06:34:03 2011
# zfs holds -r tank/home@now NAME TAG TIMESTAMP tank/home/cindy@now keep Fri May 6 06:34:03 2011 tank/home/mark@now keep Fri May 6 06:34:03 2011 tank/home/matt@now keep Fri May 6 06:34:03 2011 tank/home/tom@now keep Fri May 6 06:34:03 2011 tank/home@now keep Fri May 6 06:34:03 2011
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 está desactivada.
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 -
De forma predeterminada, las instantáneas dejan de aparecer en la salida de zfs list. Debe utilizar el comando zfs list -t snapshot para visualizar información de la instantánea. O bien, habilite la propiedad de agrupación listsnapshots. Por ejemplo:
# zpool get listsnapshots tank NAME PROPERTY VALUE SOURCE tank listsnapshots off default # zpool set listsnapshots=on tank # zpool get listsnapshots tank NAME PROPERTY VALUE SOURCE tank listsnapshots on local
Se puede acceder a instantáneas de sistemas de archivos del directorio .zfs/snapshot en la raíz del sistema de archivos. Por ejemplo, si tank/home/matt se monta en /home/matt , se puede acceder a los datos de la instantánea tank/home/matt@thursday en el directorio /home/matt/.zfs/snapshot/thursday.
# ls /tank/home/matt/.zfs/snapshot tuesday wednesday thursday
Se puede obtener una lista de instantáneas de la forma que se indica a continuación:
# zfs list -t snapshot -r tank/home NAME USED AVAIL REFER MOUNTPOINT tank/home/cindy@today 0 - 2.00G - tank/home/mark@today 0 - 2.00G - tank/home/matt@tuesday 20K - 1.00G - tank/home/matt@wednesday 20K - 1.00G - tank/home/matt@thursday 0 - 1.00G -
Se puede obtener una lista de las instantáneas creadas para un determinado sistema de archivos de la forma siguiente:
# zfs list -r -t snapshot -o name,creation tank/home NAME CREATION tank/home/cindy@today Fri May 6 6:32 2011 tank/home/mark@today Fri May 6 6:22 2011 tank/home/matt@tuesday Tue May 3 6:27 2011 tank/home/matt@wednesday Wed May 4 6:28 2011 tank/home/matt@thursday Thu May 5 6:28 2011
Cuando se crea una instantánea, al principio comparte el espacio con el sistema de archivos y, posiblemente, con instantáneas antiguas. A medida que cambia el sistema de archivos, el espacio en el disco compartido inicialmente se convierte en exclusivo de la instantánea, cosa que se contabiliza como tal en la propiedad used. Si se eliminan instantáneas puede aumentarse la cantidad de espacio exclusivo destinado a (usado por) otras instantáneas.
Un valor de propiedad de referencia de espacio de instantánea es el mismo que el del sistema de archivos cuando se creó la propiedad.
Puede identificar información adicional sobre el consumo de valores de la propiedad used. Las nuevas propiedades del sistema de archivos de sólo lectura describen el uso de espacio en el disco de clones, sistemas de archivos y volúmenes. Por ejemplo:
$ zfs list -o space -r rpool NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD rpool 60.0G 6.92G 0 40.5K 0 6.92G rpool/ROOT 60.0G 3.89G 0 31K 0 3.89G rpool/ROOT/solaris 60.0G 3.49G 40.4M 3.16G 0 306M rpool/ROOT/solaris-1 60.0G 403M 0 310M 0 92.7M rpool/ROOT/solaris-1/var 60.0G 92.7M 0 92.7M 0 0 rpool/ROOT/solaris/var 60.0G 306M 89.9M 216M 0 0 rpool/dump 60.1G 2.00G 0 1.94G 62.7M 0 rpool/export 60.0G 96.5K 0 32K 0 64.5K rpool/export/home 60.0G 64.5K 0 32K 0 32.5K rpool/export/home/admin 60.0G 32.5K 0 32.5K 0 0 rpool/swap 60.0G 1.03G 0 1.00G 32.5M 0
Para ver una descripción de estas propiedades, consulte la Tabla 6-1.
Puede usar el comando zfs rollback para anular todos los cambios efectuados en un sistema de archivos desde que se creó una instantánea concreta. El sistema de archivos vuelve al estado en que se encontraba en el momento de realizarse la instantánea. De forma predeterminada, el comando no puede restablecer una instantánea que no sea la más reciente.
Para restablecer una instantánea anterior, hay que destruir todas las instantáneas intermedias. Puede destruir versiones anteriores de instantáneas mediante la opción -r.
Si una instantánea intermedia tiene clones, para destruirlos debe especificarse la opción -R.
Nota - El sistema de archivos que se desea restaurar se desmonta y se vuelve a montar, si actualmente está montado. Si el sistema de archivos no se puede desmontar, la restauración falla. La opción -f hace que se desmonte el sistema de archivos, si es necesario.
En el siguiente ejemplo, el sistema de archivos tank/home/matt se restaura en la instantánea tuesday:
# zfs rollback tank/home/matt@tuesday cannot rollback to 'tank/home/matt@tuesday': more recent snapshots exist use '-r' to force deletion of the following snapshots: tank/home/matt@wednesday tank/home/matt@thursday # zfs rollback -r tank/home/matt@tuesday
En este ejemplo, las instantáneas de wednesday y thursday se destruyen porque se ha restaurado la instantánea de tuesday.
# zfs list -r -t snapshot -o name,creation tank/home/matt NAME CREATION tank/home/matt@tuesday Tue May 3 6:27 2011
Puede determinar las diferencias entre instantáneas de ZFS mediante el comando zfs diff.
Por ejemplo, considere que se crean las siguientes dos instantáneas:
$ ls /tank/home/tim fileA $ zfs snapshot tank/home/tim@snap1 $ ls /tank/home/tim fileA fileB $ zfs snapshot tank/home/tim@snap2
Por ejemplo, para identificar las diferencias que existen entre dos instantáneas, utilice una sintaxis similar a la siguiente:
$ zfs diff tank/home/tim@snap1 tank/home/tim@snap2 M /tank/home/tim/ + /tank/home/tim/fileB
En la salida anterior, M indica que el directorio se ha modificado. El símbolo + indica que fileB existe en la instantánea posterior.
La M en la siguiente salida indica que se ha cambiado el nombre de un archivo en una instantánea.
$ mv /tank/cindy/fileB /tank/cindy/fileC $ zfs snapshot tank/cindy@snap2 $ zfs diff tank/cindy@snap1 tank/cindy@snap2 M /tank/cindy/ R /tank/cindy/fileB -> /tank/cindy/fileC
En la siguiente tabla se resumen los cambios de archivo o directorio identificados mediante el comando zfs diff.
|
Para obtener más información, consulte zfs(1M).