Annexe B. Informations matérielles supplémentaires

Les sections suivantes offrent des informations supplémentaires sur la configuration du matériel utilisé dans un système membre d'un cluster.

B.1. Configuration des contrôleurs d'alimentation

Cette section explique les contrôleurs d'alimentation. Pour obtenir davantage d'informations sur les contrôleurs d'alimentation et leur rôle dans un environnement de cluster, reportez-vous à la Section 1.1.3.

B.1.1. Interrupteurs

Pour obtenir une liste des interrupteurs reliés série ou au réseau, testés avec et/ou pris en charge par Red Hat, Inc. pour le contrôle de l'alimentation du cluster, reportez-vous à la liste de compatibilité matérielle de Red Hat qui se trouve à l'adresse suivante :

http://hardware.redhat.com/hcl/

B.1.2. Installation d'interrupteurs de surveilance

Une description du modèle d'utilisation des horloges chiens-de-garde pour assurer l'intégrité des données du cluster est reproduite dans la Section 1.1.3. Comme il l'est décrit dans cette section, il existe deux variantes de ces horloges chiens-de-garde : l'une basée sur le matériel, l'autre sur le logiciel.

Le passage suivant décrit en détails les tâches de configuration nécessaires pour définir l'utilisation d'horloges chiens-de-garde dans la configuration matérielle du cluster.

Indépendamment du type d'horloge chien-de-garde employé, il est nécessaire de créer le fichier spécial de périphériques qui correspond à l'horloge chien-de-garde. Pour ce faire, exécutez les commandes suivantes :

cd /dev
./MAKEDEV watchdog

Lors de l'utilisation de l'Outil de configuration du cluster, la fonction de chien-de-garde logiciel de chaque nouveau membre ajouté au cluster est activée par défaut.

B.1.2.1. Configuration de l'horloge chien-de-garde logicielle

Tout système d'un cluster peut utiliser l'horloge chien-de-garde logicielle en tant que disposition permettant d'assurer l'intégrité des données, dans la mesure où aucun composant matériel spécifique n'est nécessaire. Le logiciel de cluster télécharge automatiquement le module du noyau approprié, à savoir softdog.

Si le cluster est configuré pour l'utilisation de l'horloge chien-de-garde logicielle, le démon d'adhésion du cluster (clumembd) réinitialisera périodiquement l'intervalle de l'horloge. Dans le cas où clumembd ne réussirait pas à réinitialiser l'horloge, le membre défaillant du cluster redémarrera automatiquement.

Lorsque vous utilisez l'horloge chien-de-garde logicielle, il y a un léger risque que les opérations du système soient suspendues de telle sorte que le processus (thread) ne sera pas exécuté. Dans le cas improbable d'un tel scénario, il se peut que l'autre membre du cluster prenne le relais des services du membre du cluster apparemment suspendu. Généralement, cette opération est sûre ; néanmoins, dans le cas improbable où le membre du cluster suspendu reprendrait son activité, il pourrait y avoir corruption des données. Afin de minimiser l'incidence de cette vulnérabilité, quand l'horloge chien-de-garde logicielle est utilisée, les administrateurs devraient également configurer l'horloge chien-de-garde NMI (Non-Maskable Interrupt) ainsi qu'un interrupteur externe (si disponible).

B.1.2.2. Activation de l'horloge chien-de-garde NMI

Si vous utilisez l'horloge chien-de-garde logicielle comme précaution pour l'intégrité des données, il est également recommandé d'activer l'horloge chien-de-garde NMI (Non-Maskable Interrupt) afin de vraiment garantir l'intégrité des données. L'horloge chien-de-garde NMI est un mécanisme différent qui amorce la ré-initialisation du système lors d'un mauvais fonctionnement, comme dans le scénario d'un système 'suspendu' où les interruptions sont bloquées. Cette horloge chien-de-garde peut être utilisée en même temps que l'horloge chien-de-garde logicielle.

Contrairement à l'horloge chien-de-garde logicielle qui est réinitialisée par le démon Quorum du cluster (cluquorumd), l'horloge chien-de-garde NMI compte les interruptions du système. En temps normal, un système sain recevra des centaines d'interruptions de périphériques ou d'horloges par seconde. S'il ne reçoit aucune interruption dans un intervalle de 5 secondes, le système est suspendu et l'horloge chien-de-garde NMI expire, entraînant le redémarrage du système.

