Implementación y Administración Avanzada de Proxmox Virtual Environment

Introducción a Proxmox VE (PVE)

Proxmox VE es una plataforma de virtualización de código abierto basada en Debian que combina la virtualización KVM y contenedores LXC. Su arquitectura permite gestionar cómputo, almacenamiento y redes desde una única consola web.

Capacidades de Gestión

  • Arquitectura Multi-maestro: Permite gestionar múltiples nodos físicos desde una interfaz unificada sin necesidad de un servidor de gestión centralizado dedicado.
  • Sistema de Archivos Proxmox (pmxcfs): Una base de datos de configuración distribuida que se replica en memoria para mantener la consistencia entre miles de máquinas virtuales.
  • API RESTful: Facilita la integración con herramientas de terceros y la automatización mediante llamadas programáticas.
  • Control de Acceso (RBAC): Permite definir permisos granulares basados en roles.
  • Autenticación Flexible: Soporte para PAM, LDAP, Active Directory y autenticación de dos factores (2FA) como Google Authenticator.

Almacenamiento y Redes

PVE es compatible con diversas tecnologías de almacenamiento como NFS, LVM local, Ceph RBD, ZFS y GlusterFS. En cuanto a conectividad, utiliza por defecto un modelo de puente (bridge), donde el host actúa como un switch virtual (hub) que conecta las interfaces físicas con las virtuales de los huéspedes.

Instalación y Requisitos del Sistema

Para un rendimiento óptimo, especialmente si se planea usar tecnologías como el paso de dispositiovs (PCIe passthrough), el hardware debe cumplir ciertos criterios:

  • Procesador: Intel EMT64 o AMD64 con soporte para VT-x/AMD-V.
  • Memoria RAM: Mínimo de 2 GB para el sistema base. Para configuraciones con ZFS o Ceph, se recomienda 1 GB adicional por cada TB de almacenamiento.
  • Discos: Se recomiendan unidades SSD con controladores RAID que dispongan de caché protegida por batería.

Pruebas de Rendimiento

Una vez instalado, se puede evaluar el rendimiento del subsistema de E/S y CPU mediante la herramienta nativa:

pveperf /ruta/al/punto/de/montaje

Configuración de Repositorios y Actualización

Para entornos que no utilizan la suscripción empresarial, es necesario ajustar las fuentes de apt para recibir actualizaciones de la comunidad.

# Configuración de repositorios para Debian Bookworm
cat <<EOF > /etc/apt/sources.list
deb https://deb.debian.org/debian bookworm main contrib non-free-firmware
deb https://deb.debian.org/debian bookworm-updates main contrib non-free-firmware
deb https://security.debian.org/debian-security bookworm-security main contrib non-free-firmware
EOF

# Añadir repositorio No-Subscription de PVE
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list

# Desactivar el aviso de suscripción en la interfaz web
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy.service

Sincronización Horaria y Salud del Hardware

La consistencia del tiempo es crítica en clústeres PVE. Se recomienda el uso de chrony para una sincronización precisa.

# Instalación y ajuste de Chrony
apt update && apt install -y chrony
echo "server hora.rediris.es iburst" >> /etc/chrony/chrony.conf
systemctl restart chrony

# Verificación de discos mediante SMART
smartctl -a /dev/nvme0n1
# Si SMART está desactivado:
smartctl -s on /dev/nvme0n1

Gestión de Clústeres

Un clúster de alta disponibilidad requiere al menos tres nodos para evitar escenarios de "split-brain" y asegurar el quórum.

Consideraciones de Red en el Clúster

  • Latencia de red inferior a 5ms entre nodos.
  • Uso de redes dedicadas para la comunicación de Corosync para evitar congestión por tráfico de migración o almacenamiento.

Archivo de Configuración Corosync

El archivo /etc/pve/corosync.conf define la topología del clúster:

nodelist {
  node {
    name: pve-master-01
    nodeid: 1
    quorum_votes: 1
    ring0_addr: 10.0.0.11
    ring1_addr: 192.168.1.11
  }
  node {
    name: pve-slave-02
    nodeid: 2
    quorum_votes: 1
    ring0_addr: 10.0.0.12
    ring1_addr: 192.168.1.12
  }
}

totem {
  cluster_name: dc-produccion
  config_version: 5
  interface {
    linknumber: 0
  }
  link_mode: passive
  secauth: on
  version: 2
}

Configuración de Máquinas Virtuales

Al crear instancias, ciertos parámetros optimizan el rendimiento según el tipo de carga:

  • Controlador SCSI: VirtIO SCSI Single para mejor gestión de colas.
  • Agente QEMU: Debe habilitarse para permitir cierres limpios y congelación de FS durante backups.
  • Tipo de CPU: "Host" suele ofrecer el mejor rendimiento, aunque limita la migración entre CPUs de distinta arquitectura.
  • Red: VirtIO es el modelo recomendado. Habilitar Multiqueue si el tráfico de red es intensivo.

Migración y Clonación

  • Migración en Caliente (Live Migration): Requiere almacenamiento compartido o replicación previa para transferir el estado de la memoria sin apagar la VM.
  • Clonación Enlazada (Linked Clone): Crea una copia que depende del disco base original. Es rápida y ahorra espacio, pero requiere que el original sea de solo lectura.
  • Clonación Completa (Full Clone): Copia íntegra e independiente de todos los datos.

Paso de Dispositivos PCIe (Passthrough)

Permite que una VM tome control directo de hardware físico (como GPUs o tarjetas de red).

Activación de IOMMU

Modifique el cargador de arranque para habilitar el mapeo de memoria de E/S:

# En /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

# Actualizar y cargar módulos necesarios
update-grub
echo -e "vfio\nvfio_iommu_type1\nvfio_pci" >> /etc/modules
update-initramfs -u -k all

Aislamiento de Dispositivos

Identifique el ID del hardware y bloquéelo para el host:

lspci -nn | grep -i nvidia
# Salida ejemplo: [10de:1b81]
echo "options vfio-pci ids=10de:1b81" > /etc/modprobe.d/vfio.conf

Alta Disponibilidad (HA)

El stack de HA en Proxmox se compone de dos elementos clave:

  1. pve-ha-lrm (Local Resource Manager): Controla el estado de los recursos en el nodo local y ejecuta comandos del CRM.
  2. pve-ha-crm (Cluster Resource Manager): Toma decisiones a nivel global, gestiona las transiciones de estado y realiza el "fencing" de nodos fallidos.

Estados Comunes del Servicio HA

  • started: El sistema intenta mantener la VM activa; si el nodo falla, se reinicia en otro.
  • fence: Estado de aislamiento tras detectar una falla, esperando confirmar que el nodo fallido no acceda al almacenamiento compartido.
  • freeze: El recurso está congelado (por ejemplo, durante mentenimiento), el gestor de HA no tomará acciones.

Redes Definidas por Software (SDN)

PVE permite crear zonas de red aisladas para entornos multi-inquilino:

  • Simple: Crea un puentte con enrutamiento NAT local.
  • VLAN: Utiliza el estándar 802.1Q para segmentar tráfico en el switch físico.
  • VXLAN / EVPN: Permite extender redes de capa 2 sobre infraestructuras de capa 3, ideal para clústeres distribuidos.

Etiquetas: proxmox virtualización KVM lxc Sysadmin

Publicado el 6-26 03:08