Vous êtes sur la page 1sur 10

Cluster de Alta Disponibilidade

Adrieli Cristiane de Freitas Reis1, Claudio Gonalves Soares Jnior1, Jorge Felipe da Silva Ferreira1, Jlio Csar Parra de Almeida1, Matheus Marcondes da Silva1, Sabrina Aparecida dos Santos Gavinier1.
1

Faculdade de Tecnologia de Guaratinguet (FATEC-GT) 12517-475 Guaratinguet SP Brasil

dri.bela@hotmail.com, claudiogsjr@gmail.com, jfelipelilo@hotmail.com, jcpa.parra@gmail.com, matheusmarcondes@gmail.com, sabrinagavinier@hotmail.com.

Abstract. This article has the intuit of showing the reader a vision of what is and how cluster computation works, focusing in High Availability Clusters. Resumo. Este artigo tem o intuito de dar ao leitor uma viso do que vem a ser e como funciona a computao em cluster, focando em Clusters de Alta Disponibilidade.

1. Introduo.
A dependncia cada vez maior dos sistemas informatizados fez com que a necessidade de manter determinados servios ativos e sem ocorrncia de falhas durante a maior parte do tempo, se tornasse um dos principais requisitos para o mercado. As solues tecnolgicas evoluram, surgindo o servio de Alta Disponibilidade, e consequentemente os clusters de Alta Disponibilidade.

2. Clusters.
Um cluster pode ser definido como um sistema que compreende dois ou mais computadores ou sistemas, denominados nodos ou ns, no qual trabalham em conjunto para executar aplicaes ou realizar outras tarefas, de maneira transparente aos usurios, ou seja, os usurios tero a impresso de estar utilizando um nico sistema [1]. Os clusters so utilizados para processar contedos crticos e garantir a disponibilidade de determinados servios, buscando manter-se funcionando sem ocorrncia de falhas e durante a maior parte do tempo possvel. Pode-se citar como exemplo, a utilizao de clusters de Alta Disponibilidade em Data Centers de bancos e sites de e-commerce, uma vez que tais exemplos necessitam manter-se no ar 24 horas por dia, 7 dias por semana, 365 dias no ano. Como caractersticas fundamentais para a construo destas plataformas incluem-se: elevao da confiana, distribuio de carga e desempenho [1]. Neste artigo, sero abordados conceitos sobre clusters de Alta Disponibilidade, indispensvel para aplicaes de misso crtica, suas possveis falhas e solues.

3. Razes para utilizao de um Cluster.


Os clusters ou combinaes de clusters so utilizados a fim de processar contedos crticos ou disponibilizao de servios durante a maior parte do tempo [1]. Os clusters

de Alta Disponibilidade e Balanceamento de Carga geralmente so utilizados por lojas virtuais. Clusters paralelos normalmente so utilizados pela indstria cinematogrfica a fim de renderizar grficos de altssima qualidade e animaes. Por sua vez, os clusters Beowulf so utilizados na pesquisa cientifica, pelo seu poder de processamento e custo de implementao. Os clusters tambm so utilizados em empresas que desejam incrementar sua escalabilidade, gerenciamento de recursos, disponibilidade ou processamento a nvel supercomputacional a um preo moderado [2].

4. Tipos de Cluster
Basicamente, existem quatro tipos de clusters mais conhecidos e utilizados [1]: 4.1. Alta Disponibilidade (HA - High Availability): estes modelos de clusters so construdos para prover uma disponibilidade de servios e recursos de maneira ininterrupta, atravs do uso da redundncia implcita ao sistema. Caso um n do cluster vier a falhar (failover), aplicaes ou servios estaro disponveis em outro n. Estes tipos de cluster so utilizados para base de dados de misses crticas, correio, servidores de arquivos e aplicaes. 4.2. Balanceamento de carga (HS- Load Balancing): distribui o trfego entrante ou requisies de recursos provenientes dos nodos que executam os mesmos programas entre as mquinas que compem o cluster. Todos os nodos esto responsveis em controlar os pedidos. Em caso de falha em um n, as requisies so redistribudas entre os ns disponveis no momento. Este tipo de cluster normalmente utilizado por servidores web que demandam muito acesso, como por exemplo, as lojas virtuais. 4.3. Combinao Alta Disponibilidade e Balanceamento de carga: combina os dois clusters acima, aumentando a disponibilidade e escalabilidade dos servios e recursos. Muito utilizado em servidores web e e-mail. 4.4. Processamento Distribudo ou Processamento Paralelo (HPC): este modelo de cluster aumenta a disponibilidade e desempenho para as aplicaes, sendo utilizado em tarefas tpicas em que se exige desempenho no processamento. Uma grande tarefa computacional pode ser dividida em pequenas tarefas que so distribudas entre os ns, que ficam com a tarefa de process-las. Este tipo de cluster comumente associado ao projeto Beowulf. Estes clusters so usados em computao cientfica ou anlises financeiras, tarefas tpicas que exigem um alto poder de processamento.

