failed to create inotify: Too many open files en ubuntu ejecutando vagrant up

Introducción

La configuración donde se produce el error es:

  • Computadora: RAM 16GB, disk 513GB con un procesador 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
  • Sistema: Ubuntu 22.04.4 LTS
  • Kubernetes: A kind cluster con 3 nodes (incluyendo control-plane) que arranca por defecto

El error se produce cuando se ejecuta comando vagrant up para arrancar un segundo cluster usando libvirt/kvm con 4 VMs de 2GB de RAM. La siguiente imagen resumen el escenaario.

Procedimiento

  • Revisamos los actuales limites del sistema ejecutando: ulimit -n y otenemos como resultado que 1024
  • Posteriomente, revisamos la configuracion del kernel para las claves inotify ejecutando sudo sysctl -A | grep inotify. Como resultado tenemos:
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 65536
user.max_inotify_instances = 128
user.max_inotify_watches = 65536
  • Parece que la solución podría ser aumentar las claves intofiy limits debido a que el error es un fallo parece producirse cuando se están creando intofiy
  • Para aumentar los valores de las claves de kernel mencionadas anteriormente, en el directorio /etc/sysctl.d/ ejecutamos el siguiente comando sudo sysctl -A | grep inotify | sudo tee 20-inotify-custom-configuration.conf
  • Como resultado del paso anterior se habrá creado el fichero /etc/sysctl.d/20-inotify-custom-configuration.conf con el siguiente contenido
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 65536
user.max_inotify_instances = 128
user.max_inotify_watches = 65536

  • Lo editamos y aumentamos los valores de las claves fs.inotify.max_user_instances y user.max_inotify_instances, por ejemplo hasta 256, quedando el contenido de la siguiente forma
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 256
fs.inotify.max_user_watches = 65536
user.max_inotify_instances = 256
user.max_inotify_watches = 65536
  • Posteriormente, para cargar los nuevos valores del kernel ejecutamos el comando sudo systemctl restart systemd-sysctl. Nota: es probable que durante este paso tengamos un mensaje de error Failed to allocate directory watch: Too many open files
  • Finalmente, comprobamos que los nuevos valures se han cargado ejecutando sudo sysctl -A |grep inotify y volvemos a ejecutar el comand ǜagrant up`para arrancar el segundo cluster de kubernetes

¿Como realizar un squash commits en git después de haber pushed?

Introducción

Suponemos que tenemos un repositorio de git donde commits logs es:

Después de realizar varias operaciones como añadir varios archivos, realizar un rebase para squash commits con el mismo nombre para finalmente push al repositorio remote quedando el repositorio queda en el siguiente estado en local como en remoto:

El objetivo es squash todos los commits con el mensaje: «Adding files (2)» y luego push al repositorio remoto

Prerequisitos

El repositorio remote es github luego la rama principal (main branch) se llama main en vez de master.

Procedimiento

  • Primero realizamos un rebase
git rebase -i main~2 main
  • Como resultado tenemos el formulario para rebase the forma interactiva que lo configuraremos de la forma siguiente
  • Despues de guardar los cambios el repo local nos queda de la siguiente forma.
  • Para propagar los cambios hechos en local ejecutamos el siguiente comando:
git push origin +main
  • Como resultado tenemos

Enlaces

virt-manager kvm uefi no disponible en Centos7

Introducción

No se puede configurar en Virtual Machine Manager (virt-manager) una VM con UEFI firmeware

De acuerdo con el enlace, https://access.redhat.com/discussions/2958371#comment-1155681. Se necesita la version qemu 2.6.0 o superior debido a que la version de qemu instalada por defecto es 1.5.3 y no soporta las ultimas versiones OVMF al mismo tiempo que las carcteristicas SMM. Sino cuando crees una VM usando UEFI firmeware, tendras un error del tipo «SMM is not available with this QEMU binary» como se describe en el elance, https://access.redhat.com/discussions/3175901

Sigue leyendo