Envoi d'une interruption de diagnostic

Attention

Cette fonctionnalité s'adresse aux utilisateurs avancés. L'envoi d'une interruption de diagnostic à un système actif peut entraîner une altération des données ou une panne du système.

Vous pouvez envoyer une interruption de diagnostic pour dépanner une instance de machine virtuelle de calcul non réactive ou inaccessible.

L'interruption de diagnostic entraîne le blocage 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 fichier dump d'incident (également appelé fichier dump de mémoire) en cas de blocage. Le fichier dump d'incident capture des informations sur l'état du système d'exploitation au moment de l'incident. Une fois le système d'exploitation redémarré, vous pouvez analyser le fichier dump d'incident pour identifier et résoudre le problème.

Stratégie IAM requise

Pour utiliser Oracle Cloud Infrastructure, un administrateur doit vous accorder un accès sécurisé dans une stratégie. Cet accès est requis que vous utilisiez la console ou l'API REST avec un kit SDK, l'interface de ligne de commande ou un autre outil. Si un message vous indique que vous ne disposez pas des droits d'accès ou des autorisations nécessaires, vérifiez auprès de l'administrateur le type d'accès qui vous a été accordé et le compartiment  dans lequel vous devez travailler.

Pour les administrateurs : la stratégie dans Autoriser les utilisateurs à lancer des instances de calcul inclut 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 stratégie pour inclure uniquement manage instance-family et supprimer les instructions impliquant volume-family et virtual-network-family.

Si vous ne connaissez pas les stratégies, reportez-vous à Introduction aux stratégies et à Stratégies courantes. Afin d'obtenir des documents de référence sur l'écriture de stratégies pour des instances, des réseaux cloud ou d'autres ressources d'API de services de base, reportez-vous à Détails des services de base.

Configuration du système d'exploitation pour la génération d'un fichier dump d'incident

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

La procédure dépend du système d'exploitation.

Linux

Remarque

Sur les images de plate-forme Oracle Linux, le système d'exploitation est entièrement ou partiellement configuré pour générer un fichier dump d'incident, en fonction de la date de publication de l'image.

Oracle Linux 8
  • Images publiées en août 2020 ou ultérieurement : l'image est entièrement configurée pour générer un fichier dump d'incident.
  • Images antérieures : le noyau pour la capture du fichier dump est installé et configuré, mais vous devez effectuer les autres étapes de configuration.
Oracle Linux 7
  • Images publiées en août 2020 ou ultérieurement : l'image est entièrement configurée pour générer un fichier dump d'incident.
  • Images antérieures : le noyau pour la capture du fichier dump est installé et configuré, mais vous devez effectuer les autres étapes de configuration.
Oracle Linux 6
  • Images publiées en septembre 2020 ou ultérieurement : l'image est entièrement configurée pour générer un fichier dump d'incident.
  • Images antérieures : le noyau pour la capture du fichier dump est installé et configuré, mais vous devez effectuer les autres étapes de configuration.
  1. Se connecter à l'instance.
  2. Installez et configurez le noyau pour la capture du fichier dump :
    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 fichier dump d'incident. Procédez comme suit :
      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=<mémoire-à-réserver>. Par exemple, pour réserver 100 Mo, ajoutez crashkernel=100M.
      3. Enregistrez les modifications et fermez le fichier.
      4. Reconstruisez le fichier GRUB en exécutant la commande suivante :
        sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  3. Configurez le noyau pour qu'il se bloque 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 publiée en avril 2020 ou ultérieurement, l'image est déjà configurée pour générer un fichier dump d'incident.

Si vous utilisez une image publiée avant avril 2020, procédez comme suit :

  1. Se 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, reportez-vous à la documentation tierce associée à votre système d'exploitation.

Envoi d'une interruption de diagnostic

Une fois que vous avez configuré le système d'exploitation de l'instance pour la génération d'un fichier dump d'incident en cas de blocage, utilisez les procédures suivantes pour envoyer une interruption de diagnostic.

Procédure d'envoi d'une interruption de diagnostic à l'aide de la console

  1. Ouvrez le menu de navigation et cliquez sur Compute. Sous Compute, cliquez sur 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 actif peut entraîner une altération des données ou une panne du système.
  4. Consultez le message de confirmation, puis cliquez sur Envoyer une interruption de diagnostic.

    L'état du cycle de vie qui apparaît dans la console reste En cours lorsque le système d'exploitation de l'instance se bloque et redémarre. N'envoyez pas plusieurs interruptions de diagnostic.

  5. Patientez plusieurs minutes que le système d'exploitation de l'instance redémarre, puis connectez-vous à l'instance. Vous pouvez maintenant extraire et analyser le fichier dump d'incident.

Procédure d'envoi d'une interruption de diagnostic à l'aide de l'API

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

Analyse d'un fichier dump d'incident

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

  • Instances Linux : l'emplacement par défaut d'enregistrement du fichier dump d'incident dépend du système d'exploitation.

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

    Pour modifier l'emplacement, modifiez le fichier /etc/kdump.conf.

  • Instances Windows : le fichier dump d'incident est enregistré dans %SystemRoot%memory.dmp. Dans la plupart des systèmes Windows, il s'agit de C:\Windows\memory.dmp.

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