5. Clusters de Alta Disponibilidade


As falhas em sistemas computacionais so inevitveis, porm, um dos principais objetivos na utilizao dos clusters justamente proporcionar meios de tolerncia a estas falhas. A Alta Disponibilidade a soma de diversos fatores que buscam garanti-la e no somente uma atitude isolada. A disponibilidade de um sistema computacional pode ser calculada utilizando a seguinte frmula: Disponibilidade = Tempo mdio entre falhas / (Tempo mdio entre falhas + tempo mdio para realizao do reparo) [3]. Esta disponibilidade pode ser classificada de acordo com a faixa de valores do tempo de disponibilidade. So elas: Disponibilidade Bsica, Alta Disponibilidade e

Disponibilidade Contnua. Para que um sistema se enquadre como de Alta Disponibilidade, adiciona-se Disponibilidade Bsica, encontrada comumente em mquinas bsicas, sem nenhum mecanismo especial de software ou hardware, mecanismos especializados de deteco, recuperao e mascaramento de falhas. Nesta classe as mquinas tipicamente apresentam disponibilidade na faixa de 99,99% a 99,999%, podendo ficar indisponveis por um perodo de pouco mais de 5 minutos at uma hora em um ano de operao. Nesta categoria, se encaixam grande parte das aplicaes comerciais de Alta Disponibilidade, como centrais telefnicas. [3]. A Alta Disponibilidade est ligada diretamente a crescente dependncia aos sistemas informatizados, uma vez que tais equipamentos possuem um papel crtico, principalmente em empresas cuja maior funcionalidade exatamente a oferta de algum servio computacional, como e-business, notcias, sites web, banco de dados, dentre outros [3]. Existem duas caracteristicas importantes que devem ser observadas para clusters de Alta disponibilidade: [4]: - Failover: Em caso de falha o sistema age automaticamente sem que seja preciso a interveno humana. Por exemplo: um link de acesso Internet que prove servios para usurios de uma rede privada. Este link composto por trs provedores de acesso distintos, sendo um deles o principal e os demais secundrios. Caso o acesso principal seja interrompido por algum motivo, o secundrio ir entrar em ao, provendo o acesso sem interrupes sem que o usurio perceba. - Escalabilidade: Capacidade que permite acrescentar novos recursos ou substituir existentes, sem a necessidade de paralisar o servio.

6. Funcionamento dos clusters de Alta Disponibilidade.


A utilizao de um cluster de Alta Disponibilidade visa manter a disponibilidade dos servios prestados por um sistema computacional replicando servios e servidores, atravs da redundncia de hardware e reconfigurao de software. Vrios computadores juntos agindo como um s, cada um monitorando os outros e assumindo seus servios caso algum deles venha a falhar. As vantagens em se utilizar um cluster de Alta Disponibilidade esto no alto desempenho, escalabilidade e tolerncia a falhas [5]. Os clusters de Alta Disponibilidade tm como funo principal prover uma alta disponibilidade de recursos e servios o maior tempo possvel, de forma ininterrupta, onde h uma grande dependncia dos computadores. Sua forma mais bsica de funcionamento substituir um n do cluster no momento que este vier a falhar, por outro, de modo transparente ao usurio. Geralmente so usados por servidores web, servidores de arquivos e aplicaes, bases de dados de misses crticas [5]. O Sistema de Alta Disponibilidade com maior maturidade e mais utilizado no sistema operacional Linux o Heartbeat [6]. Este sistema controla a parada e o incio de servios ou a execuo de comandos em um conjunto de mquinas. Adiante ser tratado o Heartbeat, juntamente com uma soluo OpenSource.

