Configurando um vSocket KVM no Proxmox VE (EA)

Prev Next

Nota: Este é um recurso de Disponibilidade Antecipada (EA) que está disponível apenas para lançamento limitado. Para mais informações, entre em contato com seu representante da Cato Networks ou envie um email para ea@catonetworks.com.

Visão Geral

Este artigo descreve como implantar um vSocket KVM em um host que é gerenciado com o Proxmox Virtual Environment (Proxmox VE). O Proxmox VE usa QEMU/KVM, então o modelo de implantação do vSocket é o mesmo que para um host Linux KVM padrão (libvirt/QEMU): o vSocket é distribuído como uma imagem QCOW2 e inicializado com cloud-init. A diferença está na camada de gerenciamento — você cria e gerencia a VM a partir da interface web do Proxmox, em vez de usar virt-install ou virsh.

Para os requisitos gerais do vSocket KVM, as configurações de user-data do cloud-init e o fluxo de criação de sites no Aplicativo de Gerenciamento Cato (CMA), veja Configurando um Site KVM vSocket.

Estas são as principais etapas para implantar um vSocket KVM no Proxmox VE:

  1. Crie o site vSocket no CMA e copie o número de série (S/N).
  2. Baixe a imagem QCOW2 e gere a ISO da semente cloud-init.
  3. Envie a imagem QCOW2 e a ISO da semente para o armazenamento do Proxmox.
  4. Crie a VM na interface web do Proxmox com firmware UEFI e dispositivos virtio.
  5. Adicione a porta serial e as interfaces de rede adicionais à VM.
  6. Inicie a VM e verifique se o vSocket conecta-se ao CMA.

Preparando para Provisionar o vSocket KVM no Proxmox VE

Estes são os pré-requisitos para preparar a criação do vSocket KVM e conectá-lo ao Cato Cloud:

  • Um host Proxmox VE com KVM (virtualização de hardware) ativado e suporte UEFI (OVMF) para convidados.
  • O CPU do host Proxmox possui arquitetura classe Haswell ou mais recente.
  • A imagem QCOW2 para o vSocket KVM, baixada do repositório Cato Networks.
  • Um ISO de seed do cloud-init, gerado com antecedência com o número de série do site (veja Criar o ISO de Seed do Cloud-init).
  • Uma ferramenta para gerar a ISO da semente (por exemplo, mkisofs ou genisoimage).
  • Conectividade à Internet e um serviço DNS público para a interface WAN1 do vSocket.
  • Pontes Proxmox (por exemplo, vmbr0) que conectam as interfaces WAN, LAN e de gerenciamento opcionais às redes relevantes.
  • Anexar apenas até 4 interfaces de rede (NICs) ao vSocket. Anexar mais de 4 NICs pode resultar em problemas para o vSocket.

Nota: Passagem de NIC de hardware (passagem de PCI) e SR-IOV não são suportados.

Configurações Recomendadas de VM

Configuração Valor Recomendado
Tipo de Máquina q35
BIOS / Firmware OVMF (UEFI), sem disco EFI
Tipo de CPU host (arquitetura classe Haswell ou CPU de host mais recente)
vCPU 2 ou mais
Memória 4096 MB ou mais
Disco Primário Imagem QCOW2 importada, barramento VirtIO Block (8 GB de armazenamento fino)
Mídia cloud-init A ISO da semente, anexada como unidade de CD-ROM
Modelo de NIC VirtIO (paravirtualizado)
Contagem de NIC 2 a 4 interfaces

Melhores Práticas para Implantar um vSocket KVM no Proxmox VE

  • Implante o vSocket diretamente da imagem QCOW2 Cato para evitar problemas de compatibilidade de hardware e garantir que todas as configurações de hardware necessárias sejam aplicadas corretamente.
  • Mantenha uma cópia intocada da imagem QCOW2 original e importe uma cópia limpa da imagem para cada VM vSocket. A ISO da semente cloud-init é executada apenas na primeira inicialização. Se a configuração não foi aplicada corretamente, geralmente é mais rápido recriar a VM a partir de uma imagem limpa do que corrigir uma VM parcialmente inicializada.
  • Tire um instantâneo Proxmox da VM antes da primeira inicialização, para que você possa reverter para o estado inicial se a configuração de bootstrap não estiver correta.
  • Crie uma ISO de semente única, com o número de série do site relevante, para cada VM vSocket (incluindo cada membro de um par HA).
  • Use virtio para ambos os dispositivos de rede e disco — não é necessário emulação de NIC.
  • Não inicie a VM até que a VM esteja completamente configurada. A ISO da semente cloud-init é lida apenas na primeira inicialização.

