¿Por qué están vacíos todos mis directorios de instantáneas de ZFS?

13

Estoy ejecutando un cuadro de Oracle 11 como un dispositivo de almacenamiento ZFS, y estoy tomando instantáneas regulares de los sistemas de archivos ZFS, a través de cron.

En el pasado, sé que si quería tomar un archivo en particular de una instantánea, se guardaba una copia de solo lectura .zfs/snapshot/{name}/y podía navegar hasta allí y sacar el archivo. Esto está documentado en el sitio web de Oracle .

Sin embargo, fui a hacer esto el otro día y noté que los directorios de ZFS dentro de los directorios de instantáneas están vacíos. zfs list -t snapshotmuestra correctamente la lista de instantáneas que deberían estar presentes, y .zfs/snapshotscontiene correctamente un directorio para cada instantánea, y en cada instantánea hay un directorio presente para cada sistema de archivos ZFS. Sin embargo, estos directorios parecen estar vacíos.

Acabo de probar una restauración tocando un archivo en un recurso compartido poco utilizado y volviendo a la última instantánea por hora, y esto parece haber funcionado bien. Entonces la funcionalidad de reversión está ahí.

¿Oracle cambió la forma en que se hacen las instantáneas? ¿O hay algo realmente mal aquí?

crecer
fuente
Y también github.com/zfsonlinux/zfs/issues/3030 . Sin embargo, utiliza el árbol Oracle ZFS, y probablemente se hayan desviado lo suficiente como para no ser directamente comparables.
Perseidas

Respuestas:

5

Si tiene un sistema de archivos ZFS descendiente, por ejemplo tank/newfs. Entonces no encontrará archivos en tank/newfsla /tank/.zfs/mysnapshotcarpeta, solo newfsexistirá el punto de montaje . Si desea acceder a los archivos, debe buscarlos en la /tank/newfs/.zfs/mysnapshotcarpeta.

Olav Grønås Gjerde
fuente
0

Las instantáneas enumeradas en .zfs/snapshot/se montan automáticamente a pedido, ya que se están examinando, y se desmontan automáticamente cuando ya no están en uso.

Hacer un simple lsen un directorio aparentemente no es suficiente para ser considerado 'demanda'. Deberá cdingresar al directorio en cuestión y ENTONCES ejecutar el lscomando.

También es posible que deba configurar snapdir=visibleel sistema de archivos.

Daniel
fuente