Recuperar o arquivo excluído da captura instantânea do ZFS (ainda visível com lsof)

4

Eu tenho um volume ZFS em um Linux Debian.
Um instantâneo é tirado a cada noite neste volume.
Por alguma razão, um arquivo grande (disco virtual) foi excluído há vários dias. Este arquivo ainda está em uso (por kvm ). lsof mostra este arquivo como excluído.

Se eu pausar o processo kvm , posso recuperar o arquivo excluído com cp /proc/<pid>/fd/21 myfile.bak e usá-lo em outra máquina virtual. Mas eu não preciso deste arquivo atual.

Eu preciso da versão de dois dias deste arquivo.
Como esse arquivo foi excluído há vários dias, ele não está nos backups.
Eu acho que o arquivo está presente nos instantâneos do ZFS, mas não tenho certeza. Eu não vejo isso em /zpool/.zfs/snapshotname/path/to/file

Alguém sabe uma maneira de obter um arquivo não realmente excluído de um instantâneo do ZFS?

    
por Gregory MOUSSAT 07.06.2017 / 03:14

4 respostas

2

procure em /zpool/.zfs/snapshot/$NAMEOFSNAPSHOT/path/to/file

    
por 12.06.2017 / 13:37
0

A snapshot is took each night on this volume. [...] I need the 2 days old version of this file. As this file was deleted several days ago, it is not in the backups.

Cada captura instantânea mostra o sistema de arquivos no momento especificado no tempo. Os instantâneos são somente leitura, o que significa que nenhum arquivo individual dentro de um instantâneo pode ser excluído, apenas o instantâneo completo pode ser destruído.

Se você fizer snaps noturnos nos pontos T-1, T-2, T-3, ... e remover o arquivo em si após o ponto T-3, seus snapshots T-1 e T-2 não terão este arquivo mais (mas os outros ainda terão).

Portanto, sua solução é recuperar o arquivo de um instantâneo mais antigo (no seu caso, o mais recente, no qual o arquivo real ainda não foi excluído) e, em seguida, compará-lo com a versão atual para as diferenças. É claro que isso funciona apenas se os instantâneos mais antigos ainda estiverem lá.

    
por 07.06.2017 / 08:25
0

Não é possível lembrar se é possível montar um instantâneo.

Você pode tentar usar zfs diff para ver se o arquivo que está procurando está em um instantâneo diferente.

    
por 16.06.2017 / 23:51
0

Você também pode clonar o instantâneo se não quiser mexer no .zfs. Copie seus arquivos / pastas que precisam ser recuperados e destrua o clone.

    
por 09.04.2018 / 04:01

Tags