Proxmox: Configurar um cluster com armazenamento Ceph

Neste tutorial, vou explicar-lhe como configurar um cluster com o Proxmox para garantir alta disponibilidade, e a gestão do armazenamento será feita com o Ceph, de modo a obter um ambiente de virtualização hiperconvergente.

Introdução

Antes de iniciarmos o tutorial, vou abordar alguns pontos para os principiantes.

Comecemos pela hiperconvergência. Tradicionalmente, a formação de clusters de hipervisores era feita com um sistema de três camadas. Por um lado, tínhamos o poder de cálculo (CPU + RAM) dos servidores e o armazenamento em baia numa arquitetura do tipo SAN (Stockage Area Network). Com a hiperconvergência, já não há SAN; utiliza-se o armazenamento local dos servidores para armazenar as máquinas virtuais.

Para facilitar a compreensão, eis dois esquemas:

Não vou entrar num debate sobre qual a melhor arquitetura; com uma arquitetura hiperconvergente, sabemos apenas que as máquinas virtuais são armazenadas em vários servidores, de modo a garantir a alta disponibilidade em caso de perda de um servidor físico.

O esquema é bastante simplista; se tivéssemos um quarto servidor na parte hiperconvergente, não haveria necessariamente uma quarta cópia das máquinas virtuais.

Por experiência própria, os dois tipos de arquiteturas têm as suas vantagens e desvantagens; para mim, são complementares e não opostas.

No papel, a hiperconvergência oferece um elevado desempenho, uma vez que é frequentemente utilizada em servidores topo de gama — o que é um pré-requisito —, com armazenamento totalmente flash do tipo NVMe ou SSD, sendo ideal para aplicações e bases de dados que exigem muita potência e alta disponibilidade.

Seria totalmente contraproducente utilizar, por exemplo, servidores de ficheiros com vários terabytes ou servidores Exchange que armazenam um grande volume de dados inativos.

Tomemos o exemplo de um servidor de ficheiros com um volume de 10 TB: numa arquitetura hiperconvergente, a máquina utilizaria 30 TB de armazenamento em discos flash.

Para fazer funcionar uma arquitetura hiperconvergente, é necessário ter, no mínimo, 3 nós (servidores) idênticos, o que é um pré-requisito para todas as soluções do mercado.

Voltando a este tutorial dedicado ao Proxmox, vamos ver como implementar um cluster no Proxmox e, em seguida, a configuração do Ceph, que irá gerir o armazenamento entre os servidores.

Como não tenho à minha disposição 3 servidores físicos idênticos, realizei este tutorial com 2 servidores.

Para uma implementação em produção, é imperativo ter 3 servidores; caso contrário, a alta disponibilidade não estará funcional.

Antes de iniciar a configuração, convido-o a ler este artigo para compreender o Ceph: Compreender os fundamentos da arquitetura do Ceph

Criação do cluster no Proxmox e adição dos servidores

A primeira etapa deste tutorial será a criação do cluster no Proxmox e, em seguida, a adição dos outros servidores.

Antes de iniciar a criação do cluster, vou fazer uma pequena observação para quem está habituado ao Hyper-V.

Muitas vezes, quando se fala de cluster, pensa-se imediatamente em alta disponibilidade. No Proxmox, a configuração do cluster permitirá, em primeiro lugar, adicionar os servidores Proxmox no mesmo datacenter e gerir todos os servidores Proxmox na mesma interface web, bem como, por exemplo, mover as máquinas de um servidor para outro (migração) sem que estejam em alta disponibilidade.

Para que a alta disponibilidade seja possível, é necessário um armazenamento partilhado (SAN / Ceph), criar um grupo de HA e configurar as máquinas virtuais nesse grupo.

Outro elemento a ter em conta com o Proxmox para o funcionamento correto da alta disponibilidade: o Proxmox requer 3 servidores.

Criar um cluster no Proxmox

A criação do cluster pode ser efetuada em qualquer servidor que venha a ser membro do mesmo.

Vamos criar o cluster a partir do servidor s-pve-1.

Vá para Datacenter 1, Cluster 2 e clique no botão Create Cluster 1.

Dê um nome ao cluster 1, configure a rede do cluster 2 e clique em Create 3.

Create Cluster in Proxmox

Aguarde enquanto o cluster é criado…

O cluster está criado, feche a janela.

O cluster está visível na interface Web e pode-se ver que o servidor que utilizámos para criar o cluster é membro do mesmo.

Adicionar um servidor Proxmox a um Cluster

Vamos adicionar o servidor s-pve-2 ao cluster.

No servidor s-pve-1, a partir das configurações do cluster, clique em Join Information 1.

Clique no botão «Copy Information» 1.

A partir da interface Web de administração do servidor, aceda à configuração do cluster: Datacenter / Cluster e clique no botão Join Cluster 1.

Cole as informações 1 de adesão ao cluster, introduza a palavra-passe root 2 do servidor membro do cluster, selecione a placa de rede 3 para as comunicações do cluster e clique no botão Join ‘Cluster-name’ 4.

Aguarde enquanto a ligação ao cluster é estabelecida…

Durante a ligação ao cluster, será desconectado da interface Web; por isso, não é possível ver quando a ligação está concluída.

No servidor s-pve-1, verifique na interface Web se o servidor foi adicionado ao cluster 1 e se este está visível na interface de administração.

