Clustering no Proxmox VE



Em artigos anteriores, começamos a falar sobre o que é o Proxmox VE e como ele funciona. Hoje falaremos sobre como você pode usar o recurso de cluster e mostrar quais vantagens ele oferece.

O que é um cluster e por que é necessário? Um cluster (do cluster inglês) é um grupo de servidores conectados por canais de comunicação de alta velocidade, trabalhando e representando o usuário como um todo. Existem vários cenários básicos para usar um cluster:

  • Fornecendo tolerância a falhas (alta disponibilidade).
  • Balanceamento de carga (Load Balancing).
  • Maior produtividade (alto desempenho).
  • Executando computação distribuída

Cada cenário apresenta seus próprios requisitos para componentes de cluster. Por exemplo, para um cluster executando computação distribuída, o principal requisito é uma alta velocidade de operações de ponto flutuante e baixa latência da rede. Esses agrupamentos são frequentemente usados ​​para fins de pesquisa.

Desde que abordamos o tópico da computação distribuída, quero observar que ainda existe um sistema de grade(do inglês. grid - lattice, network). Apesar da semelhança geral, não confunda o sistema de grade e o cluster. Grade não é um cluster no sentido usual. Ao contrário do cluster, os nós incluídos na grade costumam ser heterogêneos e caracterizados por baixa disponibilidade. Essa abordagem simplifica a solução de problemas de computação distribuída, mas não permite a criação de um único todo a partir de nós.
Um exemplo impressionante de um sistema de grade é a popular plataforma de computação BOINC (Berkeley Open Infrastructure for Network Computing). Essa plataforma foi criada originalmente para o projeto SETI @ home (Busca de Inteligência Extra-Terrestre em Casa), que lida com o problema de procurar inteligência extraterrestre através da análise de sinais de rádio.
Como funciona
, , , - ( SETI@home ). SETI. , .

Agora que temos um entendimento claro do que é um cluster, sugerimos considerar como ele pode ser criado e implantado. Usaremos o sistema de virtualização de código aberto Proxmox VE .

Antes de começar a criar um cluster, é especialmente importante entender claramente as limitações e os requisitos do sistema do Proxmox, 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 (há exceções, mas não são recomendadas para produção);
  • se no futuro for planejado usar a funcionalidade de alta disponibilidade, o cluster deverá ter pelo menos três nós ;
  • para que os nós se comuniquem, as portas UDP / 5404 , UDP / 5405 para corosync e TCP / 22 para SSH devem estar abertas ;
  • o atraso da rede entre os nós não deve exceder 2 ms .

Criação de Cluster


Importante! A configuração abaixo é de teste. Certifique-se de verificar a documentação oficial do Proxmox VE.

Para iniciar o cluster de teste, levamos três servidores com o hipervisor Proxmox instalado da mesma configuração (2 núcleos, 2 GB de RAM).
Se você deseja saber como instalar o Proxmox, recomendamos que leia o artigo anterior - A mágica da virtualização: um curso introdutório no Proxmox VE .
Inicialmente, após a instalação do sistema operacional, um único servidor é executado no modo Independente .


Crie um cluster clicando no botão Criar cluster na seção correspondente.


Nomeamos o cluster futuro e selecionamos a conexão de rede ativa.


Clique no botão Criar. O servidor irá gerar uma chave de 2048 bits e gravá-la juntamente com os parâmetros do novo cluster nos arquivos de configuração.


A inscrição TASK OK indica uma operação bem-sucedida. Agora, olhando as informações gerais sobre o sistema, fica claro que o servidor mudou para o modo de cluster. Até o momento, o cluster consiste em apenas um nó, ou seja, ainda não possui os recursos para os quais o cluster é necessário.


Ingressando em um cluster


Antes de conectar-se ao cluster criado, precisamos obter informações para concluir a conexão. Para fazer isso, vá para a seção Cluster e clique no botão Join Information .


Na janela que se abre, estamos interessados ​​no conteúdo do campo com o mesmo nome. Ele precisará ser copiado.


Todos os parâmetros de conexão necessários são codificados aqui: endereço do servidor para conexão e impressão digital. Passamos para o servidor que precisa ser incluído em um cluster. Clique no botão Ingressar no cluster e, na janela exibida, cole o conteúdo copiado.


Os campos Endereço de par e Impressão digital serão preenchidos automaticamente. Digite a senha raiz do nó número 1, selecione a conexão de rede e clique no botão Ingressar .


