Compartir a través de


Solución de problemas de arranque de máquinas virtuales Linux de Azure debido al disco completo del sistema operativo

En determinadas circunstancias y configuraciones, un disco de sistema operativo completo (SO) podría provocar problemas de arranque de máquinas virtuales Linux (VM) de Azure. En este artículo se proporcionan algunas causas y soluciones para los problemas de arranque.

Síntomas

Durante las operaciones normales del sistema, si el disco del sistema operativo o las particiones críticas del sistema se llenan, pueden producirse los siguientes problemas:

  • Una máquina virtual se apaga inesperadamente.
  • Una máquina virtual no se inicia correctamente.

Requisitos previos

Para solucionar los problemas de arranque y completar las reparaciones del sistema, se deben cumplir los siguientes requisitos:

  • Permisos para crear una instantánea de disco o usar algunas herramientas de copia de seguridad y restauración.

    En este artículo, se modifican los datos o discos, por lo que tener la capacidad de revertir la máquina virtual a un estado anterior es un componente crítico de la administración segura del sistema.

  • Diagnósticos de arranque habilitados y configurados.

    Tener esta configuración en vigor permite revisar en el futuro el almacenamiento del registro de la consola y la interacción con la interfaz de consola serie de la máquina virtual.

  • Permisos para crear una máquina virtual en caso de que se necesite una máquina virtual de rescate en cualquier momento.

  • Permisos para crear, desasociar y adjuntar discos en caso de que se requieran discos de intercambio.

Nota:

No todos los requisitos se aplican a los siguientes escenarios.

Escenario 1: La máquina virtual se apaga inesperadamente y no se puede arrancar

Muchas prácticas de protección de la seguridad pueden dar lugar a dificultades para mantener los sistemas. Si se produce un error al escribir en el registro de auditoría, una configuración común requiere que el sistema se apague inmediatamente. Para comprobar si este escenario es el motivo de un apagado del sistema, realice las siguientes acciones:

  • Compruebe los mensajes de apagado del sistema en el registro de consola serie .

    Si se inicia el sistema, un "Iniciar el servicio de auditoría de seguridad..." se muestra el mensaje. Este mensaje no indica que el servicio se haya iniciado. En su lugar, la máquina virtual pasa inmediatamente a apagarse y se muestra un mensaje "Apagar". Si el sistema se está ejecutando y se apaga inesperadamente, la consola serie podría mostrar un proceso de apagado ordenado que termina en un mensaje "Apagar". Vea las capturas de pantalla siguientes como ejemplo:

    Captura de pantalla del mensaje

    Captura de pantalla del mensaje

  • Monte el disco del sistema operativo mediante comandos az vm repair , una máquina virtual de recuperación manual o el modo de usuario único. A continuación, examine el uso del disco mediante la df herramienta de línea de comandos y compruebe si el disco que contiene el directorio /var/log/audit está cerca del 100 % de uso.

  • Acceda al sistema de archivos del sistema operativo mediante los comandos az vm repair , una máquina virtual de recuperación manual o el modo de usuario único y compruebe si el archivo /etc/audit/auditd.conf contiene las configuraciones siguientes:

    [root@linux /]# grep action /etc/audit/auditd.conf
    admin_space_left_action = HALT
    disk_full_action = HALT
    disk_error_action = HALT
    

Resolución: Deshabilitar la configuración HALT temporalmente

Nota:

Si esta resolución no funciona o no es adecuada para su entorno, vaya a la sección Resolución .

Si la configuración auditada provoca el apagado del sistema en errores de registro de auditoría, deshabilitar temporalmente la configuración permite que la HALT máquina virtual arranque en el sistema operativo completo para la corrección.

Para corregir este problema auditado común y otros problemas comunes, ejecute la az vm repair extensión automáticamente en la CLI de Azure mediante la acción auditada en la herramienta Reparación automática de Linux (ALAR) de Azure. Para realizar el mismo procedimiento manualmente, siga estos pasos:

  1. Tome una instantánea del disco del sistema operativo para proporcionar un estado de recuperación.

  2. Obtenga acceso al archivo de configuración mediante los comandos az vm repair , una máquina virtual de recuperación manual o el modo de usuario único.

  3. Tome nota de la configuración actual, ya que es posible que no haya espacio disponible para hacer una copia de seguridad del archivo en la máquina virtual.

  4. Cambie las configuraciones anteriores en el archivo /etc/audit/auditd.conf de HALT a cualquier otro valor válido excepto SINGLE. En este escenario, los valores pueden ser IGNORE, SUSPENDo cualquier otro valor que aparezca en la página de Linux man del archivo auditd.conf , que proporciona los parámetros adecuados para las versiones de software usadas en la máquina virtual.

    [root@linux /]# grep action /etc/audit/auditd.conf
    admin_space_left_action = SUSPEND
    disk_full_action = SUSPEND
    disk_error_action = SUSPEND
    
  • Si usa una máquina virtual de recuperación, siga las instrucciones de Desmontar y desasociar el disco duro virtual original para volver a intercambiar el disco del sistema operativo a la máquina virtual problemática e intente arrancar la máquina virtual con normalidad. Si usa el modo de usuario único, salga y, a continuación, la máquina virtual se reinicie.

  • Una vez que la máquina virtual esté totalmente arrancada, examine el sistema de archivos y libere espacio mediante herramientas de línea de comandos como df y du. Aproximadamente el 10 % del sistema de archivos que contiene el directorio /var/log/audit debe ser un buen destino inicial.

