Gestão de Virtualização com Proxmox VE: Um Guia Rápido

Proxmox VE é uma plataforma de virtualização de código aberto baseada em Debian, que oferece poderosas ferramentas para criar e gerenciar ambientes de virtualização. Neste artigo, vamos explorar os principais comandos e conceitos para gerenciar máquinas virtuais (VMs) e containers no Proxmox VE.

Gestão de Máquinas Virtuais

Bash
# listar VMs
qm list

# Criar ou restaurar uma máquina virtual.
qm create <vmid>

# Criar ou restaurar uma máquina virtual com núcleo, memória e discos especificados.
qm create <vmid> --name <nome-da-vm> --cores <número-de-núcleos> --memory <tamanho-da-memória-em-bytes> --scsi0 file=<nome-vg>:<tamanho-em-gb> --cdrom local:<nome-iso> --net0 virtio,bridge=<nome-da-ponte>

# iniciar uma VM
qm start <vmid>

# Suspender máquina virtual.
qm suspend <vmid>

# desligar uma VM
qm shutdown <vmid>

# reiniciar uma VM
qm reboot <vmid>

# reiniciar uma VM
qm reset <vmid>

# parar uma VM
qm stop <vmid>

# Destruir a VM e todos os volumes utilizados/proprietários.
# Remove quaisquer permissões específicas da VM e regras de firewall
qm destroy <vmid>

# Acessar a interface Qemu Monitor.
qm monitor <vmid>

# Obter a configuração da máquina virtual com valores atuais e pendentes.
qm pending <vmid>

# Enviar evento de tecla para máquina virtual.
qm sendkey <vmid> <tecla> [OPÇÕES]

# Mostrar linha de comando utilizada para iniciar a VM (informações de depuração).
qm showcmd <vmid> [OPÇÕES]

# Desbloquear a VM.
qm unlock <vmid>

# Clonar uma VM
qm clone <vmid> <novo-id>

# Clonar uma VM no modo de clonagem completa e também setar o nome.
qm clone <vmid> <novo-id> --full --name <nome>

# Migrar uma VM
qm migrate <vmid> <nó-destino>

# Mostrar estado da VM
qm status <vmid>

# Limpar recursos de uma VM
qm cleanup <vmid> <desligamento-limpo> <pedido-do-hóspede>

Cloudinit

Bash
# Obter configuração cloudinit gerada automaticamente.
qm cloudinit dump <vmid> <tipo>

# Obter a configuração cloudinit com valores atuais e pendentes.
qm cloudinit pending <vmid>

# Regenerar e alterar configuração cloudinit drive.
qm cloudinit update <vmid>

Disco

Bash
# Importar uma imagem de disco externa como um disco não utilizado em uma VM.
# O formato da imagem deve ser suportado pelo qemu-img(1).
qm disk import <vmid> <origem> <armazenamento>

# Mover volume para outro armazenamento ou para uma VM diferente.
qm disk move <vmid> <disco> [<armazenamento>] [OPÇÕES]

# Reconhecer todos os armazenamentos e atualizar tamanhos de disco e imagens de disco não utilizadas.
qm disk rescan [OPÇÕES]

# Ampliar tamanho do volume.
qm disk resize <vmid> <disco> <tamanho> [OPÇÕES]

# Desvincular/excluir imagens de disco.
qm disk unlink <vmid> --idlist <cadeia> [OPÇÕES]

# reconhecer volumes
qm rescan

Snapshot

Bash
# Listar todos os snapshots.
qm listsnapshot <vmid>

# Snapshot de uma VM
qm snapshot <vmid> <nome-do-snapshot>

# Apagar um snapshot.
qm delsnapshot <vmid> <nome-do-snapshot>

# Reverter um snapshot
qm rollback <vmid> <nome-do-snapshot>

# Abrir um terminal usando um dispositivo serial
# (A VM precisa ter um dispositivo serial configurado, por exemplo, serial0: socket)
qm terminal <vmid> [OPÇÕES]

# Proxy de tráfego VNC da VM para stdin/stdout
qm vncproxy <vmid>

Outros

Bash
# Executar comandos Qemu Guest Agent.
qm guest cmd <vmid> <comando>