7. Falhas e solues em Clusters de Alta Disponibilidade


Quando se pensa em montar um Cluster de Alta Disponibilidade deve se levar em considerao diversos fatores, para que realmente se tenha um sistema confivel e tolerante aos diversos tipos de falhas que possam vir a ocorrer. muito comum, quando se pensa em Alta Disponibilidade, lembrar somente de aspectos como backup de dados, RAID, redundncia de servidores, porm a abrangncia para Clusters de Alta Disponibilidade bem maior. Na tabela 1 sero descritos alguns dos possveis pontos de falhas e como minimiz-los ou san-los.
Tabela 1. Tipos de falhas e possveis solues. Tipo de Falha Rede Eltrica Falha Possvel Queda total ou parcial de energia Soluo Implementao de sistemas UPS (Uninterruptible Power Supply) e Geradores de Energia Eltrica (figura 1) Redundncia de placas de rede com uso de bonding e uso de switches com stacking e suporte 802.3ad (figura 2) Redundncia de fonte, hotswap Uso de RAID em hardware ou software, hotswap Redundncia das Aplicaes/Sistemas Redundncia de Servidores (figura 3) Redundncia de Servidores Redundncia de Data Center

Rede Dados

Inoperncia de ativos de rede (placa de rede, switches)

Hardware Hardware

Problemas na fonte de alimentao Falha no disco

Softwares Softwares Hardware/Softwar e Data Center

Falha de Sistemas ou Aplicaes Corrupo de Sistema Operacional Falha completa do Servidor (memria, processador, SO) Desastres Naturais / Incidentes Criminosos

7.1. Rede Eltrica Uma das primeiras preocupaes para garantir que se consiga ter Alta Disponibilidade o tratamento com a alimentao eltrica do Data Center / Cluster. A falta de alimentao eltrica parcial ou total pode ser ocasionada por diversos motivos, como temporais, raios, manuteno da rede pblica, etc. Como no h como prever quando este tipo de problema ir surgir, principalmente quando se trata de desastres naturais, necessrio que se tenha uma forma de se garantir a alimentao do cluster.

Dentre as possibilidades as que mais se destacam atualmente so o uso de UPS (Uninterruptible Power Supply) e de Geradores Eltricos. Os UPS garantem a alimentao, como o prprio nome diz, ininterruptamente, ou seja, o sistema no parar de funcionar quando ocorrer uma queda brusca de energia. Porm, o UPS, por trabalhar baseado em baterias, tem sua autonomia limitada a poucas horas, o que no ir garantir a disponibilidade do sistema caso a falta de energia perdure por muito tempo. Nesse caso, a combinao UPS + Gerador acaba suprindo esta lacuna, pois o primeiro garantir que o servio/aplicao fornecido pelo cluster no sofra interrupo, e o segundo garantir a alimentao eltrica por muito mais tempo, pois sua autonomia ser limitada pelo combustvel utilizado no funcionamento do gerador. Nesse sentido sempre importante garantir que o combustvel do gerador esteja sempre disposio e com quantidade suficiente para garantir a autonomia necessria. 7.2. Rede de Dados Outro fator importante para se garantir a Alta Disponibilidade garantir que o sistema esteja sempre conectado a rede, caso contrrio todo esforo ser em vo. Um falha em uma placa de rede ou em um switch poder ser suficiente para tornar inacessvel um sistema que necessite de Alta Disponibilidade, caso o mesmo no tenha sido corretamente configurado. As tcnicas atualmente muito utilizadas para driblar esses problemas so o Bonding das interfaces de rede e a utilizao de switches com stacking e suporte a 802.3ad (Link Agregation). O bonding corresponde a agregao de mais de uma interface de rede, fazendo com que, para o sistema operacional, seja tratada como uma nica interface. Com isto possvel que, caso uma das interfaces que constitui o bonding venha a falhar, as demais continuem em operao, permitindo a acessibilidade do sistema. Outra tcnica importante para se trabalhar com Clusters de Alta Disponibilidade o uso de switches com tecnologia de suporte a stacking e 802.3ad. A tecnologia 802.3ad permite que mais de uma porta do switch seja agregada (link agregation) fornecendo assim uma redundncia de conexo em um mesmo equipamento. J o stacking fornece a possibilidade de se trabalhar com dois switchs como se fosse um s. Ou seja, um link agregation entre dois switches. 7.3. Hardware Das falhas que podem ocorrer no hardware de um dos servidores que fazem parte do cluster, as que mais se destacam e que podem sofrer medidas preventivas so as de fonte de alimentao e disco rgido [8]. No caso da fonte de alimentao, a soluo para evitar problemas que o servidor possua fontes redundantes, com isso, caso uma pare de funcionar por algum motivo, a alimentao no ser suspensa. importante tambm que a mesma possua a tecnologia HotSwap, pois quando ocorrer um problema, a mesma poder ser substituda sem a necessidade de desligamento do servidor. Para os discos rgidos, normalmente so utilizados as solues de RAID (pt: Conjunto Redundante de Discos Independentes). O RAID pode ser implementado tanto atravs de hardware quanto atravs de software. Normalmente so utilizados os RAID 10, 1 ou 5. importante tambm, no caso do uso de RAID, o suporte a HotSwap.

