Clusterização no Proxmox VE

Clusterização no Proxmox VE

Em artigos anteriores, começamos a falar sobre o que é o Proxmox VE e como ele funciona. Hoje, vamos discutir como utilizar a capacidade de clustering e mostrar quais são as vantagens que isso oferece.

O que é um cluster e para que serve? Um cluster (do inglês cluster) é um grupo de servidores interligados por canais de comunicação de alta velocidade, que operam e se apresentam ao usuário como um único sistema. Existem vários cenários principais de uso de clusters:

  • Garantia de alta disponibilidade (High-availability).
  • O balanceamento de carga (Load Balancing).
  • Aumento de desempenho (High Performance).
  • Execução de computações distribuídas (Distributed computing).

Cada cenário tem suas próprias exigências para os componentes do cluster. Por exemplo, para um cluster que executa computações distribuídas, o principal requisito é uma alta velocidade na execução de operações de ponto flutuante e baixa latência na rede. Esses tipos de clusters são frequentemente usados para fins de pesquisa científica.

Já que tocamos no tema de computações distribuídas, vale a pena mencionar que existe também o conceito de sistema grid (do inglês grid — grade, rede). Apesar da semelhança geral, não devemos confundir um sistema grid com um cluster. Um grid não é um cluster nos moldes tradicionais. Ao contrário de um cluster, os nós que compõem um grid geralmente são heterogêneos e possuem baixa disponibilidade. Essa abordagem facilita a resolução de tarefas de computações distribuídas, mas não permite criar um sistema coeso com os nós.

Um exemplo marcante de sistema grid é a popular plataforma de computação BOINC (Berkeley Open Infrastructure for Network Computing). Esta plataforma foi inicialmente criada para o projeto SETI@home (Search for Extra-Terrestrial Intelligence at Home), que se dedica à busca de vida extraterrestre por meio da análise de sinais de rádio.

Como funcionaUm enorme volume de dados obtidos dos radiotelescópios é dividido em várias partes pequenas, que são enviadas para os nós do sistema grid (no projeto SETI@home, os computadores de voluntários atuam como esses nós). Os dados são processados nos nós e, após a conclusão do processamento, são enviados ao servidor central do projeto SETI. Dessa forma, o projeto resolve uma complexa tarefa global, sem dispor da potência computacional necessária.

Agora que temos uma compreensão clara do que é um cluster, vamos analisar como podemos criar e utilizá-lo. Vamos usar um sistema de virtualização de código aberto. Proxmox VE.

É especialmente importante entender claramente as limitações e os requisitos de sistema do Proxmox antes de começar a criar um cluster, a saber:

  • o número máximo de nós em um cluster é 32;
  • todos os nós devem ter a mesma versão do Proxmox (existem exceções, mas não são recomendadas para produção);
  • se for planeado usar a funcionalidade de Alta Disponibilidade no futuro, o cluster deve ter no mínimo 3 nós;
  • para a comunicação entre os nós, as portas devem estar abertas UDP/5404, UDP/5405 para corosync e TCP/22 para SSH;
  • a latência na rede entre os nós não deve exceder 2 ms.

Criação de cluster

Importante! A configuração abaixo é apenas para testes. Não se esqueça de verificar a documentação oficial do Proxmox VE.

Para iniciar um cluster de teste, usamos três servidores com o hipervisor Proxmox instalado e com a mesma configuração (2 núcleos, 2 GB de RAM).

Se você quer saber como instalar o Proxmox, recomendamos ler nosso artigo anterior — A Magia da Virtualização: Um Curso Introdutório no Proxmox VE.

Inicialmente, após a instalação do sistema operacional, um único servidor opera em Standalone-mode.

Clusterização no Proxmox VE
Vamos criar um cluster clicando no botão Create Cluster na seção correspondente.

Clusterização no Proxmox VE
Definimos um nome para o futuro cluster e escolhemos a conexão de rede ativa.

Clusterização no Proxmox VE
Clicamos no botão Create. O servidor gerará uma chave de 2048 bits e a gravará juntamente com os parâmetros do novo cluster nos arquivos de configuração.

Clusterização no Proxmox VE
A mensagem TAREFA OK indica que a operação foi realizada com sucesso. Agora, ao olhar as informações gerais do sistema, vemos que o servidor entrou no modo de cluster. Por enquanto, o cluster consiste apenas em um nó, ou seja, ainda não possui as funcionalidades para as quais um cluster é necessário.

Clusterização no Proxmox VE

Conectando ao cluster

Antes de nos conectarmos ao cluster criado, precisamos obter informações para realizar a conexão. Para isso, vamos para a seção Cluster e clicamos no botão Join Information.

Clusterização no Proxmox VE
Na janela que se abre, nos interessa o conteúdo do campo de mesmo nome. Será necessário copiá-lo.

Clusterização no Proxmox VE
Aqui estão codificados todos os parâmetros necessários de conexão: o endereço do servidor para conexão e a impressão digital. Vamos para o servidor que precisa ser incluído no cluster. Clique no botão Juntar ao Cluster e na janela que se abre, cole o conteúdo copiado.