# Executa o comando fornecido via guest agent
qm guest exec <vmid> [<argumentos-extra>] [OPÇÕES]

# Obtém o status do pid fornecido iniciado pelo guest-agent
qm guest exec-status <vmid> <pid>

# Define a senha para o usuário fornecido para a senha fornecida
qm guest passwd <vmid> <nome-de-utilizador> [OPÇÕES]

PV, VG & LV Management

Bash
# Criar um PV
pvcreate <nome-do-dispositivo-de-disco>

# Remover um PV
pvremove <nome-do-dispositivo-de-disco>

# Listar todos os PVs
pvs

# Criar um VG
vgcreate <nome-do-vg> <nome-do-dispositivo-de-disco>

# Remover um VG
vgremove <nome-do-vg>

# Listar todos os VGs
vgs

# Criar um LV
lvcreate -L <tamanho-do-lv> -n <nome-do-lv> <nome-do-vg>

# Remover um LV
lvremove <nome-do-vg>/<nome-do-lv>

# Listar todos os LVs
lvs

Gestão de Armazenamento

Bash
# Criar um novo armazenamento.
pvesm add <tipo> <armazenamento> [OPÇÕES]

# Alocar imagens de disco.
pvesm alloc <armazenamento> <vmid> <nome-do-ficheiro> <tamanho> [OPÇÕES]

# Excluir volume
pvesm free <volume> [OPÇÕES]

# Excluir configuração de armazenamento.
pvesm remove <armazenamento>

# Listar conteúdo de armazenamento.
pvesm list <armazenamento> [OPÇÕES]

# Um alias para pvesm scan lvm.
pvesm lvmscan

# Um alias para pvesm scan lvmthin.
pvesm lvmthinscan

# Listar grupos de volume LVM locais.
pvesm scan lvm

# Listar Piscinas Finas LVM locais.
pvesm scan lvmthin <vg>

# Obter status para todos os datastores.
pvesm status [OPÇÕES]

Gestão de Templates

Bash
# listar todos os templates
pveam available

# listar todos os templates
pveam list <armazenamento>

# Baixar templates de appliance
pveam download <armazenamento> <template>

# Remover um template.
pveam remove <caminho-do-template>

# Atualizar o Banco de Dados de Template de Container.
pveam update

Gestão de Containers

Bash
# Listar containers
pct list

# Criar ou restaurar um container.
pct create <vmid> <ostemplate> [OPÇÕES]

# Iniciar o container.
pct start <vmid> [OPÇÕES]

# Criar um clone/cópia de container
pct clone <vmid> <novo-id> [OPÇÕES]

# Suspender o container. Isso é experimental.
pct suspend <vmid>

# Retomar o container.
pct resume <vmid>

# Parar o container.
# Isso irá parar abruptamente todos os processos em execução no container.
pct stop <vmid> [OPÇÕES]

# Desligar o container.
# Isso irá acionar um desligamento limpo do container, consulte lxc-stop(1) para mais detalhes.
pct shutdown <vmid> [OPÇÕES]

# Destruir o container (também exclui todos os arquivos usados).
pct destroy <vmid> [OPÇÕES]

# Mostrar status do CT.
pct status <vmid> [OPÇÕES]

# Migrar o container para outro nó. Cria uma nova tarefa de migração.
pct migrate <vmid> <alvo> [OPÇÕES]

# Obter configuração do container.
pct config <vmid> [OPÇÕES]

# Imprimir a lista de conjuntos de CPUs atribuídos.
pct cpusets

# Obter configuração do container, incluindo alterações pendentes.
pct pending <vmid>

# Reiniciar o container desligando-o e iniciando-o novamente. Aplica as alterações pendentes.
pct reboot <vmid> [OPÇÕES]

# Criar ou restaurar um container.
pct restore <vmid> <ostemplate> [OPÇÕES]

# Definir opções de container.
pct set <vmid> [OPÇÕES]

# Criar um Template.
pct template <vmid>

# Desbloquear o container.
pct unlock <vmid>

Disco

Bash
# Obter uso atual do disco do container.
pct df <vmid>

# Executar uma verificação de sistema de arquivos (fsck) em um volume de container.
pct fsck <vmid> [OPÇÕES]

