Pular para o conteúdo principal

#6 - Home Lab - Parte 3

· Leitura de 9 minutos
Lucas Elias Baccan
Autor do Site

Home Lab

No post anterior, comentei sobre o hack que realizei no meu cluster. Agora, vou detalhar como configurei o Proxmox e quais foram as principais configurações adotadas para o ambiente.

Proxmox

No dia 5 de agosto de 2025, foi anunciado a nova versão do Proxmox, a 9.0, então aproveitei para reinstalar o Proxmox e começar do zero e documentar o processo de instalação e configuração.

Para quem não conhece, o Proxmox é um sistema operacional baseado em Debian, voltado para virtualização e gerenciamento de containers. Ele é uma ótima opção para quem quer criar um cluster de alta disponibilidade, pois possui suporte a Ceph, que é um sistema de armazenamento distribuído.

Instalação

Não tem muito segredo, só ir next, next e next.

Disco

Eu optei por utilizar um SSD Sata de 240GB para o sistema operacional, que foi formatado em btrfs.

Rede

Eu tenho 3 nós que foram configurados com as seguintes informações:

ConfiguraçãoValor
CIDR192.168.50.10/24
Gateway192.168.50.1
DNS192.168.50.1

Pós instalação

Após a instalação, é necessário realizar algumas configurações para deixar o Proxmox pronto para uso. As principais configurações são:

Hostname

hostnamectl set-hostname pve1-MJ04XX69

Após alterar o hostname, é necessário atualizar o arquivo /etc/hosts para que o Proxmox reconheça os novos nomes dos nós, se você reiniciar o sistema nesse momento, o proxmox não vai subir corretamente, e você vai precisar acessar por SSH e corrigir o arquivo /etc/hosts manualmente com as configurações de hosts abaixo.

Hosts

sed -i '2s/.*/192.168.50.10 pve1.lenovo.m900.MJ04XX69 pve1-MJ04XX69/' /etc/hosts

Após a configuração do hostname e do arquivo /etc/hosts, é possível reiniciar a maquina e verificar se tudo está funcionando corretamente.

reboot -h now

Rede

Como visto no post anterior, existem 2 placas de rede, então agora vamos configurar o failover e o bonding.

echo "" >> /etc/network/interfaces

cat << EOF > /etc/network/interfaces
auto lo
iface lo inet loopback

auto eno1
iface eno1 inet manual

auto enp2s0
iface enp2s0 inet manual

auto bond0
iface bond0 inet manual
bond-slaves eno1 enp2s0
bond-miimon 100
bond-mode active-backup
bond-primary enp2s0

auto vmbr0
iface vmbr0 inet static
address 192.168.50.10/24
gateway 192.168.50.1
bridge-ports bond0
bridge-stp off
bridge-fd 0

