Estou executando um Oracle 11 box como um dispositivo de armazenamento ZFS e tirando instantâneos regulares dos sistemas de arquivos ZFS via cron
.
No passado, eu sei que se eu quisesse pegar um arquivo específico de uma captura instantânea, uma cópia somente leitura era mantida .zfs/snapshot/{name}/
e eu poderia navegar até lá e retirar o arquivo. Isso está documentado no site da Oracle .
No entanto, eu fiz isso outro dia e notei que os diretórios ZFS nos diretórios de instantâneos estão todos vazios. zfs list -t snapshot
mostra corretamente a lista de capturas instantâneas que devem estar presentes e .zfs/snapshots
contém corretamente um diretório para cada captura instantânea, e em cada captura instantânea há um diretório presente para cada sistema de arquivos ZFS. No entanto, esses diretórios parecem estar vazios.
Acabei de testar uma restauração tocando em um arquivo em um compartilhamento pouco usado e revertendo para o último instantâneo por hora, e isso parece ter funcionado bem. Portanto, a funcionalidade de reversão está lá.
O Oracle mudou a maneira como os instantâneos são feitos? Ou há algo seriamente errado aqui?
Respostas:
Se você possui um sistema de arquivos ZFS descendente, por exemplo
tank/newfs
. Então você não vai encontrar arquivos emtank/newfs
na/tank/.zfs/mysnapshot
pasta, apenas o ponto de montagemnewfs
vai existir. Se você quiser acessar os arquivos, precisará procurá-los na/tank/newfs/.zfs/mysnapshot
pasta.fonte
Os instantâneos listados em
.zfs/snapshot/
são montados automaticamente sob demanda, à medida que estão sendo pesquisados, e são desmontados automaticamente quando não estão mais em uso.Fazer um simples
ls
em um diretório aparentemente não é suficiente para ser considerado 'demanda'. Você precisarácd
entrar no diretório em questão e ENTÃO emitir ols
comando.Você também pode precisar definir
snapdir=visible
para o sistema de arquivos.fonte