Configurando un vSocket KVM en Proxmox VE (EA)

Prev Next

Nota: Esta es una función de Disponibilidad Temprana (EA) que solo está disponible para liberación limitada. Para más información, contacte a su representante de Cato Networks o envíe un correo a ea@catonetworks.com.

"Visión general"

Este artículo describe cómo implementar un KVM vSocket en un host que es gestionado con el Proxmox Virtual Environment (Proxmox VE). Proxmox VE utiliza QEMU/KVM, por lo que el modelo de implementación de vSocket es el mismo que para un host estándar de Linux KVM (libvirt/QEMU): el vSocket se distribuye como una imagen QCOW2 y se inicia con cloud-init. La diferencia es la capa de gestión: creas y gestionas la VM desde la interfaz web de Proxmox en lugar de usar virt-install o virsh.

Para los requisitos generales de KVM vSocket, la configuración de user-data en cloud-init y el flujo de creación del sitio en la Aplicación de Gestión de Cato (CMA), consulta Configuración de un Sitio de KVM vSocket.

Estas son las etapas principales para implementar un KVM vSocket en Proxmox VE:

  1. Crea el sitio de vSocket en la CMA y copia el número de serie (S/N).
  2. Descarga la imagen QCOW2 y genera el ISO de semilla de cloud-init.
  3. Sube la imagen QCOW2 y la ISO de semilla al almacenamiento de Proxmox.
  4. Crea la VM en la interfaz web de Proxmox con firmware UEFI y dispositivos virtio.
  5. Agrega el puerto serie y las interfaces de red adicionales a la VM.
  6. Inicia la VM y verifica que el vSocket se conecte a la CMA.

Preparativos para Provisión del KVM vSocket en Proxmox VE

Estos son los requisitos previos para preparar la creación del KVM vSocket y conectarlo al Cato Cloud:

  • Un host de Proxmox VE con KVM (virtualización de hardware) habilitado y soporte UEFI (OVMF) para invitados.
  • La CPU del host Proxmox es de arquitectura clase Haswell o más nueva.
  • La imagen QCOW2 para el KVM vSocket, descargada del repositorio de Cato Networks.
  • Un ISO de semillas cloud-init, generado de antemano con el número de serie del sitio (ver Crear el ISO de Semillas cloud-init).
  • Una herramienta para generar el ISO de semilla (por ejemplo, mkisofs o genisoimage).
  • Conectividad a Internet y un servicio DNS público para la interfaz WAN1 del vSocket.
  • Puentes de Proxmox (por ejemplo, vmbr0) que conectan las interfaces de gestión opcionales, WAN y LAN a las redes correspondientes.
  • Adjunte solo hasta 4 interfaces de red (NICs) al vSocket. Adjuntar más de 4 NICs puede resultar en problemas para el vSocket.

Nota: No se admite el paso directo de NIC de hardware (PCI passthrough) y SR-IOV.

Configuraciones Recomendadas para la VM

Establecido Valor recomendado
Tipo de máquina q35
BIOS / Firmware OVMF (UEFI), sin un disco EFI
tipo de CPU Host (arquitectura clase Haswell o CPU host más nuevo)
vCPU 2 o más
Memoria 4096 MB o más
Disco Primario Importada imagen QCOW2, bus de Bloque VirtIO (almacenamiento de respaldo delgado de 8 GB)
Medios cloud-init El ISO de semilla, adjunto como unidad de CD-ROM
Modelo de NIC VirtIO (paravirtualizado)
Cantidad de NIC 2 a 4 interfaces

Mejores Prácticas para Implementar un KVM vSocket en Proxmox VE

  • Implemente el vSocket directamente desde la imagen QCOW2 de Cato para evitar problemas de compatibilidad de hardware y asegurarse de que todas las configuraciones de hardware requeridas se apliquen correctamente.
  • Mantenga una copia intacta de la imagen QCOW2 original e importe una copia limpia de la imagen para cada VM de vSocket. El ISO de semilla de cloud-init se ejecuta solo en el primer inicio. Si la configuración no se aplicó correctamente, por lo general es más rápido recrear la VM a partir de una imagen limpia que solucionar una VM parcialmente inicializada.
  • Tome una instantánea de Proxmox de la VM antes del primer inicio, de modo que pueda retroceder al estado inicial si la configuración de arranque no es correcta.
  • Cree un ISO de semilla único, con el número de serie del sitio correspondiente, para cada VM de vSocket (incluido cada miembro de un par HA).
  • Use virtio tanto para dispositivos de red como de disco: no se requiere emulación de NIC.
  • No inicie la VM hasta que la VM esté completamente configurada. El ISO de semilla de cloud-init solo se lee en el primer inicio.

