Infra - Exchange Server

Conceitos sobre a arquitetura de armazenamento do Exchange Server

Neste artigo iremos mostrar o conceito de armazenamento do Exchange Server, sabendo estes conceitos fica fácil de trabalhar um Disaster Recovery, utilizar de forma correta o backup, saber em qual tipo de discos os diferentes arquivos devem ficar, em suma planejar melhor uma implementação e manutenção de sucesso do Exchange Server System.

por Anderson Patricio



Neste artigo iremos mostrar o conceito de armazenamento do Exchange Server, sabendo estes conceitos fica fácil de trabalhar um Disaster Recovery, utilizar de forma correta o backup, saber em qual tipo de discos os diferentes arquivos devem ficar, em suma planejar melhor uma implementação e manutenção de sucesso do Exchange Server System.

Um pouco de história..

Antes de conversarmos sobre a arquitetura de armazenamento, vamos ver as versões existentes do ESE (Extensible Storage Engine). O ESE é multi-usuário, usa o método ISAM (indexed sequential access method), gerenciamento de tabelas com uma linguagem de manipulação de dados (DML Data Manipulation Language) e DDL (data definition language). O ESE permite que as aplicações armazenem registro e criem índices para acesso destes registros de diversas maneiras.

O ESE é uma engine (motor) sofisticada baseada em transações. A transação é uma série de operações também conhecidas como unidades atômicas (indivisíveis). Todas operações de uma transação são completas e salvas na base caso isto ocorra não vai nenhuma operação. Exemplo: uma operação envolvendo a movimentação de uma mensagem da Caixa de Entrada para a os Ítens Excluídos. A mensagem será apagada de uma pasta e adicionado em outro, depois disso as propriedades das pastas são atualizadas. Se ocorrer um erro neste processo, não é interessante para você aparecer a cópia da mensagem na Caixa de Entrada e nos Itens Excluídos.

O ESE trabalha para prevenir este tipo de problema, para uma transação ser confirmada na base do Exchange o ESE valida todas operações dentro da transação, ficando desta forma a base íntegra e com informações válidas.

O ESE é responsável pela estrutura da database e gerenciamento de memória. Como a escrita em memória é muito mais rápida que a escrita em disco, em torno de 200.000 vezes! o ESE faz cache da base em memória e faz a transferências destas informações em páginas de 4kb (entrada/saída). O ESE atualiza as páginas em memória e depois escreve e/ou atualiza dos dados no disco. A última versão da database está sempre em memória nunca em disco devido ao design do produto, quando paramos corretamente o serviço do Information Store, ele limpa todas as páginas em memória e adicionado ao arquivo da database com isto temos uma base consistente.

Abaixo relacionamos as versões existentes do ESE:

  • ESE97 é a engine utilizada no Exchange 5.5

  • ESENT é a engine utilizado pelo Active Directory e vários outros componentes do Microsoft Windows. Ps.: A implementação do ESENT no Active Directory utiliza arquivos de log e 10MB ao contrário dos 5MB comumente utilizados.

  • ESE98 é a engine utilizada no Exchange 2000 e Exchange Server 2003

Nota: ESE no passado era referenciada como JET Blue que não é a mesma tecnologia utilizada no Microsoft Access (Jet Red).

Os arquivos que compõe o universo da base do Exchange Server

O Exchange Server armazena a base de dados em dois arquivos: arquivos com a extensão .edb e .stm. Juntos eles formam a base de dados do Exchange. Um exemplo: o padrão do exchange é o default mailbox store que vem quando o produto é instalado, ele usa o priv1.edb e priv1.stm.

O arquivo .EDB é uma database ESE e ele usado para armazenar mensagens MAPI e anexos, também conhecido como database baseada em MAPI. Por sua vez o arquivo .stm armazena conteúdo nativo de Internet, este conteúdo é escrito em formato nativo, não é necessário converter messages e outros itens para o formato do Exchange (como nas versões Exchange 5.5 e anteriores).O arquivo .stm também é um database ESE, referenciada como database de streaming.

