Clustering no Proxmox VE

Clustering no Proxmox VE

Em artigos anteriores, começamos falando sobre o que é o Proxmox VE e como ele funciona. Hoje vamos falar sobre como você pode usar a possibilidade de clustering e mostrar quais os benefícios que isso traz.

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

  • Fornecendo tolerância a falhas (alta disponibilidade).
  • Balanceamento de carga (Balanceamento de carga).
  • Aumento da produtividade (alta performance).
  • Executando Computação Distribuída (Computação distribuída).

Cada cenário possui seus próprios requisitos para os membros do cluster. Por exemplo, para um cluster que executa computação distribuída, o principal requisito é alta velocidade de operações de ponto flutuante e baixa latência de rede. Esses clusters são frequentemente usados ​​para fins de pesquisa.

Já que tocamos no tópico da computação distribuída, gostaria de observar que também existe algo como sistema de rede (da grade inglesa - rede, rede). Apesar da semelhança geral, não confunda sistema de grade e cluster. Grid não é um cluster no sentido usual. Ao contrário de um cluster, os nós incluídos na rede são geralmente heterogêneos e caracterizados por baixa disponibilidade. Esta 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 notável de sistema de grade é uma plataforma de computação popular BOINC (Infraestrutura aberta de Berkeley para computação em rede). Esta plataforma foi originalmente criada para o projeto SETI @ home (Search for Extra-Terrestrial Intelligence at Home), tratando do problema de encontrar inteligência extraterrestre por meio da análise de sinais de rádio.

Как это работаетUma enorme variedade de dados recebidos de radiotelescópios é dividida em muitos pequenos pedaços e enviados para os nós do sistema de rede (no projeto SETI@home, computadores voluntários desempenham o papel de tais nós). Os dados são processados ​​nos nós e após a conclusão do processamento, são enviados para o servidor central do projeto SETI. Assim, o projeto resolve o problema global mais complexo sem ter à sua disposição o poder computacional necessário.

Agora que temos uma compreensão clara do que é um cluster, propomos considerar como ele pode ser criado e usado. Usaremos um sistema de virtualização de código aberto Proxmox VE.

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

  • 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 3 nós;
  • as portas devem estar abertas para que os nós se comuniquem entre si UDP/5404, UDP/5405 para corosync e TCP / 22 para SSH;
  • o atraso da rede entre os nós não deve exceder 2 ms.

Crie um cluster

Importante! A configuração a seguir é de teste. Não esqueça de verificar com documentação oficial Proxmox V.E.

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

Se você quiser saber como instalar o Proxmox, recomendamos a leitura de nosso artigo anterior - A magia da virtualização: um curso introdutório ao Proxmox VE.

Inicialmente, após a instalação do SO, um único servidor roda em modo autônomo.

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

Clustering no Proxmox VE
Definimos um nome para o cluster futuro e selecionamos uma conexão de rede ativa.

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

Clustering no Proxmox VE
Inscrição TAREFA OK indica a conclusão bem-sucedida da operação. Agora, olhando as informações gerais sobre o sistema, percebe-se que o servidor mudou para o modo cluster. Até o momento, o cluster consiste em apenas um nó, ou seja, ainda não possui os recursos para os quais um cluster é necessário.

Clustering no Proxmox VE

Juntando-se a um cluster

Antes de nos conectarmos ao cluster criado, precisamos obter informações para completar a conexão. Para fazer isso, vá para a seção Agrupar e нажимаем кнопку Informações de adesão.

Clustering no Proxmox VE
Na janela que se abre, estamos interessados ​​​​no conteúdo do campo de mesmo nome. Ele precisará ser copiado.

Clustering no Proxmox VE
Todos os parâmetros de conexão necessários estão codificados aqui: o endereço do servidor para conexão e a impressão digital. Vamos para o servidor que precisa ser incluído no cluster. Apertamos o botão Junte-se ao cluster e na janela que se abre, cole o conteúdo copiado.

Clustering no Proxmox VE
campos Endereço de mesmo nível и Impressão digital será preenchido automaticamente. Digite a senha root para o nó número 1, selecione a conexão de rede e pressione o botão Cadastrar.

