A.4 Installation et configuration

Cette section fournit les procédures d'installation et de configuration de Sentinel dans un environnement à haute disponibilité. Chaque étape décrit l'approche générale, puis renvoie à une démonstration qui explique en détail la configuration d'une solution de cluster fournie à titre d'exemple. Vous pouvez utiliser des options ou une technologie autre que celles indiquées dans ce document, mais veuillez tenir compte des contraintes décrites à la Section A.2, Capacité de prise en charge.

Le diagramme suivant illustre une architecture haute disponibilité active-passive :

A.4.1 Configuration initiale

Configurez le matériel de la machine, du réseau et du stockage, ainsi que les systèmes d'exploitation, les comptes utilisateur et les autres ressources système de base conformément aux instructions du document relatif à la configuration requise pour Sentinel et le client local. Testez les systèmes afin de vérifier leur bon fonctionnement et leur stabilité.

  • Veillez à ce que l'heure de tous les noeuds de cluster soit synchronisée. Pour ce faire, utilisez NTP ou une technologie similaire.

  • Le cluster nécessite une résolution fiable du nom d'hôte. Il est intéressant de consigner tous les noms d'hôte de clusters internes dans le fichier /etc/hosts pour assurer la continuité des clusters en cas de défaillance de DNS. Si l'un des noeuds de cluster ne parvient pas à résoudre tous les autres noeuds par leur nom, la configuration de cluster décrite dans cette section échoue.

  • Les caractéristiques de l'espace disque, de l'UC et de la mémoire virtuelle de chaque noeud de cluster doit respecter la configuration système requise définie au Section 5.0, Configuration du système sur la base du taux d'événements attendu.

  • Les caractéristiques de l'espace disque et des E/S des noeuds de stockage doivent respecter la configuration système requise définie au Section 5.0, Configuration du système sur la base du taux d'événements attendu et des stratégies de conservation des données pour le stockage local et/ou réseau.

  • Si vous souhaitez configurer les pare-feux des systèmes d'exploitation de manière à restreindre l'accès à Sentinel et au cluster, reportez-vous au Section 7.0, Ports utilisés pour plus d'informations sur les ports qui doivent être disponibles selon votre configuration locale et les sources qui envoient des données d'événement.

La solution de notre exemple utilisera la configuration suivante :

  • Deux machines virtuelles de noeud de cluster SUSE Linux 11 SP2

    • Il n'est pas nécessaire que le programme d'installation du système d'exploitation installe X Windows, mais cela est néanmoins possible si vous souhaitez configurer l'interface utilisateur. Les scripts de démarrage peuvent être définis pour démarrer sans X Windows (runlevel 3), qui peut être lancé uniquement en cas de besoin.

    • Les noeuds ont deux cartes réseau : l'une pour les accès externes et l'autre pour les communications iSCSI.

    • Configurez les cartes réseau externes avec des adresses IP qui permettent un accès distant par le biais de SSH ou d'un protocole similaire. Dans le cadre de notre exemple, nous utiliserons les adresses 172.16.0.1 (node01) et 172.16.0.2 (node02).

    • Chaque noeud doit disposer d'un espace disque suffisant pour le système d'exploitation, les fichiers binaires et les données de configuration Sentinel, le logiciel de cluster, l'espace temporaire, etc. Consultez la configuration système requise pour SUSE Linux et SLE HAE, ainsi que la configuration requise pour l'application Sentinel.

  • Une machine virtuelle SUSE Linux 11 SP2 configurée avec les cibles iSCSI pour le stockage partagé

    • Il n'est pas nécessaire que le programme d'installation du système d'exploitation installe X Windows, mais cela est néanmoins possible si vous souhaitez configurer l'interface utilisateur. Les scripts de démarrage peuvent être définis pour démarrer sans X Windows (runlevel 3), qui peut être lancé uniquement en cas de besoin.

    • Le système a deux cartes réseau : l'une pour les accès externes et l'autre pour les communications iSCSI.

    • Configurez la carte réseau externe avec une adresse IP qui permet un accès distant par le biais de SSH ou d'un protocole similaire. Dans le cadre de notre exemple, nous utiliserons l'adresse 172.16.0.3 (storage03).

    • Le système doit disposer de suffisamment d'espace pour le système d'exploitation, l'espace temporaire et l'emplacement de stockage partagé afin de pouvoir contenir les données Sentinel. Il doit également avoir un peu d'espace pour une partition SBD. Consultez la configuration système requise pour SUSE Linux et la configuration requise pour le stockage des données d'événements de Sentinel. Pour la solution dans notre exemple, nous placerons toutes les données (locales, réseau, SBD) sur un seul disque, mais dans le cadre de déploiements en production, ces données pourraient être allouées à différents noeuds.