source /etc/network/interfaces.d/*
EOF

e ai é só reiniciar a rede

systemctl restart networking

Network
Como deve ficar a configuração de rede

Wake on LAN - WOL

Agora vamos ativar a configuração de Wake on Lan(WOL) para que eu possa ligar os nós remotamente. Para isso vamos em Datacenter > Node > System > Options. Precisamos configurar o MAC address for Wake on LAN e inserir o MAC da placa de rede principal, que geralmente é a eno1, e depois habilitar o Wake on LAN.

Wake on Lan

Para pegar o MAC da placa de rede, podemos utilizar o seguinte comando:

ip link show eno1 | awk '/ether/ {print $2}'
ip link show eno1 | awk '/ether/ {print $2}'
# 00:23:24:D9:9D:EF

Tailscale

Eu gosto de utilizar o Tailscale para acessar o Proxmox remotamente, então vou instalar ele também em cada nó, basta seguir a instalação oficial do Tailscale.

curl -fsSL https://tailscale.com/install.sh | sh && sudo tailscale up --auth-key=tskey-auth-XXXXXXXXXXXXXXXXXXXXXXX

Após instalar, eu gosto de utilizar a seguinte configuração:

tailscale up --reset --ssh --advertise-routes=192.168.50.0/24 --accept-dns=false

Essa configuração vai anunciar a rota da minha rede local, para que eu possa acessar os dispositivos da minha rede local através do Tailscale, habilitar o SSH e não aceitar as configurações de DNS do Tailscale, pois tive problema com o MagicDNS do Tailscale em outras maquinas virtuais.

info

Ao utilizar o MagicDNS do Tailscale, as maquinas virtuais não conseguiam resolver os nomes dos hosts, então optei por não utilizar o MagicDNS e configurar o DNS manualmente.

Pós-instalação Scripts

Proxmox VE Post Install

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pve-install.sh)"

Deve ser selecionado os seguintes itens:

  • 'pve-enterprise' - Desabilitar o repositório enterprise
  • 'pve-no-subscription' - Habilitar o repositório no subscription
  • 'pvetest' - Desabilitar o repositório test
  • Disable subscription nag - Desabilitar a mensagem de assinatura, se puder contribuir, compre uma assinatura.
  • Disable high availability - Habilitar, pois vamos criar um cluster de alta disponibilidade.

Proxmox VE Post Install
Após rodar o script, deve ter essa mensagem.

Proxmox VE Processor Microcode

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/microcode.sh)"

Não sei muito bem as opções, então seleciono a do processador.

Proxmox VE Processor Microcode
Opção que seleciono.

Após a instalação, é necessário reiniciar o sistema.

reboot -h now

E pode verificar se o microcode foi instalado corretamente.

journalctl -k | grep -E "microcode" | head -n 1

Proxmox VE CPU Scaling Governor

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/scaling-governor.sh)"

Cluster High Availability

Agora que configuramos cada nó, vamos criar um cluster de alta disponibilidade, vou utilizar a interface web do Proxmox para isso, mas também é possível fazer via linha de comando.

No nó 1, vamos criar o cluster. Basta clicar em Datacenter > Cluster > Create Cluster.

Criar cluster
Criar um cluster

basta dar um nome, eu vou utilizar home-lab.

Nome
De um nome ao cluster

Agora na tela, vai ter nosso cluster criado e um botão novo ficou disponível, o Join Information, que é onde vamos pegar as informações para adicionar os outros nós ao cluster.

Join information
Copie as informações utilizando o botão Copy Information

Agora vamos nos outros nós, e vamos clicar em Datacenter > Cluster > Join Cluster e colar as informações copiadas do nó 1. Pode ser que a tela trave no meio, pois a conexão é perdida, pois você precisa fazer o login novamente, e assim que fizer, vera o nó a esquerda junto ao nó 1.

Join cluster
Copie as informações utilizando o botão Join 'Home-Lab'

Após adicionar todos os nós, você verá a tela do cluster com os nós adicionados.

Cluster
Tela do cluster com os nós adicionados

Ceph Storage

Como visto no post anterior, existem 2 SSDs em cada nó, um para o sistema operacional(Proxmox) e outro para o Ceph Storage, que será utilizado para armazenar os dados dos containers e VMs.

O Ceph é um sistema de armazenamento distribuído, que permite criar um cluster de armazenamento de alta disponibilidade, escalável e tolerante a falhas. Ele é integrado ao Proxmox, o que facilita a criação e gerenciamento do cluster de armazenamento.

Na configuração atual do cluster, se um nó falhar, os dados dos containers e VMs não serão perdidos, pois eles estarão replicados nos outros nós do cluster. Isso garante alta disponibilidade e tolerância a falhas.

Para fazer a instalação do Ceph, vamos utilizar a interface web do Proxmox, que é bem intuitiva. Basta clicar em Nó > Storage > Add > Ceph. Isso deve ser feito para cada nó do cluster.

Cluster
Tela de instalação do Ceph

Depois de instalado em todos os nós, eu gosto de criar monitors e managers para cada nó, para garantir que o Ceph esteja sempre funcionando corretamente, mesmo se um nó falhar.

Monitor e Manager
Tela de criação de Monitor e Manager

Após criar os Monitores e Managers, você verá a tela do Ceph com os nós adicionados.

Monitor e Manger
Tela do Ceph com os nós adicionados

Agora temos que adicionar os discos que serão utilizados pelo Ceph, para isso, vamos clicar em Nó > Storage > Add > OSD. Isso deve ser feito para cada nó do cluster, selecionando o disco que será utilizado pelo Ceph.

Caso o disco não esteja aparecendo, no meu caso ele estava listado em LVM, então eu precisei remover o disco do LVM e depois adicionar o disco ao Ceph.

OSDs
OSDs do Ceph

Agora, para finalizar a configuração do Ceph, crie o pool de armazenamento, que será utilizado pelos containers e VMs. Para isso, clique em Nó > Ceph > Pool > Create.

Pool
OSDs do Ceph

Considerações Finais

Esses foram os principais passos que segui para configurar meu cluster de Proxmox com Ceph Storage. Sei que existem outras configurações, mas optei por focar nas principais após instalar o Proxmox.