Clustering no Proxmox VE
Durante o processo de adesão a um cluster, a página da Web da GUI pode parar de ser atualizada. Tudo bem, basta recarregar a página. Exatamente da mesma maneira, adicionamos outro nó e, como resultado, obtemos um cluster completo de 3 nós funcionais.

Clustering no Proxmox VE
Agora podemos controlar todos os nós do cluster a partir de uma GUI.

Clustering no Proxmox VE

Organização de alta disponibilidade

O Proxmox pronto para uso oferece suporte à funcionalidade de organização HA para máquinas virtuais e contêineres LXC. Utilitário ha-gerente detecta e trata erros e falhas, realizando um failover de um nó com falha para um nó em funcionamento. Para que o mecanismo funcione corretamente, é necessário que as máquinas virtuais e os containers tenham um armazenamento de arquivos comum.

Depois de ativar a funcionalidade de alta disponibilidade, a pilha de software ha-manager monitorará continuamente o estado da máquina virtual ou contêiner e interagirá de forma assíncrona com outros nós do cluster.

Anexando armazenamento compartilhado

Por exemplo, implantamos um pequeno compartilhamento de arquivos NFS em 192.168.88.18. Para que todos os nós do cluster possam utilizá-lo, você precisa fazer as seguintes manipulações.

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

Clustering no Proxmox VE
Preencha os campos ID и servidor. Na lista suspensa Exportações selecione o diretório desejado entre os disponíveis e na lista Conteúdo — tipos de dados necessários. Depois de pressionar o botão Adicionar o armazenamento será conectado a todos os nós do cluster.

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

Configurando HA

Por exemplo, vamos criar um contêiner com Ubuntu 18.04 e configurar alta disponibilidade para ele. Após criar e executar o contêiner, vá para a seção Datacenter-HA-Adicionar. No campo que é aberto, especifique o ID da máquina virtual/contêiner e o número máximo de tentativas de reinicialização e movimentação entre nós.

Se esse número for excedido, o hipervisor marcará a VM como falha e a colocará no estado de Erro, após o qual deixará de executar qualquer ação com ela.

Clustering no Proxmox VE
Depois de pressionar o botão Adicionar utilidade ha-gerente notificará todos os nós do cluster que agora a VM com o ID especificado é controlada e, em caso de falha, ela deve ser reiniciada em outro nó.

Clustering no Proxmox VE

Vamos fazer um acidente

Para ver exatamente como funciona o mecanismo de comutação, vamos desligar a fonte de alimentação do nó1 de forma anormal. Observamos em outro nó o que está acontecendo com o cluster. Vemos que o sistema corrigiu uma falha.

Clustering no Proxmox VE

A operação do mecanismo HA não significa a continuidade da VM. Assim que o nó “cai”, a operação da VM é interrompida temporariamente até que seja reiniciada automaticamente em outro nó.

E é aqui que a “mágica” começa: o cluster reatribuiu automaticamente o nó para executar nossa VM e em 120 segundos o trabalho foi restaurado automaticamente.

Clustering no Proxmox VE
Extinguimos o nó2 na nutrição. Vamos ver se o cluster sobreviverá e se a VM retornará automaticamente ao estado de funcionamento.

Clustering no Proxmox VE
Infelizmente, como podemos ver, temos um problema com o fato de que não há mais quorum no único nó sobrevivente, o que desativa automaticamente o HA. Damos o comando para forçar a instalação de um quorum no console.

pvecm expected 1

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

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

Resumindo

Falamos sobre como funciona o mecanismo de clustering Proxmox e também mostramos como o HA é configurado para máquinas virtuais e contêineres. O uso adequado de clustering e HA aumenta muito a confiabilidade da infraestrutura, além de fornecer recuperação de desastres.

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

Diga-nos: você está usando os recursos de cluster do Proxmox? Esperamos por você nos comentários.

Artigos anteriores sobre o hipervisor Proxmox VE:

Fonte: habr.com

Adicionar um comentário