Compartir a través de


Uso de la consola serie de Azure para llamadas SysRq y NMI

Se aplica a: ✔️ Linux Virtual Machines(VM)

Solicitud del sistema (SysRq)

Una solicitud del sistema, o SysRq, es una secuencia de claves que entiende el kernel del sistema de operaciones Linux, que puede desencadenar un conjunto de acciones predefinidas. Estos comandos se suelen usar cuando la solución de problemas o la recuperación de máquinas virtuales no se pueden realizar a través de la administración tradicional. Por ejemplo, si la máquina virtual no responde. El uso de la característica SysRq de la consola serie de Azure imita la pulsación de la tecla SysRq y los caracteres especificados en un teclado físico.

Una vez que se entrega la secuencia SysRq, la configuración del kernel controla cómo responde el sistema. Para información sobre cómo habilitar y deshabilitar SysRq, consulte la guía del administrador de SysRqtexto | markdown.

La consola serie de Azure se puede usar para enviar un sysRq a una máquina virtual de Azure mediante el icono de teclado de la barra de comandos siguiente.

Captura de pantalla de Serial Console de Azure. El icono del teclado está resaltado y su menú es visible. Ese menú contiene un elemento Enviar comando SysRq.

Al elegir "Enviar comando SysRq", se abre un cuadro de diálogo, que proporciona opciones comunes de SysRq o acepta una secuencia de comandos sysRq especificados en el cuadro de diálogo. Este "Send SysRq Command permite que series de SysRq realicen una operación de alto nivel, como un reinicio seguro mediante: REISUB.

Captura de pantalla del cuadro de diálogo Enviar comando sysRq a invitado cuando se selecciona la opción de tecla de entrada y REISUB se introduce en el campo siguiente.

No se puede usar el comando SysRq en máquinas virtuales que estén detenidas o cuyo kernel se encuentre en un estado sin respuesta Por ejemplo, un pánico del kernel.

Habilitación de SysRq

Como se describe en la Guía de administración de SysRq, SysRq se puede configurar de forma que todos, ninguno o solo determinados comandos estén disponibles. Puede habilitar todos los comandos sysRq mediante el paso siguiente, pero no sobrevive a un reinicio:

echo "1" >/proc/sys/kernel/sysrq

Para conservar la configuración de SysReq, puede hacer lo siguiente para habilitar todos los comandos SysRq:

  1. Agregar esta línea a /etc/sysctl.conf
    kernel.sysrq = 1
  2. Reinicio o actualización de sysctl mediante la ejecución de
    sysctl -p

Teclas de comando

En la Guía de administración de SysRq:

Comando Función
b Reiniciará inmediatamente el sistema sin necesidad de sincronizar o desmontar los discos.
c Llevará a cabo un bloqueo del sistema mediante una desreferencia del puntero NULL. Si se configura, se realizará un volcado.
d Muestra todos los bloqueos mantenidos.
e Enviar una señal SIGTERM a todos los procesos, excepto init.
f Llamará al OOM killer para terminar un proceso que consume mucha memoria, pero no se asuste si no se puede matar a ningún proceso.
g La usa kgdb (depurador de kernel).
h Mostrará ayuda (cualquier otra clave que no sea la que se muestra aquí también muestra ayuda, pero h es fácil de recordar :-)
i Enviar una señal SIGKILL a todos los procesos, excepto init.
j Reanudar a la fuerza los sistemas de archivos bloqueados por el IOCTL FIFREEZE.
k La clave de acceso seguro (SAK) termina todos los programas en la consola virtual actual. NOTA: Consulte los comentarios importantes en la siguiente sección de SAK.
l Muestra un seguimiento regresivo de pila para todas las CPU activas.
m Volcará información actual de memoria a la consola.
n Se usa para realizar tareas de RT compatibles con Nice.
o Apagará el sistema (si está configurado y se admite).
p Volcará los registros y marcas actuales en la consola.
q Volcará listas de todos los temporizadores de alta resolución armados (hrtimer) por CPU (pero NO los temporizadores timer_list normales) e información detallada sobre todos los dispositivos de eventos de reloj.
r Desactiva el modo RAW de teclado y lo establece en XLATE.
s Intentará sincronizar todos los sistemas de archivos montados.
t Volcará una lista de tareas actuales y su información en la consola.
u Intentará volver a montar todos los sistemas de archivos montados de solo lectura.
v Restaura forzosamente la consola de framebuffer.
v Provoca el volcado de memoria del búfer de ETM [específico de ARM].
w Volcar tareas que se encuentran en estado (bloqueado) ininterrumpido.
x La usa la interfaz de XMON en plataformas ppc/powerpc. Mostrar registros de PMU globales en sparc64. Volcar todas las entradas TLB en MIPS.
y Mostrar registros de CPU globales [específicos de SPARC 64].
z Volcar el búfer de ftrace.
0-9 Establece el nivel de registro de la consola, controlando qué mensajes de kernel se imprimen en la consola. (Por ejemplo, 0 haría que solo los mensajes de emergencia, como alertas de pánico o problemas se volcaran en la consola).

Documentación específica de la distribución

Para obtener documentación específica de la distribución sobre SysRq y los pasos para configurar Linux para crear un volcado de memoria cuando recibe un comando SysRq "Crash", consulte los enlaces a continuación.

Ubuntu

Red Hat

SUSE

CoreOS

Interrupción no enmascarable (NMI)

Una interrupción no enmascarable (NMI) crea una señal que el software de una máquina virtual no pasa por alto. Históricamente, las NMI se usan para supervisar los problemas de hardware en los sistemas que requieren tiempos de respuesta específicos. En la actualidad, los programadores y los administradores del sistema suelen usar NMI como mecanismo para depurar o solucionar problemas de sistemas que no responden.

La consola serie se puede usar para enviar una NMI a una máquina virtual de Azure mediante el icono de teclado de la barra de comandos siguiente. Una vez entregado el NMI, la configuración de la máquina virtual controla cómo responde el sistema. Los sistemas operativos Linux se pueden configurar para bloquearse y crear un volcado de memoria cuando el sistema operativo recibe una NMI.

Captura de pantalla de la Consola serie. El icono del teclado está resaltado y su menú es visible. Ese menú contiene un elemento Enviar interrupción no enmascarable.

Habilitar NMI

En el caso de los sistemas Linux que admiten sysctl para configurar parámetros de kernel, puede habilitar un pánico al recibir esta NMI mediante los siguientes comandos:

  1. Agregar esta línea a /etc/sysctl.conf
    kernel.panic_on_unrecovered_nmi=1
  2. Reinicio o actualización de sysctl mediante la ejecución de
    sysctl -p

Para más información sobre las configuraciones del kernel de Linux, como unknown_nmi_panic, panic_on_io_nmi y panic_on_unrecovered_nmi, consulte: Documentación para /proc/sys/kernel/*. Para obtener documentación específica de la distribución sobre NMI y los pasos para configurar Linux para crear un volcado de memoria cuando recibe un NMI, consulte los siguientes enlaces:

Ubuntu

Red Hat

SUSE

CoreOS

Pasos siguientes