Alta disponibilidade com CARP

Veremos como aplicar alta disponibilidade em serviços utilizando o protocolo CARP. Este conhecimento contribuirá para a implementação de um cluster de firewall ou outros. O interesse não é propor soluções definitivas e sim criar alternativas de utilização deste protocolo de forma dinâmica. Para teste foi utilizado o S.O. FreeBSD 7.2 RELEASE com a customização necessária citada ao longo do artigo.

[ Hits: 36.473 ]

Por: cristofe coelho lopes da rocha em 01/02/2010


Configurando o grupo



Cada grupo CARP é representado por uma interface virtual (pseudo-device). E pode ser configurado com auxílio do comando ifconfig(8). O requisito principal para o funcionamento da disponibilidade é manter as interfaces físicas no mesmo seguimento de rede.

Grupo CARP 1:

Para efeito de teste adotaremos le0 como sendo a interface física.

Servidor master:

# ifconfig le0 192.168.90.2/24 (interface física rede 192.168.90.0/24)
# ifconfig carp1 create (cria o grupo carp1)
# ifconfig carp1 vhid 1 pass senha_do_grupo advskew 1 192.168.90.1 255.255.255.0

Servidor backup:

# ifconfig le0 192.168.90.3/24 (interface física rede 192.168.90.0/24)
# ifconfig carp1 create (cria o grupo carp2)
# ifconfig carp1 vhid 1 pass senha_do_grupo advskew 2 192.168.90.1 255.255.255.0

Grupo CARP 2:

Para efeito de teste adotaremos le0 como sendo a interface física.

Servidor master:

# ifconfig le0 192.168.90.3/24 (interface física rede 192.168.90.0/24)
# ifconfig carp2 create (cria o grupo carp2)
# ifconfig carp2 vhid 2 pass senha_do_grupo2 advskew 1 192.168.90.1 255.255.255.0

Servidor backup:

# ifconfig le0 192.168.90.2/24 (interface física rede 192.168.90.0/24)
# ifconfig carp2 create (cria o grupo carp2)
# ifconfig carp2 vhid 2 pass senha_do_grupo2 advskew 2 192.168.90.1 255.255.255.0

Obs.: Desta forma teremos dois master e backups no mesmo seguimento fazendo load balance. Contudo poderemos ter um segundo ou terceiro grupo atuando em outro seguimento de rede utilizando o recursos de alias. Para fazer load balance observe que os dois grupos compartilham o mesmo ip estando no mesmo seguimento de rede.

Balanceamento possui suas limitações. Devem ser feitas no mesmo seguimento de rede não atravessando o router.

Descrição das funções:
  • vhid - Virtual host ID utilizado para identificar o grupo.
  • Passwd - Senha atribuída ao grupo.
  • advskew - Se 1 indica host master, acima indicará o nível de prioridade do host. Caso 2 será o 1 host a assumir caso o master decline, se 3 será o segundo e assim em diante.

Desta forma basta então realizar o teste para verificar se está funcionando. Pingue o ip compartilhado 192.168.90.1 e retire o cabo de rede de uma das duas máquinas e verá que mesmo assim o ping não será descontinuado. É fato que não queremos apenas estabilizar o ping e sim o serviço. Portanto cabe a sua criatividade dar funcionalidade ao CARP. Como sugestão servidor web que compartilham a mesma aplicação e mesmo banco podem funcionar com o sistema. Todavia ao configurar apenas um grupo o servidor de backup só atuará caso o master decline caso sejam configurados dois grupos como citado acima. Veremos numa próxima ocasião como fazer balanceamento com DNS utilizando algoritmo round-robin atualizando o estado das conexões, ou seja, sincronizando o estado das conexões. Desta forma implementaremos um CLUSTER.

Bibliografia

  • TRACANELLI, Patrick. Programa FreeBSD S.S.A. Belo Horizontei-MG: FreeBSD Brasil,2009;
  • MICHAEL, Lucas.Dominando BSD : O guia definitivo para FreeBSD. Rio de Janeiro-RJ: Editora moderna Ltda,2003

Página anterior    

Páginas do artigo
   1. Introdução
   2. Compreendendo seu funcionamento
   3. Configurando o grupo
Outros artigos deste autor

Melhorando o nível de segurança com chflags

Esgotando os recursos

Varredura bruta com NMAP

Um dia depois da inundação

Redes definidas por Software com Mininet e POX - Criando meu primeiro Controlador

Leitura recomendada

Principais fontes de vulnerabilidade no Linux

Iptables protege contra SYN FLOOD?

Gerenciamento de segurança da informação com open source (parte 1)

Utilizando o Nmap Scripting Engine (NSE)

Escrevendo em discos sem sistemas de arquivos

  
Comentários
[1] Comentário enviado por tatototino em 02/02/2010 - 18:49h

Excelente artigo, so uma duvida o CARP e so aplicado no Kernel BSD ou pode ser implantado no Linux e Unix*.
Olhei no meu Centos se existe alguma entrada /proc/sys/net/* referente a CARP e nao encontrei.

Parabens!

[2] Comentário enviado por barrabaz_tux em 03/02/2010 - 04:15h

oxe q esse artigo ta bom d+++
vo monta nos meus freebsd das vm...

parabéns e muito axé!!

[3] Comentário enviado por _simmons_ em 04/02/2010 - 13:29h

Parabéns pelo artigo cristofe!!

O CARP é um protocolo excelente para failover e loadbalance.

tatototino.

Seria o mundo perfeito se o CARP fosse migrado para o Kernel do Linux, mas andei lendo e até agora só existem alguns rascunhos de como fazer isso.

Eu utilizo muito o CARP , só que no OpenBSD.

No Linux existe o uCARP , mas quando eu o utilizei não funcionou como o CARP dos BSD's.

[]'s

André Michi



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts