7.4. Dépannage des problèmes liés au système d'exploitation
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.
Architecture | Niveau de soutien |
---|---|
|
GA |
|
TP |
|
TP |
|
TP |
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.
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'
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
.NoteSi 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 manuelkdump.conf
. Consultez également la documentation RHEL kdump pour plus d'informations sur la configuration de la cible de vidage.Activez le service
kdump
systemd.# systemctl enable kdump.service
Redémarrez votre système.
# systemctl reboot
-
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 valeur1
.
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.
Voir "Personnaliser les nœuds" dans la section Installing
Procédure
Créer un objet MachineConfig
pour la configuration de l'ensemble du cluster :
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
parmaster
aux deux endroits lors de la création d'un objetMachineConfig
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-sectioninline
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-sectioninline
en conséquence.
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
Placez le fichier YAML dans le répertoire
<installation_directory>/manifests/
lors de l'installation du cluster. Vous pouvez également créer cet objetMachineConfig
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.
Il est recommandé d'effectuer l'analyse vmcore sur un système RHEL distinct.
Ressources supplémentaires
- Configuration de kdump dans RHEL
- Documentation du noyau Linux pour kdump
-
kdump.conf(5) - une page de manuel pour le fichier de configuration
/etc/kdump.conf
contenant la documentation complète des options disponibles -
kexec(8) - une page de manuel pour le paquetage
kexec
- Article de la base de connaissances de Red Hat concernant kexec et kdump
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
Exécutez la commande suivante pour afficher les unités de service qui ont échoué :
$ systemctl --failed
Facultatif : Exécutez la commande suivante sur une unité de service individuelle pour obtenir plus d'informations :
$ journalctl -u <unit>.service