Ir al contenido
  1. Posts/

Guia: Como Actualizar Proxmox 7 a 8

·1499 palabras·8 mins· loading · loading ·
Proxmox Infraestructura proxmox infraestructura sysadmin
Autor
Enmanuel Moreira
Ingeniero DevOps de día y aprendiz de Barman en mis tiempos libres, con experiencia en Kubernetes, Cloud, y DevOps. También disfruta de hacer stream de juegos, hablar de CI/CD, desplegar en producción un viernes con Terraform y automatizar tareas aburridas con Ansible.

El pasado 23 de junio de 2023 ha salido la nueva version de Proxmox 8 el cual se actualiza a Debian 12 Bookworm y entre sus novedades tenemos:

  • Debian 12 Bookworm con la version del Kernel 6.2.
  • QEMU 8.0.2, LXC 5.0.2, ZFS 2.1.12.
  • Instalación en modo texto opcional (TUI)
  • Nuevo tipo de CPU x86-64-v2-AES para las MVs.
  • Ceph Quincy 17.2.6 y un nuevo y estable repositorio Ceph Empresarial.
  • ACL para recursos de red.
  • Mapeo de recursos entre PCI(e) o dispositivos USB y nodos en un cluster.
  • Y mucho mas…

En este artículo, veremos como actualizar a Proxmox 8 desde Proxmox 7.

PROMO DigitalOcean
#

Antes de comenzar, quería contarles que hay una promoción en DigitalOcean donde te dan un crédito de USD 200.00 durante 60 días para que puedas probar los servicios que este Proveedor Cloud ofrece. Lo único que tienes que hacer es suscribirte a DigitalOcean con el siguiente botón:

DigitalOcean Referral Badge

O a través del siguiente enlace: https://bit.ly/digitalocean-itsm

Preparando el Host
#

Recuerda hacer un respaldo de toda la configuración de tu host Proxmox así como también todas las maquinas virtuales en ejecución. Después de haber hecho esto, debemos validar que la versión de Proxmox sea la 7.4.15 o superior. En caso de no estar seguro que versión tenemos, lo comprobamos con el siguiente comando:

pveversion

Lo cual nos debería mostrar una salida similar a esta:

pve-manager/7.4-15/a5d2a31e (running kernel: 5.15.108-1-pve)

Lo siguiente que vamos a hacer es ejecutar el script de actualizacion y que antes verifique de potenciales errores antes de realmente actualizar. No te preocupes, esto no ejecutará nada mas allá de una simple comprobación, lo puedes ejecutar varias veces si quieres.

Entonces, ejecutamos:

pve7to8

Lo podemos ejecutar también con todos los chequeos habilitados con:

pve7to8 --full

Lo cual deberia mostrar un output como este:

➜  ~  pve7to8 --full
= CHECKING VERSION INFORMATION FOR PVE PACKAGES =

Checking for package updates..
PASS: all packages up-to-date

Checking proxmox-ve package version..
PASS: proxmox-ve package has version >= 7.4-1

Checking running kernel version..
PASS: running kernel '5.15.108-1-pve' is considered suitable for upgrade.

= CHECKING CLUSTER HEALTH/SETTINGS =

PASS: systemd unit 'pve-cluster.service' is in state 'active'
PASS: systemd unit 'corosync.service' is in state 'active'
PASS: Cluster Filesystem is quorate.

Analzying quorum settings and state..
INFO: configured votes - nodes: 3
INFO: configured votes - qdevice: 0
INFO: current expected votes: 3
INFO: current total votes: 3

Checking nodelist entries..
PASS: nodelist settings OK

Checking totem settings..
PASS: totem settings OK

INFO: run 'pvecm status' to get detailed cluster status..

= CHECKING HYPER-CONVERGED CEPH STATUS =

SKIP: no hyper-converged ceph setup detected!

= CHECKING CONFIGURED STORAGES =

PASS: storage 'backups' enabled and active.
PASS: storage 'fast10' enabled and active.
PASS: storage 'local' enabled and active.
INFO: Checking storage content type configuration..
PASS: no storage content problems found
PASS: no storage re-uses a directory for multiple content types.

= MISCELLANEOUS CHECKS =

INFO: Checking common daemon services..
PASS: systemd unit 'pveproxy.service' is in state 'active'
PASS: systemd unit 'pvedaemon.service' is in state 'active'
PASS: systemd unit 'pvescheduler.service' is in state 'active'
PASS: systemd unit 'pvestatd.service' is in state 'active'
INFO: Checking for supported & active NTP service..
WARN: systemd-timesyncd is not the best choice for time-keeping on servers, due to only applying updates on boot.
  While not necessary for the upgrade it's recommended to use one of:
    * chrony (Default in new Proxmox VE installations)
    * ntpsec
    * openntpd

