Artigo original publicado segunda-feira, 20 de fevereiro de 2012
Depois de nosso recente anúncio da liberação do Rollup 1 de Atualização para o Exchange 2010 Service Pack 2, você verá que liberamos várias correções e eu gostaria de falar sobre uma especificamente e, talvez ao mesmo tempo, fornecer algum background sobre como problemas como esses surgem e como os corrigiremos.
A correção específica é uma mencionada como 2556113, com o título Demora muito tempo para um usuário fazer download de um OAB em uma organização do Exchange Server 2010.
Como um título como esse, você pode pensar que nós simplesmente descobrimos uma maneira de fazer downloads ‘mais rápidos’ do OAB. Talvez você comece a achar que nós fizemos isso simplesmente excluindo aleatoriamente alguns dos usuários no OAB, aqueles que você não conhece, as pessoas que trabalham na contabilidade no quarto andar, por exemplo. Talvez tenhamos tentado reduzir os detalhes que incluímos no OAB, talvez simplesmente removendo informações desnecessárias como nomes de família, localização de escritórios ou números de telefone. Ou talvez nós simplesmente aumentamos a velocidade da Internet. Porque isso é realmente fácil.
Bem, nós não fizemos nada isso; (embora estejamos pesquisando em toda a Internet para ver o que podemos fazer a respeito, já que soa assustador) em vez disso, nós adicionamos uma lógica para assegurar que o Outlook tente fazer download do OAB de um CAS mais próximo de si mesmo.
“Por quê?” você pergunta. Bem, é uma boa pergunta e eu respondo com “Como diz o artigo KB, ‘Considere o seguinte cenário….”
Neste cenário, demora muito tempo para fazer download do OAB.
Bem, sim. Sem brincadeira. Realmente pode demorar. Se você tiver um OAB grande, pode realmente demorar muito tempo. Mas vamos expandir um pouco o cenário, já que francamente há algumas informações que eu acho que você deve conhecer e ter um site AD sem nada nele a não ser um CAS não parece algo muito inteligente para a maioria das pessoas.
Sendo assim, considere este cenário mais detalhado;
Com sorte, você pode ver que todos vocês estão competindo pela mesma largura de banda, enquanto também tentam trabalhar e, apesar da tecnologia do cliente BITS usada para os downloads do OAB ser boa, ela não irá ajudá-lo muito.
Então, você adiciona um CAS a cada local remoto. Na verdade, como o diagrama detalhado em http://technet.microsoft.com/en-us/library/bb232155.aspx sugere. A ideia é que o computador cliente fará download do OAB que precisa do CAS local. Bem, isso pode parecer uma grande ideia – mas não é assim que o Exchange tem funcionado. Antes do 2010 SP2 RU1 que é…
Para responder à primeira pergunta, a URL que o cliente usa para fazer download do OAB é fornecida para o cliente pelo serviço AutoDiscover. E o código AutoDiscover sempre selecionou uma URL para o OAB que você deve estar transferindo por download do site AD no qual está sua caixa postal, não o site AD no qual está seu computador cliente.
Para responder à segunda pergunta, primeiro você deve entender que a TechNet nunca está errada (meus amigos na UE, como Scott Schnoll, sentem profundamente se você disser que seus artigos estão incorretos). É que apenas, algumas vezes, ela não está certa de um determinado ponto de vista. A TechNet detalha isso, já que fazia parte da especificação de PM original quando o 2007 estava sendo projetado. Provavelmente, eu não deveria ter dito isso a você, mas era. E isso não foi feito. Essas coisas acontecem em um produto de software com mais de 20 milhões de linhas de código quando as coisas mudam o tempo todo. A TechNet geralmente não mente. Bem, não muito.
Voltemos ao funcionamento. Pense sobre isso um momento. Você tem um OAB de 1 GB. E adiciona uma réplica desse OAB a um CAS no site AD remoto e distante, onde estão os usuários. No entanto, eles nunca o utilizam. (Ok, a não ser que suas caixas postais também estejam no mesmo site AD, mas não é este o cenário, é?). Esse tipo de coisa não funciona. Sim, funciona, ouço você dizer. É um pouco parecido com este diagrama.
O Outlook usa o CAS mais próximo do computador cliente para as solicitações AutoDiscover do cliente (bem, ele deve e nós voltaremos nisso em breve), mas a URL do OAB retornada é para o CAS no mesmo site AD que a caixa postal. Então, apesar de estarmos replicando o OAB para o Site AD B, o cliente pega o OAB do Site AD A.
Um cliente grande com muitos sites pequenos e um OAB enorme nos diz que isso não vai funcionar e que os downloads estão acabando com a largura de banda WAN que ele tem. O que podemos fazer em relação a isso? Parece que há algumas maneiras de resolver isso e tenho que dizer que esta é uma das partes divertidas do meu trabalho, tentar descobrir esse tipo de coisa. É coisa de nerd.
Volte apenas alguns parágrafos para a sentença que dizia “O Outlook usa o CAS mais perto do computador cliente para as solicitações AutoDiscover do cliente”, aquele para o qual eu disse que voltaria. Vale a pena retornar por causa de algo chamado AutoDiscoverServiceSiteScope.
AutoDiscoverServiceSiteScope é uma configuração do CAS que ajuda o cliente do Outlook a mapear sites AD para o CAS para localizar o CAS mais perto para o cliente parea as solicitações AutoDiscover. Ele faz isso buscando os Service Connection Points (SCPs), que, na verdade, são ponteiros para o serviço AutoDiscover.
Ele funciona da seguinte maneira. Quando um cliente do Outlook inicializa, ele passa para o triângulo, algumas vezes, conhecido como ‘AD’ e procura todos os SCPs colocados lá pela configuração do Exchange. Localiza muitos (esperamos) e em cada um há um atributo, o atributo Keywords, que é configurado/alterado/algumas vezes confundido pelo uso de Set-ClientAccessServer –AutoDiscoverServiceSiteScope: ADSiteNameA, ADSiteNameB, etc. O atributo Keywords é usado para especificar por quais sites AD este CAS é responsável, para solicitações AutoDiscover.
Quando o cliente do Outlook localiza mais de um SCP, ele mesmo faz uma lista dos SCPs utilizáveis comparando o valor armazenado no atributo Keywords com seu próprio site AD (que é dinamicamente atualizado pelo serviço Netlogon local, quando ele inicializa ou muda o endereço IP).
Ele, então, faz uma lista. Tudo aquilo que corresponde ao seu site AD (em que o atributo Keywords = Site AD do cliente) ou, se não houver nada, ele coloca cada SCP na lista. Esses são os servidores que ele pode usar para suas solicitações AutoDiscover.
Depois, ele começa no topo da lista (que está sempre na mesma ordem, por data de instalação) e tenta conectar à URI contida no atributo ServiceBindingInformation – que é o local do serviço AutoDiscover em si. Ele lança o XML, obtém uma resposta, etc. e vive feliz para sempre. Mais detalhes sobre o AutoDiscover podem ser encontrados aqui.
Por que isso é interessante? O AutoDiscoverServiceSiteScope ajuda o Outlook a localizar o CAS mais perto do local do cliente, supondo que o administrador configurou corretamente os escopos do site (e nós realmente falamos aos administradores como fazer isso). Assim, nós não precisamos descobrir qual CAS está mais perto do cliente já que temos a solicitação, como já aconteceu quando a solicitação atingiu o CAS.
Depois que a solicitação atinge o CAS, nós descobrimos as configurações a serem retornadas ao cliente – mas sempre esquecemos de uma coisa – que o OAB que o usuário precisa pode ser local para o CAS no qual estamos executando a solicitação e, em vez disso, nós sempre demos ao usuário uma URL de um CAS. E é isso que precisamos corrigir.
Portanto, a solução para isso é teoricamente muito simples e significa que não temos que inventar uma nova maneira de descobrir o CAS mais perto do cliente, uma vez que já temos um que funciona muito bem.
Se tivermos que supor que o administrador configurou o AutoDiscoverServiceSiteScope corretamente, o CAS ao qual o cliente se conecta para o AutoDiscover será o CAS mais perto do cliente. Se a suposição for verdadeira, o CAS, ao descobrir o que retornar no XML do AutoDiscover, deve simplesmente verificar se ele mesmo tem uma cópia do OAB que o usuário deve estar usando – e, se tiver, ele apenas fornece sua própria URL do OAB. Não aquela para um CAS no site AD no qual está localizada a caixa postal do usuário. Naturalmente, se ele não tiver uma cópia do OAB que o usuário precisa, o comportamento antigo deverá prevalecer, o que significa que o CAS retornará a URL do OAB de um CAS no site AD da Caixa postal.
Basicamente, a figura é semelhante ao seguinte;
Agora é muito mais fácil para a WAN, não é? Uma cópia é replicada na WAN e todos os clientes no local terão o OAB do local do CAS para eles.
O que você tem que fazer para ter este novo comportamento para discutir? Apenas duas coisas. Implementar o SP2 RU1 no CAS e assegurar que seus parâmetros AutoDiscoverServiceSiteScope sejam configurados corretamente.
Espero que ache isso útil e que sua WAN possa ser sempre um long fat pipe.
Greg Taylor Principal Program Manager Exchange Customer Experience
Esta é uma postagem em blog localizado. Localize o artigo original em It Takes a Long Time…