Agora que já temos os dois servidores configurados e com os serviços funcionando, vamos acrescentar os serviços que serão gerenciados.
Vamos instalar o Apache nos dois servidores já para efetuarmos alguns testes, pois vamos utilizar ele mais para frente.
# aptitude install apache2 -y
Como na instalação do Heartbeat ele não pediu senha para o hacluster, temos que inserir uma para podemos conectar no Heartbeat.
# passwd hacluster
Agora que definimos a senha vamos continuar.
Vamos definir as configurações de rede para o nosso cluster, então vamos iniciar o nosso haclient.
Se você instalou o heartbeat-2-gui em uma máquina separada, não sendo um dos nossos nodos do cluster, é só abrir um terminal como root e chamar o nosso aplicativo da seguinte forma.
# /usr/lib/heartbeat-gui/haclient.py &
Ou se você instalou no servidor pode exportar do o haclient para o cliente.
Eu aconselho sempre instalar o haclient em uma máquina separada para não ficar enchendo o servidor de bibliotecas e pacotes de ambiente gráfico.
Você também pode usar o putty em
GNU/Linux habilitando em Connection/SSH/X11 a opção X11 forward e conectar no servidor e chamar o comando:
# /usr/lib/heartbeat-gui/haclient.py &
Que o putty importa o haclient para a máquina local para podermos gerenciar o nosso heartbeat.
Depois de chamarmos o nosso aplicativo temos que conectar no servidor.
No console clique em Connection/Login. Vai aparecer a tela de login.
Devemos informar para qual servidor queremos conectar, pode ser em qualquer um dos nodos do cluster, pois vai ser replicada a configuração automaticamente para o outro nodo, o usuário vai ser o hacluster, que já está na tela de login por padrão e a senha que foi definida no comando "passwd hacluster", depois disso é só clicar em ok.
Pronto, essa é a maravilhosa tela do haclient.
Pode notar que do lado esquerdo da tela nos temos os nossos nodos do cluster em círculos verde, que significa que estão trabalhando normalmente. Logo após os círculos verdes temos a palavra running, então o nosso servidor está trabalhando corretamente.
Agora vamos à configuração do endereço IP que o nosso cluster vai usar.
Em primeiro lugar vamos a algumas considerações, como estamos trabalhando com cluster, os nossos dois servidores terão que ser vistos como somente um, e vamos trabalhar sempre com grupos que fica uma melhor organização.
Então clique com o botão direito do mouse na opção Resources do lado esquerdo da tela abaixo do nome dos nossos nodos.
Selecione a opção Add New Item, na próxima tela escolha a opção group.
Na próxima tela digite um ID para o seu grupo exemplo Web_Servers e clique em ok.
Nessa nova tela que apareceu temos que criar um recurso nativo, ou seja, um serviço que vai ser monitorado.
Na primeira opção Resource ID de o nome de IP_WebServers.
Na parte logo abaixo de Resource ID temos a seleção de recursos.
Vamos escolher o recurso ipaddr2.
E note que depois que escolhemos o recurso temos a opção parameters:
Temos que deletar o parâmetro que vem por default nessa opção note que nesta parte da tela do lado direito tem dois botões um add parameter e outro delete parameter, clique no parâmetro que veio por default e clique em delete parameter.
E agora vamos adicionar os novos parâmetros.
Clique em add parameter.
Vai abrir uma nova tela, selecione em name a opção IP e em value digite o IP para o seu cluster exemplo 192.168.0.3. Mas para que isso? Vou explicar.
Quando você for fazer uma solicitação de algum serviço para o cluster, não será necessário escolher uma das máquinas do cluster, quem vai se encarregar disso vai ser o Heartbeat e ele vai se referenciar por esse IP que estamos configurando.
Exemplo:
Estou com a máquina 192.168.0.1 trabalhando e o Heartbeat deu o IP 192.168.0.3 na placa virtual para ela, mas ela deu problema e tem que ser desligada. Quando esta máquina for desligada, o Heartbeat vai detectar isso e dar o IP 192.168.0.3 na interface virtual que vamos configurar para a máquina 192.168.0.2. Para o cliente que está solicitando o serviço isso vai ser transparente, pois a máquina do com o IP final 1 caiu, mas a 2 assumiu e o cliente pede o serviço para a máquina com final 3, que é o nosso cluster e nunca direto para um dos nodos, então indiferente de quem está trabalhando o IP 3 para o cliente efetuar a solicitação do serviço vai ser sempre no endereço 3.
Continuando.
Clique em novamente em add parameter.
Vai abrir uma nova tela, selecione em name a opção cidr_netmask e em value digite a máscara de rede para o seu cluster, exemplo 255.255.255.0.
Clique novamente em add parameter.
Vai abrir uma nova tela, selecione em name a opção nic e em value digite por exemplo eth0:1, que vai ser a placa de rede virtual para o nosso cluster, como expliquei acima, vai ser nessa interface que o Heartbeat vai dar o IP 192.168.0.3.
Clique em novamente em add parameter.
Vai abrir uma nova tela selecione em name a opção broadcast e em value digite o broadcast da sua rede, exemplo 10.10.10.10.255.
Depois disso clique em adicionar o final desta tela.
Pronto, já temos o IP para o nosso cluster, se o serviço que acabamos de configurar não subir sozinho, clique com o botão direito do mouse em cima dele e clique em start.
Com isso já temos o nosso cluster bem simples.
Obs.: Note que quando formos adicionar um novo recurso, temos várias opções de serviços, então podemos configurar diversos tipos de serviços como servidor de email, ssh etc.
Porém o Heartbeat para o serviço na máquina que não está sendo usada para não ficar ocupando processamento e memória, até aí tudo bem, ótimo isso, mas se você for usar o monit para monitorar os serviços, eles vão viver brigando, pois o Heartbeat para o serviço e o monit o inicia, então quando for configurar os serviços pelo Heartbeat, só se lembre disso se o Heartbeat e o monit estiverem trabalhando no mesmo servidor. Para eles não ficarem brigando, não monitore o serviço que foi definido no Heartbeat.
Ex.: Você quer disponibilizar um cluster de correio eletrônico, então você monta o servidor de correio e coloca o Heartbeat nele para fazer o cluster e configura somente o endereço IP do recurso, neste caso todos os serviços que o servidor1 estiver provendo, se estiverem configurados no servidor2, quando o servidor1 cair o servidor2 começa a prover todos os mesmos. Com isso podemos definir que não precisamos configurar mais recursos de serviços para o Heartbeat se o que queremos é um cluster total de 2 servidores e não somente de algum serviço específico, caso contrário configure os recursos de serviços para prover somente os recursos que desejar.
Exemplo de inclusão de um recurso de serviço.
Agora vamos adicionar um novo recurso, o serviço do apache2.
Clique com o botão direito do mouse em resources e clique em add new item. Escolha a opção native e clique em ok.
Pronto, estamos na nossa tela de seleção de recursos, dê um id para o seu recurso, como Apache2 e em recursos selecione o apache2.
Note que neste recurso em Class/Provider ele é LSB, este tipo de recurso não necessita de parâmetros, então é só clicar em Adicionar no final da pagina.
Pronto, já temos o nosso IP para o cluster e um serviço. Mas e agora, em qual servidor o serviço do apache vai estar funcionando? Por padrão ele vai ficar rodando no servidor que você conectou com o haclient.
Mas podemos mudar isso, então vamos adicionar um recurso do tipo location.
Ex.: Tipos de aplicações para isso.
Você tem um servidor BOM com uma ótima configuração de hardware e um servidor mais fraco em cluster, então para quem você vai dar prioridade de serviço? Eu daria prioridade para o servidor bom e deixaria o servidor mais fraco como servidor de contingência, caso o primeiro pare o segundo assume. Neste tipo de situação esta aplicação de location é muito útil.
Vamos a um exemplo de configuração de um location.
Clique em Resources com o botão direito e selecione add new item.
Selecione a opção location.
Na próxima tela informe o ID exemplo apache2 para o nosso location, que vai ser o local aonde o serviço vai ter prioridade para trabalhar e como só temos um grupo é só selecionar ok. Se tivéssemos mais um grupo de serviço, poderíamos deixar cada grupo de serviços em um servidor.
Note que agora abaixo de resources temos Locations, clique em apache2 definido acima.
Do nosso lado direito agora apareceu o nosso location, note que na parte inferior deste tela temos dois botões, um add expression e um delete expression. Clique em add expression.
Na tela que vai abrir o primeiro atributo pode manter como #uname, o segundo atributo também pode manter como está e no terceiro atributo escolha um dos dois servidores no qual você quer que tenha preferência para rodar o serviço do apache, daí clique em ok.
Pronto, já definimos as preferências, note que na parte superior da tela temos um campo para digitar o score, essa opção que vai definir a prioridade de cada servidor. Para trabalhar com o serviço do apache digite 100 e adicione agora um novo location e uma nova expression, selecione o segundo servidor e digite um valor de score menor.
Pronto, agora já temos o nosso heartbeat funcionando.
Vamos fazer alguns testes.
Chame o seu navegador e digite: http://192.168.0.3
Se aparecer a tela do apache está ok.
Se não apareceu, volte no artigo e configure tudo novamente para ter certeza que você não esqueceu de nada.
Agora vamos desligar a máquina que está com o score 100. Após desligar a máquina, acesse novamente:
http://192.168.0.3
Está funcionando maravilha!
Olhe no console do heartbeat cliente que quem assumiu o serviço foi o segundo nodo, que está com menor prioridade e caso não estivesse com menor prioridade o heartbeat iria subir ele da mesma forma, pois seria detectado que o primeiro nodo caiu.
Mais um teste.
Ligue novamente o nodo 1 o servidor que você desligou.
Vá na tela do haclient, assim que o nodo 1 voltar a ativa ele retoma o serviço que estava com o nodo 2, pois ele tem score 100.
E agora é só ir inserindo recursos e testando, lembrando que os recursos do tipo LSB não precisam de parâmetros e os outros recursos precisam, exemplo o recurso apache, ele muda de distribuição para distribuição o caminho do arquivo de configuração.
Como eu falei no começo, esse é o caminho das pedras, agora vocês já podem ir testando o heartbeat e adaptando às suas necessidades.