Una vez resuelto el problema, revierta el contenido del archivo /etc/audit/auditd.conf a sus valores originales y reinicie la máquina virtual.

Escenario 2: Se cambia el tamaño del disco de la máquina virtual en Azure, pero no se puede cambiar el tamaño del sistema operativo y la máquina virtual no arranca completamente.

Después de identificar un disco completo y de apagar la máquina virtual para cambiar el tamaño del disco del sistema operativo, es posible que la máquina virtual no se inicie correctamente. Este escenario puede resultar confuso en algunas distribuciones en las que el sistema operativo intenta cambiar automáticamente el tamaño del sistema de archivos raíz (/) al reiniciar. Si el disco está lleno, es posible que se produzca un error en la operación de cambio de tamaño porque el proceso requiere espacio libre para expandir el sistema de archivos. No tener espacio libre puede provocar un error en cloud-init y, a continuación, la máquina virtual no termina de arrancar.

Para identificar este problema, revise los registros de arranque en la consola serie y compruebe si hay líneas similares al texto siguiente:

[   15.384699] cloud-init[1142]: OSError: [Errno 28] No space left on device
[   15.384742] cloud-init[1142]: Original exception was:
[   15.384784] cloud-init[1142]: OSError: [Errno 28] No space left on device

Dado que es posible que los mensajes de cloud-init específicos no sean el mensaje más visible devuelto, busque otras líneas que contengan el texto "[Errno 28] No queda espacio en el dispositivo" o mensajes similares "sin espacio".

Para resolver este problema, borre los datos innecesarios para liberar una pequeña cantidad de espacio en disco y, a continuación, expanda el sistema de archivos.

Escenario 3: arranques de máquina virtual, pero no es accesible debido a errores de servicio

Una máquina virtual que parece arrancar completamente podría tener los siguientes problemas:

  • Los problemas de servicio se producen durante el arranque.
  • Es posible que el agente de Azure no aparezca disponible.
  • Connections a la máquina virtual podría producir un error.
  • Es posible que la máquina virtual parezca estar sin conexión según las aplicaciones.

Durante el arranque, varios mensajes como "[Errno 28] No queda espacio en el dispositivo" u otros tipos de mensajes indican que el sistema de archivos raíz está lleno.

Si una máquina virtual se inicia pero no aparece disponible, compruebe el registro serie dentro de los diagnósticos de arranque para ver los mensajes de arranque o use la consola serie para interactuar con la máquina virtual. Si el espacio es insuficiente, borre los datos innecesarios para liberar espacio o expanda los discos.

Si el registro de consola contiene muchos mensajes que indican "ERROR ExtHandler /proc/net/route no contiene rutas", un disco completo del sistema operativo también podría ser la causa, ya que los servicios de red no pueden iniciarse por completo.

Solución

Las siguientes resoluciones se aplican a cualquiera de los escenarios anteriores.

Resolución 1: Borrar datos innecesarios

  1. Obtenga acceso al disco del sistema operativo y las particiones mediante los comandos az vm repair , una máquina virtual de recuperación manual o el modo de usuario único, ya que el sistema no arranca con normalidad.

  2. Identifique archivos y directorios de gran tamaño mediante herramientas y comandos estándar de Linux:

    • du -ks /* | sort -n : busque los archivos o directorios que consumen más espacio en una ubicación. Repita la operación en el directorio notificado más grande hasta que se descubran algunos datos grandes.

    • ls -altSr /var/log - Enumerar el contenido de un directorio, ordenado por tamaño, en orden ascendente.

    • find / -size +500M -exec ls -alFh {} \; - Buscar archivos individuales grandes. Ajuste el 500M valor a varios megabytes o gigabytes según sea necesario para localizar los archivos más eficaces que se van a eliminar.

  3. Quite los archivos que se puedan identificar como innecesarios, como registros antiguos, copias de seguridad olvidadas y archivos similares.

  4. Una vez que se borre una cantidad adecuada de espacio, apunte alrededor del 10 % de disco libre y reinicie el sistema.

Resolución 2: Expandir sistema de archivos del sistema operativo

Si no se puede borrar ningún dato del sistema de archivos del sistema operativo, se recomienda expandir el disco que contiene los volúmenes críticos del sistema operativo. Para obtener más información, consulte Expansión de discos duros virtuales en una máquina virtual Linux.

Pasos siguientes

En caso de que el error de arranque específico no sea un problema de arranque de Linux debido a un disco completo del sistema operativo, consulte Solución de problemas de errores de arranque de máquinas virtuales Linux de Azure para obtener más solución de problemas.

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.