-
Coprregir problema de MongoDB en contenedores de Proxmox con kernel 7
A la fecha de escritura de este hack, MongDB no inicia correctamente en kernels iguales o superiores a 6.19. Como, también a la fecha de escritura de este hack, la versión del kernel de proxmox es la 7.0.2-6, Mongo fallará en todos los contenedores LXC en los que esté instalada, si se está usando esa última versión de kernel en el host.
La solución es hacer un downgrade del kernel y pasar a una versión más vieja:
apt-get -y update # Conseguir la versión del anteúltimo kernel vAnteUltVers=$(apt-cache search proxmox-kernel | grep Latest | cut -d' ' -f1 | sort -V | tail -n 2 | head -n 1 | cut -d'-' -f3) # Instalarlo apt-get -y install proxmox-kernel-$vAnteUltVers apt-get -y install proxmox-headers-$vAnteUltVers apt-get -y install linux-tools-$vAnteUltVers
Después de reiniciar, debemos elegir la versión anterior de kernel y arrancar Proxmox con esa versión.
Cuando terminemos de bootear el proxmox con la última versión, tenemos que ver cual es el paquete que no nos dejaría borrar el kernel 7. Esto lo vemos con:
apt-cache policy proxmox-default-kernel
Salida (en mi caso):
proxmox-default-kernel: Instalados: 2.1.0 Candidato: 2.1.0 Tabla de versión: *** 2.1.0 500 500 http://download.proxmox.com/debian/pve trixie/pve-no-subscription amd64 Packages 100 /var/lib/dpkg/status 2.0.2 500 500 http://download.proxmox.com/debian/pve trixie/pve-no-subscription amd64 Packages 2.0.1 500 500 http://download.proxmox.com/debian/pve trixie/pve-no-subscription amd64 Packages 2.0.0 500 500 http://download.proxmox.com/debian/pve trixie/pve-no-subscription amd64 PackagesEn este caso, instalaremos la anteúltima versión del paquete. Primero lo simulamos para ver que no nos borra ningún paquete de proxmox:
apt install -s --allow-downgrades proxmox-default-kernel=2.0.2
Salida (en mi caso):
DOWNGRADING: proxmox-default-kernel Summary: Upgrading: 0, Installing: 0, Downgrading: 1, Removing: 0, Not Upgrading: 0 Inst proxmox-default-kernel [2.1.0] (2.0.2 Proxmox Debian Repository:stable [all]) Conf proxmox-default-kernel (2.0.2 Proxmox Debian Repository:stable [all])
Y luego, finalmente ejectamos el downgrade:
apt -y install --allow-downgrades proxmox-default-kernel=2.0.2
Entonces si que ya podemos desinstalar por completo la versión 7 del kernel:
apt-get -y autoremove --purge proxmox-kernel-7.0 *7.0.2-6*
Listo. En la ultima versión de kernel de la rama anterior que acabamos de instalar, MongoDB iniciará correctamente en los LXCs en los que ya estaba instalado.
Lo único con lo que tenemos que tener cuidado es que, cuando queramos actualizar el sistema, no actualicemos el paquete proxmox-default-kernel. Para ello marcamos ese paquete con hold, ejecutando:
apt-mark hold proxmox-default-kernel
Si MongoDB corrige ese problema, lo desmarcamos de hold y ya actualizamos proxmox a la última versión:
apt-mark unhold proxmox-default-kernel apt-get -y update && apt-get -y dist-upgrade
Los hacks de hacks4geeks son minitutoriales rápidos pensados para geeks con conocimiento informático avanzado. Si no entiendes o no consigues ejecutar un hack de esta web considera suscribirte a Premium para solicitar asistencia sobre el mismo.