Introducción: El hypervisor para homelabs serios
Proxmox VE (Virtual Environment) es el hypervisor open source más popular para homelabs y empresas pequeñas. Combina virtualización completa (KVM) con contenedores LXC, todo gestionado desde una interfaz web profesional.
En esta guía te llevo paso a paso desde el USB booteable hasta tener tu primer servidor virtualizado funcional, con configuración de red, storage, backups automáticos y mejores prácticas de producción.
- Instalación de Proxmox VE desde cero (paso a paso con screenshots conceptuales)
- Configuración de red avanzada (bridges, VLANs, bonding)
- Gestión de storage (local, NFS, Ceph, ZFS)
- Crear y gestionar VMs y contenedores LXC
- Backups automáticos y disaster recovery
- Clustering (opcional, alta disponibilidad)
- Troubleshooting y optimización
📋 Contenido de esta guía
¿Por qué Proxmox VE?
Comparativa con alternativas
| Característica | Proxmox VE | ESXi (VMware) | Hyper-V |
|---|---|---|---|
| Licencia | ✅ Open source (GPL) | Freemium (limitado gratis) | Incluido en Windows Server |
| Coste | ✅ Gratis (suscripción opcional) | $200-$6,000/año según features | $500-$6,100 (licencia Windows) |
| Curva aprendizaje | ✅ Media (UI intuitiva) | Alta (conceptos enterprise) | Media-alta (ecosistema MS) |
| Contenedores LXC | ✅ Nativo (templates incluidos) | ❌ No soportado | ❌ No soportado |
| Clustering | ✅ Incluido (hasta 32 nodos) | Requiere vCenter (pago) | Failover Cluster Manager |
| Backups integrados | ✅ Vzdump + Proxmox Backup Server | Veeam (terceros, pago) | Windows Server Backup |
| API REST | ✅ Completa y documentada | ✅ Disponible | PowerShell principalmente |
| Comunidad | ✅ Muy activa (foros, Reddit) | Enorme (enterprise focus) | Grande (Microsoft ecosystem) |
| Storage distribuido | ✅ Ceph integrado | vSAN (pago extra) | Storage Spaces Direct |
Casos de uso ideales para Proxmox
- Homelab avanzado: Múltiples VMs + contenedores LXC en un solo servidor
- Laboratorio de pruebas: Snapshots, clones, templates para testing rápido
- Servicios de producción pequeños: SMB, ONG, startups (clustering HA incluido)
- Aprendizaje: Virtualización, redes, storage enterprise sin coste
- Consolidación de servidores: 10 servidores físicos → 1 Proxmox con 10 VMs
Requisitos previos
Hardware mínimo y recomendado
| Componente | Mínimo | Recomendado | Óptimo |
|---|---|---|---|
| CPU | 64-bit con soporte virtualización (Intel VT-x / AMD-V) | 4 cores / 8 threads | 8+ cores (Xeon, EPYC, Ryzen Pro) |
| RAM | 4 GB (solo Proxmox) | 16 GB (Proxmox + 3-5 VMs) | 32-128 GB ECC |
| Storage | 32 GB (solo sistema) | 128 GB SSD + 1-2 TB HDD | 2x NVMe (ZFS mirror) + HDDs |
| Red | 1 NIC Gigabit | 2 NICs Gigabit (bonding) | 2+ NICs 10Gbe |
⚠️ Verificar soporte de virtualización en BIOS:
# En Linux (antes de instalar Proxmox):
egrep -o '(vmx|svm)' /proc/cpuinfo
# Salida esperada:
vmx # Intel VT-x
svm # AMD-V
# Si no aparece nada: habilitar en BIOS/UEFI
# Buscar: Intel VT-x, Intel Virtualization Technology, AMD-V, SVM Mode
Qué necesitas descargar
- Proxmox VE ISO: proxmox.com/downloads (última versión estable: 8.x)
- Balena Etcher o Rufus: Para crear USB booteable
- USB 8GB+ (se borrará todo)
Instalación paso a paso
1. Crear USB booteable
Opción A: Balena Etcher (Windows/Mac/Linux)
- Descargar Balena Etcher: balena.io/etcher
- Abrir Etcher → Flash from file → Seleccionar ISO de Proxmox
- Select target → Elegir USB
- Flash! → Esperar 3-5 minutos
Opción B: Rufus (Windows)
- Descargar Rufus: rufus.ie
- Device: Seleccionar USB
- Boot selection: Seleccionar ISO de Proxmox
- Partition scheme: GPT (UEFI) o MBR (BIOS legacy, según tu hardware)
- START → Esperar
Opción C: dd (Linux)
# Identificar USB (CUIDADO: verificar device correcto)
lsblk
# Escribir ISO al USB (reemplaza /dev/sdX con tu dispositivo)
sudo dd if=proxmox-ve_8.x-x.iso of=/dev/sdX bs=4M status=progress && sync
# Ejemplo real:
# sudo dd if=proxmox-ve_8.2-1.iso of=/dev/sdb bs=4M status=progress && sync
2. Bootear desde USB
- Insertar USB en servidor
- Reiniciar y acceder a boot menu (teclas comunes: F12, F11, ESC, F2, DEL)
- Seleccionar USB como boot device
- Esperar a que aparezca menú de Proxmox
3. Instalador gráfico de Proxmox
Paso 1: Pantalla de bienvenida
- Seleccionar: Install Proxmox VE (Graphical)
- Presionar Enter
Paso 2: EULA
- Leer (o no 😅) → I agree
Paso 3: Target Harddisk (crítico)
Aquí decides dónde se instalará Proxmox y qué filesystem usar.
| Filesystem | Cuándo usar | Ventajas | Desventajas |
|---|---|---|---|
| ext4 | Disco único, máxima compatibilidad | Simple, rápido, estable | Sin snapshots, sin compresión |
| ZFS RAID0 | 1 disco con snapshots | Snapshots, compresión, checksums | Sin redundancia |
| ZFS RAID1 | ✅ 2 discos, máxima seguridad | ✅ Redundancia + snapshots + checksums | Capacidad = 1 disco (50% usado para mirror) |
| ZFS RAID10 | 4+ discos, performance + redundancia | Rápido + tolerante a fallos | Requiere mínimo 4 discos |
| ZFS RAIDZ-1 | 3+ discos, balance espacio/redundancia | Eficiente en espacio, 1 disco fallo OK | Performance escritura menor que RAID10 |
Recomendación para homelab:
- 1 disco SSD/NVMe: ext4 (simple y rápido)
- 2 discos SSD/NVMe: ZFS RAID1 (mejor opción, redundancia + snapshots)
- 3-4+ discos: ZFS RAIDZ-1 o RAID10
Configuración avanzada (Options):
- hdsize: Tamaño usado del disco (dejar libre espacio para caché L2ARC si usas ZFS)
- swapsize: Por defecto = RAM total (ajustar si RAM > 64GB → 8-16GB swap suficiente)
- maxroot: Tamaño de partición root (resto queda para data/VMs)
- minfree: Espacio libre mínimo (por defecto 16GB, OK)
- maxvz: Tamaño máximo para /var/lib/vz (VMs/containers)
Ejemplo configuración típica (disco 512GB SSD):
- Filesystem: ZFS (RAID1 si tienes 2 discos, RAID0 si 1)
- hdsize: 500GB (dejar 12GB libres)
- swapsize: 8GB (si tienes 32GB+ RAM)
- maxroot: 50GB
- maxvz: resto disponible (~400GB)
Paso 4: Location and Time Zone
- Country: Tu país (España, México, etc.)
- Time zone: Europe/Madrid, America/Mexico_City, etc.
- Keyboard Layout: Spanish, US, etc.
Paso 5: Administration Password and Email
- Password: Contraseña para usuario root (IMPORTANTE: anótala, la usarás siempre)
- Confirm: Repetir contraseña
- Email: Tu email (recibirás alertas del sistema)
- Usa contraseña fuerte (20+ caracteres, mayúsculas, números, símbolos)
- Email real (recibirás notificaciones de fallos, actualizaciones, etc.)
- Guarda contraseña en gestor (Vaultwarden, Bitwarden, 1Password)
Paso 6: Management Network Configuration
Configuración de red para acceder a Proxmox vía web.
- Management Interface: Seleccionar NIC principal (ej: enp0s31f6, eth0)
- Hostname (FQDN): Nombre completo del servidor (ej:
pve.homelab.localoproxmox.tudominio.com) - IP Address: IP estática para Proxmox (ej:
192.168.1.100) - Netmask: Máscara de red (ej:
255.255.255.0o/24) - Gateway: IP del router (ej:
192.168.1.1) - DNS Server: DNS de tu red (ej:
192.168.1.1o8.8.8.8)
Ejemplo configuración típica homelab:
Hostname (FQDN): pve.homelab.local
IP Address: 192.168.1.100
Netmask: 255.255.255.0
Gateway: 192.168.1.1
DNS Server: 192.168.1.1
Reserva esta IP en tu router DHCP para que Proxmox siempre tenga la misma IP. Así evitas que cambie y pierdas acceso.
Paso 7: Install
- Revisar resumen de configuración
- Click en Install
- Esperar 5-15 minutos (depende de velocidad de disco)
- Cuando termine: Reboot
- Retirar USB cuando reinicie
4. Primer acceso a Proxmox Web UI
- Desde otro PC en la misma red, abrir navegador
- Ir a:
https://192.168.1.100:8006(reemplazar con tu IP) - ⚠️ Advertencia de certificado SSL → Aceptar riesgo y continuar (normal, es certificado autofirmado)
- Pantalla de login:
- User name:
root - Password: La que configuraste en instalación
- Realm:
Linux PAM standard authentication - Language: Español o English
- User name:
- Click Login
¡Bienvenido a Proxmox! 🎉
Verás el dashboard principal con:
- Panel izquierdo: Árbol de recursos (Datacenter → pve → VMs/Containers/Storage)
- Panel central: Información del nodo (CPU, RAM, storage, uptime)
- Menú superior: Create VM, Create CT, Search, Docs
Configuración inicial esencial
1. Desactivar repositorio enterprise (solo si usas versión gratuita)
Por defecto Proxmox apunta a repositorios enterprise (requieren suscripción). Para usar repos gratuitos:
Vía Web UI:
- Click en tu nodo (ej:
pve) en panel izquierdo - Updates → Repositories
- Seleccionar línea
pve-enterprise→ Disable - Click Add → Seleccionar No-Subscription → Add
- Refresh
Vía Shell (alternativa):
# Acceder a Shell del nodo (Web UI: nodo → Shell, o SSH root@192.168.1.100)
# Desactivar repo enterprise
echo "# deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list
# Añadir repo no-subscription
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
# Actualizar lista de paquetes
apt update
Si te molesta el popup al hacer login:
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
2. Actualizar Proxmox
# Vía Shell (recomendado para primera actualización)
apt update && apt dist-upgrade -y
# Limpiar paquetes antiguos
apt autoremove -y
# Reiniciar si se actualizó kernel
reboot
Vía Web UI:
- Nodo → Updates → Refresh
- Click Upgrade
- Confirmar en terminal que aparece
3. Configurar NTP (sincronización de hora)
Crítico para clustering y logs precisos.
# Verificar estado NTP
timedatectl status
# Configurar timezone si es necesario
timedatectl set-timezone Europe/Madrid
# Habilitar sincronización NTP
timedatectl set-ntp true
# Verificar que funciona
systemctl status systemd-timesyncd
4. Configurar notificaciones por email (opcional pero recomendado)
Para recibir alertas de fallos, backups completados, etc.
Opción A: Usar Gmail como relay SMTP
# Instalar postfix
apt install libsasl2-modules -y
# Configurar postfix para usar Gmail
echo "relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt" >> /etc/postfix/main.cf
# Crear archivo con credenciales Gmail
echo "[smtp.gmail.com]:587 tuemail@gmail.com:tu_app_password" > /etc/postfix/sasl_passwd
# Proteger archivo de credenciales
chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
# Reiniciar postfix
systemctl restart postfix
# Test de email
echo "Test desde Proxmox" | mail -s "Proxmox test" tuemail@gmail.com
No uses tu contraseña normal. Ve a: Cuenta Google → Seguridad → Verificación en 2 pasos → Contraseñas de aplicaciones → Crear nueva. Usa esa contraseña en el archivo sasl_passwd.
Gestión de storage
Tipos de storage en Proxmox
| Tipo | Casos de uso | Performance | Snapshots |
|---|---|---|---|
| local (dir) | ISOs, backups, templates | Alta (local) | ❌ No |
| local-lvm | Discos de VMs | Alta | ✅ Sí (LVM thin) |
| ZFS | VMs, snapshots, compresión | Alta (con RAM suficiente) | ✅ Sí (nativo) |
| NFS | Storage compartido entre nodos | Media (red dependiente) | Depende del servidor NFS |
| Ceph RBD | Cluster multi-nodo, HA | Media-alta (distribuido) | ✅ Sí |
| SMB/CIFS | Windows shares, backups | Baja-media | ❌ No |
Añadir disco adicional (ejemplo: HDD 2TB para VMs)
Escenario: Tienes Proxmox en SSD 512GB, añades HDD 2TB para almacenar VMs grandes.
Vía Shell:
# 1. Identificar disco nuevo
lsblk
# Salida ejemplo:
# NAME SIZE TYPE
# sda 512G disk ← SSD con Proxmox
# sdb 2T disk ← HDD nuevo (sin particionar)
# 2. Crear partición GPT
parted /dev/sdb mklabel gpt
# 3. Crear partición usando todo el disco
parted /dev/sdb mkpart primary 0% 100%
# 4. Formatear con ext4 (o XFS si prefieres)
mkfs.ext4 /dev/sdb1
# 5. Crear punto de montaje
mkdir -p /mnt/hdd2tb
# 6. Montar disco
mount /dev/sdb1 /mnt/hdd2tb
# 7. Hacer montaje permanente (editar /etc/fstab)
echo "/dev/sdb1 /mnt/hdd2tb ext4 defaults 0 2" >> /etc/fstab
# 8. Verificar montaje
df -h | grep hdd2tb
Añadir storage a Proxmox Web UI:
- Datacenter → Storage → Add → Directory
- ID:
hdd2tb - Directory:
/mnt/hdd2tb - Content: Seleccionar
Disk image,Container - Nodes: Seleccionar nodo actual (pve)
- Enable: ✅
- Shared: ❌ (solo si es NFS compartido entre nodos)
- Click Add
Ahora puedes crear VMs usando este storage de 2TB. 🎉
Añadir NFS share (storage compartido)
Escenario: Tienes NAS (Synology, TrueNAS, etc.) con NFS habilitado.
- Datacenter → Storage → Add → NFS
- ID:
nas-nfs - Server:
192.168.1.50(IP del NAS) - Export:
/volume1/proxmox(path NFS del NAS) - Content:
Disk image,ISO image,Container template,VZDump backup file - Nodes: Todos los nodos del cluster (si tienes cluster)
- Enable: ✅
- Click Add
En el NAS, asegúrate que el export NFS permite:
- Squash: No squash (o root squash disabled)
- Privilege: Read/Write
- Hosts allowed: IP del Proxmox (192.168.1.100)
Crear tu primera VM
Vamos a crear una VM con Ubuntu Server 24.04 LTS paso a paso.
1. Subir ISO de Ubuntu
- Descargar ISO: ubuntu.com/download/server
- En Proxmox Web UI: Nodo (pve) → local → ISO Images → Upload
- Seleccionar archivo ISO de Ubuntu → Upload
- Esperar a que termine (depende de velocidad de red)
Alternativa: Descargar directamente desde Proxmox
- Nodo → local → ISO Images → Download from URL
- URL:
https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso - Filename:
ubuntu-24.04-server-amd64.iso - Click Query URL → Download
2. Crear VM (wizard)
Click botón Create VM (esquina superior derecha).
General:
- Node: pve
- VM ID: 100 (autoincrementa, puedes cambiarlo)
- Name:
ubuntu-server - Resource Pool: (dejar vacío por ahora)
- Start at boot: ✅ (opcional, si quieres que arranque automáticamente)
OS:
- Use CD/DVD disc image file (iso)
- Storage: local
- ISO image:
ubuntu-24.04-server-amd64.iso - Guest OS Type: Linux
- Version: 6.x – 2.6 Kernel
System:
- Graphic card: Default
- Machine: Default (i440fx)
- BIOS: Default (SeaBIOS) o OVMF (UEFI) si quieres UEFI
- SCSI Controller: VirtIO SCSI single (mejor performance)
- Qemu Agent: ✅ (instalaremos agent en Ubuntu después)
- Add TPM: ❌ (solo si necesitas Windows 11)
Disks:
- Bus/Device: SCSI (VirtIO SCSI)
- Storage: local-lvm (o ZFS si usaste ZFS, o hdd2tb si añadiste disco extra)
- Disk size:
32GB (ajusta según necesites) - Cache: Default (Write back)
- Discard: ✅ (para SSDs, permite TRIM)
- SSD emulation: ✅ (si storage es SSD)
- IO thread: ✅ (mejor performance)
CPU:
- Sockets: 1
- Cores: 2 (ajusta según necesites, ej: 4 para servidor potente)
- Type:
host(mejor performance, pasa instrucciones CPU nativas)
Memory:
- Memory (MiB):
2048(2GB, ajusta según necesites) - Minimum memory: (dejar vacío o 512 si usas ballooning)
- Ballooning Device: ✅ (permite ajustar RAM dinámicamente)
Network:
- Bridge: vmbr0 (bridge por defecto de Proxmox)
- VLAN Tag: (dejar vacío si no usas VLANs)
- Model: VirtIO (paravirtualized, mejor performance)
- Firewall: ✅ (opcional, habilita firewall de Proxmox para esta VM)
Confirm:
- Revisar resumen
- Start after created: ✅ (arranca automáticamente al terminar)
- Click Finish
3. Instalar Ubuntu en la VM
- Click en VM 100 (ubuntu-server) en panel izquierdo
- Click pestaña Console
- Verás instalador de Ubuntu arrancando
- Seguir wizard de instalación de Ubuntu:
- Language: Español o English
- Keyboard: Spanish, US, etc.
- Network: DHCP automático (o estática si prefieres)
- Proxy: (dejar vacío si no usas)
- Mirror: Default (OK)
- Disk: Use entire disk (el disco de 32GB que creaste)
- Profile: Nombre, usuario, contraseña
- SSH: ✅ Install OpenSSH server
- Snaps: (seleccionar si quieres Docker, etc.)
- Esperar instalación (~10-15 min)
- Reboot now → Presionar Enter
4. Instalar QEMU Guest Agent en Ubuntu
Permite a Proxmox obtener info precisa de la VM (IP, uptime, shutdown limpio, etc.).
# Loguear en la VM (vía Console o SSH)
ssh usuario@IP_DE_LA_VM
# Instalar qemu-guest-agent
sudo apt update
sudo apt install qemu-guest-agent -y
# Habilitar y arrancar servicio
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent
# Verificar
sudo systemctl status qemu-guest-agent
Ahora en Proxmox verás IP de la VM en el summary. 🎉
Crear contenedor LXC
Los contenedores LXC son mucho más ligeros que VMs (comparten kernel con Proxmox). Ideales para servicios Linux.
Cuándo usar LXC vs VM
| Usa LXC cuando | Usa VM cuando |
|---|---|
| ✅ Servicio Linux ligero (web server, DB, Docker) | Necesitas Windows, BSD, kernel diferente |
| ✅ Máximo performance y mínimo overhead | Aislamiento total (seguridad crítica) |
| ✅ Arranque en segundos | Necesitas snapshots de disco completo |
| ✅ Uso mínimo de RAM (50-200MB vs 512MB+ VM) | Software que requiere módulos kernel específicos |
| ✅ Múltiples servicios en servidor con poca RAM | Testing de distros o versiones kernel diferentes |
Crear contenedor Debian 12 con Docker
Click botón Create CT (Create Container).
General:
- Node: pve
- CT ID: 101
- Hostname:
docker-host - Unprivileged container: ❌ (dejar privileged para Docker, más fácil)
- Nesting: ✅ (necesario para Docker)
- Password: Contraseña root del contenedor
- SSH public key: (opcional, pega tu clave pública si tienes)
- Unprivileged: Más seguro, pero Docker requiere configuración extra
- Privileged: Menos seguro, pero Docker funciona out-of-the-box
- Para homelab: Privileged OK. Para producción: Unprivileged con config adicional
Template:
- Storage: local (donde se guardan templates)
- Template:
debian-12-standard(descargar si no está)
Si no tienes template descargado:
- Nodo → local → CT Templates → Templates
- Buscar
debian-12-standard→ Download - Volver a wizard de Create CT
Disks:
- Storage: local-lvm
- Disk size:
16GB - Mount options: (dejar por defecto)
- ACLs: ✅
CPU:
- Cores: 2
- CPU limit: (dejar vacío = sin límite, o 1 = 100% de 1 core)
- CPU units: 1024 (peso relativo, dejar por defecto)
Memory:
- Memory (MiB):
1024(1GB) - Swap (MiB):
512
Network:
- Bridge: vmbr0
- VLAN Tag: (vacío)
- IPv4: DHCP (o Static si prefieres: 192.168.1.101/24)
- IPv6: SLAAC (o dejar vacío)
- Firewall: ✅
DNS:
- Use host settings: ✅ (usa DNS del Proxmox host)
Confirm:
- Start after created: ✅
- Click Finish
Instalar Docker en contenedor LXC
- Click en CT 101 → Console
- Login como root (password que configuraste)
- Instalar Docker:
# Actualizar sistema
apt update && apt upgrade -y
# Instalar Docker
curl -fsSL https://get.docker.com | sh
# Verificar instalación
docker --version
docker run hello-world
¡Listo! Ahora tienes contenedor LXC con Docker funcionando. 🐳
Ventajas vs VM:
- Arrancó en 3 segundos (vs 30-60s de VM)
- Usa 150MB RAM (vs 512MB+ de VM Ubuntu)
- Performance nativo (comparte kernel con Proxmox)
Backups automáticos
Proxmox incluye vzdump, sistema de backups integrado con snapshots.
Crear tarea de backup automática
- Datacenter → Backup
- Click Add
- Configuración:
- Node: pve (o All para cluster)
- Storage: local (o NFS, PBS si tienes)
- Schedule:
0 3 * * *(diario a las 3am) - Selection mode: All (o Include selected VMs si quieres específicas)
- Compression: ZSTD (mejor ratio/velocidad)
- Mode: Snapshot (backup en caliente sin parar VM)
- Enable: ✅
- Retention:
- Keep Last: 3 (mantener últimos 3 backups)
- Keep Hourly: 0
- Keep Daily: 7 (últimos 7 días)
- Keep Weekly: 4 (últimas 4 semanas)
- Keep Monthly: 3 (últimos 3 meses)
- Keep Yearly: 0
- Email notification: Always (recibir email con resultado)
- Click Create
Restaurar VM desde backup
- Nodo → local (o storage donde están backups) → Backups
- Seleccionar backup (ej:
vzdump-qemu-100-2025_10_10-03_00_00.vma.zst) - Click Restore
- Configuración:
- VM ID: 100 (mismo ID, sobrescribe) o 102 (nuevo ID, clon)
- Storage: Mismo o diferente storage
- Unique: ✅ (regenera MAC address si es clon)
- Start after restore: ❌ (verificar antes de arrancar)
- Click Restore
- Esperar (puede tardar según tamaño)
- Verificar VM restaurada → Start
Clustering (opcional, múltiples nodos)
Si tienes 2+ servidores Proxmox, puedes crear cluster para:
- Gestión centralizada: Un solo web UI para todos los nodos
- Live migration: Mover VMs entre nodos sin downtime
- Alta disponibilidad (HA): Si un nodo cae, VMs migran automáticamente
- Storage compartido: Ceph, NFS, para que VMs accedan desde cualquier nodo
Crear cluster (nodo 1)
# En primer nodo Proxmox (ej: pve1)
pvecm create mi-cluster
# Verificar estado
pvecm status
Unir nodo al cluster (nodo 2)
# En segundo nodo Proxmox (ej: pve2)
# Primero obtener join info del nodo 1:
# En pve1:
pvecm add pve2-IP
# Copiar comando que devuelve y ejecutar en pve2:
pvecm add 192.168.1.100 --fingerprint FINGERPRINT
# Verificar en pve2:
pvecm status
Vía Web UI (más fácil):
- En nodo 1: Datacenter → Cluster → Create Cluster → Name:
mi-cluster→ Create - Datacenter → Cluster → Join Information → Copy Join Information
- En nodo 2: Datacenter → Cluster → Join Cluster → Pegar Join Information → Join
- Mínimo 3 nodos para quorum (o 2 + QDevice)
- Red dedicada de baja latencia (1Gbps+ recomendado)
- Hora sincronizada (NTP configurado en todos)
- Mismo /etc/hosts en todos (resolución nombres)
- Firewall abierto para puertos de cluster (ver docs)
Troubleshooting común
Problema 1: No puedo acceder a Web UI (https://IP:8006)
Diagnóstico:
# Verificar que pveproxy está corriendo
systemctl status pveproxy
# Verificar puerto 8006 abierto
ss -tulpn | grep 8006
# Verificar firewall
iptables -L -n | grep 8006
# Verificar logs
journalctl -u pveproxy -f
Soluciones:
# Reiniciar pveproxy
systemctl restart pveproxy
# Reiniciar pvedaemon
systemctl restart pvedaemon
# Verificar configuración de red
cat /etc/network/interfaces
# Reiniciar networking
systemctl restart networking
Problema 2: VM no arranca / error al iniciar
Diagnóstico:
# Ver logs de la VM (reemplaza 100 con tu VM ID)
qm start 100
# Ver logs detallados
tail -f /var/log/syslog | grep "100:"
Causas comunes:
- Storage no disponible: Disco NFS/Ceph caído → verificar storage
- Lock file: VM anterior no cerró bien →
qm unlock 100 - RAM insuficiente: Host sin RAM libre → liberar RAM o aumentar swap
- ISO missing: ISO borrada → volver a subir ISO
Problema 3: Contenedor LXC no puede acceder a internet
Diagnóstico:
# Dentro del contenedor:
ping 8.8.8.8 # Test conectividad IP
ping google.com # Test DNS
# Verificar configuración red
ip a
ip route
cat /etc/resolv.conf
Soluciones:
# En Proxmox host, verificar IP forwarding
cat /proc/sys/net/ipv4/ip_forward # Debe ser 1
# Habilitar si está en 0
echo 1 > /proc/sys/net/ipv4/ip_forward
# Hacer permanente
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# Verificar reglas NAT
iptables -t nat -L -n -v
# Añadir regla NAT si falta (reemplaza vmbr0 con tu bridge)
iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE
Problema 4: Storage lleno / No space left
Diagnóstico:
# Ver uso de disco
df -h
# Ver tamaño de VMs/containers
du -sh /var/lib/vz/images/*
# Ver backups
du -sh /var/lib/vz/dump/*
# Ver templates
du -sh /var/lib/vz/template/*
Soluciones:
# Eliminar backups antiguos
rm /var/lib/vz/dump/vzdump-*-old.vma.zst
# Eliminar ISOs no usadas
cd /var/lib/vz/template/iso
rm archivo-no-usado.iso
# Reducir disco de VM (primero en la VM, luego):
qm resize 100 scsi0 -10G # Reducir 10GB (CUIDADO: puede dañar datos)
# O añadir storage adicional (ver sección "Añadir disco adicional")
Problema 5: Alta CPU usage en Proxmox host
Diagnóstico:
# Ver procesos que más consumen
top
# Ver CPU por VM/container
qm list # VMs
pct list # Containers
# Ver stats en tiempo real
watch -n 1 'qm list; pct list'
Causas comunes:
- VM con CPU runaway: Proceso dentro de VM descontrolado → identificar y matar
- Demasiadas VMs para CPU host: Reducir cores asignados o apagar VMs no usadas
- Tipo CPU incorrecto: Cambiar de
kvm64ahosten VM options - Ballooning agresivo: Ajustar memoria de VMs
Problema 6: No puedo migrar VM entre nodos
Causas comunes:
- Storage no compartido: Solo puedes migrar en caliente si storage es NFS/Ceph compartido
- Cluster no configurado: Debes tener cluster Proxmox
- Red no disponible: Nodos no se comunican → verificar firewall, routing
- Versiones diferentes: Nodos con versiones Proxmox distintas → actualizar
Solución para storage local:
- Offline migration: Apagar VM → Migrate → Mover discos también
- Convertir a storage compartido: Añadir NFS/Ceph
Optimización y mejores prácticas
Performance
- ✅ CPU type = host en VMs (mejor performance)
- ✅ VirtIO para discos y red (drivers paravirtualizados)
- ✅ IO threads habilitado en discos de VMs
- ✅ SSD emulation si storage es SSD
- ✅ Discard/TRIM habilitado para SSDs
- ✅ Cache = writeback para discos (mejor performance escritura)
- ✅ Ballooning para ajustar RAM dinámicamente
- ✅ NUMA habilitado si tienes CPU multi-socket
Seguridad
- ✅ Firewall Proxmox habilitado (Datacenter → Firewall)
- ✅ SSH con key, no password (más seguro)
- ✅ Actualizar regularmente Proxmox y VMs
- ✅ Backups offsite (NFS externo, Proxmox Backup Server remoto)
- ✅ Contenedores unprivileged cuando sea posible
- ✅ VLANs para segmentar red (DMZ, LAN, Gestión)
- ✅ 2FA para acceso web UI (vía TOTP)
Mantenimiento
- ✅ Monitorizar espacio (alertas cuando storage > 80%)
- ✅ Limpiar backups antiguos (retention automática configurada)
- ✅ Verificar SMART de discos (smartctl -a /dev/sdX)
- ✅ Test de backups (restaurar periódicamente para verificar)
- ✅ Documentar VMs (notes en cada VM con propósito, IPs, etc.)
- ✅ Tags y grupos para organizar VMs
Recursos y siguientes pasos
Documentación oficial:
- pve.proxmox.com/pve-docs/ – Completa y detallada
- Wiki oficial – Guías paso a paso
Comunidad:
- forum.proxmox.com – Foro oficial muy activo
- r/Proxmox – Subreddit con 100k+ miembros
- r/homelab – Comunidad homelab general
Siguientes pasos:
- Instalar Proxmox Backup Server (PBS) – Backups deduplicados y verificables
- Configurar Ceph – Storage distribuido (requiere 3+ nodos)
- Alta disponibilidad (HA) – VMs críticas con failover automático
- Terraform para Proxmox – Infrastructure as Code (automatizar creación VMs)
- Ansible para gestión – Configurar VMs automáticamente post-creación
- Migrar desde otros hypervisors – Importar VMs de VMware, VirtualBox
- GPU passthrough – Pasar GPU física a VM (gaming, IA, transcoding)
Conclusión
Proxmox VE es la plataforma de virtualización open source más completa para homelabs y producción pequeña-mediana.
Con esta guía has aprendido:
- ✅ Instalación completa desde USB
- ✅ Configuración de red, storage y repositorios
- ✅ Crear VMs y contenedores LXC
- ✅ Backups automáticos con retención
- ✅ Clustering para múltiples nodos
- ✅ Troubleshooting de problemas comunes
- ✅ Optimización y mejores prácticas
Empieza con pocas VMs, aprende los conceptos, experimenta con snapshots y backups. La flexibilidad de Proxmox te permite empezar simple e ir añadiendo complejidad según necesites.
¡Bienvenido al mundo de la virtualización profesional! 🚀