Criando o Site KVM vSocket

No CMA, crie um novo site com o tipo de conexão vSocket KVM, e então copie o número de série (S/N) de Configuração do Site > Socket. Você precisa inserir este número de série (incluindo os hífens) no arquivo cloud-init user-data.

Para o procedimento completo, veja Configurando um Site KVM vSocket.

Implantando a VM vSocket no Proxmox VE

Passo 1 – Preparar as Redes do Proxmox

Certifique-se de que o host Proxmox tenha uma bridge Linux para cada interface que você conecte ao vSocket:

  • WAN1 – Uma bridge com conectividade com a Internet e acesso a um serviço DNS público (por exemplo, vmbr0). Esta é uma interface obrigatória.
  • LAN1 – Uma bridge para o segmento LAN por trás do vSocket. Esta é uma interface obrigatória.
  • MGMT (opcional) – Uma bridge para acesso de gerenciamento ao vSocket.
  • WAN2 (opcional) – Uma bridge para um segundo link WAN.

Você pode usar uma tag VLAN no dispositivo de rede para separar segmentos LAN que compartilham a mesma bridge.

Para uma implantação HA, as interfaces LAN de ambos os vSockets devem estar no mesmo domínio de broadcast (a mesma ponte e VLAN).

Passo 2 – Criar a ISO de Semente cloud-init

O vSocket KVM é inicializado com cloud-init usando uma ISO de semente NoCloud. Crie um diretório com um arquivo:

TMPDIR=$(mktemp -d)
touch $TMPDIR/user-data

Popule user-data com a configuração do site. O arquivo usa um formato TOML simples (key = value), e comentários são suportados. O número de série é obrigatório; as configurações de rede por interface são opcionais (as interfaces por padrão são DHCP).

# Obrigatório: o número de série do site CMA (Configuração do Site > Socket)
serial = "XXXX-XXXX-XXXX-XXXX"

# Configurações de rede por interface opcionais.
# Repita o bloco [[network]] para cada interface; o nome deve ser único
# e deve corresponder à interface real (WAN1, WAN2, LAN1, ...).

[[network]]
name = "WAN1"                       # obrigatório
tipo_enderecamento = "Estático"          # "Estático" ou "DHCP"
endereço = "192.168.50.201"          # obrigatório se Estático
máscara_rede = "255.255.255.0"           # obrigatório se Estático
gw_padrão = "192.168.50.1"         # obrigatório se Estático
dns_primário = "192.168.50.1"        # obrigatório se Estático
dns_secundário = "8.8.4.4"           # opcional

# DHCP é o padrão, então este bloco é opcional/redundante.
[[network]]
name = "WAN2"
tipo_enderecamento = "DHCP"

Empacote o arquivo em uma ISO de semente rotulada como cidata:

pushd $TMPDIR
mkisofs -output seed.iso -volid cidata -joliet -rock user-data
popd

Dê à ISO um nome que identifique a VM vSocket que a utiliza (por exemplo, seed-<site-name>.iso), para que você possa selecionar a ISO correta ao criar a VM.

Passo 3 – Enviar os Arquivos para o Armazenamento do Proxmox

  1. Envie a ISO de semente para o armazenamento de imagens ISO do nó que hospeda a VM (por exemplo, o armazenamento local, na seção Imagens ISO).
  2. Envie a imagem QCOW2 do vSocket para a seção Importar de um armazenamento no mesmo nó. O armazenamento deve ter o tipo de conteúdo Importar ativado.

Use uma cópia limpa da imagem QCOW2 para cada VM vSocket.

Espaço reservado para captura de tela – enviando a ISO de semente para o armazenamento do Proxmox.

Espaço reservado para captura de tela – enviando ou importando a imagem QCOW2.

Passo 4 – Crie a VM

Na interface web do Proxmox, clique em Criar VM e configure as abas do assistente da seguinte forma.

