📚 Conteúdo do Módulo (50% concluído) ▼
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/pveem 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/pvepassa automaticamente para o modo somente leitura. Isso previne a corrupção e divergência de configurações.
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ço | Nome do Processo/Serviço | Função Principal |
|---|---|---|
| pve-cluster | pve-cluster.service | Inicializa o pmxcfs e monta o /etc/pve no boot. |
| pveproxy | pveproxy.service | Servidor web HTTPS ouvindo na porta 8006 que expõe a interface gráfica e a API. |
| pvedaemon | pvedaemon.service | Executa tarefas locais da API solicitadas via CLI ou proxy, como criação ou remoção de recursos. |
| pvestatd | pvestatd.service | Coletor de estatísticas. Coleta uso de CPU, RAM, rede e espaço em disco para popular os gráficos da GUI. |
| corosync | corosync.service | Motor de cluster que gerencia a adesão dos nós, envio de pacotes em multicast/unicast e o quorum. |
| pve-ha-crm | pve-ha-crm.service | Cluster Resource Manager (CRM) responsável por coordenar a alta disponibilidade. |
| pve-ha-lrm | pve-ha-lrm.service | Local 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.
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/pvese 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.