Quando você ingressa em um cluster, a página da GUI pode parar de atualizar. Isso é normal, basta recarregar a página. Da mesma maneira, adicionamos mais um nó e, como resultado, recebemos um cluster completo de 3 nós em funcionamento.


Agora podemos controlar todos os nós do cluster de uma GUI.


Organização de alta disponibilidade


O Proxmox pronto para uso suporta a funcionalidade de organização de alta disponibilidade para máquinas virtuais e contêineres LXC. O utilitário ha-manager detecta e processa erros e falhas executando um failover de um nó com falha para um nó em funcionamento. Para que o mecanismo funcione corretamente, é necessário que as máquinas e contêineres virtuais tenham um armazenamento de arquivos comum.

Após a ativação da funcionalidade de alta disponibilidade, a pilha de software do ha-manager começará a monitorar continuamente o status da máquina virtual ou do contêiner e a interagir de forma assíncrona com outros nós no cluster.

Anexar armazenamento compartilhado


Por exemplo, implantamos um pequeno armazenamento de arquivo NFS em 192.168.88.18. Para que todos os nós do cluster possam usá-lo, é necessário fazer as seguintes manipulações.

Selecionamos no menu da interface da web Datacenter - Armazenamento - Adicionar - NFS .


Preencha os campos ID e Servidor . Na lista suspensa Exportar , selecione o diretório desejado dentre os disponíveis e, na lista Conteúdo , os tipos de dados necessários. Depois de clicar no botão Adicionar , o armazenamento será conectado a todos os nós do cluster.


Ao criar máquinas virtuais e contêineres em qualquer um dos nós, especificamos nosso armazenamento como armazenamento.

Personalizar HA


Por exemplo, crie um contêiner com o Ubuntu 18.04 e configure a alta disponibilidade para ele. Após criar e ativar o contêiner, acesse a seção Datacenter - HA - Adicionar . No campo que é aberto, especifique o ID da máquina / contêiner virtual e o número máximo de tentativas para reiniciar e mover-se entre os nós.
Se esse valor for excedido, o hipervisor marcará a VM como com falha e a transferirá para o estado Erro, após o qual deixará de executar qualquer ação com ela.

Após clicar no botão Adicionar , o utilitário ha-manager notificará todos os nós do cluster que a VM com o ID especificado está sendo monitorada e, se cair, deve ser reiniciada em outro nó.


Faça um acidente


Para ver como o mecanismo de comutação funciona, vamos pagar de maneira anormal a fonte de alimentação do nó1. Olhamos de outro nó o que acontece com o cluster. Vemos que o sistema registrou uma falha.

A operação do mecanismo de alta disponibilidade não significa a operação continuada da VM. Assim que o nó "cai", a operação da VM é temporariamente interrompida até a reinicialização automática em outro nó.
E aqui começa a "mágica" - o cluster reatribuiu automaticamente o nó para executar nossa VM e, em 120 segundos, o trabalho foi restaurado automaticamente.


Nós extinguimos o node2 na nutrição. Vamos ver se o cluster pode suportar e a VM retornará ao estado de funcionamento automaticamente.


Infelizmente, como vemos, tivemos um problema com o fato de o único nó sobrevivente não ter mais quorum, o que desabilita automaticamente a HA. Damos o comando para forçar a instalação do quorum no console.

pvecm expected 1


Após 2 minutos, o mecanismo de alta disponibilidade funcionou corretamente e, ao não encontrar o nó2, lançou nossa VM no nó3.


Assim que ativamos o nó1 e o nó2 novamente, o cluster foi totalmente restaurado. Observe que a VM não migra de volta para o nó1, mas isso pode ser feito manualmente.

Resumir


Falamos sobre como o mecanismo de cluster no Proxmox funciona e também mostramos como a HA é configurada para máquinas e contêineres virtuais. O uso adequado de cluster e HA melhora muito a confiabilidade da infraestrutura e também fornece recuperação de desastres.

Antes de criar um cluster, você precisa planejar imediatamente para que finalidades ele será usado e quanto precisará ser dimensionado no futuro. Você também precisa verificar a disponibilidade da infraestrutura de rede com atrasos mínimos, para que o futuro cluster funcione sem falhas.

Diga-nos - você usa recursos de cluster no Proxmox? Vejo você nos comentários.

Artigos anteriores sobre o hipervisor Proxmox VE:


All Articles