Clusterização no Proxmox VE
Campos Endereço do Peer e Fingerprint serão preenchidos automaticamente. Digite a senha root do nó número 1, escolha a conexão de rede e clique no botão Juntar.

Clusterização no Proxmox VE
Durante o processo de junção ao cluster, a página web da GUI pode parar de atualizar. Isso é normal, basta recarregar a página. Da mesma forma, adicionamos mais um nó e, por fim, obtemos um cluster completo com 3 nós em funcionamento.

Clusterização no Proxmox VE
Agora podemos controlar todos os nós do cluster a partir de uma única GUI.

Clusterização no Proxmox VE

Organização de Alta Disponibilidade

O Proxmox ‘pronto para uso’ suporta a funcionalidade de organização de HA tanto para máquinas virtuais quanto para containers LXC. A ferramenta ha-manager detecta e gerencia erros e falhas, fazendo a transferência de emergência de um nó que falhou para um ativo. Para que o mecanismo funcione corretamente, é necessário que as máquinas virtuais e os containers tenham um armazenamento de arquivos comum.

Após ativar a funcionalidade de Alta Disponibilidade, a pilha de software ha-manager começará a monitorar continuamente o estado de operação da máquina virtual ou container e interagir assincronamente com outros nós do cluster.

Unir o armazenamento compartilhado

Como exemplo, nós configuramos um pequeno armazenamento de arquivos NFS no endereço 192.168.88.18. Para que todos os nós do cluster possam utilizá-lo, precisamos realizar as seguintes etapas.

No menu da interface web, escolhemos Datacenter — Armazenamento — Adicionar — NFS.

Clusterização no Proxmox VE
Preencha os campos ID e Servidor. No menu suspenso Export escolha o diretório desejado entre os disponíveis e na lista Conteúdo — os tipos de dados necessários. Após clicar no botão Adicionar o armazenamento será conectado a todos os nós do cluster.

Clusterização no Proxmox VE
Ao criar máquinas virtuais e containers em qualquer um dos nós, indicamos nosso storage como armazenamento.

Configurar HA

Como exemplo, criaremos um container com Ubuntu 18.04 e configuraremos a Alta Disponibilidade para ele. Após criar e iniciar o container, acesse a seção Datacenter — HA — Adicionar. No campo aberto, indicamos o ID da máquina virtual/container e o número máximo de tentativas de reinício e movimentação entre nós.

Se esse limite for ultrapassado, o hipervisor marcará a VM como falha e a colocará no estado de Erro, após o que interromperá qualquer ação relacionada a ela.

Clusterização no Proxmox VE
Após clicar no botão Adicionar utilitário ha-manager vai notificar todos os nós do cluster de que agora a VM com o ID especificado está sob controle e, em caso de falha, deve ser reiniciada em outro nó.

Clusterização no Proxmox VE

Vamos provocar uma falha

Para ver como o mecanismo de failover funciona, vamos desligar inesperadamente o node1 da energia. Vamos observar de outro nó o que acontece com o cluster. Vemos que o sistema registrou a falha.

Clusterização no Proxmox VE

O funcionamento do mecanismo de HA não significa continuidade na operação da VM. Assim que o nó 'cai', o funcionamento da VM pausa temporariamente até ser reiniciada automaticamente em outro nó.

E é aqui que começa a 'magia' — o cluster automaticamente realocou um nó para executar nossa VM e, em 120 segundos, a operação foi restaurada automaticamente.

Clusterização no Proxmox VE
Desligamos o node2 da energia. Vamos ver se o cluster consegue suportar isso e se a VM volta ao estado operacional automaticamente.

Clusterização no Proxmox VE
Infelizmente, como podemos ver, tivemos um problema em que o único nó restante em funcionamento já não possui quórum, o que desativa automaticamente a operação de HA. Damos o comando de forçar a configuração do quórum no console.

pvecm expected 1

Clusterização no Proxmox VE
Após 2 minutos, o mecanismo de HA funcionou corretamente e, não encontrando o node2, iniciou nossa VM no node3.

Clusterização no Proxmox VE
Assim que ligamos novamente o node1 e o node2, a operação do cluster foi totalmente restaurada. Observe que a VM não migra automaticamente de volta para o node1, mas isso pode ser feito manualmente.

Resumindo

Falamos sobre como funciona o mecanismo de clusterização no Proxmox e também mostramos como configurar o HA para máquinas virtuais e contêineres. O uso adequado de clusterização e HA aumenta significativamente a confiabilidade da infraestrutura e garante recuperação após falhas.

Antes de criar um cluster, é essencial planejar imediatamente para quais fins ele será utilizado e quão escalável ele precisará ser no futuro. Também é necessário verificar a infraestrutura de rede para garantir que funcione com latência mínima, para que o cluster futuro opere sem falhas.

Conte-nos — você utiliza as capacidades de clusterização no Proxmox? Aguardamos seus comentários.

Artigos anteriores sobre o hipervisor Proxmox VE:

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster