Sumário
MRS – Customizando métricas para move mailbox - Parte 02
Introdução
Umas das tarefas mais interessantes para se praticar com Exchange Server, com certeza é a migração de plataforma. Muitos clientes que possuem a plataforma Exchange Server 2007 estão migrando para o Exchange Server 2010, enfim, mas
o que quero dizer é, precisaremos executar milhares de move-mailbox.
Por várias vezes visualizei ambientes enormes, hardware poderosos, DC’s em x64 dentre outros poderosos itens de hardware, porém seus administradores, não conheciam o
MRS Configuration File e com isto não conseguiam expandir o poder de migração de seus servidores, sendo assim geravam imensas filas de aguardo (QUEUE) e as migrações eram lentas e levavam muito tempo para serem finalizadas.
Porque isto acontece? Ao trabalharmos com os valores no modelo Default do MRS Configuration File, somos limitados pela configuration do MRS (Mailbox Replication Service), para isto vamos customizar o MRS Configuration File.
Onde encontro o MRS Configuration File?
O arquivo de configuração do MRS (Mailbox Replication Service) esta disponível dentro dos servidores CAS (Client Access Server), no seguinte local:
“Unidade”:\Program Files\Microsoft\Exchange Server\V14\Bin
Na imagem abaixo podemos visualizar o diretório default para o MRS Configuration File.
Dentro do diretório localize o arquivo idêntico ao selecionado na imagem demonstrada acima, o nome do arquivo do MRS é MSExchangeMailboxReplication.exe.Config.
Nota: Quando visualizar o arquivo por default o nome do arquivo estará como MSExchangeMailboxReplication.exe, porém ao visualizar a coluna TYPE poderá visualizar que este arquivo é um arquivo CONFIG File e não um executável.
Como editar o MRS Configuration File?
Primeiro lugar você precisa entender com o MRS Configuration File funciona, baseado no arquivo MSExchangeMailboxReplication.exe.Config podemos editar este arquivo, preferencialmente com o Notepad.
Após abrir o MSExchangeMailboxReplication.exe.Config com o notepad, podemos dividir o arquivo em três partes:
- Códigos do MRS (XML code)
- Instruções de Customização do MRS
- Valores do MRS
Vamos focar nossa atenção nas duas últimas opções, sendo assim abaixo existe um exemplo de Instrução de Customização do MRS, logo abaixo:
Exemplo de Instrução de Customização do MRS
MRS Configuration File
<!-- Mailbox Replication Service configuration
Setting Name - Default, MinValue, MaxValue
MaxRetries - 60, 0, 1000
MaxCleanupRetries - 5, 0, 100
RetryDelay - 00:00:30, 00:00:10, 00:30:00
MaxMoveHistoryLength - 2, 0, 100
<:0cm;"> MRS Configuration File<!-- Mailbox Replication Service configuration
Setting Name - Default, MinValue, MaxValue
MaxRetries - 60, 0, 1000
MaxCleanupRetries - 5, 0, 100
RetryDelay - 00:00:30, 00:00:10, 00:30:00
MaxActiveMovesPerSourceMDB - 5, 0, 100
MaxActiveMovesPerTargetMDB - 2, 0, 100
MaxActiveMovesPerSourceServer - 50, 0, 1000
MaxActiveMovesPerTargetServer - 5, 0, 1000
MaxTotalMovesPerMRS - 100, 0, 1024
FullScanMoveJobsPollingPeriod - 00:10:00, 00:03:00, 1.00:00:00
MinimumTimeBeforePickingJobsFromSameDatabase - 00:00:04, 00:00:00, 01:00:00
ServerCountsNotOlderThan - 00:10:00, 00:00:00, 01:00:00
MRSAbandonedMoveJobDetectionTime - 01:00:00, 01:00:00, 12:00:00
BackoffIntervalForProxyConnectionLimitReached - 00:30:00, 00:00:30, 1.00:00:00
DataGuaranteeCheckPeriod - 00:00:10, 00:00:01, 02:00:00
DataGuaranteeTimeout = 00:30:00, 00:00:00, 12:00:00
DataGuaranteeLogRollDelay = 00:01:00, 00:00:00, 12:00:00
EnableDataGuaranteeCheck = false, false, true
DisableMrsProxyCompression = false, false, true
DisableMrsProxyBuffering = false, false, true
MinBatchSize = 100, 2, 1000
MinBatchSizeKB = 256, 16, 16384
-->
Neste exemplo podemos visualizar as seguintes informações: nome da configuração, valor default, valor minímo e valor máximo das configurações.
Baseado nestes valores podemos estudar o melhor cenário para nossa implementação e fazer as configurações de acordo com nossa necessidade.
Customizando valores do MRS
Agora que conhecemos os valores que o MRS nos dá suporte, podemos customizar estes valores, para termos uma migração Move-Mailbox mais performática e principalmente estável. Vale ressaltar que conhecer o hardware para o qual a solução foi especificada é pré-requisito para que você tenha sucesso em sua implementação.
No exemplo acima, podemos visualizar vários valores, porém gostaria de destacar algumas variáveis que deverão ser alteradas para termos um processo melhor.
Nome da Propriedade |
Descrição |
|
MaxRetries |
Esta propriedade especifica o número máximo de vezes que o MRS irá tentar executar uma tarefa depois de encontrar uma falha. Pode-se especificar um valor de 0 a 1000. O valor padrão é 60 |
|
RetryDelay |
Esta propriedade especifica a quantidade de tempo que o MRS irá esperar, antes de tentar executar uma tarefa novamente após uma falha. Pode-se especificar um valor de 0:00:10 (10 segundos) até 0:30:00 (30 minutos). O valor padrão é 0:00:30 (30 segundos). |
|
MaxMoveHistoryLength |
Esta propriedade especifica o número máximo de histórico que será mantido dentro da caixa postal no momento da movimentação. Pode-se especificar um valor de 0 a 100. O valor padrão é de 02 para o histórico. |
|
MaxActiveMovesPerSourceMDB |
Esta propriedade especifica o número total de tarefas que o MRS poderá realizar ao mesmo tempo em um Database de Origem simultaneamente. O valor padrão é 05, mas podemos especificar valores na range de 0 à 100. |
|
MaxActiveM8%;">
Esta propriedade especifica o número máximo de histórico que será mantido dentro da caixa postal no momento da movimentação. Pode-se especificar um valor de 0 a 100. O valor padrão é de 02 para o histórico. |
||
MaxActiveMovesPerSourceMDB |
Esta propriedade especifica o número total de tarefas que o MRS poderá realizar ao mesmo tempo em um Database de Origem simultaneamente. O valor padrão é 05, mas podemos especificar valores na range de 0 à 100. |
|
|
Esta propriedade especifica o número total de tarefas que o MRS poderá realizar ao mesmo tempo em um Database de Destino simultaneamente. O valor padrão é 02, mas podemos especificar valores na range de 0 à 100. |
|
MaxActiveMovesPerSourceServer |
Esta propriedade especifica o número total de tarefas MRS pode realizar, que incluem o servidor como origem de dados. Você pode especificar um valor de 0 a 1000. O valor padrão é de 50 movimentos simultâneos. |
|
MaxActiveMovesPerTargetServer |
Esta propriedade especifica o número total de tarefas MRS pode realizar, que incluem o servidor como destino de dados. Você pode especificar um valor de 0 a 1000. O valor padrão é de 50 movimentos simultâneos. |
|
MaxTotalMovesPerMRS |
Esta propriedade especifica o número total de tarefas que uma única instância do MRS pode executar de cada vez. Você pode especificar um valor de 0 a 1000. O valor padrão é 100 movimentos simultâneos. |
|
FullScanMoveJobsPollingPeriod |
Esta propriedade especifica quantas vezes cada instância da MRS verifica se existem novas tarefas de trabalho. Você pode especificar um valor de no mínimo 00:03:00 (3 minutos), até o valor máximo de 1.00:00:00 (1 dia). O valor padrão é 0:10:00 (10 minutos). |
Exemplo de Customização do MRS
Os valores no exemplo abaixo foram customizados baseados nas seguintes variáveis:
- Processamento dos Servidores (Ambiente Novo e Ambiente Antigo)
- Memória dos Servidores (Ambiente Novo e Ambiente Antigo)
- Disco / Storage dos Servidores (Ambiente Novo e Ambiente Antigo)
- Número de Servidores CAS (Ambiente Novo)
- Tamanho médio de Caixas Postais a serem migradas (Ambiente Antigo)
Baseado nas variáveis acima, podemos pré-estipular quais campos deverão ser modificados para termos uma maior performance no move-mailbox.
Nota: Quando fizer uma alteração em um MRS configuration File, cuide para que todos os servidores CAS deste mesmo site, tenham a mesma configuração.
MRS Configuration File
<MRSConfiguration
MaxRetries = "60"
MaxCleanupRetries = "5"
MaxStallRetryPeriod = "00:15:00"
RetryDelay = "00:00:30"
MaxMoveHistoryLength = "2"
MaxActiveMovesPerSourceMDB = "150"
MaxActiveMovesPerTargetMDB = "150"
MaxActiveMovesPerSourceServer = "500"
MaxActiveMovesPerTargetServer = "500"
MaxTotalMovesPerMRS = "400"
FullScanMoveJobsPollingPeriod = "00:03:00"
MinimumTimeBeforePickingJobsFromSameDatabase = "00:00:04"
ServerCountsNotOlderThan = "00:10:00"
MRSAbandonedMoeServer = "500"
MaxActiveMovesPerTargetServer = "500"
MaxTotalMovesPerMRS = "400"
FullScanMoveJobsPollingPeriod = "00:03:00"
MinimumTimeBeforePickingJobsFromSameDatabase = "00:00:04"
BackoffIntervalForProxyConnectionLimitReached = "00:30:00"
DataGuaranteeCheckPeriod = "00:00:10"
DataGuaranteeTimeout = "00:30:00"
DataGuaranteeLogRollDelay = "00:01:00"
EnableDataGuaranteeCheck = "true"
DisableMrsProxyCompression = "false"
DisableMrsProxyBuffering = "false"
MinBatchSize = "100"
MinBatchSizeKB = "256" />
</configuration>
Após estas configurações não esqueça todos os servidores CAS dentro deste mesmo site, deverão ter os valores configurados idênticos.
O arquivo pode ser alterado e após isto o MRS entenderá os novos valores customizados e irá trabalhar com as alterações efetuadas.
Até mais,
Rover Marinho
Twitter: @rovermarinho
Blog: http://rovermarinho.wordpress.com