Outra alternativa a utilizao de um NAS ( etwork-Attached Storage), que um servidor de rede dedicado exclusivamente ao armazenamento de dados, sendo normalmente mais custoso para implementao [8]. 7.4. Software Normalmente as falhas que podem ocorrer em um cluster na parte de software acabam sendo minimizadas somente com a redundncia de servidores (ns). Como exemplo, pode-se citar um sistema operacional corrompido por qualquer motivo, em que o servidor acabar se tornando inoperante, sendo assim, no ser possvel fazer algo de imediato no mesmo para restabelec-lo sem ocasionar uma perda de disponibilidade. O mesmo ocorreria caso a falha fosse, por exemplo, na memria, ou ainda, no processador de um dos ns, onde somente se outro n assumir suas funes, o sistema continuar disponvel. 7.5. Data Center At agora foram vistas diversas formas de se manter um Cluster de Alta Disponibilidade, porm, to importante quanto as garantias mencionadas anteriormente, necessrio garantir que, caso ocorra tanto um desastre natural ou acidental, quanto um incidente criminoso em todo o data center, este possa ser prontamente restabelecido, minimizando ao mximo, ou ainda, suprimindo a indisponibilidade dos sistemas clusterizados. Um exemplo disto pode ser visto no fatdico incidente ocorrido em 2001 no World Trade Center, em Nova York. No primeiro caso, uma corretora de seguros tinha seu data center em uma das torres e sua rplica na outra torre. S no imaginaram que a segunda torre cairia junto com a primeira, ocorreu. No segundo caso, uma instituio bancria tambm tinha seu data center em uma das torres, mas sua rplica estava a alguns quilmetros de distncia do principal. Nesse caso, ocorreu uma leve indisponibilidade do sistema corporativo, at que o segundo data center estivesse em plena operao.[7] 7.6. Medidas Adicionais Algumas medidas adicionais podem ser tomadas para garantir que um Cluster de Alta Disponibilidade fique menos tempo inoperante, so elas: - Backup: Cpia de segurana dos dados e configuraes dos sistemas; - Segurana Lgica: Implementao de medidas de segurana para tornar o cluster somente acessvel pra quem de direito, e conforme as necessidades (firewall, ids, etc.) - Segurana Fsica: Isolamento do data center das demais instalaes, evitando o trfego constante de pessoas, principalmente as no autorizadas. - Refrigerao: Garantir que a refrigerao do data center seja constante e eficiente.

8. Virtualizao e Cluster de Alta Disponibilidade


Na busca constante das empresas por alta disponibilidade, vem se tornando comum o uso de sistemas virtuais para aplicaes de balanceamento de carga ou failover[9].