Creación del Sitio de vSocket KVM

En la CMA, crea un nuevo sitio con el tipo de conexión vSocket KVM, y luego copia el número de serie (S/N) de Configuración del Sitio > Socket. Necesitas introducir este número de serie (incluyendo guiones) en el archivo user-data de cloud-init.

Para el procedimiento completo, consulta Configuración de un Sitio de KVM vSocket.

Implementación de la VM vSocket en Proxmox VE

Paso 1 – Prepare las Redes de Proxmox

Asegúrate de que el host Proxmox tenga un puente Linux para cada interfaz que conectes al vSocket:

  • WAN1 – Un puente con conectividad a Internet y acceso a un servicio DNS público (por ejemplo, vmbr0). Esta es una interfaz obligatoria.
  • LAN1 – Un puente para el segmento de LAN detrás del vSocket. Esta es una interfaz obligatoria.
  • MGMT (opcional) – Un puente para acceso de gestión al vSocket.
  • WAN2 (opcional) – Un puente para un segundo enlace WAN.

Puedes usar una etiqueta VLAN en el dispositivo de red para separar los segmentos LAN que comparten el mismo puente.

Para una implementación HA, las interfaces LAN de ambos vSockets deben estar en el mismo dominio de broadcast (el mismo puente y VLAN).

Paso 2 – Crea el ISO de Semilla Cloud-init

El KVM vSocket se inicia con cloud-init utilizando un ISO de semilla NoCloud. Crea un directorio con un archivo:

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

Llena user-data con la configuración del sitio. El archivo utiliza un formato TOML simple (key = value), y se admiten comentarios. El número de serie es obligatorio; las configuraciones de red por interfaz son opcionales (las interfaces tienen DHCP por defecto).

# Obligatorio: el número de serie del sitio de la CMA (Configuración del Sitio > Socket)
serial = "XXXX-XXXX-XXXX-XXXX"

# Configuraciones opcionales de red por interfaz.
# Repetir el bloque [[network]] para cada interfaz; el nombre debe ser único
# y coincidir con la interfaz real (WAN1, WAN2, LAN1, ...).

[[network]]
name = "WAN1"                       # obligatorio
tipo_dirección = "Estática"          # "Estática" o "DHCP"
dirección = "192.168.50.201"          # obligatorio si es Estática
máscara = "255.255.255.0"           # obligatorio si es Estática
puerta_predeterminada = "192.168.50.1"         # obligatorio si es Estática
dns_principal = "192.168.50.1"        # obligatorio si es Estática
dns_secundario = "8.8.4.4"           # opcional

# DHCP es el predeterminado, por lo que este bloque es opcional/redundante.
[[network]]
name = "WAN2"
tipo_dirección = "DHCP"

Empaca el archivo en un ISO de semilla con la etiqueta cidata:

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

Dale al ISO un nombre que identifique la VM de vSocket que lo usa (por ejemplo, seed-<nombre-del-sitio>.iso), para que puedas seleccionar el ISO correcto al crear la VM.

Paso 3 – Sube los Archivos al Almacenamiento de Proxmox

  1. Sube el ISO de semilla al almacenamiento de imágenes ISO del nodo que aloja la VM (por ejemplo, el almacenamiento local, en la sección de Imágenes ISO).
  2. Sube la imagen QCOW2 de vSocket a la sección de Importar de un almacenamiento en el mismo nodo. El almacenamiento debe tener habilitado el tipo de contenido Importar.

Usa una copia limpia de la imagen QCOW2 para cada VM de vSocket.

Espacio reservado para capturas de pantalla: subiendo el ISO de semilla al almacenamiento de Proxmox.

Espacio reservado para capturas de pantalla: subiendo o importando la imagen QCOW2.

Paso 4 – Crea la VM

En la interfaz web de Proxmox, haz clic en Crear VM y configura las pestañas del asistente como sigue.

