Debian Cluster CEPH: mudanças entre as edições

De ISPUP!
Ir para navegação Ir para pesquisar
Sem resumo de edição
Sem resumo de edição
 
Linha 1: Linha 1:
== Introdução ==
== Introdução ==
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um '''Cluster''' deve ser composto de no '''mínimo 3 nodes''' para que possa dar segurança, existir '''quorum''' e quando usamos '''CEPH''' também precisamos de pelo menos 3 '''OSDs''' para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no '''Cluster''' para servir de quorum e de disco '''CEPH'''.  Dessa maneira você consegue com 2 servidores '''Proxmox''' e uma máquina que chamei de '''Quorum Device''', colocar em produção um Cluster com HA funcional.
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um '''Cluster''' deve ser composto de no '''mínimo 3 nodes''' para que possa dar segurança, existir '''quorum''' e quando usamos '''CEPH''' também precisamos de pelo menos 3 nodes com '''OSDs''' para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no '''Cluster''' para servir de quorum e de disco '''CEPH'''.  Dessa maneira você consegue com 2 servidores '''Proxmox''' e uma máquina que chamei de '''Quorum Device''', colocar em produção um Cluster com HA funcional.


== Diagrama ==
== Diagrama ==

Edição atual tal como às 23h33min de 8 de abril de 2026

Introdução

Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um Cluster deve ser composto de no mínimo 3 nodes para que possa dar segurança, existir quorum e quando usamos CEPH também precisamos de pelo menos 3 nodes com OSDs para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no Cluster para servir de quorum e de disco CEPH. Dessa maneira você consegue com 2 servidores Proxmox e uma máquina que chamei de Quorum Device, colocar em produção um Cluster com HA funcional.

Diagrama

O diagrama abaixo será o ambiente de exemplo mas não falaremos de como construir um Cluster + HA com Proxmox. Nesse caso você precisará ter os 2 servidores já instalados e configurados em Cluster com CEPH. Aqui vamos apenas mostrar como adicionar um Debian GNU/Linux nesse Cluster e no CEPH.

Pré-requisitos

  • Debian GNU/Linux 13 (Trixie).
  • Uma máquina com 4G ou 8G de ram.
  • 1 SSD para instalar o sistema.
  • 1 SSD para servir de OSD no CEPH.
  • 3 interfaces de rede. Uma para o acesso, outra para o Cluster e outra para o CEPH.

Configurando o Qdevice no Debian

