Você está na página 1de 6

Criando um Cluster de Network Load Balancing em Windows Server 2003

Por Andr Ricardo Torriri


Links Relacionados

Aplica-se a:
Windows Server 2003 Standard Edition Windows Server 2003 Enterprise Edition Windows Server 2003 Datacenter Edition Windows Server 2003 Web Edition

http://www.brianmadden.com/conte nt/content.asp?ID=278 http://technet.microsoft.com/ptbr/default.aspx Help and Support do Windows 2003

Viso Geral
Dentre as varias formas de configurao de um sistema com alta-disponibilidade, duas se destacam independente da plataforma a qual operam: Server Clustering: Trata-se de um conjunto de mquinas operando como se fosse um nico equipamento. Cada Server participante de um Server Cluster conhecido como n (node). As aplicaes so distribudas entres os ns de maneira balanceada e a parada de um n do Cluster no implica na parada da aplicao. Esse tipo de implementao exige a configurao de uma unidade de armazenamento externo, conhecida como storage, onde ficam concentradas todas as informaes e que ficam disponveis para todos os ns do Cluster de forma transparente. Por esse motivo esse tipo de Cluster tem um custo elevado e, alm disso, pode apenas ser configurado nas verses Enterprise e Datacenter do Windows Server 2003. Network Load Balancing: O Balanceamento de Carga de Rede, termo em portugus, difere-se do primeiro modo de Server Clustering uma vez que o balanceamento no exige um dispositivo de storage e pode ser configurado em qualquer verso do Windows Server 2003. Veja bem, como o prprio nome diz, todo o calculo para executar o balanceamento de carga feito no nvel de rede (network load), sendo assim, um consumo excessivo de CPU, Memria ou qualquer outra interface de hardware no ser medida com essa configurao. Por tratar-se de uma soluo com um custo benefcio bastante interessante, vamos discutir os principais pontos para a configurao desse mecanismo de H.A. (High Availability).

Como o NLB (Network Load Balancing) funciona?


Vamos imaginar que voc tenha uma aplicao como um site web de e-commerce ou um servidor de Terminal Server o qual a sua parada por determinado tempo implique em prejuzo financeiro. Como tornar o downtime dessa aplicao o mais curto possvel? Outro desafio que sempre assola o departamento de TI fazer mais por um custo menor. Para esses e alguns outros casos temos o NLB. Observe na figura 1.a uma configurao do NLB com trs servidores web executando o IIS 6.0 oferecendo balanceamento e disponibilidade de uma aplicao de e-commerce. Toda a requisio de acesso ao site de e-commerce feito atravs de um IP virtual (Virtual Address IP) que est fixado em todos os ns do Cluster. O Software residente analisa qual Server tem a menor carga de rede naquele momento, quantos ns fazem parte desse Cluster, e em seguida direciona para o equipamento mais livre (idle).

Virtua Address IP 10 .1.2.4 Cliente Cliente

10 .1.2.1

10 .1.2.2

10 .1.2.3

