#6 - Home Lab - Parte 3
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:
- Nó 1
- Nó 2
- Nó 3
Configuração | Valor |
---|---|
CIDR | 192.168.50.10/24 |
Gateway | 192.168.50.1 |
DNS | 192.168.50.1 |
Configuração | Valor |
---|---|
CIDR | 192.168.50.20/24 |
Gateway | 192.168.50.1 |
DNS | 192.168.50.1 |
Configuração | Valor |
---|---|
CIDR | 192.168.50.30/24 |
Gateway | 192.168.50.1 |
DNS | 192.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
- Nó 1
- Nó 2
- Nó 3
hostnamectl set-hostname pve1-MJ04XX69
hostnamectl set-hostname pve2-MJ04T5J8
hostnamectl set-hostname pve3-MJ05B30K
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
- Nó 1
- Nó 2
- Nó 3
sed -i '2s/.*/192.168.50.10 pve1.lenovo.m900.MJ04XX69 pve1-MJ04XX69/' /etc/hosts
sed -i '2s/.*/192.168.50.20 pve2.lenovo.m900.MJ04T5J8 pve2-MJ04T5J8/' /etc/hosts
sed -i '2s/.*/192.168.50.30 pve3.lenovo.m900.MJ05B30K pve3-MJ05B30K/' /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.
- Nó 1
- Nó 2
- Nó 3
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
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.20/24
gateway 192.168.50.1
bridge-ports bond0
bridge-stp off
bridge-fd 0
source /etc/network/interfaces.d/*
EOF
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.30/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
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
.
Para pegar o MAC da placa de rede, podemos utilizar o seguinte comando:
ip link show eno1 | awk '/ether/ {print $2}'
- Nó 1
- Nó 2
- Nó 3
ip link show eno1 | awk '/ether/ {print $2}'
# 00:23:24:D9:9D:EF
ip link show eno1 | awk '/ether/ {print $2}'
# 00:23:24:C0:73:2C
ip link show eno1 | awk '/ether/ {print $2}'
# E0:4F:43:21:A7:78
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.
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.
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.
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 um cluster
basta dar um nome, eu vou utilizar home-lab
.
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.
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.
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.
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.
Tela de instalação do Ceph
Depois de instalado em todos os nós, eu gosto de criar monitor
s e manager
s para cada nó, para garantir que o Ceph esteja sempre funcionando corretamente, mesmo se um nó falhar.
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.
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 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.
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.