REMARQUE :dans un cluster de production, vous pouvez utiliser des adresses IP internes non routables sur des cartes réseau distinctes (éventuellement deux pour assurer la redondance) pour les communications de cluster internes.

A.4.2 Configuration de l'espace de stockage partagé

Configurez votre espace de stockage partagé et assurez-vous de pouvoir le monter sur chaque noeud de grappe. Si vous utilisez FibreChannel et un sous-réseau de stockage (SAN), des connexions physiques et d'autres opérations de configuration seront peut-être nécessaires. L'espace de stockage partagé servira à contenir les bases de données et les données d'événements Sentinel. Sa taille doit dès lors être adaptée à l'environnement client, en fonction du taux d'événements attendu et des stratégies de conservation des données.

Une implémentation classique peut consister en un SAN rapide attaché via FibreChannel à tous les noeuds de grappe, avec un vaste tableau RAID pour stocker les données d'événements locales. Un stockage en réseau (NAS) distinct ou un noeud iSCSI peuvent être utilisés pour le stockage réseau plus lent. Pour autant que le noeud de grappe puisse monter le stockage local comme un périphérique de bloc normal, la solution peut l'utiliser. Le stockage réseau peut également être monté en tant que périphérique de bloc ou consister en un volume NFS ou CIFS.

REMARQUE :vous devez configurer votre espace de stockage partagé et tester son montage sur chaque noeud de cluster, mais le montage effectif du stockage est géré par la configuration de cluster.

Dans le cadre de notre exemple de solution, nous utilisons des cibles iSCSI hébergées par une machine virtuelle SUSE Linux :

Notre exemple de solution utilise des cibles iSCSI configurées sur une machine virtuelle SUSE Linux. La machine virtuelle est storage03 telle que répertoriée dans la Configuration initiale. Les périphériques iSCSI peuvent être créés à l'aide d'un fichier ou d'un périphérique de bloc, mais pour plus de simplicité, nous utiliserons dans ce cas un fichier créé à cette fin.

Connectez-vous à storage03 et démarrez une session de console. Utilisez la commande dd pour créer un fichier vide de la taille souhaitée pour l'espace de stockage local de Sentinel :

dd if=/dev/zero of=/localdata count=10240000 bs=1024

Dans ce cas, nous créons un fichier de 10 Go rempli de zéros (copié à partir de /dev/zero pseudo-device). Consultez la page d'informations ou du manuel pour la commande dd afin de connaître les options de la ligne de commande. par exemple pour créer des « disques » de tailles différentes. La cible iSCSI traite ce fichier comme s'il s'agissait d'un disque, mais vous pouvez bien entendu utiliser un disque réel si vous préférez.

Répétez cette procédure afin de créer un fichier destiné au stockage réseau :

dd if=/dev/zero of=/networkdata count=10240000 bs=1024

Pour cet exemple, nous utilisons deux fichiers (« disques ») à la taille et aux performances identiques. Pour un déploiement en production, vous pouvez prévoir le stockage local sur un SAN rapide et le stockage réseau sur un volume iSCSI, NFS ou CIFS plus lent.