Para crear la VM de vSocket:

  1. En la pestaña General, selecciona el Nodo, y luego introduce el ID de VM y el Nombre para la VM de vSocket. Deje la casilla Agregar a HA sin marcar (ver Despliegue de Alta Disponibilidad (HA)).

  2. En la pestaña OS:

    1. Selecciona Usar archivo de imagen de disco CD/DVD (iso).
    2. Para Almacenamiento e Imagen ISO, selecciona el ISO de semilla que creaste para este vSocket.
    3. Para OS Invitado, mantén los valores predeterminados (Tipo: Linux, Versión: 6.x - 2.6 Kernel).

    Espacio reservado para capturas de pantalla: seleccionando el ISO de semilla de cloud-init en la pestaña OS.

  3. En la pestaña Sistema:

    1. Para BIOS, selecciona OVMF (UEFI).
    2. Desmarca la casilla de Añadir disco EFI. La imagen de vSocket no requiere un disco EFI.
    3. Para Máquina, selecciona q35.
    4. Mantén el Controlador SCSI predeterminado (VirtIO SCSI single).

    Espacio reservado para capturas de pantalla: firmware UEFI seleccionado y Añadir disco EFI desmarcado.

  4. En la pestaña Discos:

    1. Elimina el disco predeterminado (virtio0).
    2. Haz clic en Importar, y luego selecciona la imagen QCOW2 de vSocket en Seleccionar Imagen.
    3. Para Bus/Dispositivo, selecciona Bloque VirtIO, y selecciona el Almacenamiento Objetivo para el disco.

    Espacio reservado para capturas de pantalla: eliminando el disco predeterminado.

    Espacio reservado para capturas de pantalla: importando la imagen QCOW2 como el disco VM.

  5. En la pestaña CPU, configura al menos 2 Núcleos, y selecciona host para el Tipo.

    Espacio reservado para capturas de pantalla: núcleos de CPU y tipo de CPU del host.

  6. En la pestaña Memoria, introduce al menos 4096 MB.

  7. En la pestaña Red, configura el primer dispositivo de red (net0). Esta interfaz es la interfaz WAN1 del vSocket:

    1. Para Puente, selecciona el puente con conectividad a Internet.
    2. Para Modelo, selecciona VirtIO (paravirtualizado).
    3. Opcionalmente, desmarca la casilla de Firewall.
  8. En la pestaña Confirmar, asegúrate de que Iniciar después de creado NO esté seleccionado, y luego haz clic en Finalizar.

¡Importante! No inicies la VM hasta que esté completamente configurada. El ISO de semilla cloud-init solo se lee en el primer inicio.

Paso 5 – Añade el Puerto Serial y las Interfaces Restantes

Después de que la VM esté creada, añade el hardware restante desde la sección Hardware de la VM.

Para completar la configuración del hardware de VM:

  1. Haz clic en Añadir > Puerto Serie y añade el puerto serie 0 (serial0). El puerto serie se usa para acceso a la consola del vSocket.
  2. Haz clic en Añadir > Dispositivo de Red y añade la interfaz LAN1:
    1. Para Puente, selecciona el puente LAN.
    2. Para Modelo, selecciona VirtIO (paravirtualizado).
    3. Opcionalmente, introduce una Etiqueta VLAN para separar los segmentos LAN que usan el mismo puente.
  3. Repite el paso anterior para cada interfaz adicional (gestión o WAN2), hasta un total de 4 interfaces.

Los dispositivos de red se asignan a las interfaces del vSocket según su orden: net0 es WAN1, net1 es LAN1, y los dispositivos siguientes son las interfaces opcionales.

Espacio reservado para capturas de pantalla: añadiendo un puerto serie.

Espacio reservado para capturas de pantalla: añadiendo un dispositivo de red adicional.

Espacio reservado para capturas de pantalla: lista de hardware completada para la VM de vSocket.

Paso 6 – (Recomendado) Tome una Instantánea

Antes del primer inicio, en la sección Instantáneas de la VM, haz clic en Tomar Instantánea y crea una instantánea del estado inicial (por ejemplo, pristine). Si la configuración del primer inicio no es correcta, puedes volver a esta instantánea en lugar de recrear la VM.

Espacio reservado para capturas de pantalla: tomando una instantánea del estado inicial de VM.

Paso 7 – Iniciar la VM

