Rechercher

7.4. Dépannage des problèmes liés au système d'exploitation

download PDF

OpenShift Container Platform fonctionne sous RHCOS. Vous pouvez suivre ces procédures pour résoudre les problèmes liés au système d'exploitation.

7.4.1. Enquêter sur les pannes du noyau

Le service kdump, inclus dans le paquetage kexec-tools, fournit un mécanisme de crash-dump. Vous pouvez utiliser ce service pour sauvegarder le contenu de la mémoire d'un système en vue d'une analyse ultérieure.

L'architecture x86_64 supporte kdump en état de disponibilité générale (GA), tandis que les autres architectures supportent kdump en état d'aperçu technologique (TP).

Le tableau suivant fournit des détails sur le niveau de support de kdump pour différentes architectures.

Tableau 7.1. Prise en charge de Kdump dans RHCOS
ArchitectureNiveau de soutien

x86_64

 GA

arm64

 TP

s390x

 TP

ppc64le

 TP

Important

La prise en charge de Kdump, pour les trois architectures précédentes dans le tableau, est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas leur utilisation en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information au cours du processus de développement.

Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.

7.4.1.1. Activation de kdump

RHCOS est livré avec le paquetage kexec-tools, mais une configuration manuelle est nécessaire pour activer le service kdump.

Procédure

Effectuez les étapes suivantes pour activer kdump sur RHCOS.

  1. Pour réserver de la mémoire pour le noyau de crash lors du premier démarrage du noyau, fournissez des arguments au noyau en entrant la commande suivante :

    # rpm-ostree kargs --append='crashkernel=256M'
  2. Facultatif : Pour écrire le crash dump sur le réseau ou à un autre endroit, plutôt qu'à l'emplacement local par défaut de /var/crash, modifiez le fichier de configuration de /etc/kdump.conf.

    Note

    Si votre nœud utilise des dispositifs cryptés LUKS, vous devez utiliser des vidages de réseau, car kdump ne prend pas en charge l'enregistrement des vidages de collisions sur des dispositifs cryptés LUKS.

    Pour plus de détails sur la configuration du service kdump, voir les commentaires dans /etc/sysconfig/kdump, /etc/kdump.conf, et la page de manuel kdump.conf. Consultez également la documentation RHEL kdump pour plus d'informations sur la configuration de la cible de vidage.

  3. Activez le service kdump systemd.

    # systemctl enable kdump.service
  4. Redémarrez votre système.

    # systemctl reboot
  5. Assurez-vous que kdump a chargé un noyau en panne en vérifiant que le service kdump.service systemd a démarré et s'est arrêté avec succès et que la commande, cat /sys/kernel/kexec_crash_loaded, affiche la valeur 1.

7.4.1.2. Activation de kdump au jour 1

Le service kdump est destiné à être activé par nœud pour déboguer les problèmes du noyau. Étant donné que l'activation de kdump a un coût et que ce coût s'accumule avec chaque nœud supplémentaire activé par kdump, il est recommandé de n'activer le service kdump sur chaque nœud qu'en cas de besoin. Les coûts potentiels de l'activation du service kdump sur chaque nœud sont les suivants :

  • Moins de RAM disponible en raison de la mémoire réservée au noyau de crash.
  • Indisponibilité du nœud alors que le noyau est en train de vider le cœur.
  • Espace de stockage supplémentaire utilisé pour stocker les crash dumps.

Si vous connaissez les inconvénients et les compromis liés à l'activation du service kdump, il est possible d'activer kdump à l'échelle de la grappe. Bien que les configurations de machines spécifiques ne soient pas encore prises en charge, vous pouvez utiliser une unité systemd dans un objet MachineConfig en tant que personnalisation du jour 1 et activer kdump sur tous les nœuds de la grappe. Vous pouvez créer un objet MachineConfig et injecter cet objet dans l'ensemble des fichiers manifestes utilisés par Ignition lors de la configuration du cluster.

Note

Voir "Personnaliser les nœuds" dans la section Installing Installation configuration pour plus d'informations et d'exemples sur la façon d'utiliser les configurations Ignition.

Procédure

Créer un objet MachineConfig pour la configuration de l'ensemble du cluster :

  1. Créez un fichier de configuration Butane, 99-worker-kdump.bu, qui configure et active kdump :

    variant: openshift
    version: 4.12.0
    metadata:
      name: 99-worker-kdump 1
      labels:
        machineconfiguration.openshift.io/role: worker 2
    openshift:
      kernel_arguments: 3
        - crashkernel=256M
    storage:
      files:
        - path: /etc/kdump.conf 4
          mode: 0644
          overwrite: true
          contents:
            inline: |
              path /var/crash
              core_collector makedumpfile -l --message-level 7 -d 31
    
        - path: /etc/sysconfig/kdump 5
          mode: 0644
          overwrite: true
          contents:
            inline: |
              KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swiotlb"
              KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices cgroup_disable=memory mce=off numa=off udev.children-max=2 panic=10 rootflags=nofail acpi_no_memhotplug transparent_hugepage=never nokaslr novmcoredd hest_disable"
              KEXEC_ARGS="-s"
              KDUMP_IMG="vmlinuz"
    
    systemd:
      units:
        - name: kdump.service
          enabled: true
    1 2
    Remplacer worker par master aux deux endroits lors de la création d'un objet MachineConfig pour les nœuds du plan de contrôle.
    3
    Fournir des arguments au noyau pour réserver de la mémoire pour le noyau de crash. Vous pouvez ajouter d'autres arguments du noyau si nécessaire.
    4
    Si vous souhaitez modifier le contenu de /etc/kdump.conf par rapport à la valeur par défaut, incluez cette section et modifiez la sous-section inline en conséquence.
    5
    Si vous souhaitez modifier le contenu de /etc/sysconfig/kdump par rapport à la valeur par défaut, incluez cette section et modifiez la sous-section inline en conséquence.
  2. Utiliser Butane pour générer un fichier YAML de configuration de la machine, 99-worker-kdump.yaml, contenant la configuration à fournir aux nœuds :

    $ butane 99-worker-kdump.bu -o 99-worker-kdump.yaml
  3. Placez le fichier YAML dans le répertoire <installation_directory>/manifests/ lors de l'installation du cluster. Vous pouvez également créer cet objet MachineConfig après l'installation du cluster avec le fichier YAML :

    $ oc create -f 99-worker-kdump.yaml

7.4.1.3. Test de la configuration de kdump

Voir la section Test de la configuration de kdump dans la documentation RHEL pour kdump.

7.4.1.4. Analyse d'un core dump

Voir la section Analyse d'un core dump dans la documentation RHEL pour kdump.

Note

Il est recommandé d'effectuer l'analyse vmcore sur un système RHEL distinct.

Ressources supplémentaires

7.4.2. Débogage des pannes d'allumage

Si une machine ne peut pas être provisionnée, Ignition échoue et RHCOS démarre dans le shell d'urgence. Utilisez la procédure suivante pour obtenir des informations de débogage.

Procédure

  1. Exécutez la commande suivante pour afficher les unités de service qui ont échoué :

    $ systemctl --failed
  2. Facultatif : Exécutez la commande suivante sur une unité de service individuelle pour obtenir plus d'informations :

    $ journalctl -u <unit>.service
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.