Para criar a VM vSocket:

  1. Na aba Geral, selecione o Nó, e então insira o ID da VM e o Nome para a VM vSocket. Deixe a caixa de seleção Adicionar ao HA desmarcada (veja Implementação de Alta Disponibilidade (HA)).

  2. Na aba SO:

    1. Selecione Usar arquivo de imagem de disco CD/DVD (iso).
    2. Para Armazenamento e Imagem ISO, selecione a ISO de semente que você criou para este vSocket.
    3. Para SO Convidado, mantenha os valores padrão (Tipo: Linux, Versão: 6.x - Kernel 2.6).

    Espaço reservado para captura de tela – selecionando a ISO de semente cloud-init na aba SO.

  3. Na aba Sistema:

    1. Para BIOS, selecione OVMF (UEFI).
    2. Desmarque a caixa de seleção Adicionar Disco EFI. A imagem do vSocket não requer um disco EFI.
    3. Para Máquina, selecione q35.
    4. Mantenha o Controlador SCSI padrão (VirtIO SCSI single).

    Espaço reservado para captura de tela – firmware UEFI selecionado e Disco EFI desmarcado.

  4. Na aba Discos:

    1. Exclua o disco padrão (virtio0).
    2. Clique em Importar, e então selecione a imagem QCOW2 do vSocket em Selecionar Imagem.
    3. Para Barramento/Dispositivo, selecione Bloqueio Virtio e selecione o Armazenamento de Destino para o disco.

    Espaço reservado para captura de tela – removendo o disco padrão.

    Espaço reservado para captura de tela – importando a imagem QCOW2 como o disco da VM.

  5. Na aba CPU, configure pelo menos 2 Cores, e selecione host para o Tipo.

    Espaço reservado para captura de tela – núcleos de CPU e tipo de CPU do host.

  6. Na aba Memória, insira pelo menos 4096 MB.

  7. Na aba Rede, configure o primeiro dispositivo de rede (net0). Esta interface é a interface WAN1 do vSocket:

    1. Para Bridge, selecione a bridge com conectividade à Internet.
    2. Para Modelo, selecione VirtIO (paravirtualizado).
    3. Opcionalmente, desmarque a caixa de seleção Firewall.
  8. Na aba Confirmar, certifique-se de que Iniciar após criado NÃO está selecionado, e então clique em Concluir.

Importante! Não inicie a VM até que ela esteja completamente configurada. A ISO da semente cloud-init é lida apenas na primeira inicialização.

Passo 5 – Adicionar a Porta Serial e as Interfaces Restantes

Após a VM ser criada, adicione o hardware restante na seção Hardware da VM.

Para completar a configuração de hardware da VM:

  1. Clique em Adicionar > Porta Serial e adicione a porta serial 0 (serial0). A porta serial é usada para acesso de console ao vSocket.
  2. Clique em Adicionar > Dispositivo de Rede e adicione a interface LAN1:
    1. Para Bridge, selecione a bridge LAN.
    2. Para Modelo, selecione VirtIO (paravirtualizado).
    3. Opcionalmente, insira uma Tag VLAN para separar segmentos LAN que usam a mesma bridge.
  3. Repita a etapa anterior para cada interface adicional (gerenciamento ou WAN2), até um total de 4 interfaces.

Os dispositivos de rede são mapeados para as interfaces do vSocket de acordo com sua ordem: net0 é WAN1, net1 é LAN1, e os dispositivos seguintes são as interfaces opcionais.

Espaço reservado para captura de tela – adicionando uma porta serial.

Espaço reservado para captura de tela – adicionando um dispositivo de rede adicional.

Espaço reservado para captura de tela – lista de hardware concluída para a VM vSocket.

Passo 6 – (Recomendado) Tire um Instantâneo

Antes da primeira inicialização, na seção Instantâneos da VM, clique em Tirar Instantâneo e crie um instantâneo do estado inicial (por exemplo, intocada). Se a configuração da primeira inicialização não estiver correta, você pode reverter para este instantâneo em vez de recriar a VM.

Espaço reservado para captura de tela – tirando um instantâneo do estado inicial da VM.

Passo 7 – Inicie a VM