Inicia la VM. En el primer inicio, el vSocket lee la configuración del ISO de semilla y comienza a registrarse en el Cato Cloud.

Conexión del vSocket a la CMA

La CMA detecta automáticamente el vSocket y utiliza el número de serie (del cloud-init user-data) para conectarlo al sitio. Para registrarse, la interfaz WAN1 debe tener conectividad a Internet y acceso a un DNS público para poder alcanzar el Cato Cloud y la CMA.

  • Si WAN1 recibe una dirección IP dinámica mediante DHCP, el vSocket comienza automáticamente a registrarse en el Cato Cloud.
  • Si DHCP no está disponible, configura una dirección IP estática para WAN1 en el cloud-init user-data (ver Paso 2).
  • Por defecto, la interfaz WAN2 está desactivada y el vSocket utiliza solo WAN1 para registrarse.

Para seguir el proceso de arranque y el registro, usa la sección Consola de la VM en la interfaz web de Proxmox. El vSocket envía su salida de arranque a la consola serial, por lo tanto, para ver esta salida, establezca Hardware > Display > Graphic card a Serial terminal 0.

Despliegue de Alta Disponibilidad (HA)

HA se comporta como un par HA físico, utilizando VRRP entre los dos vSockets KVM. Esto es independiente de la función de HA del clúster Proxmox (la opción Agregar a HA), que reinicia una VM en otro nodo y no se utiliza para vSocket HA.

  • Despliegue dos VMs de vSocket, cada una con su propia copia de la imagen QCOW2 y su propia semilla ISO (cada una con el número de serie del socket primario o secundario).
  • Las interfaces LAN de ambas VMs deben estar en el mismo dominio de difusión (el mismo puente y etiqueta VLAN) para que VRRP pueda operar. Si las VMs están en diferentes nodos Proxmox, los puentes LAN deben conectarse al mismo segmento de Capa 2.
  • Agregue el socket secundario al sitio en el CMA. Los dos miembros forman el par HA, intercambian salud/estado y realizan failover de acuerdo con el diseño de HA del producto.
  • La salud y el estado de HA son visibles en el CMA.

Desplegando VMs adicionales de vSocket

Para ejecutar más de una VM de vSocket en el mismo host o clúster Proxmox:

  • Importe una copia limpia de la imagen QCOW2 para cada VM.
  • Genere una nueva semilla ISO con el número de serie del sitio relevante.
  • Utilice un nombre de VM único y un ID de VM.
  • Utilice puentes LAN separados o etiquetas VLAN donde se requiera aislamiento.

Cambio de la Configuración de VM del vSocket

Puede cambiar algunas configuraciones de VM si la nueva configuración utiliza valores admitidos. Reinicie la VM de vSocket para que los cambios surtan efecto.

Las siguientes configuraciones de VM se pueden cambiar:

  • CPU
  • Memoria
  • Redes, como agregar o eliminar una interfaz de red

Resolución de problemas

La VM arranca pero el vSocket no se registra

  • Verifique que el ISO de arranque esté conectado como un CD-ROM.
  • Verifique que el ISO contenga el archivo user-data.
  • Verifique que el valor serial coincida con el número de serie del sitio en el CMA.
  • Verifique que WAN1 tenga acceso a Internet y a un servicio de DNS público.
  • Verifique que el primer dispositivo de red (net0) esté conectado al puente WAN previsto.

Los cambios en la configuración de cloud-init son ignorados

El arranque de vSocket se ejecuta solo en el primer inicio. Si cambia user-data después de que la VM se ha inicializado, los cambios no se aplican al disco de arranque existente. Regrese a la instantánea del estado inicial o recree la VM con una copia limpia de la imagen QCOW2 y un nuevo ISO de arranque.

No hay salida de consola

  • Verifique que se haya agregado el puerto serie (serial0) a la VM.
  • Para ver la salida de serie en la consola web UI, establezca Hardware > Pantalla > Tarjeta gráfica en Terminal serie 0.

La red no se comporta como se esperaba

  • Verifique el puente al que está conectado cada dispositivo de red.
  • Verifique el orden de los dispositivos de red en la configuración de la VM (net0 es WAN1, net1 es LAN1).
  • Verifique que las secciones [[network]] en el archivo user-data usen DHCP o configuraciones estáticas según sea necesario.

Artículos relacionados