Compartilhar via


Repositório gerenciado no Exchange Server

A Loja Gerenciada é o nome dos processos do Repositório de Informações (também conhecido como Repositório) em Exchange Server 2016 e Exchange Server 2019. Introduzida no Exchange Server 2013, a Loja Gerenciada usa um modelo de processo controlador/trabalho que fornece isolamento do processo de armazenamento e failover de banco de dados mais rápido. A Loja Gerenciada também usa um mecanismo de cache de banco de dados estático que substitui o algoritmo de buffer dinâmico em versões anteriores do Exchange.

O modelo de vários processos usado pela Loja Gerenciada consiste nos seguintes processos no servidor da caixa de correio:

  • Um processo de controlador de serviço de armazenamento único para todo o servidor exchange (Microsoft.Exchange.Store.Service.exe, também conhecido como MSExchangeIS).

  • Um processo de trabalho para cada banco de dados montado (Microsoft.Exchange.Store.Worker.exe). Quando um banco de dados é montado, um novo processo de trabalho é instanciado que atende apenas a esse banco de dados. Quando um banco de dados é desmontado, o processo de trabalho desse banco de dados é encerrado.

Por exemplo, se você tiver 40 bancos de dados de caixa de correio montados em um servidor de caixa de correio, haverá 41 processos em execução para a Loja Gerenciada: um para cada banco de dados e um para o controlador de processo de serviço da loja. O controlador de processo do repositório monitora a integridade de todos os processos de trabalho do repositório no servidor. Uma terminação forçada ou inesperada do Microsoft.Exchange.Store.Service.exe causa um failover imediato de todas as cópias de banco de dados ativos no servidor.

A Loja Gerenciada também é fortemente integrada ao Serviço de Replicação do Microsoft Exchange (MSExchangeRepl.exe) e ao Active Manager. O processo do controlador, os processos de trabalho e o serviço de replicação funcionam juntos para fornecer maior disponibilidade e confiabilidade, conforme descrito na lista a seguir:

  • Processo de serviço de Replicação do Microsoft Exchange (MSExchangeRepl.exe):

    • Responsável pela emissão de operações de montagem e desmontagem para a Loja.

    • Inicia a ação de recuperação sobre falhas de armazenamento ou banco de dados relatadas pela Loja, pelo Mecanismo de Armazenamento Extensível (ESE) e pelos respondentes de Disponibilidade Gerenciada.

    • Detecta falhas inesperadas no banco de dados.

    • Fornece a interface administrativa para tarefas de gerenciamento.

  • Processo/controlador de serviço de armazenamento (Microsoft.Exchange.Store.Service.exe):

    • Gerencia cada tempo de vida do processo de trabalho com base nas operações de montagem e desmontagem recebidas do serviço de Replicação.

    • Manipula solicitações de entrada do Gerenciador de Controle de Serviços do Windows.

    • Registra itens de falha ao armazenar problemas de processo de trabalho detectados (por exemplo, travamento ou saída inesperada).

    • Encerra os processos de trabalho do repositório em evento de failover de resposta.

  • Processo de trabalho da loja (Microsoft.Exchange.Store.Worker.exe)

    • Responsável pela execução de operações RPC para caixas de correio em um banco de dados.

    • A instância de ponto de extremidade do RPC no processo de trabalho é o GUID do banco de dados.

    • Fornece cache de banco de dados para um banco de dados.

Algoritmo de cache de banco de dados estático

A Loja Gerenciada usa um algoritmo simples e simples para determinar o cache de banco de dados em comparação com a alocação de buffer dinâmico usada nas versões anteriores do Exchange. A memória alocada para cada cache de banco de dados (ou seja, cada processo de trabalho do repositório) é baseada no número de cópias de banco de dados local e no valor configurado do parâmetro MaximumActiveDatabases no cmdlet Set-MailboxServer (o valor padrão é $null ou em branco). Se o valor de MaximumActiveDatabases for maior que o número de cópias de banco de dados atuais, o cálculo do cache será baseado no número de cópias de banco de dados.

O algoritmo estático aloca memória para o cache ESE de cada processo de trabalho do repositório com base na quantidade de RAM física instalada no servidor. Isso é encaminhado para o Destino máximo de cache do banco de dados. 25% da memória total do servidor é alocada para o cache ESE e é chamada de Destino de Tamanho do Cache do Servidor.

