Tudo o que você precisa saber sobre backups do Exchange* - Parte 1

Artigo original publicado em 05 de junho de 2012, terça-feira

*mas tinha medo de perguntar

Se você acha um mistério o funcionamento interno dos backups de dados do Exchange ao usar a VSS (Cópia de Sombra de Volume), não se preocupe, pois você não é o único. Os administradores podem imaginar: “O que são estas “congeladas” e “descongeladas” que percebo em meus logs de eventos? O que é realmente o Gravador VSS do Exchange e o que ele faz com meus bancos de dados? Como ele cria um instantâneo de um banco de dados com 135GB em menos de 60 segundos?”

Se você alguma vez teve essas indagações, mas só ficou mais confuso com as respostas, a seguir está um guia para esclarecer algumas delas. Para entender como funciona um backup de VSS do Exchange, é essencial entender os fundamentos básicos do próprio VSS. Há uma excelente documentação sobre o assunto disponível no TechNet e MSDN, além do blog do Windows Server Core Team intitulado “Ask the Core Team”. Meu estimado colega Randy Monteleone resume muito bem os fundamentos básicos do VSS no início de sua postagem, além de fornecer links (repetidos aqui) para alguns ótimos textos didáticos do TechNet sobre o VSS:

Instruções: rastreamento do VSS – Randy Monteleone
https://blogs.technet.com/b/askcore/archive/2012/04/29/how-to-vss-tracing.aspx

Como funciona o Serviço de Cópias de Sombra de Volume
https://technet.microsoft.com/en-us/library/cc785914(WS.10).aspx

Serviço de Cópias de Sombra de Volume
https://technet.microsoft.com/en-us/library/ee923636.aspx

Se você já tem familiaridade com pelo menos os fundamentos básicos do VSS, avance para a Parte 2 desta série, em que esmiuçaremos os eventos que ocorrem em um backup do VSS Exchange e como o Exchange os registra no log de eventos de aplicativo.

Se você precisar de um breve texto didático ou mnemônico sobre os fundamentos básicos do VSS e do Exchange Writer, eu os condensei em alguns recursos visuais a seguir para complementar as referências anteriores.

Instantâneos

Lembre-se de que as soluções de VSS para o Exchange, e para todos os aplicativos, variam bastante entre diferentes configurações de hardware e software. Há instantâneos clonados e COW (cópia na gravação), soluções de hardware e software, simplesmente uma ampla variedade de tecnologias que se baseiam no subsistema principal do VSS. Para a finalidade de entender os backups do Exchange, vamos ilustrar somente um tipo específico de solução dentre várias. A seguir detalhei o que se chama de instantâneo de “cópia na gravação” ou “COW”.

Em um backup de VSS do Exchange baseado em instantâneo COW, temos a criação de instantâneos dos discos em que os dados do Exchange são hospedados. Independentemente do conteúdo submetido a backup, mesmo se for um único arquivo de banco de dados e alguns logs, o VSS criará um instantâneo do disco inteiro em que os dados estão armazenados. Se os dados residirem em vários discos, por exemplo quando um banco de dados do Exchange está em um disco, e os logs estão em outro, o VSS criará instantâneos de todos os discos.

Então o que é um “instantâneo”? Um instantâneo de volume é uma área de espaço dentro do que é chamado “armazenamento de sombra”, que é uma área geralmente pequena do espaço no disco localizada em sua pasta de Informações de Volume do Sistema.

Depois que um instantâneo do disco é criado, qualquer alteração feita em qualquer bloco de dados a partir desse momento não pode ser gravada enquanto uma cópia dos dados desse bloco antes da alteração (como eles estavam quando o instantâneo foi criado) não for gravada na área diferenciadora no armazenamento de sombra. Dessa maneira, os dados no disco no momento em que o instantâneo foi criado ficam preservados, bloco por bloco, na área de armazenamento de sombra. Os dados do instantâneo ficam então disponíveis no disco original, se os blocos de dados solicitados não tiverem sido alterados, ou na área diferenciadora se tiverem sido alterados. Os fundamentos disso estão ilustrados a seguir:

O disco E: tem um instantâneo criado às 13h00:

imagem

Um minuto mais tarde um dos blocos é gravado, mas não antes de os dados conforme estavam às 13h00 serem preservados na área diferenciadora:

imagem

À medida que o disco real é alterado, os dados conforme estavam às 13h00 são gravados no armazenamento de sombra, preservando um registro do disco conforme estava naquele momento:

imagem

A etapa seguinte:

imagem

Na figura anterior, um servidor de backup solicita dados do instantâneo dos blocos 2 e 53. O bloco 53 das 13h00 é preservado no instantâneo, por isso é copiado diretamente do armazenamento de sombra. O bloco 2 não tem alterações desde as 13h00, por isso é copiado pelo driver de VSS VOLSNAP.SYS, que opera de maneira muito semelhante a um driver de filtro subjacente ao driver do sistema de arquivos NTFS.SYS. Trabalhando na pilha IRP (a parte da memória do kernel que gerencia o E/S de disco) subjacente ao sistema de arquivos, ele pode ler blocos de dados sem que o NTFS conteste que um arquivo está sendo usado. VOLSNAP.SYS também é responsável por garantir que os blocos sejam copiados para um armazenamento de sombra se uma gravação é solicitada a eles, daí o termo “Cópia na Gravação”. A seguir estão mais informações sobre VOLSNAP.SYS de Tim McMichael:

