Saltar a contenido

Proxmox VE

Guía completa de Proxmox Virtual Environment: plataforma de virtualización empresarial de código abierto.

📋 Tabla de Contenidos

Introducción

Proxmox Virtual Environment (Proxmox VE) es una plataforma de virtualización empresarial de código abierto que combina:

  • Virtualización de máquinas virtuales (KVM/QEMU)
  • Contenedores LXC para aplicaciones ligeras
  • Gestión web unificada con interfaz intuitiva
  • Almacenamiento distribuido con múltiples opciones
  • Clustering para alta disponibilidad
  • Backup integrado con múltiples destinos

Características Principales

  • Código abierto: Basado en Debian GNU/Linux
  • Alto rendimiento: KVM para virtualización de hardware
  • Escalabilidad: Clustering nativo para múltiples nodos
  • Flexibilidad: Soporte para múltiples tipos de almacenamiento
  • Seguridad: Contenedores LXC aislados
  • Monitoreo: Métricas en tiempo real

Instalación

Requisitos del Sistema

  • CPU: 64-bit con soporte para virtualización (Intel VT-x/AMD-V)
  • RAM: Mínimo 4GB, recomendado 8GB+
  • Almacenamiento: Mínimo 32GB, recomendado 100GB+
  • Red: Interfaz de red configurada

Instalación desde ISO

  1. Descargar ISO desde proxmox.com
  2. Crear USB booteable o usar PXE
  3. Bootear desde el medio de instalación
  4. Seguir el asistente de instalación
# Ejemplo de instalación automatizada
# Crear archivo de configuración para instalación desatendida
cat > /tmp/proxmox-ve.conf << EOF
# Configuración de red
interface=eth0
ip=192.168.1.100/24
gateway=192.168.1.1
dns=8.8.8.8

# Configuración de almacenamiento
target=sda
filesystem=ext4

# Configuración de usuario
password=TuContraseñaSegura
email=admin@tudominio.com
EOF

Instalación sobre Debian

# Añadir repositorio de Proxmox
echo "deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list

# Añadir clave GPG
wget https://enterprise.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg

# Actualizar e instalar
apt update
apt install proxmox-ve postfix open-iscsi

Configuración Básica

Acceso a la Interfaz Web

# URL de acceso
https://IP-DEL-SERVIDOR:8006

# Credenciales por defecto
Usuario: root
Contraseña: (la configurada durante la instalación)

Configuración de Red

# Editar configuración de red
nano /etc/network/interfaces

# Ejemplo de configuración
auto lo
iface lo inet loopback

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    bridge-ports eth0
    bridge-stp off
    bridge-fd 0

Configuración de DNS

# Editar resolv.conf
nano /etc/resolv.conf

# Añadir servidores DNS
nameserver 8.8.8.8
nameserver 8.8.4.4

Gestión de Máquinas Virtuales

Crear una VM desde la Interfaz Web

  1. Navegar a Datacenter → Nodo → Create VM
  2. Configurar parámetros básicos:
  3. General: Nombre, ID, OS Type
  4. OS: ISO image, OS version
  5. System: SCSI controller, Qemu agent
  6. Hard Disk: Size, storage location
  7. CPU: Sockets, cores
  8. Memory: RAM allocation
  9. Network: Bridge, model

Crear VM desde Línea de Comandos

# Crear VM con ID 100
qm create 100 --name "Ubuntu-Server" --memory 2048 --cores 2

# Añadir disco
qm set 100 --scsi0 local-lvm:32

# Añadir ISO
qm set 100 --ide2 local:iso/ubuntu-22.04-server-amd64.iso,media=cdrom

# Configurar boot
qm set 100 --boot c --bootdisk scsi0

# Configurar red
qm set 100 --net0 virtio,bridge=vmbr0

# Iniciar VM
qm start 100

Gestión Avanzada de VMs

# Clonar VM
qm clone 100 101 --name "Ubuntu-Server-Clone"