# Executar fstrim em um CT escolhido

 e seus pontos de montagem.
pct fstrim <vmid> [OPÇÕES]

# Montar o sistema de arquivos do container no host.
# Isso irá manter um bloqueio no container e é destinado apenas para manutenção de emergência
# pois impedirá operações adicionais no container além de iniciar e parar.
pct mount <vmid>

# Mover um rootfs-/mp-volume para um armazenamento diferente ou para um container diferente.
pct move-volume <vmid> <volume> [<armazenamento>] [<vmid-destino>] [<volume-destino>] [OPÇÕES]

# Desmontar o sistema de arquivos do container.
pct unmount <vmid>

# Redimensionar um ponto de montagem do container.
pct resize <vmid> <disco> <tamanho> [OPÇÕES]

# Reconhecer todos os armazenamentos e atualizar tamanhos de disco e imagens de disco não utilizadas.
pct rescan [OPÇÕES]

# Iniciar um console para o container especificado.
pct console <vmid> [OPÇÕES]

# Iniciar um shell para o container especificado.
pct enter <vmid>

# Iniciar um comando dentro do container especificado.
pct exec <vmid> [<argumentos-extra>]

# Copiar um arquivo do container para o sistema local.
pct pull <vmid> <caminho> <destino> [OPÇÕES]

# Copiar um arquivo local para o container.
pct push <vmid> <ficheiro> <destino> [OPÇÕES]

Snapshot

Bash
# Snapshot de um container.
pct snapshot <vmid> <nome-do-snapshot> [OPÇÕES]

# Listar todos os snapshots.
pct listsnapshot <vmid>

# Reverter estado LXC para o snapshot especificado.
pct rollback <vmid> <nome-do-snapshot> [OPÇÕES]

# Excluir um snapshot LXC.
pct delsnapshot <vmid> <nome-do-snapshot> [OPÇÕES]

Web GUI

Bash
# Reiniciar GUI web
service pveproxy restart

Caminhos de Ficheiros/Dirs Importantes

Bash
PVE