Exchange / VSS / e tamanho do bloco diferencial…
https://blogs.technet.com/b/timmcmic/archive/2011/07/12/exchange-vss-and-differential-block-size.aspx

Agora que temos os fundamentos básicos de um instantâneo COW, vamos analisar como ele funciona com o Exchange e alguns outros conceitos importantes:

Microsoft Exchange Writer

Pois bem. Sabemos que o VSS cria um instantâneo dos dados do Exchange armazenados em um disco. Como exatamente um aplicativo de backup descobre quais são os discos? Geralmente um administrador escolhe os bancos de dados para backup sem especificar nada sobre quais discos contêm os arquivos de dados. Assim é necessário usar alguma técnica para fornecer as informações sobre onde estão os arquivos de dados e então de quais discos o VSS precisa criar instantâneos. Essas informações também dizem a um aplicativo de backup, também conhecido como solicitante de VSS, quais arquivos de dados específicos devem ser copiados desses instantâneos para fins de preservação em mídia de backup, porque não queremos copiar nada do disco que seja desnecessário.

O mecanismo em ação aqui é o Gravador de VSS do Microsoft Exchange. Como o gravador de VSS de qualquer aplicativo (existem muitos, por isso basta executar VSSADMIN LIST WRITERS para vê-los), sua primeira missão é informar ao aplicativo de backup sobre os dados necessários para backup, principalmente o arquivo EDB, os logs e o arquivo de ponto de verificação para cada banco de dados solicitado. As informações sobre esses arquivos de dados específicos do Exchange são conhecidas como metadados de gravador.

imagem

(clique na miniatura para obter uma versão em tamanho inteiro)

Na figura anterior, vemos as etapas iniciais de um backup do Exchange. O Exchange Writer informa ao servidor de backup (o solicitante) que há um banco de dados localizado em uma pasta no volume E: e que os logs de transação desse banco de dados estão em uma pasta no volume D:. Com base nessas informações, o aplicativo de backup solicitará instantâneos dos volumes D: e E: quando o trabalho avançar.

O Gravador de VSS do Exchange serve outra função crucial além de fornecer metadados aos solicitantes de VSS. Ele também tem a função de interromper as gravações nos bancos de dados e os logs em disco ou “congelá-los” durante o tempo necessário para criar os instantâneos. Um instantâneo COW normalmente leva pouco tempo para ser criado, porque ele inicialmente consiste apenas em designar uma área no armazenamento de sombra na qual os blocos serão preservados quando forem alterados no disco real. Apesar de essa operação ser relativamente rápida, ela pode levar até um minuto, o que é bastante tempo para que os blocos de dados sejam alterados em um disco entre o início e o final do processo de criação do instantâneo. Se os blocos de dados forem alterados, mas não tiverem o estado original preservado a partir do momento exato em que a criação do instantâneo começou, esses blocos poderão ficar irregulares em comparação com outros dados do instantâneo, principalmente entre logs, arquivos de banco de dados e arquivos de ponto de verificação. Por isso, o Exchange Writer impede que o Serviço de Armazenamento de Informações ou o Serviço de Replicação do Microsoft Exchange, grave o conteúdo da RAM nos arquivos de banco de dados congelados. No caso do Serviço de Armazenamento de Informações, o arquivo de log de transações (Exx.log) atual é implementado e fechado antes que o Exchange Writer permita que o VSS obtenha o instantâneo. Isso garante que nada seja alterado nos dados dos arquivos entre o início de um instantâneo e a conclusão, momento em que os bancos de dados são “descongelados”. Quando os bancos de dados são descongelados, o E/S de gravação retido na RAM recebe permissão para acessar o disco novamente.

A seguir estão mais informações sobre como o gravador de VSS de um aplicativo interage com o VSS em relação a congelamento, descongelamento e o tempo necessário para que um instantâneo seja concluído:

Método CVssWriter::OnFreeze
https://msdn.microsoft.com/en-us/library/windows/desktop/aa381563(v=vs.85).aspx

A última responsabilidade crucial do Exchange Writer é informar ao Serviço de Armazenamento de Informações (Serviço de Replicação do Microsoft Exchange no caso de um backup de cópia passiva) que o backup foi concluído e, se aplicável, executar tarefas de pós-backup como truncamento de logs, marcação do banco de dados com o status de que não há mais backups em andamento etc.

Nas partes dois e três desta série, analisaremos uma divisão detalhada de como os elementos descritos anteriormente são combinados em um backup do Exchange, os eventos de log de aplicativo que são gerados, e compararemos o processo de um banco de dados montado com aquele de uma cópia de banco de dados passiva.

Um obrigado pela colaboração no conteúdo destas postagens vai para Michael Blanton, Tim McMichael, Randy Monteleone, Dave Vespa e Tom Kern.

Jesse Tedoff

Esta é uma postagem de blog traduzida. Consulte o artigo original em Everything You Need to Know About Exchange Backups* - Part 1