# Migrar VM
qm migrate 100 target-node --online

# Snapshot
qm snapshot 100 snap1

# Backup
qm backup 100 local:backup

# Monitoreo
qm monitor 100

Contenedores LXC

Crear Contenedor

# Crear contenedor Ubuntu
pct create 200 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.gz \
  --hostname ubuntu-ct \
  --memory 512 \
  --cores 1 \
  --rootfs local-lvm:8 \
  --net0 name=eth0,bridge=vmbr0,ip=192.168.1.200/24,gw=192.168.1.1

# Iniciar contenedor
pct start 200

# Acceder al contenedor
pct enter 200

Gestión de Contenedores

# Listar contenedores
pct list

# Parar contenedor
pct stop 200

# Reiniciar contenedor
pct restart 200

# Clonar contenedor
pct clone 200 201

# Backup
pct backup 200 local:backup

Almacenamiento

Tipos de Almacenamiento

  • local: Almacenamiento local en el nodo
  • local-lvm: LVM para VMs y contenedores
  • NFS: Sistema de archivos de red
  • Ceph: Almacenamiento distribuido
  • iSCSI: Bloque de red
  • ZFS: Sistema de archivos avanzado

Configurar NFS

# Añadir almacenamiento NFS
pvesm add nfs nfs-storage --server 192.168.1.10 --export /mnt/storage --content images,iso,vztmpl

Configurar Ceph

# Instalar Ceph
apt install ceph

# Crear cluster Ceph
ceph-deploy new node1 node2 node3

# Añadir OSDs
ceph-deploy osd create node1:/dev/sdb
ceph-deploy osd create node2:/dev/sdb
ceph-deploy osd create node3:/dev/sdb

# Añadir almacenamiento Ceph a Proxmox
pvesm add ceph ceph-storage --monhost 192.168.1.10,192.168.1.11,192.168.1.12 --username admin

Redes

Configuración de Bridge

# Bridge simple
auto vmbr0
iface vmbr0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    bridge-ports eth0
    bridge-stp off
    bridge-fd 0

VLAN

# Bridge con VLAN
auto vmbr0.100
iface vmbr0.100 inet static
    address 192.168.100.100/24
    vlan-raw-device vmbr0

Bonding

# Bond de dos interfaces
auto bond0
iface bond0 inet manual
    bond-slaves eth0 eth1
    bond-mode 802.3ad
    bond-miimon 100

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    bridge-ports bond0
    bridge-stp off
    bridge-fd 0

Backup y Recuperación

Configurar Backup

# Configurar job de backup
nano /etc/pve/nodes/nodo/backup.conf

# Ejemplo de configuración
backup: local:backup
compress: lz4
mode: snapshot
retention: 7
schedule: daily 02:00
storage: local:backup

Backup Manual

# Backup de VM
qm backup 100 local:backup --compress lz4

# Backup de contenedor
pct backup 200 local:backup --compress lz4

# Restaurar backup
qm restore 100 /var/lib/vz/dump/vzdump-qemu-100-2023_01_01-02_00_00.vma.lz4
pct restore 200 /var/lib/vz/dump/vzdump-lxc-200-2023_01_01-02_00_00.tar.lz4

Clustering

Crear Cluster

# En el primer nodo
pvecm create cluster1

# En nodos adicionales
pvecm add 192.168.1.100

Gestión del Cluster

# Ver estado del cluster
pvecm status

# Migrar VM entre nodos
qm migrate 100 nodo2 --online

# Configurar HA (High Availability)
ha-manager add vm:100
ha-manager add ct:200

Seguridad

Configuración de Firewall

# Habilitar firewall
pve-firewall set --enable 1

# Reglas para nodo
pve-firewall set --policy-in ACCEPT
pve-firewall set --policy-out ACCEPT

# Reglas para VM
qm set 100 --firewall 1
pve-firewall set --rulegroup vm:100 --policy-in ACCEPT

