P
Proxmox VE Curso Profissional
Lição 3 de 6 ⏱ 15 min Iniciante

Arquitetura geral

Compreenda a arquitetura interna do Proxmox VE, incluindo pmxcfs (filesystem de cluster), corosync, serviços de API e a base Debian GNU/Linux.

🎯 Objetivos desta aula

  • Explicar os componentes centrais da arquitetura do Proxmox VE.
  • Entender o papel do pmxcfs (Proxmox Cluster File System).
  • Identificar os principais daemons e serviços em execução no host.
  • Compreender a relação entre a API REST e os clientes CLI/GUI.

🔑 Pré-requisitos

  • Ter lido as aulas "O que é Proxmox VE" e "KVM e LXC".
  • Entendimento básico do sistema de arquivos e serviços do Linux (Debian).

Integração de Componentes

O Proxmox VE não é apenas uma coleção desordenada de hipervisores e ferramentas. Trata-se de uma plataforma altamente integrada, desenhada com componentes especializados que cooperam de maneira síncrona.

No nível mais básico, a fundação do Proxmox VE é o Debian GNU/Linux. Sobre essa base estável, a Proxmox desenvolve e integra o kernel customizado com suporte a virtualização por hardware, sistemas de arquivos avançados (como ZFS), o mecanismo de sincronização de cluster e os servidores de API.

ℹ️

Filosofia do Proxmox

Em vez de reinventar a roda, a arquitetura do Proxmox VE utiliza projetos open source robustos (Debian, Linux Kernel, QEMU, LXC, Corosync) e cria uma camada de controle única, segura, escalável e de fácil administração.

O Sistema de Arquivos do Cluster (pmxcfs)

Um dos maiores diferenciais de engenharia do Proxmox VE é o Proxmox Cluster File System (pmxcfs). Ele é um sistema de arquivos baseado em banco de dados SQLite, controlado em memória e replicado em tempo real por meio da rede usando o motor de comunicação Corosync.

O ponto de montagem visível no sistema é o diretório /etc/pve.

Características do pmxcfs

  • Replicação em Tempo Real: Qualquer escrita realizada em /etc/pve em um nó é replicada quase instantaneamente para todos os outros nós do cluster.
  • Armazenamento de Configurações: Ele armazena exclusivamente configurações pequenas (arquivos conf de VMs, de containers, storage, permissões, etc.). Não serve para armazenar ISOs, templates ou discos rígidos virtuais.
  • Funcionamento em Memória: O banco SQLite é mantido na memória RAM para garantir leituras e escritas extremamente rápidas. No disco físico do host, o banco reside em /var/lib/pve-cluster/config.db.
  • Modo Somente Leitura (Sem Quorum): Se o cluster perder o quorum (ou seja, se a maioria dos nós não conseguir se comunicar), o diretório /etc/pve passa automaticamente para o modo somente leitura. Isso previne a corrupção e divergência de configurações.
verificar-pmxcfs.sh bash

Verificar se o pmxcfs está montado

df -h | grep /etc/pve

Listar o conteúdo do diretório de configurações

ls -l /etc/pve

O diretório contém subpastas cruciais como qemu-server/ (arquivos de configuração de VMs) e lxc/ (arquivos de configuração de containers).

Daemons e Serviços do Sistema

Para manter a interface gráfica (GUI), a API e o monitoramento operacionais, vários daemons (serviços em segundo plano) exclusivos do Proxmox VE rodam no host:

Daemon / ServiçoNome do Processo/ServiçoFunção Principal
pve-clusterpve-cluster.serviceInicializa o pmxcfs e monta o /etc/pve no boot.
pveproxypveproxy.serviceServidor web HTTPS ouvindo na porta 8006 que expõe a interface gráfica e a API.
pvedaemonpvedaemon.serviceExecuta tarefas locais da API solicitadas via CLI ou proxy, como criação ou remoção de recursos.
pvestatdpvestatd.serviceColetor de estatísticas. Coleta uso de CPU, RAM, rede e espaço em disco para popular os gráficos da GUI.
corosynccorosync.serviceMotor de cluster que gerencia a adesão dos nós, envio de pacotes em multicast/unicast e o quorum.
pve-ha-crmpve-ha-crm.serviceCluster Resource Manager (CRM) responsável por coordenar a alta disponibilidade.
pve-ha-lrmpve-ha-lrm.serviceLocal Resource Manager (LRM) responsável por executar as ordens de HA no nó local.
⚠️

Serviços Dependentes

Se o serviço pve-cluster falhar ou for parado, o /etc/pve será desmontado, fazendo com que as ferramentas de gerenciamento e a API percam o acesso a todas as VMs e configurações.

API REST e Fluxo de Controle

Tudo o que é feito na interface web do Proxmox VE é, na verdade, uma chamada HTTP para a sua API REST. Os comandos CLI (qm, pct, pvesm, etc.) também podem interagir diretamente com as APIs locais ou manipulando as configurações em /etc/pve.

graph TD
    A[Usuário / Sysadmin] -->|GUI / Navegador| B(pveproxy :8006)
    A -->|CLI: qm, pct| C(Ferramentas CLI)
    A -->|API Externa / Ansible| B
    B -->|Encaminha requisição| D(pvedaemon)
    C -->|Lê/Escreve configurações| E[pmxcfs /etc/pve]
    D -->|Executa ações / Grava confs| E
    E -->|Replicação via Corosync| F[Outros Nós do Cluster]
    D -->|Controla hipervisores| G[QEMU/KVM & LXC]

Procedimento de Exploração

Vamos analisar de forma prática a estrutura de arquivos e o estado de funcionamento dos serviços centrais da plataforma.

explorar-arquitetura.sh bash

1. Verificar o status do serviço de cluster que gerencia o pmxcfs

systemctl status pve-cluster —no-pager

2. Entrar na pasta de configurações das VMs KVM

cd /etc/pve/qemu-server ls -lh

3. Ler a configuração da VM ID 100 (substitua pelo ID da sua VM)

cat 100.conf

4. Verificar se o servidor web pveproxy está escutando na porta 8006

ss -tulpn | grep 8006

Validação

Você entendeu a aula se consegue responder:

  • Qual componente do Proxmox VE garante que as configurações das VMs sejam idênticas em todos os nós do cluster?
  • O que acontece com a pasta /etc/pve se um nó perder a conexão com a maioria do cluster (perda de quorum)?
  • Qual porta é utilizada por padrão para acessar a GUI do Proxmox VE no navegador?
  • Como a API REST se relaciona com a interface gráfica e com as ferramentas CLI?

Boas Práticas

  • Evite edições diretas e desordenadas no banco de dados físico local /var/lib/pve-cluster/config.db. Utilize sempre a API, CLI ou edite os arquivos de texto diretamente sob o ponto de montagem seguro em /etc/pve.
  • Mantenha latências de rede baixas para a comunicação do Corosync. Redes congestionadas causam perda temporária de quorum, forçando o pmxcfs a entrar em modo Read-Only.
  • Nunca exponha a porta 8006 diretamente à Internet pública sem proteção adicional, como VPN, firewalls rígidos ou proxy reverso configurado adequadamente.

Fontes Para Aprofundar