Configurez ces fichiers comme cibles iSCSI :

  1. Exécutez YaST à partir de la ligne de commande (ou utilisez l'interface graphique si vous préférez) : /sbin/yast

  2. Sélectionnez Périphériques réseau > Paramètres réseau.

  3. Vérifiez que l'onglet Présentation est sélectionné.

  4. Sélectionnez la carte réseau secondaire dans la liste affichée, puis avancez avec la touche Tab jusqu'à l'option Modifier et appuyez sur Entrée.

  5. Sous l'onglet Adresse, assignez l'adresse IP statique 10.0.0.3. Cette adresse servira pour les communications iSCSI internes.

  6. Cliquez sur Suivant, puis sur OK.

  7. Dans l'écran principal, sélectionnez Network Services (Services réseau) > iSCSI Target (Cible iSCSI).

  8. Si vous y êtes invité, installez le logiciel requis (RPM iscsitarget) à partir du support SUSE Linux 11 SP2.

  9. Cliquez sur Service, sélectionnez l'option When Booting (Au démarrage) pour que le service se lance au démarrage du système d'exploitation.

  10. Cliquez sur Global, puis sélectionnez No Authentication (Pas d'authentification) car l'agent de ressource OCF actuel pour iSCSI ne prend pas en charge l'authentification.

  11. Cliquez sur Cibles, puis sur Ajouter pour ajouter une nouvelle cible.

    La cible iSCSI génère automatiquement un ID, puis présente une liste reprenant les numéros d'unité logique (LUN) disponibles.

  12. Cliquez sur Ajouter pour ajouter un nouveau numéro d'unité logique.

  13. Laissez 0 comme numéro d'unité logique, puis dans la boîte de dialogue Chemin d'accès (sous Type=fileio), accédez au fichier /localdata que vous avez créé. Si vous disposez d'un disque dédié au stockage, spécifiez un périphérique de bloc, tel que /dev/sdc.

  14. Répétez les étapes 12 et 13 et ajoutez le numéro d'unité logique 1 avec /networkdata cette fois.

  15. Laissez les valeurs par défaut des autres options. Cliquez sur OK, puis sur Suivant.

  16. Cliquez de nouveau sur Suivant pour sélectionner les options d'authentification par défaut, puis sur Terminer pour quitter la configuration. Si vous êtes invité à redémarrer iSCSI, acceptez.

  17. Quittez YaST.

La procédure susmentionnée expose deux cibles iSCSI sur le serveur à l'adresse IP 10.0.0.3. Vérifiez qu'il est possible sur chaque noeud de monter le périphérique de stockage partagé des données locales. Vous devez également formater les périphériques (une seule fois) :

  1. Connectez-vous à l'un des noeuds de cluster (node01) et démarrez YaST.

  2. Sélectionnez Périphériques réseau > Paramètres réseau.

  3. Vérifiez que l'onglet Présentation est sélectionné.

  4. Sélectionnez la carte réseau secondaire dans la liste affichée, puis avancez avec la touche Tab jusqu'à l'option Modifier et appuyez sur Entrée.

  5. Cliquez sur Adresse, assignez l'adresse IP statique 10.0.0.1. Cette adresse servira pour les communications iSCSI internes.

  6. Sélectionnez Suivant, puis cliquez sur OK.

  7. Cliquez sur Network Services (Services réseau) > iSCSI Initiator (Initiateur iSCSI).

  8. Si vous y êtes invité, installez le logiciel requis (RPM open-iscsi) à partir du support SUSE Linux 11 SP2.

  9. Cliquez sur Service, sélectionnez When Booting (Au démarrage) pour que le service iSCSI se lance au démarrage du système.

  10. Cliquez sur Discovered Targets (Cibles découvertes), puis sélectionnez Discovery (Découverte).

  11. Spécifiez l'adresse IP iSCSI (10.0.0.3), sélectionnez No Authentication (Pas d'authentification), puis cliquez sur Suivant.

  12. Sélectionnez la cible iSCSI découverte avec l'adresse IP 10.0.0.3, puis sélectionnez Se connecter.

  13. Basculez sur l'option Automatique dans la liste déroulante Startup (Démarrage) et sélectionnez No Authentication (Pas d'authentification), puis cliquez sur Suivant.

  14. Basculez vers l'onglet Connected Targets (Cibles connectées) pour vérifier que vous êtes connecté à la cible.

  15. Quittez la configuration. Cette procédure doit avoir monté les cibles iSCSI en tant que périphériques de bloc sur le noeud de cluster.

  16. Dans le menu principal de YaST, sélectionnez Système > Partitioner (Partitionneur).

  17. Dans la vue du système, de nouveaux disques durs doivent apparaître dans la liste (notamment /dev/sdb et /dev/sdc). Ils présentent le type IET-VIRTUAL-DISK. Appuyez sur la touche Tab pour accéder au premier disque de la liste (qui doit correspondre à l'emplacement de stockage local), sélectionnez-le, puis appuyez sur Entrée.

  18. Sélectionnez Ajouter pour ajouter une nouvelle partition au disque vide. Formatez le disque en tant que partition ext3 principale, mais ne le montez pas. Vérifiez que l'option Do not mount partition (Ne pas monter la partition) est sélectionnée.

  19. Sélectionnez Suivant, puis Terminer après avoir contrôlé les modifications à apporter. Si vous créez une seule grande partition sur cette unité logique iSCSI partagée, vous devez obtenir une partition /dev/sdb1 ou un disque au format similaire (appelé /dev/<SHARED1> comme ci-dessous).

  20. Retournez dans le partitionneur et répétez le processus de partitionnement/formatage (étapes 16 à 19) pour /dev/sdc ou tout autre périphérique de bloc correspondant au système de stockage réseau. Vous devez obtenir une partition /dev/sdc1 ou un disque au format similaire (appelé /dev/<NETWORK1> comme ci-dessous).

  21. Quittez YaST.

  22. Enfin, créez un point de montage et testez le montage de la partition locale comme suit (le nom exact du périphérique peut varier selon l'implémentation spécifique) :

    # mkdir /var/opt/novell
    # mount /dev/<SHARED1> /var/opt/novell
    
  23. Vous devez pouvoir créer des fichiers sur la nouvelle partition et les consulter quel que soit l'emplacement de montage.

    Pour démonter la partition :

    # umount /var/opt/novell
    

Répétez les étapes 1 à 15 de la procédure susmentionnée pour vous assurer que chaque noeud de cluster peut monter le stockage partagé local. Remplacez toutefois l'adresse IP du noeud à l'étape 5 par une autre (par ex. node02 > 10.0.0.2).

A.4.3 Installation de Sentinel

Sentinel peut être installé de deux façons : vous pouvez installer tous les composants de Sentinel à l'emplacement de stockage partagé (en utilisant l'option --location pour rediriger l'installation de Sentinel vers l'emplacement de montage du stockage partagé) ou y placer uniquement les données variables de l'application.

Dans notre exemple de solution, nous suivrons cette seconde approche et installerons Sentinel sur chaque noeud de cluster qui peut l'héberger. À la première installation de Sentinel, nous effectuerons une installation complète, y compris les fichiers binaires de l'application, la configuration et toutes les banques de données. Les installations suivantes sur les autres noeuds de cluster installeront uniquement l'application et supposeront que les données effectives de Sentinel seront disponibles ultérieurement (par ex. une fois le stockage partagé monté).

Exemple de solution :

Dans cet exemple, nous installerons Sentinel sur chaque noeud de cluster et n'enregistrerons sur le stockage partagé que les données variables de l'application. De cette façon, les fichiers binaires et la configuration de l'application restent à leur emplacement standard. Nous pouvons alors vérifier les RPM et prendre en charge l'application de correctifs à chaud dans certains scénarios.

Installation sur le premier noeud

  1. Connectez-vous à l'un des noeuds de cluster (node01) et ouvrez une fenêtre de console.

  2. Téléchargez le programme d'installation de Sentinel (fichier tar.gz) et enregistrez-le dans le répertoire /tmp sur le noeud de cluster.

  3. Exécutez les commandes suivantes :

    mount /dev/<SHARED1> /var/opt/novell
    
    cd /tmp
    
    tar -xvzf sentinel_server*.tar.gz
    
    cd sentinel_server*
    
    ./install-sentinel --record-unattended=/tmp/install.props
    
  1. Exécutez l'installation standard et configurez le produit comme il se doit. Le programme d'installation installe les fichiers binaires, la configuration, les bases de données et configure les noms d'utilisateur, les mots de passe et les ports réseau.

  2. Démarrez Sentinel et testez les fonctions de base. Vous pouvez utiliser l'adresse IP de noeud de cluster externe standard pour accéder au produit.

  3. Fermez Sentinel et démontez le stockage partagé :

    rcsentinel stop
    
    umount /var/opt/novell
    

    Cette étape supprime les scripts de démarrage automatique pour permettre au cluster de gérer le produit.

    cd /
    
    insserv -r sentinel
    

Installation sur les noeuds suivants

Répétez l'installation sur les autres noeuds :

Le programme d'installation initial de Sentinel crée pour le produit un compte utilisateur qui emploie l'ID utilisateur suivant disponible au moment de l'installation. Les installations suivantes en mode sans surveillance tentent d'employer le même ID utilisateur pour la création du compte, mais des conflits sont possibles (si les noeuds de cluster ne sont pas identiques au moment de l'installation). Il est vivement recommandé d'effectuer l'une des opérations suivantes :

  • Synchronisez la base de données des comptes utilisateur sur l'ensemble des noeuds de cluster (manuellement via LDAP ou méthode similaire) avant de commencer les autres installations. De cette façon, le programme d'installation détectera la présence du compte utilisateur existant et l'emploiera.

  • Surveillez les résultats des installations sans surveillance suivantes. Un avertissement est émis si le compte utilisateur n'a pas pu être créé avec le même ID utilisateur.

  1. Connectez-vous à chaque noeud de cluster supplémentaire (node02) et ouvrez une fenêtre de console.

  2. Exécutez la commande suivante :

    cd /tmp
    
    scp root@node01:/tmp/sentinel_server*.tar.gz
    
    scp root@node01:/tmp/install.props
    
    tar -xvzf sentinel_server*.tar.gz
    
    ./install-sentinel --no-start --cluster-node --unattended=/tmp/install.props
    
    cd /
    
    insserv -r sentinel
    

À la fin de ce processus, Sentinel doit être installé sur tous les noeuds, mais il est très probable qu'il ne fonctionne correctement que sur le premier tant que les diverses clés n'ont pas été synchronisées. Cette synchronisation a lieu lors de la configuration des ressources de cluster.

A.4.4 Installation de clusters

Installez le logiciel de cluster sur chaque noeud et enregistrez chaque noeud de cluster auprès du gestionnaire. Les procédures pour ce faire dépendent de l'implémentation du cluster, mais à la fin du processus, chaque noeud de cluster doit s'afficher dans la console de gestion des clusters.

Dans notre exemple, nous allons configurer l'extension SUSE Linux Enterprise High Availability Extension et la superposer avec des agents de ressource propres à Sentinel :

Si vous n'utilisez pas l'agent de ressource OCF pour surveiller Sentinel, vous devez développer une solution de surveillance similaire pour l'environnement de cluster local. L'agent de ressource OCF pour Sentinel est un script Shell simple qui effectue différents contrôles pour vérifier si Sentinel est fonctionnel. Si vous souhaitez développer le vôtre, examinez l'agent de ressource existant à titre d'exemple (l'agent de ressource figure dans le fichier sentinel-ha.rpm du package de téléchargement Sentinel.)

Il existe de nombreuses manières de configurer un cluster SLE HAE, mais les options que nous allons sélectionner permettent à la procédure de rester relativement simple. La première étape consiste à installer le logiciel SLE HAE. La procédure est expliquée en détail dans la Documentation SLE HAE. Pour plus d'informations sur l'installation de produits complémentaires SLES, reportez-vous au Guide de déploiement.

Vous devez installer l'extension SLE HAE sur tous les noeuds de cluster (node01 et node02 dans notre exemple). Le produit complémentaire installe le logiciel de communication et de gestion du cluster principal ainsi que les nombreux agents de ressource utilisés pour surveiller les ressources de grappe.

Une fois le logiciel de cluster installé, vous devez encore installer un RPM supplémentaire afin de disposer des agents de ressource de grappe spécifiques à Sentinel. Le RPM se trouve dans le fichier novell-Sentinel-ha-7.1*.rpm contenu dans le paquetage de téléchargement normal de Sentinel que vous avez décompressé pour installer le produit.

Sur chaque noeud de cluster, copiez le fichier novell-Sentinel-ha-7.1*.rpm dans le répertoire /tmp, puis entrez les commandes suivantes :

cd /tmp
rpm -i novell-Sentinel-ha-7.1*.rpm

A.4.5 Configuration du cluster

Le logiciel de cluster doit être configuré pour enregistrer chaque noeud en tant que membre du cluster. Dans le cadre de cette configuration, vous pouvez également définir des paramètres d'isolement ainsi que les ressources STONITH pour assurer la cohérence du cluster.

Dans notre exemple de solution, nous utilisons la plus simple des configurations, sans redondance supplémentaire ni la moindre fonction avancée. De même, nous utilisons une adresse monodiffusion (au lieu de l'adresse multidiffusion recommandée) car elle nécessite moins d'interaction avec les administrateurs réseau et suffit pour effectuer des tests. Nous configurons également une simple ressource d'isolement SBD.

Exemple de solution :

L'exemple de solution utilise des adresses IP pour les communications de cluster internes et applique la monodiffusion pour ne pas devoir demander d'adresse multidiffusion à l'administrateur réseau. La solution utilise également une cible iSCSI configurée sur la machine virtuelle SUSE Linux qui héberge déjà le système de stockage partagé pour servir de périphérique SBD à des fins d'isolement. Comme indiqué ci-avant, les périphériques iSCSI peuvent être créés à l'aide d'un fichier ou d'un périphérique de bloc, mais pour plus de simplicité, nous utiliserons dans ce cas un fichier créé à cette fin.

La procédure suivante ressemble fort à celle de la configuration du stockage partagé :

Configuration du périphérique SBD

Connectez-vous à storage03 et démarrez une session de console. Utilisez la commande dd pour créer un fichier vide de la taille souhaitée :

dd if=/dev/zero of=/sbd count=1024 bs=1024

Dans ce cas, nous créons un fichier de 1 Mo rempli de zéros (copié à partir de /dev/zeropseudo-device).

Configurez ce fichier en tant que cible iSCSI :

  1. Exécutez YaST à partir de la ligne de commande (ou utilisez l'interface graphique si vous préférez) : /sbin/yast

  2. Sélectionnez Network Services (Services réseau) > iSCSI Target (Cible iSCSI).

  3. Cliquez sur Cibles, puis sélectionnez la cible existante.

  4. Sélectionnez Modifier. L'interface utilisateur propose une liste des numéros d'unité logique disponibles.

  5. Cliquez sur Ajouter pour ajouter un numéro d'unité logique.

  6. Laissez 2 comme numéro d'unité logique. Accédez à la boîte de dialogue Chemin d'accès, puis sélectionnez le fichier /sbd que vous avez créé.

  7. Laissez les valeurs par défaut des autres options, puis cliquez sur OK, sur Suivant et une fois encore sur Suivant pour sélectionner les options d'authentification par défaut.

  8. Cliquez sur Terminer pour quitter la configuration. Redémarrez les services si nécessaire. Quittez YaST.

REMARQUE :la procédure suivante nécessite que chaque noeud de cluster puisse résoudre le nom d'hôte de l'ensemble des noeuds de cluster (faute de quoi le fichier csync2 de synchronisation des services échouera). Si DNS n'est pas configuré ou est indisponible, ajoutez des entrées pour chaque hôte au fichier /etc/hosts qui répertorie chaque adresse IP et son nom d'hôte (telles qu'elles sont signalées par la commande hostname).

Cette procédure doit exposer une cible iSCSI pour le périphérique SBD sur le serveur à l'adresse IP 10.0.0.3 (storage03).

Configuration du noeud

Connectez-vous à un noeud de cluster (node01) et ouvrez une console :

  1. Exécutez YaST.

  2. Cliquez sur Network Services (Services réseau) > iSCSI Initiator (Initiateur iSCSI).

  3. Sélectionnez Connected Targets (Cibles connectées), puis choisissez la cible iSCSI configurée ci-dessus.

  4. Sélectionnez l'option Se déconnecter, puis déconnectez-vous de la cible.

  5. Basculez vers l'onglet Discovered Targets (Cibles découvertes), sélectionnez Target (Cible), puis reconnectez-vous pour rafraîchir la liste des périphériques. Ne modifiez pas l'option de démarrage automatique, ni No Authentication (Pas d'authentification).

  6. Sélectionnez OK pour quitter l'outil de l'initiateur iSCSI.

  7. Ouvrez System (Système) > Partitioner (Partitionneur) et identifiez le périphérique SBD comme suit : 1MB IET-VIRTUAL-DISK. Il sera répertorié en tant que /dev/sdd ou une forme similaire (prenez-en note).

  8. Quittez YaST.

  9. Exécutez la commande ls -l /dev/disk/by-id/ et notez l'ID de périphérique lié au nom de périphérique situé ci-dessus.

  10. Exécutez la commande sleha-init.

  11. À l'invite de saisie de l'adresse réseau vers laquelle effectuer la liaison, spécifiez l'adresse IP de la carte réseau externe (172.16.0.1).

  12. Acceptez le port et l'adresse de multidiffusion par défaut. Nous modifierons ces paramètres par la suite.

  13. Entrez « y » pour activer SBD, puis spécifiez /dev/disk/by-id/<ID_périphérique>, sachant que <ID_périphérique> est l'ID que vous avez trouvé ci-dessus (vous pouvez utiliser Tab pour compléter le chemin automatiquement).

  14. Suivez les étapes de l'assistant et veillez à ce qu'aucune erreur ne soit signalée.

  15. Démarrez YaST.

  16. Sélectionnez High Availability (Haute disponibilité) > Cluster (ou simplement Cluster sur certains systèmes).

  17. Dans la zone à gauche, veillez à ce que l'option Communication Channels (Canaux de communication) soit sélectionnée.

  18. Accédez à la première ligne de la configuration, puis modifiez la sélection udp en udpu (cette opération désactive la multidiffusion au profit de la monodiffusion).

  19. Sélectionnez Add a Member Address (Ajouter une adresse de membre), spécifiez ce noeud (172.16.0.1), puis répétez l'opération pour ajouter les autres noeuds de cluster : 172.16.0.2.

  20. Cliquez sur Terminer pour achever la configuration.

  21. Quittez YaST.

  22. Exécutez la commande /etc/rc.d/openais restart, pour redémarrer les services de cluster avec le nouveau protocole de synchronisation.

Connectez-vous à chaque noeud de cluster supplémentaire (node02) et ouvrez une console :

  1. Exécutez la commande suivante :sleha-join

  2. Entrez l'adresse IP du premier noeud de cluster.

Dans certains cas, les communications de cluster ne s'initialisent pas correctement. Si le cluster ne démarre pas (le service openais ne parvient pas à démarrer) :

  • Copiez manuellement le fichier corosync.conf de node1 vers node02 ou exécutez csync2 -x -v sur node1. Vous pouvez aussi paramétrer manuellement le cluster sur node02 à l'aide de YaST.

  • Exécutez /etc/rc.d/openais start sur node02.

Dans certains cas, le script risque d'échouer car le service xinetd n'ajoute pas correctement le nouveau service csync2. Ce service est nécessaire pour que l'autre noeud puisse synchroniser les fichiers de configuration du cluster sur ce noeud. En cas d'erreurs du type csync2 run failed (échec de l'exécution de csync2), ce problème risque de vous concerner. Pour le résoudre, exécutez kill -HUP `cat /var/run/xinetd.init.pid, puis réexécutez le script sleha-join.

À ce stade, vous devriez pouvoir exécuter la commande crm_mon sur chaque noeud de cluster et constater que le cluster s'exécute correctement. Une alternative consiste à utiliser « hawk », la console Web. Les références de connexion par défaut sont « hacluster / linux  ».

Deux autres paramètres doivent être légèrement modifiés pour cet exemple ; leur application au cluster de production d'un client dépend de sa configuration :

  1. Définissez l'option de cluster globale no-quorum-policy sur ignore. Ce paramètre est ignoré car notre cluster ne compte que deux noeuds. Dès lors, le moindre échec de l'un des noeuds interromprait le quorum et provoquerait l'interruption de l'ensemble du cluster : crm configure property no-quorum-policy=ignore

    REMARQUE :si votre cluster comporte plusieurs noeuds, ne définissez pas cette option.

  2. Définissez l'option de cluster globale default-resource-stickiness sur 1. Cela incitera le gestionnaire des ressources à poursuivre l'exécution des ressources plutôt que de les déplacer : crm configure property default-resource-stickiness=1.

A.4.6 Configuration des ressources

Comme mentionné dans la section dédiée à l'installation de clusters, cette solution fournit un agent de ressource OCF pour surveiller les principaux services hébergés par SLE HAE, mais vous pouvez créer des alternatives si vous le souhaitez. Le logiciel dépend également de plusieurs autres ressources pour lesquelles des agents de ressource sont fournis par défaut avec SLE HAE. Si vous ne souhaitez pas utiliser SLE HAE, vous devez surveiller ces ressources supplémentaires à l'aide d'une autre technologie :

  • une ressource de système de fichiers correspondant au système de stockage partagé utilisé par le logiciel.

  • une ressource d'adresse IP correspondant à l'adresse IP virtuelle donnant accès aux services.

  • le logiciel de base de données Postgres utilisé pour stocker les métadonnées de configuration et d'événement.

Il existe d'autres ressources, notamment MongoDB utilisé pour Security Intelligence et le bus de messages ActiveMQ. Pour l'instant, ces ressources, au minimum, sont surveillées dans le cadre des services de base.

Exemple de solution

Cet exemple de solution utilise des versions simplifiées des ressources requises telles que l'agent de ressource simple du système de fichiers. Au besoin, vous pouvez utiliser des ressources de grappe plus sophistiquées telles que cLVM (une version de volume logique du système de fichiers).

La solution de l'exemple fournit un script crm facilitant la configuration du cluster. Le script extrait les variables de configuration pertinentes du fichier d'installation sans surveillance généré dans le cadre de l'installation de Sentinel. Si vous n'avez pas généré de fichier d'installation ou que vous souhaitez modifier la configuration des ressources, vous pouvez modifier le script en conséquence.

Connectez-vous au noeud d'origine sur lequel vous avez installé Sentinel (ce doit être le noeud sur lequel vous avez effectué une installation complète de Sentinel) et procédez comme suit (<SHARED1> est le volume partagé créé ci-dessus) :

mount /dev/<SHARED1> /var/opt/novell
cd /usr/lib/ocf/resource.d/novell
./install-resources.sh

Si vous rencontrez des problèmes lors de l'arrivée de nouvelles ressources dans le cluster; exécutez la commande /etc/rc.d/openais restart sur node02.

Le script install-resources.sh vous demande d'entrer quelques valeurs, à savoir l'adresse IP virtuelle que vous souhaitez voir utilisée pour l'accès à Sentinel ainsi que le nom du périphérique de stockage partagé. Il crée ensuite automatiquement les ressources de grappe requises. N'oubliez pas que le script exige que le volume partagé soit déjà monté, mais aussi que le fichier d'installation sans surveillance créé pendant l'installation de Sentinel soit présent à l'emplacement /tmp/install.props. Vous ne devez exécuter ce script que sur le premier noeud installé ; tous les fichiers de configuration pertinents seront automatiquement synchronisés avec les autres noeuds.

Si l'environnement du client diffère de la solution de l'exemple, vous pouvez modifier le fichier resources.cli (dans le même répertoire) et modifier les définitions à partir de ce fichier. Par exemple, la solution de l'exemple utilise une ressource de système de fichiers simple, mais vous préférerez peut-être utiliser une ressource cLVM davantage axée sur le cluster.

Après avoir exécuté le script Shell, vous pouvez exécuter une commande d'état crm. Le résultat devrait se présenter comme suit :

crm status
Last updated: Thu Jul 26 16:34:34 2012
Last change: Thu Jul 26 16:28:52 2012 by hacluster via crmd on node01
Stack: openais
Current DC: node01 - partition with quorum
Version: 1.1.6-b988976485d15cb702c9307df55512d323831a5e
2 Nodes configured, 2 expected votes
5 Resources configured.
Online: [ node01, node02 ]
stonith-sbd    (stonith:external/sbd):    Started node01
 Resource Group: sentinelgrp
     sentinelip    (ocf::heartbeat:IPaddr2):    Started node01
     sentinelfs    (ocf::heartbeat:Filesystem):    Started node01
     sentineldb    (ocf::novell:pgsql):    Started node01
     sentinelserver    (ocf::novell:sentinel):    Started node01

À ce stade, les ressources Sentinel pertinentes doivent être configurées dans le cluster. Vous pouvez examiner la façon dont elles sont configurées et groupées dans l'outil de gestion du cluster, par exemple, en exécutant l'état crm.

A.4.7 Configuration du stockage réseau

Afin de finaliser ce processus, configurez le stockage réseau pour que Sentinel puisse migrer les partitions d'événement vers un système de stockage meilleur marché. Cette étape est facultative, le système de stockage réseau ne devant effectivement pas obtenir le même niveau de haute disponibilité que celui dont bénéficiait le reste du système. Vous pouvez utiliser n'importe quel répertoire (monté à partir d'un SAN ou non), ou un volume NFS ou CIFS.

Cliquez sur Stockage en haut, dans la barre de menus, puis sélectionnez Configuration. Pour effectuer ce paramétrage, sélectionnez ensuite l'un des boutons sous Stockage réseau non configuré.

Exemple de solution

Dans l'exemple, la solution utilise une simple cible iSCSI comme emplacement de stockage réseau partagé avec une configuration relativement comparable à celle du système de stockage local. Dans les implémentations de production, les technologies de stockage seront probablement différentes.

Utilisez la procédure suivante pour configurer le stockage réseau que Sentinel doit utiliser :

REMARQUE :comme nous utilisons une cible iSCSI pour cet exemple, la cible est montée en tant que répertoire à utiliser comme stockage réseau. Nous devons dès lors configurer le montage en tant que ressource du système de fichiers d'une manière similaire à celle utilisée pour la configuration du système de fichiers de stockage local. Ce paramétrage n'a pas été effectué automatiquement par le script d'installation de la ressource. Étant donné que d'autres variations sont possibles, nous procédons dans ce cas-ci à une configuration manuelle.

  1. Passez en revue les étapes ci-dessus pour déterminer quelle partition a été créée pour accueillir le stockage réseau (/dev/<NETWORK1> ou une appellation similaire à /dev/sdc1). Créez au besoin un répertoire vide sur lequel la partition peut être montée (par exemple, /var/opt/netdata).

  2. Configurez le système de fichiers réseau en tant que ressource de cluster : utilisez l'interface graphique Web ou exécutez la commande :

    crm configure primitive sentinelnetfs ocf:heartbeat:Filesystem params device="/dev/<NETWORK1>" directory="<PATH>" fstype="ext3" op monitor interval=60s
    

    /dev/<NETWORK1> représente la partition créée dans la section Configuration du stockage partagé ci-dessus et <PATH> est le répertoire local sur lequel elle peut être montée.

  3. Ajoutez la nouvelle ressource au groupe des ressources gérées :

     crm resource stop sentinelgrp
     crm configure delete sentinelgrp
     crm configure group sentinelgrp sentinelip sentinelfs sentinelnetfs sentineldb sentinelserver
     crm resource start sentinelgrp
    
  4. Vous pouvez vous connecter au noeud qui héberge actuellement les ressources (utilisez l'état crm ou Hawk). Vérifiiez que le stockage réseau est correctement monté (utilisez la commande de montage).

  5. Connectez-vous à l'interface Web de Sentinel.

  6. Sélectionnez Stockage, puis Configuration, puis SAN (monté localement)) sous Stockage réseau non configuré.

  7. Entrez le chemin de l'emplacement dans lequel le stockage réseau est monté, par exemple /var/opt/netdata.

L'exemple de solution utilise des versions simples des ressources requises telles que l'agent de ressource simple du système de fichiers. S'ils le souhaitent, les clients peuvent utiliser des ressources de grappe plus sophistiquées telles que cLVM (une version de volume logique du système de fichiers).