/etc/pve/authkey.pub  Chave pública usada pelo sistema de bilhetes
/etc/pve/ceph.conf  Ficheiro de configuração do Ceph (nota: /etc/ceph/ceph.conf é um link simbólico para isto)
/etc/pve/corosync.conf  Ficheiro de configuração do cluster Corosync (antes do Proxmox VE 4.x, este ficheiro era chamado cluster.conf)
/etc/pve/datacenter.cfg  Configuração de todo o centro de dados do Proxmox VE (layout do teclado, proxy, )
/etc/pve/domains.cfg  Domínios de autenticação do Proxmox VE
/etc/pve/firewall/cluster.fw  Configuração do firewall aplicada a todos os nós
/etc/pve/firewall/<NOME>.fw  Configuração do firewall para nós individuais
/etc/pve/firewall/<VMID>.fw  Configuração do firewall para VMs e containers
/etc/pve/ha/crm_commands  Exibe operações de HA que estão sendo realizadas pelo CRM
/etc/pve/ha/manager_status  Informações em formato JSON sobre os serviços de HA no cluster
/etc/pve/ha/resources.cfg  Recursos gerenciados pela alta disponibilidade e seu estado atual
/etc/pve/nodes/<NOME>/config  Configuração específica do 
/etc/pve/nodes/<NOME>/lxc/<VMID>.conf  Dados de configuração de VM para containers LXC
/etc/pve/nodes/<NOME>/openvz/  Antes do PVE 4.0, usado para dados de configuração de containers (descontinuado, em breve será removido)
/etc/pve/nodes/<NOME>/pve-ssl.key  Chave SSL privada para pve-ssl.pem
/etc/pve/nodes/<NOME>/pve-ssl.pem  Certificado SSL público para o servidor web (assinado pelo CA do cluster)
/etc/pve/nodes/<NOME>/pveproxy-ssl.key  Chave SSL privada para pveproxy-ssl.pem (opcional)
/etc/pve/nodes/<NOME>/pveproxy-ssl.pem  Certificado SSL público (cadeia) para o servidor web (substituição opcional para pve-ssl.pem)
/etc/pve/nodes/<NOME>/qemu-server/<VMID>.conf  Dados de configuração de VM para VMs KVM
/etc/pve/priv/authkey.key  Chave privada usada pelo sistema de bilhetes
/etc/pve/priv/authorized_keys  Chaves SSH dos membros do cluster para autenticação
/etc/pve/priv/ceph*  Chaves de autenticação do Ceph e capacidades associadas
/etc/pve/priv/known_hosts  Chaves SSH dos membros do cluster para verificação
/etc/pve/priv/lock/*  Arquivos de bloqueio usados por vários serviços para garantir operações seguras em todo o cluster
/etc/pve/priv/pve-root-ca.key  Chave privada do CA do cluster
/etc/pve/priv/shadow.cfg  Ficheiro de senha de sombra para utilizadores do Realm PVE
/etc/pve/priv/storage/<ID-ARMAZENAMENTO>.pw  Contém a senha de um armazenamento em texto simples
/etc/pve/priv/tfa.cfg  Configuração de autenticação de dois fatores codificada em base64
/etc/pve/priv/token.cfg  Segredos de token da API de todos os tokens
/etc/pve/pve-root-ca.pem  Certificado público do CA do cluster
/etc/pve/pve-www.key  Chave privada usada para gerar tokens CSRF
/etc/pve/sdn/*  Ficheiros de configuração partilhados para Redes Definidas por Software (SDN)
/etc/pve/status.cfg  Configuração do servidor externo de métricas do Proxmox VE
/etc/pve/storage.cfg  Configuração de armazenamento do Proxmox VE
/etc/pve/user.cfg  Configuração de controlo de acesso do Proxmox VE (utilizadores/grupos/…)
/etc/pve/virtual-guest/cpu-models.conf  Para armazenar modelos de CPU personalizados
/etc/pve/vzdump.cron  Programação de trabalho de cópia de segurança vzdump em todo o cluster

Depuração

/etc/pve/.version  versões de ficheiros (para detetar modificações de ficheiros)
/etc/pve/.members  Informações sobre membros do cluster
/etc/pve/.vmlist  Lista de todas as VMs
/etc/pve/.clusterlog  Log do cluster (últimas 50 entradas)
/etc/pve/.rrd  Dados RRD (entradas mais recentes)

Secção OpenVZ

/etc/vz/conf/xxx.conf  configuração
/var/lib/vz/root/xxx  dados
/var/lib/vz/template/cache  modelo
/var/lib/vz/dump  snapshot
/etc/vz/vz.conf  configuração do OpenVZ

Secção KVM

/var/lib/vz/images/xxx  dados
/var/lib/vz/template/iso  modelo
/var/lib/vz/dump  snapshot

Secção LXC

/var/lib/lxc/xxx/config  configuração
/var/lib/vz/images/xxx  dados
/var/lib/vz/template/cache  modelo
/var/lib/vz/dump

Comandos para Gestão de VMs:

  • Utilize comandos como qm list para listar todas as VMs.
  • Crie uma nova VM com qm create <vmid> e especifique detalhes como núcleos, memória e discos.
  • Inicie, suspenda, desligue, reinicie e pare VMs com comandos como qm start <vmid>, qm suspend <vmid>, qm shutdown <vmid>, qm reboot <vmid> e qm stop <vmid>.

Gestão de Disco e Snapshot:

  • Importe e mova discos entre VMs com qm disk import e qm disk move.
  • Tire snapshots com qm snapshot, reverta com qm rollback e delete com qm delsnapshot.

Gestão de Containers:

  • Para containers, use comandos como pct list para listar, pct create para criar e pct start para iniciar.
  • Para gerenciar discos e snapshots, utilize comandos similares aos de VMs.

Outras Funcionalidades:

  • Gerencie armazenamentos com pvesm add, templates com pveam list, e faça migrações com pct migrate.
  • A interface web pode ser reiniciada com service pveproxy restart.

Caminhos Importantes:

  • Os ficheiros de configuração e logs estão localizados em diretórios específicos dentro de /etc/pve/.

Este guia fornece uma visão geral dos comandos essenciais para gerenciar virtualização com Proxmox VE. Com essas ferramentas, você pode criar, configurar e gerenciar ambientes virtuais de forma eficiente e flexível.

Artigos Relacionados