Isso se deve principalmente por dois fatores: A facilidade de migrao das maquinas virtualizadas para outros servidores e a reduo do custo na aquisio de hardware. Porm, o mocinho pode virar vilo caso alguns cuidados no sejam tomados. Por abrigar em um nico servidor fsico diversos sistemas virtuais, pode se ter uma idia do desastre que seria se no tivermos solues que garanta a disponibilidade do sistema no caso de uma falha ocorrer na mquina principal (hospedeira). Uma falha em um disco rgido, ou ainda, de uma placa de rede, pode ser crtica, pois afetar no somente um servio/servidor, mas diversos. Ou seja, a virtualizao esta para suprir em muito as necessidades de alta disponibilidade, principalmente pelo seu custo reduzido. Mas dever sofrer um estudo detalhado para que as falha mencionadas anteriormente possam ser contornadas tanto na mquina hospedeira, quanto nas virtualizadas.

9. Cluster de Alta Disponibilidade com Soluo OpenSource


A necessidade de se ter sistemas que necessitam de Alta Disponibilidade acaba trazendo um alto custo em virtude das redundncias necessrias. Para tornar isso um pouco mais acessvel, alm do uso de virtualizao, deve ser considerado o uso de Softwares Livres / OpenSource na implementao de Clusters de Alta Disponibilidade. Isso garantir uma economia considervel, sem perder, no entanto, a confiabilidade e disponibilidade do sistema. Antes de falarmos sobre os softwares utilizados para o cluster de alta disponibilidade, vamos definir, em poucas palavras, a arquitetura de nosso cluster. A montagem de um ambiente de alta disponibilidade necessitar [10]: - Hardware: redundncia de mquinas (requisito), de links, conexo dedicada e de alta velocidade (recomendada). - Instalao do sistema: os softwares devem ser independentes de distribuio. A identidade das mquinas fica a cargo do administrador do sistema, quem ser o principal e quem ser o espelho. - Consistncia dos dados: sistemas de arquivo journaled. Estes sistemas armazenam em um journal (log) as aes antes de serem efetuadas. Desta forma, em uma parada no sistema, seja por pane no sistema ou queda de energia, a recuperao muito mais rpida e indolor. - Espelhamento de dados: os dados devem ser espelhados em tempo real para a completa disponibilidade do sistema em caso de defeito. - Controle de servios: com os dados espelhados, os servios podem ser passados de uma mquina para outra. Porm o sistema deve ser autnomo nesta transferncia e ser capaz de se reconfigurar para continuar atendendo aos usurios. - Monitorao: o sistema deve monitorar seus servios para detectar um defeito, disparando assim a reconfigurao. Uma soluo para este cluster utiliza a combinao de ext3 + drbd + heartbeat + mon. Sistema de Arquivos Journaled - Ext3: Como mencionado anteriormente, importantssimo que o sistema de arquivos utilize mecanismos de journaled. Dentre os disponveis e mais utilizados nos sistemas operacionais GNU/Linux esto o Reiserfs e o Ext3. No caso, opta se por utilizar o Ext3 pela sua facilidade e compatibilidade com o Ext2, verso anterior que no suportava journaling. Espelhamento de dados - DRBD: o DRBD (Distributed Replicated Block Device) espelha os dados em blocos, repassando-os atravs da rede. Funcionando em pares, ele estabelece em cada nodo uma partio para espelhar, e seta um dos nodos

como primrio. Toda alterao neste ir ser refletida no secundrio. O primrio tem a partio montada com DRBD montada, enquanto o secundrio no (figura 1). A partir da verso 8 passou a suportar a configurao com dois dispositivos primrios permitindo alm da alta disponibilidade o balanceamento de carga atravs da distribuio das operaes de leitura e escrita. Este modo, entretanto, exige a utilizao de sistemas de arquivos distribudos. O DRBD resulta numa perda de performance (tanto na rede como nos servidores) devido a realizao de replicao sncrona entre os discos dos ns. Por essa razo pode-se escolher qual protocolo utilizar para essa replicao dentre os citados abaixo: - Protocolo A (assncrono): Completa a requisio logo que a operao local concluda e mandada ao segundo n pela rede. Caso o primeiro n falhe e o servio passe para o segundo n, todas as operaes de escrita que ainda no atingiram este segundo n sero perdidas; - Protocolo B (quase-assncrono): Completa a requisio logo que a operao local concluda e a resposta de RecvAck do segundo recebida. Considerando o recebimento da resposta no n primrio, os dados provavelmente alcanaram o disco remoto (n secundrio). Mesmo que o n primrio falhe e o servio passe ao secundrio nenhum dado foi perdido; - Protocolo C (sncrono): Completa a requisio apenas quando a operao local for concluda e for recebida a mensagem de WriteAck do n secundrio.

