• 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 Packages

    En 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

    Deja una respuesta