Observação

Você pode substituir o Destino de Tamanho do Cache do Servidor e, portanto, a quantidade de memória alocada no cache Store for ESE usando msExchESEParamCacheSizeMax o atributo do objeto InformationStore no Active Directory (o valor configurado é o número de 32 páginas KB a serem alocadas em todos os processos de armazenamento).

Uma quantidade estática desse cache é alocada para cópias ativas e passivas. O processo de trabalho do repositório é alocado somente no Destino máximo do Cache ao atender uma cópia de banco de dados ativo. As cópias de banco de dados passivo são alocadas em 20% do Destino máximo do Cache. O restante é reservado pela Loja e alocado para o processo de trabalho se o banco de dados passar de passivo para ativo.

O Destino máximo do Cache é calculado apenas na inicialização da Loja. Portanto, se você adicionar ou remover bancos de dados ou cópias de banco de dados, será necessário reiniciar o serviço de controlador da Loja (MSExchangeIS) para que o cache possa ser ajustado de acordo. Se o serviço não for reiniciado, novos bancos de dados terão um destino de tamanho de cache menor do que os bancos de dados existentes antes da última inicialização de serviço. Nesse cenário, a soma de destinos de tamanho de cache de banco de dados provavelmente excederá o Destino de Tamanho do Cache do Servidor até que o MSExchangeIS seja reiniciado.

Exemplo de cálculos de cache de banco de dados

Aqui estão os cálculos de cache de banco de dados de exemplo que se baseiam na configuração de memória e banco de dados de um servidor de caixa de correio.

Exemplo 1

Configuração do servidor de caixa de correio:

  • 48 GB de memória

  • Dois bancos de dados ativos e dois bancos de dados passivos

  • Parâmetro MaximumActiveDatabases : não configurado

A quantidade de cache de banco de dados é de 3 GB para cada processo de trabalho de cópia de banco de dados ativo e 0,6 GB para cada processo de trabalho de cópia de banco de dados passivo. Veja como esses valores são calculados:

  • Destino tamanho do cache do servidor: 25% da quantidade de memória: 48 GB * 0,25 = 12 GB.

  • Destino máximo de cache do banco de dados: divida o Destino de Tamanho do Cache do Servidor pelo número total de bancos de dados ativos e passivos: 12 GB / 4 bancos de dados = 3 GB.

  • Memória usada para cópias de banco de dados passivo: 20% do Destino de Cache Máximo do Banco de Dados: 3 GB * 0,20 = 0,6 GB.

Dos 12 GB de memória atribuídos ao Destino de Tamanho do Cache do Servidor:

  • 7,2 GB estarão em uso por processos de trabalho de banco de dados.

  • 4,8 GB serão reservados pela Repositório de Informações para as duas cópias de banco de dados passivo caso se tornem cópias ativas. Se isso acontecer, eles usarão o destino máximo do cache de 3 GB.

Exemplo 2

Configuração do servidor de caixa de correio:

  • 48 GB de memória

  • Dois bancos de dados ativos e dois bancos de dados passivos

  • Parâmetro MaximumActiveDatabases : 2

A quantidade de cache de banco de dados é de 5 GB para cada processo de trabalho de cópia de banco de dados ativo e 0,2 GB para cada processo de trabalho de cópia de banco de dados passivo. Veja como esses valores são calculados:

  • Destino tamanho do cache do servidor: 25% da quantidade de memória: 48 GB * 0,25 = 12 GB.

  • Destino máximo do cache do banco de dados: divida o Destino de Tamanho do Cache do Servidor pela soma de:

    • O número de bancos de dados ativos

    • 20% do número de bancos de dados passivos

    12 GB / (2A + (2P * 0,20)) = 5 GB

  • Memória usada para cópias de banco de dados passivo: 20% do Destino de Cache Máximo do Banco de Dados: 5 GB * 0,20 = 1 GB.

Dos 12 GB de memória atribuídos ao Destino de Tamanho do Cache do Servidor:

  • 12 GB estarão em uso por processos de trabalho de banco de dados

  • Nenhuma memória será reservada pela Repositório de Informações para as duas cópias de banco de dados passivo porque elas não podem se tornar cópias ativas (MaximumActiveDatabases está configurada com um valor de 2 e já há duas cópias de banco de dados ativos no servidor).