Orquestación de VMs con KVM/Libvirt
Access via SSH from the default terminal. The cluster topology is defined below:
# Management & Controller
10.0.0.15 terminal # Main Entry Point
# Web & Application Tier
10.0.0.60 web-srv1 # Nginx / Apache
10.0.0.70 app-srv1 # Backend App
# Data Persistence Tier
10.0.0.80 data-001 # Primary DB
10.0.0.90 data-002 # Replica / Backup
# Virtualization & Containers
10.0.0.100 kvm-001 # Libvirt Hypervisor
10.0.0.110 docker-001 # Container Runtime
terminal to target IPs.
📋 Requisitos de Ingeniería
Sección titulada «📋 Requisitos de Ingeniería»Contexto de Negocio:
El equipo de QA requiere una instancia de cómputo dedicada y aislada en el hipervisor kvm-001 para pruebas de integración. El entorno debe ser aprovisionado usando herramientas CLI estándar para asegurar la reproducibilidad.
Objetivos Técnicos:
- Estado del Host: Validar el estado del stack
qemu-kvmylibvirtd. - Almacenamiento: Aprovisionar un volumen
qcow2de 10 GiB (Thin Provisioned) llamadoqa-vm-disk.qcow2. - Definición de Instancia (
qa-vm01):- Specs: 1 vCPU, 1024 MiB RAM.
- Red: Bridge NAT por defecto.
- Consola: Redirección serie (Modo Headless).
- Ciclo de Vida: Habilitar auto-inicio en el arranque y realizar prueba de apagado controlado.
🔧 Procedimiento de Implementación
Sección titulada «🔧 Procedimiento de Implementación»-
Acceso al Nodo Hipervisor
Conecte al host de virtualización.
Ventana de terminal ssh kvm-001 -
Verificar Prerrequisitos del Host
Asegúrese de que el demonio libvirt está activo y habilitado.
Ventana de terminal sudo systemctl is-active libvirtd# Si inactivo: sudo systemctl enable --now libvirtd -
Aprovisionar Volumen de Almacenamiento
Cree el disco virtual usando
qemu-img.Ventana de terminal sudo qemu-img create -f qcow2 /var/lib/libvirt/images/qa-vm-disk.qcow2 10G -
Definir y Arrancar Instancia
Ejecute
virt-installcon parámetros para entorno headless (--graphics none).Ventana de terminal sudo virt-install \--name qa-vm01 \--ram 1024 \--vcpus 1 \--disk path=/var/lib/libvirt/images/qa-vm-disk.qcow2,format=qcow2 \--os-variant rocky9 \--network network=default \--graphics none \--console pty,target_type=serial \--location "https://download.rockylinux.org/pub/rocky/9/BaseOS/x86_64/os/" \--extra-args "console=ttyS0"Tip: Para desconectarse de la consola sin matar la VM, presione
Ctrl + ]. -
Configurar Auto-inicio
Asegure que la VM sobrevive a reinicios del host.
Ventana de terminal sudo virsh autostart qa-vm01 -
Validar Control de Ciclo de Vida
Verifique que la VM corre, luego solicite un apagado ACPI.
Ventana de terminal # Verificar estadosudo virsh list --all# Solicitud de apagado controladosudo virsh shutdown qa-vm01
🔍 Diagnóstico y Resolución
Sección titulada «🔍 Diagnóstico y Resolución»- “Guest name already in use”: Si un intento previo falló parcialmente, limpie los metadatos:
Ventana de terminal sudo virsh destroy qa-vm01sudo virsh undefine qa-vm01 - Consola Congelada: Si la consola no muestra salida, asegúrese de que
--extra-args "console=ttyS0"fue pasado correctamente para redirigir los logs del kernel al puerto serie.