Uno de los problemas que me estoy encontrando últimamente es que los contenedores lxc que instalo con debian 10 no arrancan los servicios porque tengo que reconfigurar systemd para decirle que el PrivateTmp es false, por ejemplo para poder levantar apache2 tendría que hacer ésto
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details. invoke-rc.d: initscript apache2, action "start" failed. * apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Wed 2020-07-01 16:35:29 UTC; 9ms ago Docs: https://httpd.apache.org/docs/2.4/ Process: 11730 ExecStart=/usr/sbin/apachectl start (code=exited, status=226/NAMESPACE) Jul 01 16:35:29 wordpress systemd[1]: Starting The Apache HTTP Server... Jul 01 16:35:29 wordpress systemd[11730]: apache2.service: Failed to set up mount namespacing: Permission denied Jul 01 16:35:29 wordpress systemd[11730]: apache2.service: Failed at step NAMESPACE spawning /usr/sbin/apachectl: Permission denied Jul 01 16:35:29 wordpress systemd[1]: apache2.service: Control process exited, code=exited, status=226/NAMESPACE Jul 01 16:35:29 wordpress systemd[1]: apache2.service: Failed with result 'exit-code'. Jul 01 16:35:29 wordpress systemd[1]: Failed to start The Apache HTTP Server. # vi /lib/systemd/system/apache2.service PrivateTmp=false :wq # systemctl daemon-reload # systemctl start apache2.service
Pero me encuentro el mismo problema con otros servicios que instalo.
Por lo que entiendo systemd crea como una especie de “entorno virtual” para cada uno de los servicios y para que funcione correctamente, leyendo documentación veo que la solución es habilitar la virtualización anidada.
Así que en la documentación de proxmox encontramos ésta página que nos dice como hacerlo.
Tendremos que ejecutar los siguientes comandos en cada uno de los hosts físicos que tengamos máquinas
root@wezen1A:~# cat /sys/module/kvm_intel/parameters/nested N root@wezen1A:~# echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf root@wezen1A:~# modprobe -r kvm_intel root@wezen1A:~# modprobe kvm_intel root@wezen1A:~# cat /sys/module/kvm_intel/parameters/nested Y
o en una sola línea:
# echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf && modprobe -r kvm_intel && modprobe kvm_intel
A continuación en el contenedor, iremos a opciones > features y habilitaremos el nesting
Reinicamos el contenedor y podremos ver como levantan correctamente todos los servicios.
Según leo sobre nesting virtualization, el consumo de recursos es superior y no se recomienda para sistemas que van a tener una carga alta. Para ello, de momento he observado que con ubuntu no es necesario habilitar el anidado (tengo que probar qué ocurre con la última ubuntu 12.04).
Y ésto es todo! :)
Pingback: Acceso ssh lento contenedores proxmox debian 11 - Blackhold