Figura 1.a Configurao do NLB para trs web servers de e-commerce. Quando voc configura o NLB, o IP virtual atribudo a todos os ns participantes do Cluster. Esse IP virtual possui tambm seu prprio MAC Address Virtual. Dependendo do modo de operao do Cluster esse MAC virtual vai substituir o MAC da interface de rede fsica ou ento ser apenas adicionado ao equipamento, mantendo o MAC original. O NLB possui dois modos de operao: Unicast Mode e Multicast Mode. Cada modo tem suas vantagens e desvantagens. Alm disso, devido configurao do MAC virtual, o mecanismo de funcionamento diferente se voc possui uma nica placa de rede ou se possui mais de uma placa de rede em um mesmo equipamento. Veja abaixo a descrio de cada um deles: Unicast Mode com uma placa de rede: Nessa configurao o MAC original da placa fsica substitudo pelo MAC virtual. A principal vantagem que nenhum hardware adicional necessrio e no h problemas de compatibilidade com roteadores. Uma vez que o MAC original substitudo pelo MAC virtual, toda comunicao entre os ns participantes do Cluster que no seja relativa ao heartbeat fica impossibilitada, j que todos os ns do Cluster compartilham o mesmo MAC virtual. Outro detalhe que a comunicao Cluster Clients e entre os ns do Cluster utilizaro a mesma interface, o que pode comprometer o desempenho de rede. Unicast Mode com duas placas de rede: As duas desvantagens citadas no cenrio anterior, que a perca de comunicao entre os ns e a defasagem no desempenho de rede, desaparecem nesse cenrio. Alm disso, a compatibilidade com qualquer roteador mantida. A nica desvantagem dessa soluo que se torna obrigatrio o hardware adicional. Multicast Mode com uma placa de rede: Nessa configurao o MAC original da placa fsica mantido e o MAC virtual adicionado no equipamento. No requer hardware adicional e a comunicao nonheartbeat possvel. O problema que nem todos os roteadores suportam multicast MAC address e que o trfego tambm dividido entre a comunicao intra-cluster e entre o Cluster e os clientes da rede. Multicast Mode com duas placas de rede: A comunicao non-heartbeat possvel e o desempenho de rede melhorado devido diviso do trfego entre as interfaces. Requer hardware adicional e pode apresentar problemas com alguns roteadores.

Configurao do NLB em poucos passos.


Vamos agora partir para a configurao do NLB efetivamente. Vamos usar o exemplo do tpico anterior onde configuramos um balanceamento de carga para um conjunto de Servidores Webs. Em primeiro lugar devemos preparar nosso laboratrio. Por padro, apenas a verso Web Edition do Windows Server 2003 tem o IIS (Internet Information Services) instalado, sendo assim, se voc estiver utilizando outra verso do Windows, siga os passos abaixo para instalar esse componente. Esses passos devem ser executados em todos os Servidores que faro parte do nosso Cluster: Obs.: Os procedimentos foram criados baseados no Windows Server 2003 em ingls. 1) Instalao do IIS a. Clique em Start / Run e digite appwiz.cpl ; b. Clique em Add/Remove Windows Components; c. Clique em Application Server e em seguida em Details; d. Selecione Internet Information Services e em seguida OK e. Clique em Next e por ltimo em Finish; Agora vamos criar um documento padro que ser carregado toda vez que acessarmos o nosso Servidor Web: 2) Criao do Default.htm V at C:\Inetpub\wwwroot\ e crie um arquivo com o contedo abaixo e salve-o com o nome de Default.htm

<html> <body> <h1><marquee> SERVER01 (10.1.2.1) </marquee></h1> </body> </html>


Para cada Servidor participante do nosso laboratrio crie esse arquivo e modifique somente os campos com o nome e o IP do Servidor. Isso vai servir para ilustrarmos melhor os testes do nosso Cluster. Se voc j tem uma estrutura de resoluo de nomes implementada, como DNS ou WINS, voc pode ignorar a etapa 3 e apenas criar as devidas entradas no aplicativo de gerenciamento da sua soluo para resoluo de nomes. Aqui, vamos criar uma estrutura de resoluo de nomes baseada no arquivo hosts de cada mquina apenas para executarmos os testes. altamente recomendvel que no ambiente de produo voc utilize outro mtodo como os citados anteriormente para o processo de resoluo de nomes. Faa o seguinte:

3) Modificao no arquivo HOSTS: a. V at a pasta C:\WINDOWS\system32\drivers\etc e abra o arquivo hosts com o aplicativo NOTEPAD. b. Insira as entradas para todos os Servidores participantes do nosso laboratrio da seguinte forma: 10.1.2.1 10.1.2.2 10.1.2.3 server01.nwtraders.msft server02.nwtraders.msft server03.nwtraders.msft

