Proxmox kernel jump¶
Procedimiento para upgrade de kernel mayor en nodos Proxmox (e.g. salto
6.17 → 7.0.2-4-pve ocurrido el 2026-05-16). El gotcha grande es el reboot
del nodo con VMs grandes — puede quedarse colgado >10 minutos en shutdown.
Lecciones aprendidas 2026-05-16
Reboot de pmx-50 con VM 208 viva quedó atascado en "Stopping
pve-guests..." durante >10min. Causa probable: timeout shutdown
insuficiente para el stack Docker grande. Hubo que power-cycle físico.
A partir de ahora: parar VM 208 graceful ANTES de reboot del host.
Pre-flight¶
# Ver kernel actual y el instalado
ssh pmx-50 'uname -r; ls /boot/vmlinuz-* | sort'
# Confirmar que el nuevo kernel ya está en /boot
# (el upgrade `apt full-upgrade` deja el binario pero requiere reboot)
Snapshot ZFS protector antes de tocar nada:
Lista de workloads críticos a apagar gracefully:
- VM 208 (Docker hub, ~75 containers).
- VM 171 (Home Assistant — puede tardar 1-2min en flush).
- LXCs Caddy 270/271: dejarlos; HA cubre la caída de uno.
- LXC 186 (PBS) si el reboot es en pmx-50 (donde vive PBS).
Procedimiento¶
1. Migrar / detener workloads críticos¶
# Stop graceful VM 208 (espera hasta 5min)
ssh pmx-50 'qm stop 208 --timeout 300'
# Verificar
ssh pmx-50 'qm status 208' # debe decir "stopped"
Para Home Assistant igual:
2. Snapshot de configs PVE (por si el kernel nuevo rompe algo)¶
3. Reboot¶
Esperar 2-3 minutos. Monitorizar:
# Desde la Mac o pmx-51
while ! ssh -o ConnectTimeout=3 pmx-50 'uname -r' 2>/dev/null; do
echo "waiting..."
sleep 5
done
echo "pmx-50 back up"
4. Post-boot checks¶
ssh pmx-50 'uname -r' # nuevo kernel
ssh pmx-50 'zpool status' # ZFS healthy
ssh pmx-50 'pvecm status' # cluster quorum
ssh pmx-50 'systemctl --failed' # nada roto
ssh pmx-50 'journalctl -k -p err -b' # errores kernel
5. Arrancar workloads¶
Verificar VM 208:
sleep 60 # dale tiempo a Docker
ssh [email protected] 'docker ps --format "{{.Names}}: {{.Status}}" | head -20'
Si el reboot se queda atascado¶
Síntoma: SSH al host muere, ping responde pero ningún servicio levanta tras 10min.
Pasos físicos:
- Mantener power button 10s para force-off.
- Esperar 5s.
- Power on.
Tras volver:
ssh pmx-50 'zpool status' # ZFS scrub si reporta CKSUM errors
ssh pmx-50 'journalctl -b -1 -p err' # logs del boot anterior
Rollback (si el kernel nuevo rompe algo crítico)¶
Proxmox mantiene los últimos 2 kernels en /boot. Para arrancar con el viejo:
# Lista kernels disponibles
ssh pmx-50 'proxmox-boot-tool kernel list'
# Fijar el anterior como default
ssh pmx-50 'proxmox-boot-tool kernel pin 6.17.0-X-pve'
# Reboot
ssh pmx-50 'systemctl reboot'
Plan futuro¶
- IP-KVM USB (TinyPilot o similar) por nodo: evita el viaje al armario para power-cycle. Pendiente compra.
- Ansible playbook
kernel-upgrade.ymlque automatice los pasos 1-2-3-5. Aún no escrito (parte de F2).