Pular para o conteúdo

Restauração, Instant Recovery & V2V

As restaurações do NGBackup vão de um único arquivo a uma VM inteira subida em segundos — e até em um hipervisor diferente.

Instant Recovery e restauração entre hipervisores

Terminal window
/opt/backup/bin/backup-console
* restore

Escolha um método de seleção (o mais comum é “Selecionar o backup mais recente”), escolha o cliente, navegue e marque o que quiser:

cd /etc
mark passwd
mark hosts
done

Confirme o job. Por padrão, os arquivos vão para /tmp/bacula-restores, então você nunca sobrescreve os originais — mude o destino (where=) no diálogo quando quiser. Controle completo na referência do recurso Job (Where, Replace, Restore Client, …).

Navegue pelo filesystem do guest de uma VM em backup (ext2/3/4, NTFS) e extraia arquivos ou pastas individuais — sem reidratar o disco inteiro. Cadeias incrementais são consolidadas sobre o Full automaticamente.

O mecanismo roda embutido no Storage Daemon — não há daemon nem arquivo de configuração separados. O Director resolve a cadeia de volumes do job pelo próprio catálogo e encaminha os verbos de sessão ao Storage Daemon dono:

* .gr_open jobid=42 # abre uma sessão sobre a cadeia do job 42
* .gr_ls session=S path=/etc # lista um diretório do guest
* .gr_stat session=S path=/etc/hostname
* .gr_get session=S path=/etc/hostname # leitura inline (arquivos pequenos)
* .gr_close session=S
* .gr_sessions # sessões ativas no SD

O .gr_open retorna um state junto com o id da sessão. Para um backup de tamanho normal, a cadeia é indexada inline e a resposta volta como ready com a lista de discos.

Backups grandes abrem em segundo plano. Quando a cadeia de volumes é grande (acima de ~32 GiB), indexá-la prenderia a conexão do console durante toda a varredura. Em vez disso o .gr_open retorna imediatamente com state: "opening" e a varredura continua no Storage Daemon. Consulte o mesmo verbo só com o id da sessão até virar ready:

* .gr_open jobid=42 → {"session":"S","state":"opening"}
* .gr_open session=S → {"state":"opening"} # ainda indexando
* .gr_open session=S → {"state":"ready","disks":[…]} # pronta para navegar

Enquanto a sessão está opening, os verbos de navegação (.gr_ls, .gr_stat, .gr_get) retornam um erro stage:"open" (“still opening”) — aguarde o ready. O .gr_sessions mostra o state de cada sessão. Adicione async=1 ao .gr_open para forçar o caminho em segundo plano em qualquer backup, independentemente do tamanho.

Dois ajustes controlam acesso e capacidade — ambos alteráveis pelo console sem reiniciar o daemon:

  • Política por job: Granular Restore no Job (config set job=<Nome> GranularRestore=no recusa .gr_open para os backups desse job).
  • Capacidade e kill-switch no Storage: as diretivas Granular / Gr* no Storage Daemon (config set sd=<Storage> storage=<Nome> GrMaxSessions=4 aplica a quente).

Suba uma VM em backup direto do storage de backup via NBD, iSCSI, NFS-Datastore ou SMB-VHDX — a produção volta em segundos enquanto o disco migra para o storage definitivo em background (svMotion / qm migrate / virsh blockcopy), sem downtime.

Restaure uma VM em um hipervisor diferente daquele de onde ela foi salva — Proxmox, Hyper-V, KVM, vSphere, CloudStack, Nutanix — com conversão automática de formato de disco (qcow2 / raw / vmdk / VHDX) e geração nativa da config da VM. Veja as páginas de cada plugin para os parâmetros exatos de restauração.

Para restaurações automatizadas ou de disaster recovery, o NGBackup pode dirigir o Storage Daemon a partir de um arquivo bootstrap que aponta os volumes e registros exatos — o caminho de recuperação mais rápido possível.