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
 
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
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 ==
Linha 54: Linha 54:
   --add nodeq 192.168.2.3:6789 \
   --add nodeq 192.168.2.3:6789 \
   /tmp/monmap
   /tmp/monmap
Vamos checar se adicionamos o '''nodeq''' ao '''monmap''' com o comando: '''monmaptool --print /tmp/monmap'''
[[Arquivo:Monmap.png|nenhum|miniaturadaimagem|677x677px]]
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:<pre>
[client]
keyring = /etc/ceph/$cluster.$name.keyring
[client.crash]
keyring = /etc/ceph/$cluster.$name.keyring
</pre>Adicione no final deste mesmo arquivo a configuração abaixo:<pre>
[mon.nodeq]
public_addr = 192.168.2.3
</pre>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:
[[Arquivo:Nodeq ceph.png|nenhum|miniaturadaimagem|806x806px]]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:
[[Arquivo:Mon ceph.png|nenhum|miniaturadaimagem|598x598px]]
== 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''':
[[Arquivo:Osd img.png|nenhum|miniaturadaimagem|1234x1234px]]
Olhando a saúde do nosso Cluster veremos:
[[Arquivo:Resultado ceph.png|nenhum|miniaturadaimagem|1235x1235px]]
== 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: [[Sobre mim|Marcelo Gondim]]
[[Categoria:Artigos Técnicos]]

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