Certificados SSL

# Generar certificado autofirmado
pvecm updatecerts --force

# Configurar certificado Let's Encrypt
apt install certbot
certbot certonly --standalone -d proxmox.tudominio.com

Monitoreo

Métricas del Sistema

# Ver uso de recursos
pvesm status
qm list
pct list

# Monitoreo de red
iftop -i vmbr0

Logs

# Logs del sistema
tail -f /var/log/syslog

# Logs de Proxmox
tail -f /var/log/pve/tasks/

# Logs de VMs
tail -f /var/log/pve/qemu-server/100.log

Casos de Uso

Entorno de Desarrollo

# Crear VM de desarrollo
qm create 300 --name "Dev-Ubuntu" --memory 4096 --cores 4
qm set 300 --scsi0 local-lvm:50
qm set 300 --net0 virtio,bridge=vmbr0
qm set 300 --ide2 local:iso/ubuntu-22.04-desktop-amd64.iso,media=cdrom

Servidor Web

# Crear contenedor para web
pct create 400 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.gz \
  --hostname webserver \
  --memory 1024 \
  --cores 2 \
  --rootfs local-lvm:20 \
  --net0 name=eth0,bridge=vmbr0,ip=192.168.1.10/24,gw=192.168.1.1

Base de Datos

# VM para base de datos
qm create 500 --name "DB-Server" --memory 8192 --cores 4
qm set 500 --scsi0 local-lvm:100
qm set 500 --scsi1 local-lvm:200  # Disco adicional para datos
qm set 500 --net0 virtio,bridge=vmbr0

Buenas Prácticas

  • Usar snapshots antes de cambios importantes
  • Configurar backups automáticos regulares
  • Monitorear recursos del sistema
  • Usar contenedores LXC para aplicaciones ligeras
  • Configurar HA para servicios críticos
  • Mantener actualizado el sistema
  • Documentar configuraciones importantes
  • Usar VLANs para separar redes

Herramientas Útiles

ProxMenuX

ProxMenuX es una herramienta de gestión avanzada para Proxmox VE que proporciona una interfaz gráfica mejorada y funcionalidades adicionales.

Características principales: - Interfaz web mejorada con mejor UX/UI - Gestión avanzada de VMs y contenedores - Monitoreo en tiempo real con gráficos - Backup y restauración simplificados - Gestión de usuarios y permisos - Integración con múltiples almacenamientos

Instalación:

# Clonar repositorio
git clone https://github.com/ayufan/proxmox-ve-helper.git
cd proxmox-ve-helper

# Instalar dependencias
npm install

# Configurar y ejecutar
npm run build
npm start

Proxmox VE Helper

Proxmox VE Helper es una colección de scripts y herramientas para automatizar tareas comunes en Proxmox VE.

Funcionalidades: - Scripts de automatización para backup - Herramientas de migración de VMs - Utilidades de monitoreo y alertas - Scripts de configuración de red - Herramientas de mantenimiento del cluster

Instalación:

# Descargar scripts
wget https://github.com/ayufan/proxmox-ve-helper/archive/refs/heads/master.zip
unzip master.zip
cd proxmox-ve-helper-master

# Dar permisos de ejecución
chmod +x scripts/*.sh

# Ejecutar script de instalación
./scripts/install.sh

Ejemplos de uso:

# Backup automático de todas las VMs
./scripts/backup-all-vms.sh

# Migración de VM con verificación
./scripts/migrate-vm.sh 100 target-node

# Monitoreo de recursos
./scripts/monitor-resources.sh

Otras Herramientas Recomendadas

  • Proxmox Backup Server: Solución de backup dedicada
  • Cockpit: Interfaz web para gestión de servidores
  • Grafana: Dashboards de monitoreo avanzado
  • Prometheus: Sistema de monitoreo y alertas
  • Ansible: Automatización de configuración

Referencias