Um cluster inclui as seguintes funcionalidades:
Configuração do hardware no-single-point-of-failure
Os clusters podem incluir um conjunto RAID de controlador duplo, canais múltiplos de rede e sistemas ininterruptos de fornecimento de energia (uninterruptible power supply, UPS) para garantir que nenhuma falha resulte na perda de dados ou na aplicação ficar fora do ar.
Alternativamente, um cluster de baixo custo pode ser configurado para oferecer menos disponibilidade que um cluster no-single-point-of-failure. Por exemplo: você pode configurar um cluster com um conjunto RAID de controlador simples e somente um canal Ethernet.
![]() | Nota |
---|---|
Algumas alternativas de baixo custo, tais como RAID de software e SCSI paralelo com multi-iniciadores, não são compatíveis ou apropriados para usar no armazenamento compartilhado do cluster. Consulte a Seção 1.1 para mais informações. |
Estrutura de configuração do serviço
Os clusters permitem que você configure facilmente os serviços individualmente para tornar os dados e aplicações altamente disponíveis. Para criar um serviço, deve-se especificar as propriedades do serviço, incluindo seu nome, scripts de início, parada e estado da aplicação, partições de disco, pontos de montagem e os membros do cluster nos quais você prefere que o serviço rode. Após adicionar um serviço, o software de administração do cluster armazena as informações num arquivo de configuração do cluster no armazenamento compartilhado, onde os dados de configuração podem ser acessados por todos os membros do cluster.
O cluster oferece uma estrutura de fácil utilização para aplicações de banco de dados. Por exemplo: um serviço de banco de dados oferece dados altamente disponíveis para uma aplicação de banco de dados. A aplicação rodando num membro do cluster oferece acesso de rede a sistemas cliente do banco de dados, tais como servidores web. Se o serviço falhar e for assumido por outro membro, a aplicação ainda pode acessar os dados do banco compartilhado. Um serviço de banco de dados acessível pela rede geralmente recebe um endereço IP, que é passado juntamente ao serviço falho para manter o acesso transparente aos clientes.
A estrutura do serviço do cluster também pode ser facilmente extendida para outras aplicações.
Domínios de queda (failover domains)
Ao atribuir um serviço a um domínio de transferência restrito, você pode limitar os membros capazes de rodar um serviço no caso de uma queda. (Um serviço atribuído a um domínio de transferência restrito não pode ser iniciado num membro do cluster que não está incluso naquele domínio de queda.) Você pode ordenar os membros em um domínio de transferência por preferência, para garantir que um determinado membro rode o serviço (desde que este membro esteja ativo). Se um serviço é atribuído a um domínio de queda irrestrito, o serviço inicia em qualquer membro disponível do cluster (se nenhum dos membros do domínio de transferência estiver disponível).
Garantia de integridade dos dados
Para garantir a integridade dos dados, somente um membro pode rodar um serviço e acessar os dados do serviço por vez. O uso de comutadores de energia na configuração de hardware do cluster possibilita que um membro assuma os serviços de outro antes de reiniciar os serviços deste membro durante o processo de queda. Isto evita que dois sistemas acessem simultaneamente os mesmos dados e os corrompam. Apesar de não ser requisitado, o uso de comutadores de energia é recomendado para garantir a integridade dos dados sob todas as condições de falha. Os timers watchdog são uma outra opção de controle de energia para garantir a operação correta da queda e transferência de serviços.
Interface do usuário para administração do cluster
A interface de administração do cluster facilita o gerenciamento de tarefas como: criação, início e parada de serviços; relocação de serviços de um membro para outro; alteração da configuração do cluster (para adicionar ou remover serviços ou recursos) e monitoramento dos membros e serviços do cluster.
Agrupamento dos canais Ethernet
Para monitorar a saúde dos outros membros, cada membro monitora a saúde do comutador de energia remoto, se houver, e envia pings heartbeat através dos canais da rede. Com o agrupamento dos canais Ethernet, as diversas interfaces Ethernet são configuradas para atuarem como uma só, reduzindo o risco de um single-point-of-failure numa típica conexão Ethernet comutada entre sistemas.
Armazenamento compartilhado para informações quorum
As informações do estado compartilhado incluem se um membro está ativo. As informações do estado do serviço incluem se o serviço está rodando e qual membro está rodando o serviço. Cada membro verifica estas informações para garantir que o estado dos outros membros está atualizado.
Em um cluster de dois membros, cada membro grava um timestamp e as informações de estado do cluster periodicamente em duas partições compartilhadas localizadas no armazenamento compartilhado. Para garantir a operação correta do cluster, se um membro não puder gravar nas partições compartilhadas primária e shadow no momento da inicialização, não poderá se juntar ao cluster. Além disso, se um membro não atualiza seu timestamp e se os heartbeats para este sistema falham, o membro é removido do cluster.
A Figura 2 mostra como os membros se comunicam numa configuração de cluster. Note que o servidor terminal usado para acessar os consoles do sistema através das portas seriais não é um componente necessário para o cluster.
Capacidade de queda e transferência de serviço (failover)
Se ocorrer uma falha no hardware ou no software, o cluster toma a ação apropriada para manter a disponibilidade da aplicação e integridade dos dados. Por exemplo: se um membro cair completamente, um outro membro (do domínio de transferência associado, se usado, ou do cluster) reinicia seus serviços. Os serviços que já estão rodando neste membro não são interrompidos.
Quando o membro falho reinicializar e puder gravar nas partições compartilhadas do cluster, pode novamente se juntar ao cluster e rodar serviços. Dependendo de como os serviços são configurados, o cluster pode re-balancear os serviços entre seus membros.
Capacidade de relocação manual de serviços
Além da queda e transferência automática de serviços, um cluster permite que você pare serviços em um membro e os reinicie em outro de forma limpa. Você pode executar uma manutenção planejada em um sistema membro enquanto continua a oferecer a disponibilidade da aplicação e dos dados em outros membros.
Facilidade de registro de eventos
Para garantir que os problemas sejam detectados e resolvidos antes de afetar a disponibilidade do serviço, os daemons do cluster registram mensagens usando o sub-sistema convencional do Linux, syslog. Você pode personalizar o nível de severidade das mensagens registradas.
Monitoramento de aplicações
A infra-estrutura de um cluster pode, opcionalmente, monitorar o estado e a saúde de uma aplicação. Desta maneira, se ocorrer uma falha específica da aplicação, o cluster a reinicia automaticamente. Em resposta à falha da aplicação, esta tenta ser reinciada no membro onde estava rodando previamente; se isto falhar, é reiniciada em outro membro do cluster. Você pode especificar quais membros são capazes de rodar um serviço, atribuindo um domínio de transferência ao serviço.