Envoi d'une interruption de diagnostic
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
.
Avant de commencer
- Le système d'exploitation de l'instance doit être configuré pour générer un fichier dump d'incident.
- L'instance doit être en cours d'exécution. Pour plus d'informations, reportez-vous à Arrêt, démarrage ou redémarrage d'une instance.
- Aucune action en cours n'affecte l'instance, comme des volumes de blocs ou des cartes d'interface réseau virtuelles secondaires en cours d'attachement ou de détachement.
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
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.
- 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.
- 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.
- 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.
- Se connecter à l'instance.
- Installez et configurez le noyau pour la capture du fichier dump :
- Installez
kdump
etkexec
en exécutant la commande suivante :sudo yum install kexec-tools
- Réservez de la mémoire sur le noyau pour enregistrer le fichier dump d'incident. Procédez comme suit :
- Ouvrez le fichier
etc/default/grub
dans un éditeur de texte. - Dans la ligne commençant par
GRUB_CMDLINE_LINUX_DEFAULT
, ajoutez le paramètrecrashkernel=<mémoire-à-réserver>
. Par exemple, pour réserver 100 Mo, ajoutezcrashkernel=100M
. - Enregistrez les modifications et fermez le fichier.
- Reconstruisez le fichier GRUB en exécutant la commande suivante :
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- Ouvrez le fichier
- Installez
- 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
- 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 :
- Se connecter à l'instance.
- Téléchargez les pilotes Oracle VirtIO pour Microsoft Windows.
- 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
- Ouvrez le menu de navigation et cliquez sur Compute. Sous Compute, cliquez sur Instances.
- Cliquez sur l'instance qui vous intéresse.
-
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. -
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.
- 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
. - Oracle Linux 8 : enregistrement dans
- Instances Windows : le fichier dump d'incident est enregistré dans
%SystemRoot%memory.dmp
. Dans la plupart des systèmes Windows, il s'agit deC:\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.