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

Se aplica a: ✔️ Máquinas virtuales Linux

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 usan a menudo cuando la solución de problemas o la recuperación de una máquina virtual no pueden realizarse mediante la administración tradicional (por ejemplo, si la máquina virtual no responde). Mediante la característica SysRq de la consola serie de Azure se imita la acción de presionar la tecla SysRq y los caracteres escritos 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 comando SysRq a una máquina virtual de Azure mediante el icono de teclado de la barra de comandos que se muestra a continuación.

Captura de pantalla de la consola serie de Azure. El icono de teclado está resaltado y su menú está visible. Ese menú contiene un elemento Enviar comando SysRq.

Al elegir "Send SysRq Command" (Enviar comando SysRq) se abre un cuadro de diálogo que proporciona opciones comunes de SysRq o que acepta una secuencia de comandos SysRq escritos en el cuadro de diálogo. Esto permite que la serie de comandos SysRq realice 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, una alerta de pánico del kernel).

Habilitación de SysRq

Como se describe en la guía del administrador de SysRq mencionada anteriormente, SysRq se puede configurar de forma que todos, ninguno o solo ciertos comandos estén disponibles. Puede habilitar todos los comandos SysRq mediante el paso siguiente, pero no sobrevivirán 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 del administrador de SysRq anterior:

Get-Help 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á a OOM Killer para terminar un proceso de acumulación de memoria, pero no se alarme si no se puede eliminar nada.
g La usa kgdb (depurador de kernel).
h Mostrará ayuda (cualquier otra tecla aparte de las mostradas aquí también mostrará 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: Vea comentarios importantes más abajo en la sección 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, y controla qué mensajes del 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 pasos para configurar Linux para crear un volcado de memoria cuando se recibe un comando de bloqueo de SysRq, consulte los siguientes vínculos:

Ubuntu

Red Hat

SUSE

CoreOS

Interrupción no enmascarable (NMI)

Una interrupción no enmascarable (NMI) está diseñada para crear una señal que el software de una máquina virtual no pasará por alto. Históricamente, las NMI se han usado para supervisar problemas de hardware en sistemas que necesitaban tiempos de respuesta específicos. En la actualidad, los administradores del sistema y los programadores suelen usar NMI como mecanismo para depurar o solucionar los 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 que se muestra a continuación. Una vez que se entrega la 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 de teclado está resaltado y su menú está visible. Ese menú contiene un elemento Enviar interrupción no enmascarable.

Habilitar NMI

En el caso de sistemas Linux que admiten sysctl para configurar parámetros del kernel, puede habilitar una alerta de pánico al recibir esta NMI mediante estas acciones:

  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 la documentación de /proc/sys/kernel/*. Para obtener documentación específica de la distribución sobre NMI y pasos para configurar Linux para crear un volcado de memoria cuando se recibe una NMI, consulte los siguientes vínculos:

Ubuntu

Red Hat

SUSE

CoreOS

Pasos siguientes

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.