Atualmente as instituições, empresas e organizações estão cada vez mais dependentes dos sistemas de informação para gerenciar e manter os seus negócios em operação e atingir as metas estabelecidas. Neste contexto, devido à alta dependência em relação a todos os componentes de software que sustentam o sistema como um todo, qualquer falha ou indisponibilidade em qualquer destes elementos pode culminar em grandes prejuízos para estas corporações.

Em face disto, nos últimos anos tem-se tornado cada vez mais comum a elaboração de estratégias para minimizar o impacto de falhas de sistemas e/ou de equipamentos, que são naturais e corriqueiras em qualquer ambiente de TI. O intuito é criar formas de se utilizar vários elementos iguais dedicados a uma mesma tarefa, permitindo que caso haja problema em algum destes os sistemas continuem em funcionamento, sem que o usuário final perceba a ocorrência da queda de um dos participantes do processo.

Um conceito bastante difundido e aplicado sob vários aspectos são os chamados clusters. As soluções de cluster variam de fornecedor para fornecedor, mas todas possuem o mesmo objetivo final, que é introduzir redundância para se obter alta disponibilidade e, por conseqüência, desempenho. Ou seja, eliminamos pontos de falhas (single point of failure – ver Nota 1) utilizando discos, memória, processador e outros componentes redundantes, pois se um falhar há outro pronto para assumir o trabalho sem prejudicar a produção. Exemplificando, seria como ter vários equipamentos iguais responsáveis por executar o mesmo software. Neste caso, os sistemas distribuem as requisições dos usuários entre os vários equipamentos disponíveis de forma transparente. Como há vários elementos executando a mesma função, há uma melhoria de desempenho, uma vez que temos uma capacidade maior de processamento paralelo, e caso haja falha em um destes equipamentos, o sistema continuaria operando com os demais que não foram danificados. Assim, dar-se mais tempo para a infra-estrutura efetuar a manutenção, podendo até ter que substituir o equipamento sem que o usuário final sofra qualquer impacto ou indisponibilidade dos sistemas.

Nota 1. Single Point of Failure
Este termo é utilizado para descrever sistemas cujos componentes são sempre redundantes. Por exemplo, se um sistema necessita de um disco para funcionar, caso este falhe, todo o sistema irá parar. Portanto, neste caso seria necessária a existência de 2 discos, para que em caso de problemas com um deles, tenha-se outro para assumir a sistema, imediatamente.

Assim, Single Point of Failure (Ponto de falha único), significa que havendo problema em qualquer elemento que constitui o sistema, o mesmo continuará em operação. Ou seja, ocorrendo erro em um único ponto, este não será percebido pelo sistema como um todo.

É notório que quanto maior for o requisito de disponibilidade, maior será o custo de implantação da solução, já que necessitará de mais elementos duplicados. Portanto, será necessário contrabalançar este valor com o custo de donwtime (parada) do sistema para ver o limite de investimento adequado.

Seguindo esta linha, o MySQL desenvolveu uma solução conhecida como MySQL Cluster, que consiste em prover capacidade de fail-over automático com o intuito de prover alta disponibilidade para o banco de dados. Vale destacar que o termo fail-over significa que havendo problema em um dos componentes do cluster, outro elemento o substituirá imediatamente, mantendo todo o sistema em operação como se nada tivesse ocorrido.

O objetivo deste artigo é descrever a arquitetura do MySQL Cluster e fornecer um guia básico para a instalação e configuração do produto em um ambiente com um mínimo de redundância. Vale destacar que os exemplos serão descritos utilizando o Ubuntu Linux, mas as configurações nos demais sistemas operacionais suportados são similares às aqui apresentadas.

Uma Visão Geral sobre o MySQL Cluster

O MySQL Cluster é uma tecnologia de bancos de dados que mantém os dados em memória, e que tem como base não compartilhar recursos entre processos (shared nothing). O objetivo é compor uma solução de alta disponibilidade utilizando hardware de baixo custo. Quando se diz que os componentes do cluster não compartilham nada, significa dizer que cada processo possui seus próprios discos, memória, processador e não utilizam nenhuma estratégia de armazenamento compartilhado de dados, tais como SAN (Storage Area Network), sistemas de arquivos em rede ou servidores de arquivos.

Nota DevMan 1. SAN – Storage Area Network
Na computação, um Storage Area Network (área de armazenamento em rede) ou SAN é uma rede projetada para agrupar dispositivos de armazenamento de computador. Os SANs são mais comuns nos armazenamentos de grande porte.

Existem duas variações de SANs:

1. Uma rede na qual o propósito principal é a transferência de dados entre computadores e dispositivos de armazenamento. Um SAN consiste em uma infra-estrutura de comunicação que provê conexões físicas com uma camada de gerenciamento, que organiza as conexões, os dispositivos de armazenamento e os computadores, tornando a transferência de dados robusta e segura.

2. Um sistema de armazenamento formado por dispositivos de armazenamento, computadores e/ou aplicações, e todo um controle via software, comunicando-se através de uma rede de computadores.

Definição

As SAN’s são diferenciadas de outras formas de armazenamento em rede pelo método de acesso em baixo nível que elas apresentam. O tráfego de dados nessas redes é bastante similar àqueles usados internamente em discos, como ATA e SCSI.

Em uma rede de armazenamento, o servidor envia pedidos por blocos específicos ou segmentos de dados de específicos discos. Esse método é conhecido como block storage (armazenamento de blocos). O dispositivo age similarmente a um drive interno, acessando o bloco específico e enviando a resposta através da rede.

Em alguns métodos de acessos de arquivos mais tradicionais, como SMB/CIFS ou NFS, o servidor envia pedidos para um arquivo abstrato como o componente de um grande sistema de arquivos, gerenciados por um computador intermediário. O intermediário, então, determina o local físico do tal arquivo abstrato, obtém acesso em um dos drives internos e, por fim, envia o arquivo completo pela rede.

A maioria das SAN's usa o protocolo SCSI para a comunicação entre servidores e dispositivos, embora não usem o baixo nível da interface SCSI.444

Benefícios

Compartilhar o armazenamento normalmente simplifica a administração e proporciona flexibilidade, uma vez que cabos e dispositivos de armazenamento não precisam ser movidos fisicamente para mudar armazenamento de um servidor para outro, por exemplo. Note, apesar, que com a exceção do sistema de arquivos SAN e clusters, o SAN ainda é de relação um-a-um. Ou seja, cada dispositivo no SAN é de propriedade de um único computador. Oposto a isso, o NAS ( ...

Quer ler esse conteúdo completo? Tenha acesso completo