Une solution robuste d'intégrité des données peut être mise en oeuvre en alliant la surveillance de la santé du démon Quorum du cluster à l'horloge chien-de-garde logicielle et aux contrôles du statut du système à un bas niveau, effectués par l'horloge chien-de-garde NMI.

Les operations correctes du mécanisme de l'horloge chien-de-garde NMI nécessite que les membres du cluster contiennent une puce APIC sur la carte principale du système.

L'horloge chien-de-garde NMI est activée sur les systèmes qui la supportent en ajoutant nmi_watchdog=1 à la ligne de commande du noyau, comme dans l'extrait de/etc/grub.conf reproduit ci-dessous :

NoteRemarque
 

Les configurations des chargeur de démarrage GRUB et LILO ci-dessous ne s'appliquent qu'à l'architecture x86 de Red Hat Enterprise Linux.

# grub.conf
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title HA Test Kernel (2.4.9-10smp)
        root (hd0,0)
        # This is the kernel's command line.
        kernel /vmlinuz-2.4.9-10smp ro root=/dev/hda2 nmi_watchdog=1

# end of grub.conf

Dans les systèmes utilisant LILO, ajoutez "nmi_watchdog=1" dans la section append de /etc/lilo.conf, comme dans l'exemple ci-dessous :

# lilo.conf
prompt
timeout=50
default=linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
lba32

image=/boot/vmlinuz-2.4.9-10smp
        label=linux
        read-only
        root=/dev/hda2
        append="nmi_watchdog=1"

# end of lilo.conf

Exécutez /sbin/lilo après avoir modifié /etc/lilo.conf pour que les changements prennent effet.

Afin de déterminer si le serveur supporte l'horloge chien-de-garde NMI, essayez d'abord d'ajouter "nmi_watchdog=1" à la ligne de commande du noyau comme il l'est décrit dans l'exemple précédent. Après le démarrage du système, connectez-vous en tant que super-utilisateur (root) et tapez :

cat /proc/interrupts

La sortie devrait ressembler à l'extrait ci-dessous :

           CPU0       
  0:    5623100          XT-PIC  timer
  1:         13          XT-PIC  keyboard
  2:          0          XT-PIC  cascade
  7:          0          XT-PIC  usb-ohci
  8:          1          XT-PIC  rtc
  9:     794332          XT-PIC  aic7xxx, aic7xxx
 10:     569498          XT-PIC  eth0
 12:         24          XT-PIC  PS/2 Mouse
 14:          0          XT-PIC  ide0
NMI:    5620998       
LOC:    5623358 
ERR:          0
MIS:          0

La partie qui nous intéresse dans l'extrait ci-dessus est celle nous permettant de vérifier si l'id NMI se trouve bien du côté gauche. Si la valeur de NMI n'est pas zéro (0), alors le serveur supporte le chien-de-garde NMI.

Dans le cas où cette approche échouerait (la valeur NMI étant donc zéro), essayez de passer nmi_watchdog=2 au noyau au lieu d'ajouter nmi_watchdog=1 comme il l'a été décrit précédemment. Vérifiez à nouveau /proc/interrupts après le démarrage du système. Une valeur NMI supérieure à zéro indique que le chien-de-garde NMI été configuré correctement. En revanche, si la valeur NMI est zéro, votre système ne supporte pas l'horloge chien-de-garde NMI.

B.1.2.3. Configuration de l'horloge chien-de-garde matérielle

Le noyau fournit une prise en charge par le driver de multiples types d'horloges chiens-de-garde. Certaines d'entre elles sont implémentées directement sur la carte du système, alors que d'autres sont des composants matériels séparés, comme des cartes PCI. Les horloges chiens-de-garde basées sur le matériel représentent d'excellentes précautions en matière d'intégrité des données au sein du cluster, car elles fonctionnent indépendamment du processeur du système. De ce fait, elles sont parfaitement capables de redémarrer un système lorsqu'un système est suspendu.

En raison du manque d'uniformité parmi les composants de bas niveau des horloges chiens-de-garde matérielles, il est difficile de formuler des généralisations décrivant comment reconnaître si un système contient de tels composants. De nombreux composants de bas niveau des horloges chiens-de-garde ne peuvent être identifiés automatiquement de façon séparée.

Afin de configurer toute horloge chien-de-garde supportée par le noyau, il est nécessaire d'insérer une entrée correspondante dans le fichier /etc/modules.conf. Par exemple, dans le cas d'un modèle Intel-810 basé sur TCO WDT, il est nécessaire d'insérer la ligne suivante dans /etc/modules.conf :

alias wdt i810-tco