Figura 1: Viso do nvel conceitual de funcionamento do DRBD. Sinal de Vida - Heartbeat: O n considerado principal onde reside a configurao dos servios e do 'IP de servio'. o hertbeat o responsvel pela reconfigurao automatizada na ocorrncia de problemas. Cada mquina possui seu IP prprio, vlido ou no, mas o conjunto identificado por um IP de servio, que mantido pela mquina primria no par.

Ao acontecer uma pane no sistema (figura 2), o heartbeat de um lado libera os servios e IPs, e do outro assume. Possui duas verses sendo que em sua primeira verso trabalhar apenas com clusters de 2 ns e em sua segunda verso trabalha com clusters de 1 a N ns.

Figura 2: Sistema de Alta Disponibilidade com dois servidores sendo acessados por quatro clientes. Servidor Primrio (ativo) e Servidor Secundrio (passivo). Mon: bastante leve, possui diversos monitores e sistemas de alerta para as mais variadas funes e servios. Possui envio de mensagens via pgina, correio, sms, bem como pode ser configurado para disparar programas em quaisquer linguagens. Inclusive o heartbeat. Esta soluo estvel, de implementao simples e utilizada em todo o mundo. Entretanto, uma requisio enviada ao servidor primrio antes de sua falha que envolva alguma atividade de escrita (e-mail, banco de dados, servidor de arquivos, etc.) e no tenha sido gravada no disco do servidor primrio, ser perdida quando o servidor secundrio assumir. Pois, o servidor secundrio s possui as informaes que tiverem sido gravadas no disco do servidor primrio e replicadas em seu disco. Recomenda-se utilizar uma soluo deste tipo em sistemas de e-mail, servidor de arquivos, servidor web e banco de dados. Sendo que devem ser tomados os devidos cuidados no sistema gerenciador de banco de dados para que no sejam perdidas requisies de transao.

10. Concluso
O uso de clusters de alta disponibilidade j uma realidade. A dependncia de sistemas informatizados para acesso e armazenamento de informaes tem se tornado cada vez maior. Com isso, diversas empresas tero de optar por esse tipo de soluo, tornando-se imprescindvel para diversos ramos do negcio, uma vez que falhas so inevitveis, porm podem ser minimizadas, tornando transparente para o usurio e garantindo a segurana e continuidade dos servios, principalmente quando o mesmo lida com dados crticos. Apesar de demandar um custo relativamente alto, possvel utilizar solues

OpenSource para que o custo seja minimizado e a aplicao seja acessvel por empresas de menor porte, ou ainda, empresas onde a alta disponibilidade apesar de necessria, pode no ser vital.

Referncias
[1] Pitanga, Marcos. (2003) Computao em cluster, http://www.clubedohardware.com.br/artigos/153. [2] Oliveira, Carlos Augusto Ferreira de. Cluster Beowulf Uma soluo de baixo custo, Brasil. [3] Guia no Servidor Conectiva Linux, http://www.conectiva.com/doc/livros/online/9.0/servidor/ha.html [4] Guia de Inovao tecnolgica em Cluster e Grid, http://guialivre.governoeletronico.gov.br/guiaonline/guiacluster/node26.php [5] Pinto, Hudson de Jesus L. e Silva, Michel Pires da. e Silveiras, Gabriel Damaso da. Ambientes de Alto Desempenho utilizando Cluster de Computadores, Brasil. [6] Linux-HA. Heartbeat, http://www.linux-ha.org/Heartbeat [7] Ike, Fernando. (2008) O mximo da disponibilidade: Sempre Alerta, Linux Magazine - 43 edio. [8] Sinhoreli, Marcos. (2008) Armazenamento com alta disponibilidade: Os dados no param, Linux Magazine - 43 edio. [9] Sinhoreli, Marcos. (2008) HA com Xen: substituto virtual, Linux Magazine - 43 edio. [10] Vigliazzi, Douglas. Alta Disponibilidade em Sistemas GNU-Linux, http://www.vivaolinux.com.br/artigo/Alta-Disponibilidade-(High-Availability)-emsistemas-GNU-Linux

Vous aimerez peut-être aussi