Envoi d'une interruption de diagnostic

Vous pouvez envoyer une interruption de diagnostic pour résoudre le problème d'une instance de machine virtuelle de calcul non réactive ou inaccessible.

Attention

Cette fonction s'adresse aux utilisateurs avancés. L'envoi d'une interruption de diagnostic à un système en service peut entraîner la corruption des données ou une défaillance du système.

Une interruption de diagnostic provoque une panne et le redémarrage du système d'exploitation de l'instance. Avant d'envoyer une interruption de diagnostic, vous devez configurer le système d'exploitation pour générer un vidage sur incident (également appelée fichier de vidage de mémoire) en cas de panne. Le vidage sur incident saisit des informations sur l'état du système d'exploitation au moment de la panne. Après le redémarrage du système d'exploitation, vous pouvez analyser le vidage sur incident pour identifier et déboguer le problème.

Conseil

Pour plus d'informations sur le dépannage à l'aide de vidages sur incident, voir : Collecte de vidages sur incident à l'aide de l'utilitaire Kdump.

Politique GIA requise

Pour utiliser Oracle Cloud Infrastructure, un administrateur doit être membre d'un groupe auquel l'accès de sécurité est accordé dans une politique par un administrateur de location. Cet accès est requis que vous utilisiez la console ou l'API REST avec une trousse SDK, l'interface de ligne de commande ou un autre outil. Si vous obtenez un message indiquant que vous ne disposez pas de l'autorisation requise, vérifiez auprès de l'administrateur de la location quel type d'accès vous avez et dans quel compartiment votre accès fonctionne.

Pour les administrateurs : La politique sous Autoriser les utilisateurs à lancer des instances de calcul offre la possibilité d'envoyer une interruption de diagnostic à une instance. Si le groupe spécifié n'a pas besoin de lancer des instances ou d'attacher des volumes, vous pouvez simplifier cette politique pour inclure seulement manage instance-family et supprimer les énoncés impliquant volume-family et virtual-network-family.

Pour en savoir plus sur les politiques, voir Gestion des domaines d'identité et Politiques communes. Pour des documents de référence sur l'écriture de politiques pour les instances, les réseaux en nuage ou d'autres ressources d'API des services de base, voir Informations détaillées sur les services de base.

Configuration du système d'exploitation pour générer un vidage sur incident

Avant d'envoyer une interruption de diagnostic à une instance, vous devez configurer le système d'exploitation pour générer un vidage sur incident en cas de panne. L'interruption de diagnostic est reçue en tant qu'interruption non masquable (NMI) sur l'instance cible.

Les étapes dépendent du système d'exploitation.

Linux

Note

Sur les images de plate-forme Oracle Linux, le système d'exploitation est entièrement configuré ou partiellement configuré pour générer un vidage sur incident, selon la date de lancement de l'image.

Oracle Linux 8
  • Images lancées en août 2020 ou ultérieurement : L'image est entièrement configurée pour générer un vidage sur incident.
  • Images antérieures : Le noyau de saisie de vidage est installé et configuré, mais vous devez effectuer les autres étapes de configuration.
Oracle Linux 7
  • Images lancées en août 2020 ou ultérieurement : L'image est entièrement configurée pour générer un vidage sur incident.
  • Images antérieures : Le noyau de saisie de vidage est installé et configuré, mais vous devez effectuer les autres étapes de configuration.
  1. Vous connecter à l'instance.
  2. Installez et configurez le noyau de saisie de vidage :
    1. Installez kdump et kexec en exécutant la commande suivante :
      sudo yum install kexec-tools
    2. Réservez de la mémoire sur le noyau pour enregistrer le vidage sur incident. Effectuez les étapes suivantes :
      1. Ouvrez le fichier etc/default/grub dans un éditeur de texte.
      2. Dans la ligne commençant par GRUB_CMDLINE_LINUX_DEFAULT, ajoutez le paramètre crashkernel=<memory-to-reserve>. Par exemple, pour réserver 100 Mo, ajoutez crashkernel=100M.
      3. Enregistrez les modifications et fermez le fichier.
      4. Recréez le fichier GRUB en exécutant la commande suivante :
        sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  3. Configurez le noyau pour qu'une panne se produise lorsqu'il reçoit une interruption de diagnostic. Pour ce faire, ouvrez le fichier /etc/sysctl.conf dans un éditeur de texte et ajoutez la ligne suivante :
    kernel.unknown_nmi_panic=1
  4. Appliquez la modification à /etc/sysctl.conf en exécutant la commande suivante :
    sysctl -p

Windows Server - Image de plate-forme

Si vous utilisez une image de plate-forme Windows Server qui a été lancée en avril 2020 ou ultérieurement, l'image est déjà configurée pour générer un vidage sur incident.

Si vous utilisez une version d'image datant d'avant avril 2020, procédez de la façon suivante :

  1. Vous connecter à l'instance.
  2. Téléchargez les pilotes Oracle VirtIO pour Microsoft Windows.
  3. Installez les pilotes, puis redémarrez l'instance.

Windows Server - Image fournie par le client

Pour plus d'informations, consultez la documentation de la tierce partie sur votre système d'exploitation.

Envoi d'une interruption de diagnostic

Après avoir configuré le système d'exploitation de l'instance pour générer un vidage en cas de panne, utilisez les procédures suivantes pour envoyer une interruption de diagnostic.

Pour envoyer une interruption de diagnostic à l'aide de la console

  1. Ouvrez le menu de navigation et sélectionnez Calcul. Sous Calcul, sélectionnez Instances.
  2. Cliquez sur l'instance qui vous intéresse.
  3. Cliquez sur Actions supplémentaires, puis sur Envoyer une interruption de diagnostic.

    Attention

    L'envoi d'une interruption de diagnostic à un système en service peut entraîner la corruption des données ou une défaillance du système.
  4. Vérifiez le message de confirmation, puis cliquez sur Envoyer une interruption de diagnostic.

    L'état du cycle de vie qui s'affiche dans la console reste En cours d'exécution pendant que le système d'exploitation de l'instance s'arrête et redémarre. N'envoyez pas plusieurs interruptions de diagnostic.

  5. Attendez plusieurs minutes pour que le système d'exploitation de l'instance redémarre, puis connectez-vous à l'instance. Vous pouvez maintenant récupérer et analyser le vidage sur incident.

Pour envoyer une interruption de diagnostic à l'aide de l'API

Utilisez l'opération InstanceAction, en transmettant la valeur SENDDIAGNOSTICINTERRUPT comme action à entreprendre.

Analyse d'un vidage sur incident

Le vidage sur incident est enregistré localement sur le système d'exploitation de l'instance .

  • Instances Linux : L'emplacement par défaut où le vidage sur incident est enregistré dépend du système d'exploitation.

    • Oracle Linux 8 : Enregistré dans /var/oled/crash.
    • Oracle Linux 7 : Pour les images de plate-forme lancées en mars 2021 ou ultérieurement, enregistré dans /var/crash. Pour les anciennes images de plate-forme, enregistré dans /var/oled/crash.
    • Autres systèmes d'exploitation de type Linux et UNIX : Enregistré dans /var/crash/.

    Pour changer d'emplacement, modifiez le fichier /etc/kdump.conf.

  • Instances Windows : Le vidage sur incident est enregistré dans %SystemRoot%memory.dmp. Sur la plupart des systèmes Windows, il s'agit de C:\Windows\memory.dmp.

Pour analyser le vidage sur incident, utilisez un outil tiers tel que l'utilitaire panne sur les instances Linux ou WinDbg sur les instances Windows.