Académique Documents
Professionnel Documents
Culture Documents
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
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.
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.
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.
Rede Dados
Hardware Hardware
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.
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.
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