Usando o proxmox com pools de armazenamento ZFS, é possível restaurar um contêiner LXC ou uma máquina virtual QEMU para um snapshot anterior (não o snapshot mais recente) sem perder ou destruir nenhum snapshot?
Tentar fazer isso usando a GUI do Proxmox apresenta uma mensagem de erro:
não é possível reverter, 'snapshotname' não é o snapshot mais recente em 'storage:vmname'
Perguntado de outra forma, é possível ter snapshots não lineares? Por exemplo, uma árvore de snapshots que se parece com esta, onde há uma "árvore" verdadeira com ramificações, e alguns snapshots têm mais de um filho?
Várias fontes na internet parecem indicar que não ( exemplo 1 ou exemplo 2 ), mas sei que isso é incorreto porque eu já fiz isso :)
Sim, apesar de várias postagens no fórum e da documentação indicarem que isso só é possível com qcow2, é possível fazer isso facilmente usando a linha de comando e clones do ZFS:
Identifique os snapshots ZFS atuais que representam o snapshot para o qual você deseja reverter. Você pode verificar o arquivo de configuração VM ou LXC em
/etc/pve/qemu-server/
ou/etc/pve/lxc/
se não tiver certeza. Usezfs list
(possivelmente combinado comgrep
conforme necessário) para localizá-los.Para este exemplo, suponha que estou trabalhando no ID do contêiner LXC
113
, então meus sistemas de arquivos ZFS sãorpool/data/lxc/subvol-113-disk-0@creation
erpool/data/lxc/subvol-113-disk-1@creation
Clone os snapshots de todos os volumes relevantes e produza novos conjuntos de dados ZFS usando
zfs clone $dataset@$snapshot $new_dataset
. Eu costumo definir o nome do novo conjunto de dados para o próximo número de disco disponível, mas você pode selecionar quase qualquer nome novo que desejar:Edite o arquivo de configuração da VM ou LXC (em
/etc/pve/qemu-server
ou/etc/pve/lxc
) e faça duas alterações: atualize os caminhos para os volumes e defina aparent
propriedade como o nome do snapshot para o qual você está revertendo (creation
no meu exemplo)rootfs
argumento, bem como quaisquermp$n
argumentosscsi$n
linhas, ouide$n
linhas se estiver usando discos IDEA UI agora deve mostrar uma árvore de snapshots e tudo deve funcionar como esperado. Você pode criar novos snapshots normalmente. Se quiser reverter para a árvore anterior, você precisará editar o arquivo de configuração e ajustar,
parent
bem como reverter/ajustar as linhas de armazenamento que você editou.