Montando Ambientes de Alta Disponibilidade
Transcript of Montando Ambientes de Alta Disponibilidade
Montando ambientes de alta disponibilidade
Neste artigo o colunista Flávio Jorge de Medeiros, demonstra na prática em
como montar ambientes de alta disponibilidade com o sistema operacional Windows 2003.
1. Introdução
Muita pessoas possuem dúvida de como trabalhar com alta disponibilidade com
servidores Microsoft. Neste artigo estaremos mostrando como criar ambientes de
alta disponibilidade. Iremos pegar como base o Windows 2003, visto que em outro
artigo descrivi como gerar cluster em Windows 2008.
Para entender o que é como fazer vamos ter um pouco de teoria, antes de irmos
para a prática de implantação.
2. Teoria de alta disponibilidade Microsoft
Existem duas formas de oferecer alta disponibilidade. O que nos denominamos de
Network Load Balance (conhecido como NLB) e o Microsoft
Cluster Service (conhecido como MSCS).
2.1. Qual a diferença entre eles?
O NLB é uma forma de possibilitar alta disponibilidade para páginas WEB,
possibilitando que duas os mais máquinas disponibilize o mesmo conteúdo Web.
Caso uma das máquinas fique DOWN, não há indisponibilidade geral, visto que o
acessos dos usuários ao servidores ocorrerá de forma balanceada. Durante a queda
da máquina, somente os usuários que estavam acessando a aplicação naquela
máquina ficam foram. Quando eles tentam acessar novamente, eles conseguem
através de outra máquina do Farm.
Infelizmente o NLB não é aplicável em muitas aplicações. Ele funciona muito bem
com aplicações WEB (IIS), cujo o conteúdo é estático e funciona baseado em portas
de TCP / UDP. Agora, se tivermos um File Server, um Banco de Dados ou mesmo
um Exchange com Mailbox, o NLB não conseguirá dar a alta disponibilidade
desejada para o ambiente, visto que estes cenários tratam de ambientes, cujo o
conteúdo são atualizados de forma constante.
O Microsoft Cluster Service também é formado por no mínimo 2 máquinas e
obrigatoriamente um storage externo. Este storage poderá estar ligado nos
servidores (de forma a compartilhar entre os mesmo o acesso aos discos) através
de um conjunto de placas de fibras ou acessando via Ethernet, no padrão iSCSI.
Sem este acesso a storage externo, não é possível montar o MSCS.
Ao montar um MSCS, estaremos criando uma "maquina virtual ou nó virtual", onde
iremos definir um disco de acesso (no storage externo), um endereço IP e um
nome (Hostname). A este Nó virtual, damos o nome de recurso, que sempre estará
em uma das máquinas que fazer parte do cluster. Para gerenciar este ambiente,
temos uma base de dados interna, que denominamos de Quorum, que nada mais é
que um outro Nó no ambiente.
O MSCS é a base para possibilitarmos a alta disponibilidade para File Server, Banco
de dados, Exchange e ou aplicações que "gravam/lêem" dados de forma constante
em um disco. Quando ocorreu a falha ou "failover" de um dos servidores, os nós
virtuais serão movidos de forma automática para o outro servidor. Desta forma,
ocorre uma pequena indisponibilidade (entre 30 s à 3 min) da aplicação. Após esta
movimentação, o recurso sobe na segunda máquina e o ambiente retorna a estar
disponível e visível aos usuários.
Olhando em termos gerais, para aplicações que funcionam em camadas, podemos
afirmar que o NLB trabalharia na camada de aplicação e apresentação WEB e
quanto o MSCS ficaria responsável pode dar alta disponibilidade para o banco de
dados.
O NLB pode ser gerado em qq das versões do Windows 2003 ou 2008. Já o MSCS
só pode ser montado nas versões Enterprise ou Datacenter do Windows 2003 ou
2008.
2.2. Entendimento de nossos cenários
Não iremos demostrar como instalar o Windows 2003 ou preparar a máquina virtual
para acesso emulado a um storage.
Caso esteja trabalhando com um VM de virtual PC, sugiro que você emule um iSCSI
através de um software com esta finalidade.
Segue um artigo para lhe dar um direcionamento de como fazer isso:
http://www.starwindsoftware.com/images/content/StarWind_MSCluster2003.pdf
Caso esteja trabalhando com um VM do VMWare Workstation, você poderá emular
o acesso a disco através de uma conexão SCSI.
Segue um artigo para lhe dar um direcionamento de como fazer isso:
http://blog.stealthpuppy.com/virtualisation/windows-clustering-in-vmware-
workstation-5
2.3. Arquitetura para Network Load Balance
Iremos considerar para o NLB uma máquina com função de Active Directory
(BRINDAD) e mais duas outras máquinas (Cluster1 e Cluster2), com duas placas de
rede cada, para forma o NLB
2.4. Arquitetura para Microsoft Cluster Services
Iremos considerar para o MSCS uma máquina com função de Active Directory
(BRINDAD) e mais duas outras máquinas (Cluster1 e Cluster2).
Estaremos interligando os servidores via SCSI (Emulado) a um storage
compartilhado.
3. Criando um Microsoft Cluster Service (MSCS)
Para conseguirmos montar um Microsoft Cluster Service, é necessário que os
servidores que irão compor o cluster estejam no domínio. Este é um pré-requisito básico para a montagem do ambiente.
Antes de mostrarmos, precisaremos ter também um usuário no Active Directory
para gerenciar o serviço do cluster. Este usuário não precisa de previlégios
administrativos no Domínio, mas deverá ser administrador local de ambos os
servidores de cluster.
No nosso caso, criamos em nosso AD o usuário CLUADMIN e, como mostrado
acima, o usuário não tem previlégio administrativo no domínio.
Usuário CLUADMIN inserido no grupo administrators local dos servidores do MSCS.
Após atendido os pré requisitos, vamos a criação propriamente do MSCS. Abra a
ferramenta cluster administrator (Start / All Programs / Administrative Tools).
Selecione Create New Cluster e selecione OK.
Será apresentado a tela de Wizard do Cluster. Selecione Next.
Entre com o nome do cluster do Quorum (no nosso caso clquorum) e selecione
Next.
Entre com o nome da máquina que será o primeiro nó do cluster. Selecione Next.
Ao fazer isso, será feito uma análise de compatibilidade do ambiente com o MSCS.
Caso não seja detectado nenhuma incompatibilidade, a tela acima será mostrada.
Selecione Next.
Entre com o endereçamento IP para o quorum do cluster e selecione Next.
Entre com o usuário do AD que será o responsável pelo serviço de cluster.
Selecione Next para continuar.
Será exibido um resumo das configurações definidas. Selecione Next para começar
a montagem do seu cluster.
Processo de criação do cluster iniciado.
Ao final, selecione Next para finalizar o processo.
Ao termino do processo, selecione Finish.
Será aberto a tela acima, mostrando os recursos o Quorum. Observe que gerado
um Cluster Group denominado Group 0. Nele encontra-se o disco que poderá ter o
recurso de File Server, Banco de dados, Exchange, etc.
3.1. Adicionando o segundo nó do MSCS.
Para adicionar o segundo nó, selecione o nome do cluster com o botão direito do
mouse e selecione New / Node.
Note que não foi necessário acessar o segundo nó (para nós denominado de
CLUSTER2) para fazer a implementação. Selecione Next.
Entre com o nome do segundo nó do cluster e selecione ADD para adicioná-lo. Após
isso, selecione Next.
Validando o segundo Nó com a configuração atual do cluster.
Se não for encontrado nenhuma incompatibilidade, será mostrada a tela acima.
Selecione Next para continuar.
Será solicitada a senha do usuário definido para iniciar o serviço do cluster (observe
que será o mesmo usuário definido no primeiro Nó).
Entre com a senha do mesmo e selecione Next.
Será mostrado o resumo das configurações. Selecione Next para começar o
processo de configuração do segundo Nó.
Processo de configuração iniciado.
Ao final, selecione Next para finalizar o processo.
Selecione Finish para finalizar o processo.
Na tela acima é mostrado os dois servidores do cluster (Cluster1 / Cluster2) e seus
recusos (Cluster Group / Group 0).
3.2. Criando um recurso de File Server
Para exemplificar a criação de um recurso de Cluster, vamos criar um recurso de
File Serve para o ambiente. Lembre-se que todo recurso de cluster é composto, no
mímino de 1 disco, 1 Nome (Hostname), um IP e de um recurso de cluster.
Selecione o cluster group denominado de Group 0.
Vá no menu File e selecione Rename. Entrarei com o nome File Server Cluster, para
diferenciar-se do cluster do quorum (Cluster Group).
Observe que neste recurso já existe um disco (uma Lun disponível para o
ambiente). Para continuarmos vamos criar o recurso de IP.
Entre no menu File e selecione New / Resource.
Em Name, entre com o nome do recurso (IP Address). Em Resource Type, selecione
a opção IP Address. Em Description não é obrigatório preencher. Selecione Next.
Os possíveis Owner serão as possíveis máquinas que receberão o recurso, caso
ocorra alguma falha na máquina original do recurso. Selecione Next.
Em dependência, você define se este recurso dependerá de outro para estar disponível. Os únicos que não precisam de dependência são Disco e
Endereço IP. Selecione Next.
Entre com o endereço IP correspondente ao File Server (no nosso caso
192.168.0.71) e selecione Finish.
Será gerado o recurso em Off-Line e será mostrado um aviso de recurso criado com
sucesso. Selecione OK na mensagem.
Para deixar o recurso On-Line, selecione o recurso criado com o botão direito e
escolha Bring OnLine.
O recurso ficará On Line e disponível.
Vamos agora gerar o recuso de nome. Entre no menu File e selecione New /
Resource.
Em Name, entre com o nome do recurso (Network Name). Em Resource Type,
selecione a opção Network Name. Em Description não é obrigatório
preencher. Selecione Next.
Os possíveis Owner serão as possíveis máquinas que receberão o recurso, caso
ocorra alguma falha na máquina original do recurso. Selecione Next.
No caso do recurso de NetWork Name, é obrigatório estar atrelado a dependência
de IP. Selecione o recuso IP Address e escolha Add. Após adicionar, selecione Next.
Em parâmetros do recurso, entre com o nome (hostname) que será utilizado pelo
File Server (no nosso caso, BRINDFS). Ao final, selecione Finish.
Será gerado o recurso em Off-Line e será mostrado um aviso de recurso criado com
sucesso. Selecione OK na mensagem.
Para deixar o recurso On-Line, selecione o recurso criado com o botão direito e
escolha Bring OnLine.
O recurso ficará On Line e disponível.
Bom, até o momento deixamos disponibilizados na rede uma nova máquina (ou
recurso virtual – BRINDFS). Para ser mesmo um File Server, necessitaremos ter um
share montado. Mas o share em cluster é diferente do tradicional. Em cluster, o
share nada mais é que um outro recurso de cluster.
Entre no menu File e selecione New / Resource.
Em Name, entre com o nome do recurso (Share dados). Em Resource Type,
selecione a opção File Share. Em Description não é obrigatório preencher. Selecione
Next.
Os possíveis Owner serão as possíveis máquinas que receberão o recurso, caso
ocorra alguma falha na máquina original do recurso. Selecione Next.
Em dependências, selecione o disco e o nome. Com isso, caso ocorra falha em um
dos recursos, o acesso ao Share não estará disponível. Selecione Next.
Na tela de parâmetros, você deve entrar com o nome do Share (no meu caso será
data) e o caminho (path) onde ele esta localizado. Obviamente, o path terá que ser no disco que está disponibilizado no seu cluster (no nosso caso, o drive G:\).
Caso deseje alterar a permissão do Share, você deverá fazer, selecionando o botão
Permissions. Selecione Finish ao finalizar.
Será gerado o recurso em Off-Line e será mostrado um aviso de recurso criado com
sucesso. Selecione OK na mensagem.
Para deixar o recurso On-Line, selecione o recurso criado com o botão direito e
escolha Bring OnLine.
O recurso ficará On Line e disponível.
Para validarmos, de uma máquina no ambiente (Domain Controller) vamos acessar o share.
Entre em Start / Run
Entre com \\BRINDFS e selecione OK.
Você observará que será aberta uma tela, como se fosse acessar fisicamente um
servidor.
3.3. Testando a alta disponibilidade
Para testar a alta disponibilidade é bem simples. Na tela do Cluster administrator,
selecione o cluster group desejado para validar o processo de FailOver (no nosso
caso, selecionaremos o File Server Cluster).
Depois de selecionado, entre no menu File / Move Group
Ao fazer isso, os recursos serão transferidos de uma máquina física para outra.
Ao final do processo, você observará que os recursos sairam da máquina CLUSTER1
e migraram para a máquina CLUSTER2.
Caso queria testar realmente a funcionamento, desligue a máquina com o recurso e
observe os recursos movendo de forma automática para a outra máquina.
4. Criando um Network Load Balance (NLB)
Diferente do Microsoft Cluster Services, a criação de um NLB de servidores não
necessita obrigatoriamente que as máquinas pertençam a um Active Directory,
apesar que o ingresso ao mesmo facilitará a criação e o suporte posterior ao
ambiente.
O NLB pode ser gerado no modo Unicast ou Multicast. A diferença básica entre os
dois modelos, é que o Unicast “modifica o MAC da placa de rede”, o que facilita a
propagação do endereçamento IP entre os roteadores de sua rede. No caso do uso
de Unicast, torna-se praticamente obrigatório a utilização de duas placas de redes.
Já com Multicast, ele “emula” um novo MAC de rede, não fazendo a troca física do
placa de rede utilizada no NLB. Por esta razão, podemos utilizar o modo Multicast
com uma única placa de rede (apesar de não recomandado). Infelizemente, não é
todos os roteadores que sabem trabalhar com Multicast e por isso, se utilizado este
metodo, provavelmente você ou a equipe de redes que trabalha com você tenha
que criar manualmente nos roteadores, a associação MAC versus IP, para que as
outras redes do ambiente possam acessar o seu NLB.
Bom, no nosso artigo iremos mostrar a criação do ambiente de NLB como Unicast,
utilizando duas placas de redes. Uma para acesso administrativo e uma segunda
para o NLB propriamente dito (observe o desenho colocado inicialmente neste
artigo).
4.1. Montando o NLB
Assim como o MSCS, existe um Wizard (assistente) que auxiliará a criação do seu
NLB. Para acioná-lo entre em Start / Administrative Tools / Network Load Balance
Manager
Nele, entre no menu Cluster e escola a opção New.
Nesta tela entre com o endereço IP que irá responder o seu cluster, a máscara de
rede que ele pertence, o nome que vai responder na rede e o modo do NLB (no
nosso caso, deixaremos Unicast)
Selecione next após o preenchimento das opções.
Caso você tenha algum IP adicional a disponibilizar, selecione Add e adicione os
mesmos. Caso contrário selecione Next.
Esta parte é importante. Nele definiremos as regras de portas e protocolos que o
seu NLB irá responder. Para fins didádicos, não iremos alterar este item, ou seja, o
NLB funcionará para qq porta e protocolo do ambiente.
Sugiro porém que você gaste um tempo testando as portas de sua aplicação para deixar apenas as portas necessárias abertas.
Selecione Next.
Nesta tela você adicionará a primeira máquina que irá formar o NLB. Em host entre
com o nome da máquina (nosso caso Cluster1) e selecione o botão connect.
Será mostrado as placas de redes disponíveis e seus respectivos IP. Selecione a
placa com o ip 192.168.0.70 e selecione Next.
Na última tela, será exibido o IP da placa selecionada para manter o IP virtual do
NLB. Também é mostrado o parâmetro Priority, que serve para identificar no meio
de seu cluster, qual será a “designação” desta máquina. Não e necessário
esquentar a cabeça com ele, pois o próprio
Wizard consegue gerenciar o mesmo, caso entre outras máquinas no conjunto de
NLB.
Selecione Finish para acabar o seu Wizard.
Ao final, será mostrado a tela acima, indicando que a sua primeira máquina do NLB
está montada.
4.2. Incluindo mais servidores no NLB
A inclusão de uma nova máquina poderá ser feita de qualquer servidor 2003 e não
obrigatoriamente da mesma máquina que será inserida no Farm de NLB.
Entre em Start / Administrative Tools / Network Load Balance Manager
Vá no menu cluster e selecione Connect to Existing.
Coloque o IP virtual do NLB (192.168.0.75) e selecione Connect.
Será exibido o nome do NLB criado no ambiente. Selecione o mesmo e selecione
Finish.
A tela do gerenciador mostrará o NLB selecionado. Selecione o “nome” do NLB. No
nosso caso www.fjorge.ad. Entre no menu Cluster e selecione a opção Add Host.
Entre com o nome da nova máquina a entre como parte do NLB (nosso caso
Cluster2) e selecione Connect.
Será mostrado as placas de redes disponíveis e seus respectivos IP. Selecione a
placa com o ip 192.168.0.71 e selecione Next.
Na última tela, será exibido o IP da placa selecionada para manter o IP virtual do
NLB. Também é mostrado o parâmetro Priority, que se você observar, ele assumiu
automaticamente como 2, visto que a máquina CLUSTER1 ficou do o Priority 1.
Selecione Finish para que a máquina seja integrada ao NLB.
Máquina sendo inclusa no NLB
Ao final, você observará que ambos os servidores estão OK (em verde) no seu NLB.
4.3. Validando o NLB criado
Para validar o NLB é um processo extremamente facil. De um terceira maquina (no
nosso caso será a máquina Active Directory) iremos disparar em três janelas de
MS-DOS ping’s destinados ao NLB e as máquinas fisicas.
Tela para validação do NLB.
Vamos desligar a máquina CLUSTER1 (192.168.0.60). A queda da mesma não
deverá provocar a parada do ping ao NLB (192.168.0.75).
Observer que mesmo com a máquina CLUSTER1 desligada, o NLB continua
respondendo. Vamos inverter, religando a máquina CLUSTER1 e após o retorno da
mesma, fazendo o mesmo teste com a máquina CLUSTER2.
Ambiente restabelecido. Vamos desligar a maquina CLUSTER2 (192.168.0.61) e
novamente observaremos que não haverá queda do NLB (192.168.0.75).
Máquina CLUSTER2 desligada e o NLB continua no ar.
Conclusão
Este artigo visou a demonstrar na prática como montar ambientes de alta
disponibilidade com o sistema operacional Windows 2003.
Em breve demostraremos como montar ambientes de alta disponibilidade em Windows 2008