This target article describes the main aspects of high availability cluster database, addressing each of the elements that make up a high availability cluster, setting from a simple cluster until reaching the main focus being Cluster HA Database.
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
Cluster ha com banco de dados
1. Cluster HA com Banco de Dados
Márcio Jonnes Ferreira da Silva1, Allison Tácito de Lima Abrante1,
1
Departamento de Informática – Universidade do Estado do Rio Grande do Norte (UERN)
Santa Cruz – RN – Brasil
allisonlima16@hotmail.com, marciojonnes@hotmail.com,
Abstract. This target article describes the main aspects of high availability cluster
database, addressing each of the elements that make up a high availability cluster,
setting from a simple cluster until reaching the main focus being Cluster HA
Database.
Key-words: Cluster, cluster HA data base.
Resumo. Este meta artigo descreve os principais aspectos da alta disponibilidade
em cluster com banco de dados, abordando cada um dos elementos que o compõe e
define desde um cluster simples até se chegar ao foco principal que é Cluster HA
com Banco de dados.
Palavras-chave: Cluster, cluster HA de banco de dados.
1. Introdução
Com o crescimento que a informática impulsionou aumentando o número de redes de
computadores, ocorreu um grande requisito na quantidade do processamento de dados,
fazendo-se assim surgir uma real necessidade de banco de dados com serviços que ofereçam
disponibilidade e confiabilidade às informações.
O uso cada vez mais dependente de sistemas informatizados na sociedade fez surgir a
necessidade de proporcionar meios de garantir o funcionamento contínuo e sem a ocorrência
de falhas nesses sistemas, tendo em vista que muitos deles são de extrema importância para os
mais diversos fins. Como resposta à essas necessidades, as soluções tecnológicas foram
surgindo com serviços de Alta Disponibilidade proporcionados pela criação de sistemas em
Clusters e sistemas em Cluster de alta disponibilidade. [2]
Este presente trabalho tem por objetivo principal descrever um estudo sobre cluster
2. HA de banco de dados, descrevendo seu funcionamento e os benefícios oferecidos por esta
tecnologia tendo em vista a importância do seu uso na atualidade.
2. Clusters
Um cluster pode ser definido como um conjunto de dois ou mais sistemas ou
computadores que são denominados nós, ou nodos, trabalhando em conjunto para executar
aplicações e realizar determinadas tarefas de forma transparente para o usuário. Cada nó, ou
nodo do cluster tem que estar conectado através de uma rede, onde a mesma precisa ser criada
de tal forma que permita que um nodo seja acrescentado ou retirado, em caso de danos, sem
que seja preciso parar o funcionamento do cluster. Outra coisa que deve ser levado em conta é
que todas as máquinas que compõem o cluster devem ter o mesmo S.O (Sistema
Operacional), pois cada S.O tem a sua peculiaridade e isso pode impedir o funcionamento do
cluster. [4]
Os clusters são utilizados para o alto processamento de dados, ou seja, para processar
qualquer tipo de conteúdo crítico, garantindo assim, a disponibilidade de determinados
serviços e aumentando a confiabilidade, mantendo-se em funcionamento sem a ocorrência de
falha pela maior parte do tempo. [2]
Existem vários tipos de clusters, tais como:
Cluster de alta disponibilidade: fornece disponibilidade de serviços e recursos de
forma ininterrupta, através de redundância implícita ao sistema;
Cluster de balanceamento de carga: distribui as requisições feitas por nodos que
executam os mesmos programas entre as máquinas que compõem o cluster;
Cluster de processamento distribuído: aumenta a disponibilidade e o desempenho
para as aplicações particularmente grandes, de tal forma que essa aplicação é
divide em pequenas tarefas que são distribuídas ao redor dos nós. Entre outros
tipos clusters. Mas como este presente trabalho tem como tema „Cluster HA com
Banco de Dados‟, iremos falar de forma detalhada apenas a respeito de Cluster
HA (alta disponibilidade).
3. 3. Cluster HA
Como em qualquer outro sistema computacional, clusters também podem chegar a
falhar e isso é inevitável. Pensando-se nisto, surgiu-se a necessidade de um cluster no qual se
o mesmo venha a falhar não só em um componente, mas como um todo tenha-se um reserva,
ou seja, a necessidade da alta disponibilidade e confiabilidade. E assim como na maioria das
tecnologias que já foram inventadas (a base da necessidade) surgiram-se os clusters de alta
disponibilidade ou cluster HA (High - Available).
Em sua definição, Clusters HA nada mais é que um cluster que visa manter a
disponibilidade dos serviços prestados replicando-se os serviços e servidores, através da
redundância de hardware e reconfiguração de software. São vários computadores, trabalhando
juntos como se fosse um só sistema, todos os computadores ficam monitorando uns aos outros
de forma que se um falhar, uma réplica assuma automaticamente. São feitos para proverem
disponibilidade de serviços e recursos de forma ininterrupta, já que se um nó vier a falhar, os
serviços estarão disponíveis em outro nó. [3]
A alta disponibilidade de um cluster é a soma de diversos fatores que buscam a
garanti-la. E ela pode ser calculada utilizando a seguinte formula: Disponibilidade é igual ao
Tempo Médio até a primeira Falha dividido pela soma do Tempo Médio até a primeira Falha e
o Tempo Médio para Realização do Reparo, (D=MTTF/(MTTF+MTTR)).
Esta Disponibilidade pode ser classificada como: Básica, Alta e Continua, de acordo
com uma de faixa de valores. E para que ela se enquadre como Alta Disponibilidade,
adiciona-se à uma máquina básica com disponibilidade básica, mecanismos especializados de
detecção, recuperação e mascaramento de falhas. Estas máquinas apresentam uma
disponibilidade na faixa de 99,99% a 99,999%, podendo ficar indisponível num período que
pode variar de 5 a 60 minutos em um ano de operação.
Os clusters HA têm duas características bastante importantes que devem ser
observadas: failover e escalabilidade. A Edéia do failover é que em caso de falhas o sistema
age automaticamente, sem a intervenção humana, por exemplo: o SQL Server usufrui do
serviço de cluster do Windows Server para garantir alta disponibilidade em caso de falha de
hardware. O serviço de cluster do Windows Server (Microsoft Cluster Service) garante que
serviços hospedados em um servidor sejam movidos a outro em caso de falha de hardware,
com queda mínima no tempo de serviço. [5]
4. Já a escalabilidade é a capacidade que o sistema tem de acrescentar novos recursos
ou substituir os existentes, sem a necessidade de parar o serviço. E por esses motivos os
clusters HA são utilizados para base de dados de missão crítica, provedores de internet, sites
de comercio eletrônico, servidores de arquivos e aplicações entre outros.
4. Clusters HA com Banco de Dados
Clusters HA nada mais são do que um tipo de cluster entre alguns outros existentes.
Antes de entender o que é um cluster HA com banco de dados é necessário saber o que é um
cluster HA propriamente dito.
Clusters de alta disponibilidade são criados para manter, de maneira ininterrupta,
determinados serviços e recursos, provendo assim disponibilidade para estes. Tudo isso
mediante o uso de uma redundância implícita ao sistema. Na possibilidade de um nó do
cluster falhar (operação conhecida como failover), as aplicações e serviços oferecidos estarão
disponíveis em outro nó. É um tipo de cluster usado em sistemas críticos e suas bases de
dados, correios, servidores de arquivos e aplicações. [3]
A ideia do uso de clusters também pode ser estendida à proteção da informação
contida em Datas Center. Daí o uso e o estudo do desenvolvimento de clusters HA com Banco
de Dados. Na ocorrência de um possível problema que possa vir a danificar uma fonte dos
dados de um grande banco de dados sempre se recorre a alguma outra fonte que contenha os
mesmos dados, que foi criada por alguma forma de redundância de unidades de
armazenamento. A proteção da informação estará, dessa forma, protegida até mesmo de
desastres naturais.
Um exemplo clássico pode ser visto no fatídico incidente ocorrido em 2001 no World
Trade Center, em Nova York. No primeiro caso, uma corretora de seguros tinha seu data cen-
ter em uma das torres e sua réplica na outra torre. Só não imaginaram que a segunda torre
cairia junto com a primeira, como ocorreu. No segundo caso, uma instituição bancária tam-
bém tinha seu data center em uma das torres, mas sua réplica estava a alguns quilômetros de
distância do principal. Nesse caso, ocorreu uma leve indisponibilidade do sistema corporativo,
até que o segundo data center estivesse em plena operação. [7]
Quando se fala em clusters de bancos de dados deve-se ter em mente três tipos de clus-
ters:
Shared All: Seu funcionamento básico refere-se ao compartilhamento da me-
mória (shared buffers) e os discos (datafiles) para cada nó do cluster;
5. Shared Disc: Seu funcionamento se retém ao compartilhamento apenas dos
discos pelos nós do cluster;
Shared Nothing: Nesse caso cada nó irá possuir memória e discos próprios. [9]
Figura 1: Cluster MySql com tolerância a Falhas. Fonte: http://www.slideshare.net/suissapg/cluster-e-replicao-em-banco-de-
dados Acessado em: 08/10/2012
4.1. Database Mirroring
O Database Mirroring foi introduzido ao SQL Server 2005 como parte do Service
Pack 1. Trata-se de uma tecnologia que permite atingir os maiores níveis de alta disponibili-
dade de uma forma muito simples e barata. Ele permite espelhar um banco de dados em outro
servidor, aplicando quaisquer alterações no banco de dados no servidor principal instantanea-
mente no servidor de espelho. [8]
Dependendo da forma como o Database Mirroring for configurado, o failover para o
servidor de mirror pode ser automático, sem necessidade de chaveamento manual na aplica-
ção. Isto é feito através da utilização de um servidor chamado witness (testemunha) que moni-
tora a disponibilidade do servidor principal e “notifica” as aplicações que se conectam a ele a
chavearem para o servidor de mirror. (as aplicações procuram pelo witness através de um pa-
6. râmetro em sua connection string) Muito simples de configurar e manter, tem sido amplamen-
te utilizado no mercado. [8]
Quanto a desempenho, pode-se configurar se as transações serão enviadas em tempo
real (de forma síncrona) ou com um pequeno atraso (de forma assíncrona). Isto permite balan-
cear a carga de rede e de processamento. [8]
5. Referências bibliográficas
1. MODELO para submissão de Artigos SBC – IE. Disponível em:
<http://www.sbc.org.br/index.php?language=1&content=downloads&id=373> Acesso
em: 21 Nov. acesso em 27 de setembro de 2012.
2. Reis, Adrieli Cristiane de Freitas; Junior, Claudio Gonçalves Soares. [et al].
Cluster de alta disponibilidade. Disponível em:
<http://www.4learn.pro.br/guarino/sd/HA.pdf> acesso em 27 de setembro de
2012.
3. Pitanga, Marcos. Computação em Cluster. Disponível em:
<http://www.clubedohardware.com.br/artigos/153> acesso em 27 de setembro
de 2012.
4. Cluster: principais definições e conceitos. Disponível em:
<http://www.infowester.com/cluster.php> acesso em 04 de outubro de 2012.
5. Alta disponibilidade com SQL Server. Disponível em:
<http://blogs.msdn.com/b/procha/archive/2008/03/07/alta-disponibilidade-com-sql-
server.aspx> acesso em 05 de outubro de 2012.
6. Guia no Servidor Conectiva Linux, Disponível em:
<http://www.conectiva.com/doc/livros/online/9.0/servidor/ha.html> acesso 04 de
outubro de 2012.
7. IKE, Fernando. (2008) “O máximo da disponibilidade: Sempre Alerta”, Linux
Magazine - 43ª edição.
8. SQL Server: Um Endpoint Brasileiro, Disponível em:
http://www.blogs.msdn.com/b/procha/ Acesso em 07 de outubro de 2012
7. 9. Cluster de Banco de Dados e Replicação, Disponível em:
<http://www.slideshare.net/suissapg/cluster-e-replicao-em-banco-de-dados>