INFO: Checking for running guests..
WARN: 6 running guest(s) detected - consider migrating or stopping them.
INFO: Checking if the local node's hostname 'draco' is resolvable..
INFO: Checking if resolved IP is configured on local node..
PASS: Resolved node IP '192.168.0.11' configured and active on single interface.
INFO: Check node certificate's RSA key size
PASS: Certificate 'pve-root-ca.pem' passed Debian Busters (and newer) security level for TLS connections (4096 >= 2048)
PASS: Certificate 'pve-ssl.pem' passed Debian Busters (and newer) security level for TLS connections (2048 >= 2048)
INFO: Checking backup retention settings..
PASS: no backup retention problems found.
INFO: checking CIFS credential location..
PASS: no CIFS credentials at outdated location found.
INFO: Checking permission system changes..
INFO: Checking custom role IDs for clashes with new 'PVE' namespace..
PASS: no custom roles defined, so no clash with 'PVE' role ID namespace enforced in Proxmox VE 8
INFO: Checking if LXCFS is running with FUSE3 library, if already upgraded..
SKIP: not yet upgraded, no need to check the FUSE library version LXCFS uses
INFO: Checking node and guest description/note length..
PASS: All node config descriptions fit in the new limit of 64 KiB
PASS: All guest config descriptions fit in the new limit of 8 KiB
INFO: Checking container configs for deprecated lxc.cgroup entries
PASS: No legacy 'lxc.cgroup' keys found.
INFO: Checking if the suite for the Debian security repository is correct..
INFO: Checking for existence of NVIDIA vGPU Manager..
PASS: No NVIDIA vGPU Service found.
INFO: Checking bootloader configuration...
SKIP: not yet upgraded, no need to check the presence of systemd-boot
SKIP: No containers on node detected.

= SUMMARY =

TOTAL:    33
PASSED:   27
SKIPPED:  4
WARNINGS: 2
FAILURES: 0

ATTENTION: Please check the output for detailed information!

Como podemos observar, el script nos indica algunas advertencias, pero no falla. Estas advertencias en mi caso particular están relacionadas con las versiones de algunos paquetes y otro relacionado con la máquina que estoy actualizando. Para resolver la segunda adventencia, debo apagar todas las máquinas virtuales del host.

Actualizando Paquetes Apt
#

Aseguremonos que tenemos todos los paquetes actualizados de nuestro host antes de instalar a Proxmox 8. Ejecutamos:

apt update
apt dist-upgrade

Si hubieran actualizaciones, recomiendo reiniciar después de aplicarlas, y luego de reiniciar volver a intentar actualizar los paquetes y reiniciar hasta que no quede ninguno pendiente por actualizar.

➜  ~ apt update
Hit:1 http://security.debian.org bullseye-security InRelease
Hit:2 http://download.proxmox.com/debian/pve bullseye InRelease
Hit:3 http://ftp.us.debian.org/debian bullseye InRelease
Hit:4 http://ftp.us.debian.org/debian bullseye-updates InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

➜  ~ apt dist-upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Actualizando Repositorios Apt
#

Cambiamos los repositorios para que apunten a Bookworm:

sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list

Si usamos el repositorio no-subscription, también debemos cambiarlo:

sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.list.d/pve-install-repo.list

En mi caso, el nombre del archivo del repositorio se llama pve-community, por lo cual:

sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.list.d/pve-community.list

Verificamos los repositorios y comprobamos que estén realmente apuntando a bookworm:

cat /etc/apt/sources.list.d/pve-community.list

Y deberíamos ver algo como esto:

deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription

Recuerda, solo estamos reemplazando los repositorios de bullseye a bookworm mediante el comando sed en cada archivo en /etc/apt/sources.list.d/ el cual debes ajustarlo a tu caso particular.

Actualizando Ceph
#

Si estás trabajando con ceph en tu nodo, debes seguir los pasos de la Wiki de Proxmox - Actualizando Ceph de Proxmox 7 a 8 para actualizarlo. Como yo no uso ceph, omitiré esta parte.

Actualizando a Debian Bookworm y Proxmox VE 8
#

Nos resta entonces actualizar el sistema! Recomiendo que apagues todas las máquinas virtuales del host o migrarlas incluyendo los contenedores LXC a otro nodo antes de continuar.

apt update
apt dist-upgrade

Tardará un buen rato dependiendo de tu conexión a Internet y del hardware del nodo.

El programa de actualización te preguntará si deseas aprobar los cambios de algunos archivos de configuración. Voy a diferir un poco de la Documentación de Proxmox para este paso:

Sugiero comprobar las diferencias en cada archivo y responder de manera apropiada a la configuración de nuestro host. Los archivos recomendados a ver con lupa son:

/etc/issue -> Proxmox VE autogenera este archivo al inciar, y solo tiene efectos cosmeticos en la consola de inicio de sesión. Si indicamos la opción “No” por defecto (mantiene la versión actual instalada) es seguro.

/etc/lvm/lvm.conf -> Hay cambios relevantes para Proxmox VE que deben ser actualizados y cualquier nueva versión seria útil actualizarla. A menos que no hayas hecho cambios extra a este archivo o si no estás del todo seguro,sugiero que escojas “Yes” (instalar la version actualizada del paquete)

/etc/default/grub -> Aqui debemos tener especial cuidado, ya que normalmente solo nos preguntará si hemos hecho cambios manuales, por ejemplo, añadir alguna opción del kernel. Recomieno que validemos cualquier diferencia, excepto si hay lineas comentadas (aquellas lineas que comienzan con #) no son relevantes.

Igual, si no estás muy seguro, sugiero que selecciones “No” (mantener la versión actual instalada)

Verificando la Actualización
#

Despues de actualizar el host, verificamos con:

pve7to8

Si todo fue bien, toda la comprobación debe ser exitosa (o con minimas advertencias)

Procecemos a reiniciar el host.

Después de reinciar e iniciar sesión por primera vez, debemos vaciar la caché del navegador o realizar un reinicio del navegador:

  • Windows (CTRL + SHIFT + R)
  • macOS (⌘ + Alt + R)

Si tenemos más nodos en cluster, debemos repetir los pasos en cada nodo!

Comprueba que diga Proxmox 8
Comprueba que diga Proxmox 8

Espero les haya gustado y nos vemos en la próxima!