Inicie a VM. Na primeira inicialização, o vSocket lê a configuração da ISO de semente e começa a se registrar na Cato Cloud.

Conectando o vSocket ao CMA

O CMA detecta automaticamente o vSocket e usa o número de série (do cloud-init user-data) para conectá-lo ao site. Para registrar, a interface WAN1 deve ter conectividade com a Internet e acesso a um DNS público para que possa alcançar a Cato Cloud e o CMA.

  • Se a WAN1 receber um endereço IP dinâmico via DHCP, o vSocket começa automaticamente a se registrar na Cato Cloud.
  • Se o DHCP não estiver disponível, configure um endereço IP estático para WAN1 no cloud-init user-data (veja o Passo 2).
  • Por padrão, a interface WAN2 está desativada e o vSocket usa apenas a WAN1 para registrar.

Para acompanhar o processo de inicialização e o registro, use a seção Console da VM na interface web do Proxmox. O vSocket envia sua saída de inicialização para o console serial, então, para ver essa saída, defina Hardware > Display > Placa de vídeo para Terminal serial 0.

Implantação de Alta Disponibilidade (HA)

O HA se comporta como um par HA físico, usando VRRP entre os dois vSockets KVM. Isso é separado da funcionalidade HA do cluster Proxmox (a opção Adicionar ao HA), que reinicia uma VM em outro nó e não é utilizada para HA do vSocket.

  • Implante duas VMs de vSocket, cada uma com sua própria cópia da imagem QCOW2 e seu próprio ISO de semente (cada um com o número de série do socket primário ou secundário).
  • As interfaces LAN de ambas as VMs devem estar no mesmo domínio de broadcast (a mesma ponte e tag VLAN) para que o VRRP possa operar. Se as VMs estiverem em diferentes nós do Proxmox, as pontes LAN devem estar conectadas ao mesmo segmento de Camada 2.
  • Adicione o socket secundário ao site no CMA. Os dois membros formam o par HA, trocam informações de saúde/estado e falham de acordo com o design do produto HA.
  • A saúde e o estado do HA são visíveis no CMA.

Implantando VMs Adicionais de vSocket

Para executar mais de uma VM de vSocket no mesmo host ou cluster Proxmox:

  • Importe uma cópia limpa da imagem QCOW2 para cada VM.
  • Gere um novo ISO de semente com o número de série do site relevante.
  • Use um nome de VM e um ID de VM exclusivos.
  • Use pontes LAN separadas ou tags VLAN onde o isolamento for necessário.

Alterando a Configuração da VM do vSocket

Você pode alterar algumas configurações da VM se a nova configuração utilizar valores suportados. Reinicie a VM do vSocket para que as mudanças entrem em vigor.

As seguintes configurações de VM podem ser alteradas:

  • CPU
  • Memória
  • Rede, como adicionar ou remover uma interface de rede

Troubleshooting

A VM inicializa, mas o vSocket não registra

  • Verifique se o ISO de inicialização está anexado como CD-ROM.
  • Verifique se o ISO contém o arquivo user-data.
  • Verifique se o valor serial corresponde ao número de série do site no CMA.
  • Verifique se o WAN1 tem acesso à Internet e acesso a um serviço DNS público.
  • Verifique se o primeiro dispositivo de rede (net0) está conectado à ponte WAN pretendida.

Mudanças na configuração do cloud-init são ignoradas

O bootstrap do vSocket é executado apenas na primeira inicialização. Se você alterar o user-data após a inicialização da VM, as mudanças não serão aplicadas ao disco de inicialização existente. Retorne ao instantâneo do estado inicial ou recrie a VM com uma cópia limpa da imagem QCOW2 e um novo ISO de inicialização.

Não há saída do console

  • Verifique se a porta serial (serial0) foi adicionada à VM.
  • Para ver a saída serial no console da interface web, defina Hardware > Display > Placa gráfica para Terminal serial 0.

A rede não se comporta como esperado

  • Verifique a ponte para a qual cada dispositivo de rede está conectado.
  • Verifique a ordem dos dispositivos de rede na configuração da VM (net0 é WAN1, net1 é LAN1).
  • Verifique se as seções [[network]] no arquivo user-data usam DHCP ou configurações estáticas conforme pretendido.

Artigos Relacionados