Veeam Backup – Backups Incrementais

Backups incrementais

Para executar os backups incrementais, o Veeam precisa saber quais blocos de dados foram alterados desde a última execução do backup – mas como ele faz isso? – para conhecer estes blocos, o Veeam Backup usa de diferentes maneiras. Quando se trata de proteger VM(s) no Hypervisor ESXi,  o Veeam usa o CBT (Changed Block Tracking) do próprio virtualizador. Já quando o assunto é Hyper-V, em versões 2012 ou inferiores, o Veeam usa o CBT Driver proprietário e, o RCT (Resilient Change Tracking) quando  se trata da versão 2016 em diante.  

Vamos agora ler sobre os componentes e como são usados pelo Veeam Backup.

CBT (Changed Block Tracking)

O CBT é um componente usado por diversos distribuidores de softwares e serve ao propósito de rastrear os blocos alterados, por isso é um dos principais trunfos de softwares de backup ao se falar em rotinas incrementais.

Quando falamos em Veeam e CBT temos que levar em consideração as seguintes questões:

1 – Quando se trata de ESXi, o Veeam usa o CBT nativo (que está disponível a partir das versões 4.x).

2 – Em casos de Hyper-V, em versões 2012 ou inferiores, o Veeam usa seu driver de CBT proprietário.

Vamos agora ilustrar um cenário onde temos o Veeam Backup & Replication executando rotinas incrementais de máquinas provenientes de um ESXi.

Obs.: O CBT está disponível a partir do ESXi 4.x, porém é uma versão obsoleta e já está fora da matriz de compatibilidade de muitos softwares de backup, inclusive as versões mais recentes do Veeam. Portanto, se quiser se proteger de bugs, falhas de segurança e aproveitar ao máximo os recursos que têm e pode vir a ter, é aconselhável que sempre esteja com seus softwares atualizados.   

Dadas estas considerações, vamos assumir que nosso ESXi está em uma versão suportada pela mais recente atualização do Veeam e vamos executar o job pela primeira vez.

E então, o que acontece?

Independente de qualquer política, a primeira execução de backup sempre criará um arquivo full. Este arquivo conterá todos os blocos ocupados de uma máquina. Sendo assim, page files ou blocos referentes a objetos excluídos (blocos sujos) não serão direcionados a este arquivo.

Exemplo:

Nas execuções seguintes, o Veeam fará a leitura de um arquivo com a extensão CTK. Nele, o CBT guarda todas as informações dos blocos alterados e, com estes dados, o Veeam consegue ir direto aos blocos que precisam ser protegidos fazendo com que o backup seja extremamente rápido. Abaixo temos uma ilustração básica de como isto funciona:

Mas e se o CBT falhar ou estiver indisponível?

Neste caso o Veeam faz um filtro contrário. Se quando o CBT está disponível ele filtra somente os blocos alterados, quando indisponível, ele filtra pelos blocos não alterados – Como assim? – durante o backup o Veeam consolida a imagem, calcula o checksum (soma de verificação) de todos os blocos e os armazena em conjuto com os metadados. Na próxima execução, ele abre todos os metadados e compara com o checksum dos blocos referentes ao estado da VM que está sendo processada. Então se uma ocorrência idêntica for encontrada significa que este bloco já está no backup e não precisa ser processado, com isso o Veeam consegue distinguir o que deve ou não processar.

 

E se for Hyper-V?

Para falar sobre CBT e Hyper-V vamos considerar que o virtualizador está sendo executado sobre a versão 2012 do Windows Server ou inferior. Neste caso, o Veeam Backup usa um driver de CBT proprietário, pois esta versão do Windows não dispõe nativamente desta feature. Este driver é instalado em cada Hyper-V (2012 ou inferior) que você adiciona a sua infraestrutura de backup e ativado quando você executa um job que está com a opção de CBT habilitada.

Obs.: esta opção vem habilitada por padrão.

E então os processos seguintes são muito parecidos com os já citados em relação ao ambiente ESXi, a diferença é que o arquivo que receberá as informações sobre os blocos alterados será nomeado com a extensão CTP e residirá no caminho C:\programData\Veeam\CTPstore.

Obs.: caso você use Off-Host Proxy estes arquivos serão copiados para o mesmo durante o backup.

 

E se meu ambiente de Hyper-V for 2016 ou superior?

Neste caso, o Veeam usará usar um mecanismo nativo da versão. Este mecanismo de rastreamento de blocos alterados chama-se RCT (Resilient Change Tracking).

RCT (Resilient Change Tracking)

O RCT faz com que o Veeam possa ter a base dos blocos alterados desde a última execução de backup. Antes de falarmos sobre sua interação com o Veeam, é interessante salientar alguns requisitos, como:

1 – Hyper-V server em versão 2016 ou superior, além disso, a(s) VM(s) precisa(m) estar na versão 8.

2 – Em caso de cluster, todos os nós devem estar na versão 2016, caso contário, o Veeam usará o driver de CBT proprietário.

Vamos então executar nosso primeiro job de backup.

Conforme já comentado, a primeira execução será sempre um backup full. Neste processo, o Veeam enviará ao Hyper-V uma solicitação de criação de um checkpoint e após isso ser acatado, o Veeam começará a processar os blocos para a peça full. Ao final do processo e antes do merge entre o checkpoint e o disco base, o Veeam transformará o checkpoint em um ponto de referência e este será usado como base para compreensão de quais blocos foram alterados ou não na próxima execução.

 

Conclusão

Este post foi criado para demonstrar as diferentes formas utilizadas pelo Veeam nas execuções de backups incrementais.

Confira nossos próximos posts!