Uma vez instalado o Debian, precisamos configurar as 3 interfaces para a comunicação com seu Cluster Proxmox. Por exemplo:

  • ens18 - IP 10.254.254.27/24 GW 10.254.254.1 (essa seria a interface com acesso à Internet para instalar os programas).
  • ens19 - IP 192.168.1.3/24 (interface que deve se comunicar com a rede do Cluster, com os IPs dos nodes 192.168.1.1 e 192.168.1.2.
  • ens20 - IP 192.168.2.3/24 (interface que se comunica com a rede CEPH, com os IPs 192.168.2.1 e 192.168.2.2.

Precisamos configurar o serviço SSHD para permitir conexão com root, pois o Proxmox vai precisar acessar o Debian. Para isso altere o arquivo /etc/ssh/sshd_config o parâmetro abaixo:

PermitRootLogin yes

Reinicie o serviço:

# systemctl restart sshd

No Debian vamos instalar o pacote corosync-qnetd:

# apt install corosync-qnetd

Nos dois servidores Proxmox, no nosso exemplo PVE01 e PVE02 instalaremos o pacote corosync-qdevice:

# apt install corosync-qdevice

Agora vá para o shell do seu Proxmox principal, no meu caso o PVE01 e adicione o Debian ao Cluster com o seguinte comando:

# pvecm qdevice setup 192.168.1.3

Com o comando pvecm status podemos ver como está o quorum e se tudo ocorreu bem, verá que agora temos 3 votos no lugar de 2 e um Qdevice no membership:

Agora em se tratando de Cluster, você tem o mínimo de votantes para o bom funcionamento e usando uma máquina simples com Debian.

Adicionando um CEPH monitor e OSD

Agora precisamos tornar nosso CEPH saudável também e para isso vamos instalar os pacotes do CEPH do Proxmox no Debian. O CEPH precisa ser da mesma versão usada no Cluster Proxmox. Para os meus testes utilizei um Cluster Proxmox 9 no PVE01 e PVE02 que utiliza o CEPH Squid 19.2. Então vamos adicionar o repositório:

# echo "deb http://download.proxmox.com/debian/ceph-squid trixie no-subscription" > /etc/apt/sources.list.d/ceph.list
# wget https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-trixie.gpg

Instalando os pacotes do CEPH:

# apt update
# apt install ceph ceph-common

Antes de prosseguir adicione no /etc/hosts do Debian:

192.168.2.1 node1
192.168.2.2 node2
192.168.2.3 nodeq

Estou chamando nosso Quorum Device com o hostname nodeq.

Agora precisaremos executar algumas tarefas no nosso PVE01:

# ceph mon getmap -o /tmp/monmap

# monmaptool \
  --add nodeq 192.168.2.3:6789 \
  /tmp/monmap

Vamos checar se adicionamos o nodeq ao monmap com o comando: monmaptool --print /tmp/monmap

Vamos gerar o keyring para usarmos no Debian:

# ceph auth get mon. -o /tmp/ceph.mon.keyring

Agora precisamos copiar todos os arquivos necessários do PVE01 para o nosso Debian:

# scp /tmp/monmap [email protected]:/etc/ceph/
# scp /tmp/ceph.mon.keyring [email protected]:/etc/ceph/
# scp /etc/pve/ceph.conf [email protected]:/etc/ceph/
# scp /etc/pve/priv/ceph.client.admin.keyring [email protected]:/etc/ceph/

# scp /var/lib/ceph/bootstrap-osd/ceph.keyring \
[email protected]:/var/lib/ceph/bootstrap-osd/

Atenção agora pois vamos no nosso Debian alterar o arquivo /etc/ceph/ceph.conf. Primeiro modifique o parâmetro abaixo para incluir o IP 192.168.2.3:

mon_host = 192.168.2.1 192.168.2.2 192.168.2.3

Modifique os dois parâmetros abaixo e deixe eles iguais a estes:

[client]
	keyring = /etc/ceph/$cluster.$name.keyring

[client.crash]
	keyring = /etc/ceph/$cluster.$name.keyring

Adicione no final deste mesmo arquivo a configuração abaixo:

[mon.nodeq] public_addr = 192.168.2.3

Ainda no Debian execute os comandos abaixo para prepararmos o ambiente pro CEPH:

# mkdir -p /var/lib/ceph/mon/ceph-nodeq
# chown ceph:ceph /var/lib/ceph/mon/ceph-nodeq
# chmod 750 /var/lib/ceph/mon/ceph-nodeq

Vamos criar o monitor:

# ceph-mon --mkfs \
-i nodeq \
--monmap /etc/ceph/monmap \
--keyring /etc/ceph/ceph.mon.keyring

# chown -R ceph: /var/lib/ceph/mon/ceph-nodeq
# chown -R ceph: /etc/ceph/
# chmod 640 /etc/ceph/ceph.mon.keyring
# chmod 640 /etc/ceph/monmap

Este é o momento crucial para que tenhamos mais um monitor no nosso CEPH do Proxmox:

# systemctl enable ceph-mon@nodeq
# systemctl start ceph-mon@nodeq

Precisamos checar se o serviço subiu com o comando: systemctl status ceph-mon@nodeq

Se aparecer algo assim então parabéns, até aqui foi tudo OK:

Volte no Proxmox PVE01 e altere o /etc/pve/ceph.conf modificando para:

mon_host = 192.168.2.1 192.168.2.2 192.168.2.3

E adicionando no final do arquivo:

[mon.nodeq]
        public_addr = 192.168.2.3

Agora ativamos, ainda no Proxmox PVE01, o msgr2:

# ceph mon enable-msgr2

No Debian reinicie o serviço:

# systemctl restart ceph-mon@nodeq

No Proxmox em CEPH verá um novo Monitor adicionado:

Adicionando o OSD no Debian

Agora vamos aos procedimentos para usarmos aquele SSD como OSD no CEPH. Vamos supor que o SSD livre seja o /dev/sdb:

# apt install parted

# parted /dev/sdb --script mklabel gpt

# parted /dev/sdb --script \
mkpart primary 0% 100%

Feito isso só precisamos criar o volume CEPH com o comando:

# ceph-volume lvm create --data /dev/sdb1

Se tudo foi bem, nesse momento verá o OSD no seu Cluster Proxmox:

Olhando a saúde do nosso Cluster veremos:

Conclusão

Aqui vemos em funcionamento um Cluster Proxmox + HA com 2 nós apenas e uma máquina Debian servindo como apoio no funcionamento e segurança do Cluster.

Gostou do artigo? Compartilhe!

Autor: Marcelo Gondim