Repita a operação para os outros servidores que devem ser adicionados ao cluster.

Configuração do armazenamento Ceph

Instalar o Ceph nos servidores Proxmox

Por predefinição, o Ceph não está instalado nos servidores Proxmox; ao selecionar o servidor, aceda ao Ceph e clique no botão «Install Ceph» 1.

Como não tenho licença, selecionei o Repository No-Subscription 1 e cliquei em Start reef installation 2.

Confirme a instalação dos pacotes adicionais…

Aguarde durante a instalação…

Concluída a instalação, clique em Next 1 para avançar para a configuração.

Escolha o endereço de rede 1 que será utilizado para o cluster Ceph e clique em Next 2.

A instalação está concluída, clique em «Finish» 1 para fechar o assistente.

A instalação do Ceph está concluída no primeiro servidor; repita esta operação nos outros servidores do cluster.

Configuração do Ceph

Vamos agora passar à configuração do Ceph.

Não vou entrar em detalhes técnicos neste tutorial; convido-o a ler a documentação disponível aqui para obter mais informações.

Configurar o Monitor e o Manager

Vamos adicionar cada nó como Monitor e Manager do cluster Ceph

A partir de um dos nós do cluster, vá a Ceph 1 e depois a Monitor 2.

Vamos começar pelos Monitores; clique no botão Create 1.

Selecione o servidor a adicionar 1.

Depois de selecionar o servidor, clique no botão Create 1.

O segundo servidor foi adicionado.

Adicione os outros servidores e faça o mesmo para os Managers.

Adicionar OSD: disco físico

Agora vamos adicionar ao Ceph os discos físicos chamados OSD.

Abaixo estão os discos físicos que vou poder adicionar para cada servidor:

Para um funcionamento correto, é necessário adicionar o mesmo número de discos para cada servidor.

Selecione um servidor, vá para Ceph / OSD e clique no botão Create: OSD 1.

Selecione o disco 1 e clique em Create 2.

O disco é adicionado ao servidor s-pve-1.

Adicione outros discos ao servidor, se necessário, e repita o processo para cada servidor do cluster Ceph.

Os discos foram adicionados aos dois servidores.

Pode adicionar OSDs a qualquer momento, bastando apenas respeitar a regra de adicionar um OSD por servidor de cada vez.

Criação de um Pool

Um pool é um espaço de armazenamento que poderá ser utilizado no Proxmox para o armazenamento de máquinas virtuais.

Vá a Ceph / Pools e clique no botão Create 1.

Ativei deliberadamente a visualização avançada; normalmente, basta nomear 1 o Pool e clicar em Create 2.

Algumas explicações: o valor Size corresponderá ao número de cópias dos dados no cluster Ceph; por predefinição, este valor é 3 e não pode ser superior ao número de nós no cluster Ceph. O valor Min. Size corresponde ao número mínimo de nós que devem estar online; por predefinição, 2; se descermos abaixo deste limite, o acesso ao Pool é bloqueado.

O Pool é adicionado e é possível ver o armazenamento ceph-1 disponível nos dois servidores.

Utilização do Pool de armazenamento Ceph

Ao criar uma máquina virtual ou um contentor, selecione o armazenamento ceph-1.

É possível ver que o disco da máquina virtual está no armazenamento ceph-1.

Configuração da alta disponibilidade (HA) num cluster Proxmox

Vamos agora ver como configurar a HA no Proxmox; para funcionar, o armazenamento das máquinas virtuais deve estar num armazenamento partilhado entre os servidores do grupo HA.

A alta disponibilidade no Proxmox é gerida através de grupos de alta disponibilidade dos quais os servidores são membros, o que permite, por exemplo, ter diferentes tipos de servidores membros de um cluster e agrupar os servidores do mesmo tipo num grupo.

Esta configuração proporciona uma grande flexibilidade e permite, por exemplo, gerir, dentro de um mesmo Datacenter, servidores que estejam numa arquitetura de duas camadas e servidores em hiperconvergência.

Para criar um grupo, aceda a Datacenter / HA / Groups e clique no botão Create 1.

Dê um nome 1 ao grupo, selecione os servidores membros 2 e clique no botão Create 3.

O grupo está criado.

Agora, é necessário adicionar os recursos (VM e CT) que farão parte do grupo de HA.

Vá a Datacenter / HA e clique no botão Add 1.

Selecione a VM 1.

Selecione o grupo 1 e clique em Add 2.

Os recursos estão configurados para alta disponibilidade.

A partir da pré-visualização da máquina virtual, é possível ver o estado de HA.

Teste de failover

Para testar a comutação da VM 100 que se encontra em s-pve-2, vou desligar o servidor.

A partir do Shell, vou iniciar o encerramento do servidor.

O servidor está offline.

A VM com o ID 100 é transferida para o s-pve-1 e iniciada.


Agora já sabe como configurar um ambiente de alta disponibilidade com o Proxmox e o Ceph.

Romain Drouche
Romain Drouche
Arquiteto de Sistemas | MCSE: Infraestrutura Essencial
Especialista em infraestruturas de TI com mais de 15 anos de experiência na área. Atualmente, como Gestor de Projetos de Sistemas e Redes e especialista em Segurança de Sistemas de Informação (SSI), utilizo a minha expertise para garantir a fiabilidade e a segurança dos ambientes tecnológicos.

Deixe um comentário