c. Alm de criar as entradas para todos os hosts em particular, crie uma entrada que ser para acesso ao endereo do Cluster (Virtual Address IP). Para o nosso exemplo vamos criar a seguinte entrada: 10.1.2.4 d. Saia e salve as alteraes. e. Copie esse arquivo para os outros Servidores e para alguma estao na rede que utilizaremos para testes. f. Nesse momento j deve ser possvel efetuar um ping entre as mquinas utilizando seus nomes. Alm disso, teste o acesso s pginas criadas anteriormente utilizando o browser Internet Explorer: http://nome_do_servidor . Voc deve visualizar a pgina de teste criada no passo 2. Caso no funcione volte e reveja os procedimentos. www.nwtraders.msft

Pronto. J temos a estrutura do nosso laboratrio montada. Agora vamos partir para a verdadeira diverso. Optamos por montar um Cluster NLB no modo Multicast com apenas uma placa de rede. A maioria dos passos descritos aqui se aplica tambm ao modo Unicast com apenas algumas alteraes. Vamos iniciar configurando nosso primeiro Servidor. Faa logon com um usurio com poderes de Administrador. A ferramenta de configurao do Cluster que vamos utilizar o Network Load Balancing Manager, disponvel no menu Administrative Tools .Outra forma de acessa-lo clicar em Start / Run e digitar nlbmgr . Essa ferramenta possui trs painis O painel superior esquerdo exibe todos os Clusters disponveis para configurao. O painel superior direito exibe os ns participantes do Cluster selecionado assim como uma descrio do estado (status) do n. E por ltimo, no painel inferior, esto todos os eventos registrados no Cluster desde o momento do start do gerenciador. 4) Configurando o primeiro n: a. Clique no menu Cluster e selecione New; b. Em IP Address digite o IP que ser atribudo ao Cluster. Esse se trata do IP Virtual descrito anteriormente. importante que nenhum outro equipamento na rede esteja utilizando esse IP. Para o nosso exemplo digitamos 10.1.2.4 c. Atribua o Subnet Mask de acordo com sua classe de rede. No nosso exemplo: 255.0.0.0

d. Em Full Internet name coloque o endereo escolhido para acesso ao cluster. No nosso exemplo ser www.nwtraders.msft. Esse ser o endereo que os usurios faro acesso ao Cluster. e. Em Cluster Operation Mode selecione Multicast;

f.

Selecione o check box Allow remote control e clique em Yes na janela que aparece. Insira uma senha para acesso remoto e confirme a senha digitada. Clique em Next.

g. Na prxima tela possvel configurar outros endereos para o Cluster, ou seja, outros Virtual Address IP. Apenas clique em Next. h. A prxima tela a que define quais Servios sero tratados pelo Cluster. Por padro todas as requisies feitas ao Cluster sero tratadas pelo Load Balancing. interessante modificarmos esse comportamento e deixarmos que o Cluster trate apenas aquilo que for desejado. Para o nosso exemplo faremos o seguinte: i. Clique no boto Remove para excluir a regra padro; ii. Clique no boto Add para criar uma nova regra; iii. No campo Port range digite 80 no campo From e no campo To. Se voc estivesse, por exemplo, configurando o NLB para o Terminal Server, nesse campo voc adicionaria a porta 3389. Para saber qual(is) porta(s) os servios de rede utilizam, abra o arquivo services que est dentro do mesmo diretrio do arquivo hosts. Ao trmino clique em OK e em seguida em Next. i. Selecione o primeiro n participante do Cluster. Digite o nome do Servidor no campo Host e Clique em Connect. Sero listadas todas as interfaces de rede do Servidor. No nosso exemplo temos apenas uma interface. Selecione a mesma e clique em Next. Na ltima tela mantenha a configurao sugerida e clique em Finish. Aguarde at a operao ser concluda completamente. Se tudo ocorreu bem, voc ver no painel superior direito, na coluna status, indicando que o Servidor est em modo Converged. Caso algo tenha apresentado problema, reveja os passos anteriores.

