Servidor GNU/Linux bloqueado, no responde, no actualiza, no da servicio

2017-10-05 - Categorías: Amazon Web Services / General / GNU/Linux
GNULinux

Si has puesto un servidor Ubuntu/Linux lanzándole actualizaciones automáticas puede que hayas llegado a encontrarlo bloqueado. El servidor ha dejado de actualizarse y no hay manera de encontrar el problema. Cuesta mucho entrar al servidor. Un reinicio, paramos servicios, podemos hacer un par de cosas recién conectados, pero vuelve a bloquearse.. Volvemos a reiniciar para volver a entrar corriendo a ver qué pasa.. la gente corre.. ¡las mujeres y los niños primero! 😀

Esto pueden ser los síntomas de un servidor lleno. Lleno el disco duro, la memoria RAM, los i-nodos.. ha empezado a reventar por todos lados y necesitamos volverlo a la normalidad. Toca pues hacer un par de cosas..

Dónde mirar

Primero que todo debemos de ejecutar lo siguiente:

$ sudo apt-get upgrade -y

Si no nos deja actualizar todo puede que nos salga un mensaje con esto:

No apport report written because the error message indicates a disk full error

Nos invitará a ejecutar esto para forzar la instalación de lo que ha fallado de nuevo:

$ sudo apt-get install -f

Si se han roto paquetes nos invitará a ejecutar esto otro:

$ sudo dpkg --configure -a

..total, que entramos en un círculo vicioso imposible de salir y el servidor sigue sin volver a la normalidad.

Porqué ocurre esto

Si estos son los síntomas de tu servidor el motivo puede ser por una partición de arranque llena:

ubuntu@nombre-host:~$ df 
S.ficheros bloques de 1K Usados Disponibles Uso% Montado en
udev 8127820 0 8127820 0% /dev
tmpfs 1629852 9652 1620200 1% /run
/dev/mapper/ubuntu--mate--vg-root 213469432 167400720 35202024 83% /
tmpfs 8149260 47032 8102228 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 8149260 0 8149260 0% /sys/fs/cgroup
/dev/sda2 241965 241935 30 100% /boot
/dev/sda1 523248 3480 519768 1% /boot/efi
tmpfs 1629852 100 1629752 1% /run/user/1000

Si tu caso es el de la partición /boot llena no te queda más que entrar en /boot y borrar manualmente los kernels más antiguos. Cuando esta partición se llena, no permite instalar más kernels, con lo que no puedes actualizar bien.

Si se trata de otra partición no tienes más remedio que liberar espacio borrando otras cosas, o aumentar el disco.

O puede ser porque no te quedan más i-nodos libres para gestionar los archivos:

ubuntu@nombre-host:~$ df -i
 Filesystem Inodes IUsed IFree IUse% Mounted on
 udev 125733 388 125345 1% /dev
 tmpfs 127035 315 126720 1% /run
 /dev/xvda1 524288 520025 4263 100% /
 none 127035 2 127033 1% /sys/fs/cgroup
 none 127035 2 127033 1% /run/lock
 none 127035 1 127034 1% /run/shm
 none 127035 2 127033 1% /run/user

Si tu caso es el de los i-nodos, tienes que borrar muchos ficheros para tener muchos i-nodos libres para usar. Los i-nodos son unos espacios de memoria que guardan datos sobre los ficheros que hay en un sistema de ficheros. Este número de i-nodos es limitado, por lo que si los usas todos, ya no podrás crear más ficheros. Por esto también que se puede bloquear todo. En este caso, lo más probable es que se haya llenado de códigos fuentes de núcleos de Linux en el directorio /usr/src/ entra y borra los más antiguos.

Si está llenando la RAM y no tiene espacio de intercambio en el disco

El último caso que me he encontrado con estos síntomas es cuando llenamos la RAM y no tenemos espacio de intercambio. Siempre hay que tener un fichero de intercambio /swapfile y la solución es crearlo así:

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Sólo queda añadir este fichero para que cargue como espacio de intercambio en el arranque. Para esto añadimos lo siguiente en el fichero /etc/fstab

/swapfile none swap sw 0 0

Si todo ha ido bien, ejecutando ‘free -m’ veremos el fichero de intercambio.

Terminando

Después de haber hecho esto ya puedes ejecutar los siguientes comandos para dejar todo limpio:

$ sudo apt-get update
$ sudo apt-get install -f
$ sudo apt-get ugrade -y
$ sudo apt-get autoremove
$ sudo apt-get autoclean

Con todo esto revisado el sistema debería de haber vuelto a la normalidad.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

© 2024 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.