Ambos os arquivos .edb e .stm funcionam como um par, uma assinatura da database de 32bits (número randômico combinado com a data da criação dos arquivos) é adicionado ao cabeçalho de ambos os arquivos. O esquema interno para as páginas .stm são armazenadas no arquivo .edb

O Exchange Server usas transações para controlar as mudanças que ocorrem com as databases dentro de um mesmo storage group. Estas transações são armazenadas dentro de um arquivo de log, para depois serem armazenados na database. Este gerenciamento de transações é feito pelo serviço Microsoft Exchange Information Store (Store.exe). Qualquer entrada do arquivo de log ainda não adicionado a database também é considerado parte da atual database do Exchange, então podemos resumir que o conjunto dos arquivos .edb e .stm mais os arquivos de transação .log formam a base do Exchange Server, como mostra a figura:

Este são os dois tipos de databases disponíveis no Exchange Server 2003:

  • Private store databases: Este tipo armazena caixas de usuários

  • Public store databases: Este tipo armazena hierarquia de Pastas Públicas

Storage Groups

Cada Storage Group possui um conjunto de logs e alguns arquivos auxiliares (arquivos temporários da database, .chk arquivo de checkpoint, e logs reservados) para todas as databases (arquivos .edb e .stm) contidas no storage group. O Exchange Server 2003 suporta múltiplas storage groups e cada storage group suporta múltiplas mailboxstore, o número de storage groups e mailbox store depende da versão do Exchange. Mas o número na versão enterprise é até 4 storage groups e até 5 databases por storage group, totalizando 20 databases por servidor.

Podemos visualizar graficamente as storage groups, mailbox store e logs da seguinte forma:

Em cada storage group, cada .edb e .stm representam um mailbox store ou public folder store. Podemos perceber também que os logs fiquem em nível de storage group. Os outros arquivos encontrados são os seguintes:

Trabalhando com os arquivos na prática

Vamos ver agora na prática os arquivos que conversamos nos tópicos anteriores e algumas dicas referentes a cada tópico.

Gerenciamento de mailbox store (arquivos .edb e .stm)

É fácil encontrarmos os arquivos, podemos move-los

  1. Abrir o Exchange System Manager

  2. Expandir Administrative Groups

  3. Expandir <Administrative Group>

  4. Expandir Servers

  5. Expandir <Servidor>

  6. Expandir <Storage Group>

  7. Clicar com o botão direito na mailboxstore desejada e pedir Properties

Boas práticas:

  • Utilização de raid 5 para as databases do Exchange Server

  • Backup íntegro destes arquivos

  • Manter estes arquivos em discos separados do arquivo de paginação (pagefile.sys), partição de root (c:) e partição de sistema (WINNT)

Gerenciamento de Storage Groups (arquivos .log, .chk)

Agora vamos abordar onde gerenciamos os arquivos de log, na própria interface do Exchange conseguimos visualizar o prefixo, em nosso exemplo abaixo é o E00.

  1. Abrir o Exchange System Manager

  2. Expandir Administrative Groups

  3. Expandir <Administrative Group>

  4. Expandir Servers

  5. Expandir <Servidor>

  6. Botão direito em <Storage Group> e clique em Properties

Boas Práticas:

  • Ficar em disco Raid 1, devido a escrita linear dos arquivos

  • Os arquivos de log crescem constantemente devemos ter uma política de backup on-line para remoção dos arquivos já gravados na database

  • Em certos casos podemos utilizar o Enable circular logging que não armazena os arquivos de log, todos os arquivos de log que já foram escritos na database são sobrescritos. A recuperaçao utilizando este método baseado em arquivos de log não é possível.

Conclusão

Mostramos aqui como o Exchange trabalha com seus arquivos de armazenamento como também as funções das extensões .edb, .stm, .log, .chk que ajudam na administração e continuidade do produto.

Anderson Patricio

Anderson Patricio - Trabalha com informática desde 1995, é consultor Microsoft em projetos de Active Directory, Exchange e ISA pela Quattuor Informática em Porto Alegre.
Certificações: MCSE +M +S 2003, MCSE +M +S 2000, MCSA +M +S 2003, MCSA +M +S 2000
Blog: http://spaces.msn.com/members/andersonpatricio/