j.

Para testarmos, a partir da estao que voc copiou o arquivo hosts criado no passo dois, execute o comando ping para o endereo IP atribudo ao Cluster. Em seguida, tente fazer o mesmo procedimento para o endereo IP original da placa do Servidor. Por ltimo, abra o Internet Explorer e acesse o endereo do Cluster como se estivesse acessando um site da Web. No nosso exemplo digitamos: http://www.nwtraders.msft. Voc pode tambm acessar a pgina do Servidor utilizando o endereo individual do mesmo no Internet Explorer: http://server01.nwtraders.msft . At aqui temos o nosso Cluster montado com apenas um n. Agora vamos adicionar o segundo n para que a nossa soluo fique completa. Para fazer isso siga os passos abaixo. 5) Configurando o segundo n: a. Ainda na tela do NLB Manager, clique com o boto direito no nome do Cluster e selecione a opo Add Host to Cluster. A janela que se abre voc j conhece pois j utilizou-a quando estava criando o primeiro n; b. No campo Host digite o nome do segundo Servidor que far parte do nosso Cluster e clique em Connect. Selecione a interface de rede que voc vai utilizar no Cluster e clique em Next; c. Na prxima tela no altere nada e apenas clique no boto Finish. Aguarde at que o novo Host seja convergido e adicionado ao nosso Cluster. Pronto, o nosso Cluster agora est completo. O procedimento para adicionar mais Servidores ao nosso NLB mesmo

citado anteriormente. O limite de Servidores que podem ser adicionados a essa soluo 32, mas antes de atingir esse limite, preciso fazer uma avaliao para saber se no melhor trocar dois hardware defasados por um hardware mais poderoso. Se desejar fazer mais testes voc pode executar paradas na mquina principal, aquela que ns configuramos primeiro, e verificar se quando voc tentar acessar a pgina atravs do browser ele redirecionado automaticamente para o segundo Servidor. Lembre-se que o endereo a ser digitado no Internet Explorer http://www.nwtraders.msft pois esse o endereo do Cluster. Note que se voc tentar acessar o endereo original do Servidor ele no responder. Outro detalhe que quando a mquina principal retornar on-line ela voltar com o status de primria novamente. O utilitrio Network Load Balancing Manager pode ser instalado tambm em uma estao MS Windows XP. Voc pode faz-lo atravs das ferramentas de suporte adicionais que acompanham os CDs de instalao do seu Sistema Operacional. Esse passo opcional e serve apenas para que voc possa gerenciar sua soluo remotamente.

Concluso
Espero nesse artigo ter ajudado ao leitor no esclarecimento de algumas dvidas e desmistificado alguns mitos com relao configurao de um sistema de balanceamento de carga IP sofisticado e seguro. Recomendo fortemente a leitura de documentos adicionais abordando o tema para assegurar um preparo melhor na implantao. tambm altamente recomendvel a execuo de um laboratrio em ambiente controlado e um timo planejamento para a configurao dessa soluo no ambiente de produo. Um grande abrao a todos!

Alguns equipamentos no fazem o roteamento de trfego Multicast. Essa limitao deve ser levada em conta quando existe um router entre os clientes e os Servidores participantes do Cluster. Esse termo utilizado para se referir ao trfego destinado comunicao entre os ns participantes do Cluster. Dentre as varias funes dessa comunicao esta aquela que mantm um n informado do status dos outros ns. Atravs dela um Servidor fica sabendo que algum outro est off-line. Mini CV do autor.
Torriri trabalha na empresa Heurys Tecnologia em Ribeiro Preto prestando consultoria em Sistemas Operacionais Microsoft. engenheiro certificado pela Microsoft e tem foco em solues de segurana e alta disponibilidade corporativa. Atua nessa linha h cinco anos e coordena uma equipe tcnica de infra-estrutura. Participou de varias implantaes e atualizaes criticas de Servidores Microsoft e Servidores Exchange.