Cette section explique la procédure à suivre pour installer et paramétrer ce qui suit afin de configurer l'environnement en grappe. Pour plus d'informations sur la configuration de SLES High Availability Extension, reportez au Guide de SUSE Linux Enterprise High Availability Extension.
Une cible iSCSI est un périphérique configuré en tant que périphérique de stockage commun pour tous les noeuds de la grappe. Il s'agit d'un disque virtuel créé sur le serveur Linux afin de permettre l'accès à distance via une connexion Ethernet par un initiateur iSCSI. Tout noeud de la grappe configuré pour contacter la cible (iSCSI) pour des services est un initiateur iSCSI. La cible iSCSI doit toujours être active et en cours d'exécution de sorte que n'importe quel hôte agissant en tant qu'initiateur puisse atteindre la cible. Avant de procéder à l'installation de la cible iSCSI sur le serveur iSCSI, assurez-vous que celle-ci dispose de suffisamment d'espace pour un stockage commun. Installez les paquetages de l'initiateur iSCSI sur les deux autres noeuds après avoir installé SLES 12 SP1.
Pendant l'installation de SLES 12 SP1 :
Créez une partition distincte et indiquez son chemin comme partition de stockage partagé iSCI.
Installez les paquetages cibles iSCSI.
Pour configurer le serveur iSCSI :
Créez un périphérique de bloc sur le serveur cible.
Entrez la commande yast2 disk sur le terminal.
Créez une nouvelle partition Linux et sélectionnez Do not format (Ne pas formater).
Sélectionnez Do not mount the partition (Ne pas monter la partition).
Définissez la taille de la partition.
Entrez la commande yast2 iscsi-server sur le terminal.
Cliquez sur l'onglet Service, puis sélectionnez When Booting (Au démarrage) dans Service Start (Lancement du service).
Sous l'onglet Targets (Cibles), cliquez sur Add (Ajouter) pour entrer le chemin de la partition (tel que créé lors de l'installation de SLES).
Cliquez sur Finish (Terminer).
Exécutez la commande cat /proc/net/iet/volume sur le terminal pour vérifier que la cible iSCSI est installée.
Vous devez configurer l'initiateur iSCSI sur tous les noeuds de la grappe pour qu'il se connecte à la cible iSCSI.
Pour configurer l'initiateur iSCSI :
Installez les paquetages de l'initiateur iSCSI.
Exécutez le client yast2 iscsi-client sur le terminal.
Cliquez sur l'onglet Service et sélectionnez When Booting (Au démarrage) dans Service Start (Lancement du service).
Cliquez sur l'onglet Connected Targets (Cibles connectées), puis sur Add (Ajouter) pour entrer l'adresse IP du serveur cible iSCSI.
Sélectionnez No Authentication (Aucune authentification).
Cliquez sur Next (Suivant), puis sur Connect (Se connecter).
Cliquez sur Toggle Start-up (Changer le démarrage) pour passer du démarrage manuel au démarrage automatique, puis cliquez sur Next (Suivant).
Cliquez sur Next (Suivant), puis sur OK.
Pour vérifier l'état de l'initiateur connecté sur le serveur cible, exécutez la commande cat /proc/net/iet/session sur le serveur cible. La liste des initiateurs connectés au serveur iSCSI s'affiche.
Créez deux partitions de stockage partagé : l'une pour le détecteur de vues de grappe divergentes (SBD) et l'autre pour OCFS2 (Oracle Cluster File System 2).
Pour partitionner le stockage partagé :
Exécutez la commande yast2 disk sur le terminal.
Dans la boîte de dialogue Expert Partitioner (Partitionneur en mode expert), sélectionnez le volume partagé. Dans notre exemple, sélectionnez sdb dans la boîte de dialogue Expert Partitioner (Partitionneur en mode expert).
Cliquez sur Add (Ajouter), sélectionnez l'option Primary partition (Partition principale), puis cliquez sur Next (Suivant).
Sélectionnez Custom size (Taille personnalisée), puis cliquez sur Next (Suivant). Dans notre exemple, la taille personnalisée est 10 Mo.
Sous Formatting options (Options de formatage), sélectionnez Do not format partition (Ne pas formater la partition). Dans notre exemple, l'ID du système de fichiers est 0x83 Linux.
Sous Mounting options (Options de montage), sélectionnez Do not mount partition (Ne pas monter la partition), puis cliquez sur Finish (Terminer).
Cliquez sur Add (Ajouter), puis sélectionnez Primary partition (Partition principale).
Cliquez sur Next (Suivant), puis sélectionnez Maximum Size (Taille maximale) et cliquez sur Next (Suivant).
Dans Formatting options (Options de formatage), cliquez sur Do not format partition (Ne pas formater la partition). Dans notre exemple, définissez l'ID du système de fichiers comme 0x83 Linux.
Dans Mounting options (Options de montage), sélectionnez Do not mount partition (Ne pas monter la partition), puis cliquez sur Finish (Terminer).
Pour installer l'extension Haute disponibilité :
Accédez au site Web de téléchargement NetIQ.
Dans le menu Product or Technology (Produit ou technologie), sélectionnez SUSE Linux Enterprise HAExtension, puis cliquez sur Search (Rechercher).
REMARQUE :sélectionnez et installez le fichier ISO d'extension Haute disponibilité adapté à votre architecture système.
Téléchargez le fichier ISO sur chaque serveur.
Ouvrez la boîte de dialogue Centre de contrôle YaST et cliquez sur Produits complémentaires > Ajouter.
Cliquez sur Parcourir et sélectionnez l'image ISO locale, puis cliquez sur Suivant.
Dans la boîte de dialogue Tâches système et sélection de logiciels, sélectionnez Haute disponibilité. Répétez cette étape sur l'autre serveur.
Configurez les adresses IP monodiffusion pour Heartbeat :
Configurez l'autre interface sur les deux noeuds avec les adresses IP statiques qui seront utilisées pour la communication de noeud (Heartbeat). Dans notre exemple, les adresses IP sont 10.10.10.13 sur le noeud 1 et 10.10.10.14 sur le noeud 2.
Effectuez un test ping sur les deux serveurs en utilisant leurs noms d'hôte pour tester leur connectivité.
IMPORTANT :si les machines ne parviennent pas à s'envoyer réciproquement une requête ping, modifiez le fichier local /etc/hosts et ajoutez les noms d'hôte des autres noeuds ainsi que leurs adresses IP. Dans notre exemple, le fichier /etc/hosts contient les éléments suivants :
10.10.10.13 sles11sp2-idm1
10.10.10.14 sles11sp2-idm2
Sur le noeud 1, exécutez la commande cluster yast2 sur le terminal.
Dans la boîte de dialogue Grappe - Canaux de communication, précisez les détails suivants :
Définissez le protocole de transport sur UDPU.
Définissez le champ Adresse réseau lié qui correspond à l'adresse réseau des adresses IP monodiffusion. Dans notre exemple, l'adresse réseau de liaison est 10.10.10.0.
Définissez le champ Port de multidiffusion. Dans notre exemple, le port de multidiffusion est 5405.
Cliquez sur Ajouter pour entrer l'adresse IP de chaque noeud à l'adresse membre. Dans notre exemple, les adresses IP sont 10.10.10.13 sur le noeud 1 et 10.10.10.14 sur le noeud 2.
Sélectionnez Auto generate Note ID (Générer automatiquement l'ID billet), puis cliquez sur Suivant.
Dans la boîte de dialogue Grappe - Sécurité, sélectionnez Activer l'authentification de sécurité, définissez Threads sur 1, puis cliquez sur Generate Auth Key File (Générer le fichier de clé d'authentification).
Cela crée une clé d'authentification pour permettre à d'autres noeuds de rejoindre votre grappe. La clé est stockée à l'emplacement /etc/corosync/authkey. Copiez ce fichier sur l'autre noeud.
Dans la boîte de dialogue Grappe - Service, sélectionnez On--Start openais at booting (Activé - Démarrer OpenAIS à l'amorçage), puis cliquez sur Start openais Now (Démarrer OpenAIS maintenant).
Sélectionnez Start Management as well (Démarrer la gestion également) pour permettre à la grappe d'être gérée par crm_gui. Pour plus d'informations, reportez-vous à la Section A.2.2, Configuration de l'initiateur iSCSI sur tous les noeuds.
Dans le tableau Hôte de synchronisation, effectuez les opérations suivantes :
Cliquez sur Ajouter pour ajouter les noms d'hôte des noeuds de la grappe.
Cliquez sur Générer les clés prépartagées pour synchroniser le fichier de configuration entre les noeuds, puis copiez-le sur l'autre noeud. Le fichier de clé est stocké dans /etc/csync2/key_hagroup.
Dans le volet Fichier à synchroniser, cliquez sur Ajouter les fichiers suggérés pour générer automatiquement une liste de fichiers communs à synchroniser entre les noeuds.
Cliquez sur Activer csync2, puis sur Suivant.
Cliquez sur Suivant, puis sur Terminer.
Exécutez la commande passwd hacluster pour définir le mot de passe de l'utilisateur de la grappe haute disponibilité hacluster sur tous les noeuds.
REMARQUE :définissez le même mot de passe pour l'utilisateur hacluster sur les noeuds.
Exécutez les commandes suivantes pour copier les fichiers de configuration et les clés d'authentification sur l'autre noeud :
# scp /etc/csync2/csync2.cfg node2:/etc/csync2/
# scp /etc/csync2/key_hagroup node2:/etc/csync2/
# scp /etc/corosync/authkey node2:/etc/corosync/
# scp /etc/corosync/corosync.conf node2:/etc/corosync/
Redémarrez tous les noeuds une fois les fichiers de configuration copiés sur le noeud 2.
Exécutez la commande csync2 -xv.
Créez le répertoire mkdir -p /share pour monter le stockage partagé.
Sur le noeud 2, effectuez les étapes suivantes :
Exécutez la commande yast2 cluster sur le terminal.
REMARQUE :la fenêtre de l'assistant n'apparaît pas, car le fichier de configuration a déjà été copié.
Sous l'onglet Service, sélectionnez On -- Start openais at booting (Activé -- Démarrer OpenAIS à l'amorçage), puis cliquez sur Start openais Now (Démarrer OpenAIS maintenant).
Sous l'onglet Configurer Csync2, cliquez sur Activer csync2, puis sur Terminer.
Créez le répertoire mkdir -p /share pour monter le stockage partagé.
La grappe devrait être opérationnelle.
Exécutez la commande crm_mon sur le terminal pour vérifier l'état. Voici un exemple de sortie :
============ Last updated: Fri Aug 5 16:38:36 2011 Stack: openais Current DC: node1 - partition with quorum Version: 1.1.2-2e096a41a5f9e184a1c1537c82c6da1093698eb5 2 Nodes configured, 2 expected votes 0 Resources configured. ============ Online: [node1 node2]
Une ressource est une application ou un service géré par la grappe. La pile logicielle de la grappe surveille les ressources pour vérifier qu'elles sont opérationnelles. Si pour une raison quelconque, une ressource cesse de fonctionner, la grappe détecte la défaillance et démarre ou redémarre la ressource sur l'autre noeud pour assurer la haute disponibilité. Dans notre exemple, les options globales de la grappe sont configurées sur le noeud 1.
Pour configurer la ressource haute disponibilité sur le noeud 1 :
Exécutez la commande crm_gui sur le terminal.
Cliquez sur le menu Connexion > Login. Connectez-vous à l'aide de l'adresse IP de l'un des noeuds.
Cliquez sur l'onglet Configuration CRM, puis remplacez Default Resource Stickiness (Attractivité par défaut des ressources) par une valeur positive.
Cela permet de maintenir les ressources de la grappe à l'emplacement actuel. Dans notre exemple, la valeur est 1.
Définissez Pas de stratégie de quorum sur Ignorer.
Cela garantit le fonctionnement des services de la grappe même si l'un des noeuds est arrêté.
Cliquez sur Appliquer.
Avant de créer le volume OCSF2, vous devez configurer les ressources suivantes en tant que services de la grappe :
Distributed Lock Manager (DLM)
O2CB
Ressource STONITH
OCFS2 nécessite une ressource DLM pour s'exécuter sur tous les noeuds de la grappe et ; il est généralement configuré comme un clone. Dans notre exemple, les ressources OCFS sont configurées sur le noeud 1.
Pour configurer les ressources DLM et O2CB sur le noeud 1 :
Démarrez le programme shell et connectez-vous en tant qu'utilisateur root ou équivalent.
Exécutez la commande crm configure sur le terminal.
Exécutez la commande suivante pour créer des ressources primitives pour DLM et O2CB :
primitive dlm ocf:pacemaker:controld op monitor interval="60" timeout="60" primitive o2cb ocf:ocfs2:o2cb op monitor interval="60" timeout="60"
REMARQUE :la ressource clone DLM contrôle le service DLM afin de vérifier qu'il est démarré sur tous les noeuds de la grappe. En raison de la colocalisation et du classement internes du groupe de base, le service O2CB est uniquement démarré sur les noeuds où une copie du service DLM est déjà en cours d'exécution.
Exécutez la commande suivante pour créer le groupe de base et le clone de base :
group base-group dlm o2cb clone base-clone base-group meta interleave="true" target-role="Started"
Exécutez la commande show pour afficher les modifications.
Exécutez la commande commit, puis entrez Exit.
Il est recommandé de créer une partition de 10 Mo au démarrage du périphérique. (Dans notre exemple, la partition SBD est désignée par /dev/sdb1.)
IMPORTANT :assurez-vous que vous travaillez avec des noms de périphériques qui ne changent pas. Vous devez travailler sur un périphérique dont le nom commence par /dev/disk/by-id. Par exemple, pour assigner le périphérique /dev/disk/by-id/scsi -149455400000000000000000003000000250600000f000000 en tant que périphérique SBD STONITH, utilisez sbd -d /dev/disk/by-id/scsi 149455400000000000000000003000000250600000f000000 create.
Exécutez la commande ls -l pour vérifier le nom du périphérique.
Sur un terminal, exécutez la commande suivante pour initialiser le périphérique SBD sur le noeud 1 :
sbd -d /dev/sdb1 create
Exécutez la commande sbd -d /dev/sdb1 dump pour vérifier les informations suivantes qui ont été écrites sur le périphérique :
Header version : 2
Number of slots : 255
Sector size : 512
Timeout (watchdog) : 5
Timeout (allocate) : 2
Timeout (loop) : 1
Timeout (msgwait) : 10
Dans l'extension Haute disponibilité de SLES, la prise en charge de la surveillance dans le kernel est activée par défaut. Cette fonctionnalité est fournie avec différents modules de kernel qui proposent des pilotes de surveillance spécifiques au matériel. Le pilote de surveillance correspondant à votre matériel est automatiquement chargé au démarrage du système.
Softdog est le pilote le plus générique. Comme la plupart des noms de pilotes de surveillance contiennent des chaînes telles que wd, wdt et dog, exécutez la commande suivante pour vérifier que le pilote est actuellement chargé :
lsmod | grep wd
Pour démarrer le daemon SBD sur le noeud 1 :
Sur un terminal, exécutez la commande rcopenais stop pour arrêter OpenAIS.
Créez le fichier /etc/sysconfig/sbd, puis ajoutez ce qui suit :
SBD_DEVICE="/dev/sdb1"
#The next line enables the watchdog support:
SBD_OPTS="-W"
REMARQUE :si le périphérique SBD n'est pas accessible, le daemon ne parvient pas à démarrer et empêche le démarrage d'OpenAIS.
Exécutez la commande yast2 cluster sur le terminal.
Sous l'onglet Configurer Csync2, cliquez sur Ajouter sous le volet Fichier à synchroniser et indiquez le chemin du fichier SBD comme suit :
/etc/sysconfig/sbd
Cliquez sur OK.
Dans le volet Fichier à synchroniser, cliquez sur Ajouter les fichiers suggérés pour générer automatiquement une liste de fichiers communs à synchroniser entre les noeuds.
Exécutez la commande csync2 -xv.
Exécutez la commande sbd -d /dev/sdb1 allocate <nom_noeud pour allouer les noeuds. Exécutez cette commande deux fois pour allouer les noms de noeud au périphérique SDB. Dans notre exemple, les commandes suivantes sont exécutées comme suit.
sbd -d/dev/sdb1 allocate sles11sp2-idm1 sbd -d/dev/sdb1 allocate sles11sp2-idm2
Exécutez la commande rcopenais start pour démarrer OpenAIS.
Pour tester le SBD sur le Noeud 1 :
Exécutez la commande sbd -d /dev/sdb1 list pour vider les emplacements de noeud et leurs messages actuels du périphérique SBD.
Exécutez la commande sbd -d /dev/sdb1 message SLES11SP2-idm2 test pour envoyer un message de test à l'un des noeuds.
Le noeud accuse réception du message dans les journaux système. Voici un exemple de message :
Aug 29 14:10:00 SLES11SP2-idm2 sdb1: [13412]: info: Received command test from SLES11SP2-idm1 on disk /dev/sdb1
IMPORTANT :l'accusé de réception confirme que le SBD est opérationnel sur le noeud et indique qu'il est prêt à recevoir des messages.
Pour terminer la configuration du SBD, activez-le en tant que mécanisme STONITH/d'isolation dans la base d'informations de la grappe (CIB). Exécutez les commandes suivantes sur le terminal sur le noeud 1 :
node1# crm configure
crm(live)configure# property stonith-enabled="true"
crm(live)configure# property stonith-timeout="60s"
crm(live)configure# primitive stonith_sbd stonith:external/sbd params sbd_device="/dev/sdb1" meta is-managed="true"
crm(live)configure# commit
crm(live)configure# quit
REMARQUE :la valeur de timeout-stonith dépend de celle de timeout msgwait. Par exemple, si vous définissez la valeur default msgwait timeout sur 10 secondes, définissez la valeur de timeout-stonith sur 60 secondes.
Avant de commencer, préparez les périphériques de bloc que vous prévoyez d'utiliser pour votre volume OCFS2. Laissez les périphériques sur lesquels vous prévoyez d'utiliser le volume OCFS2 en tant qu'espace libre non alloué, puis créez et formatez le volume OCFS2 à l'aide de l'utilitaire mkfs.ocfs2.
Pour créer le volume OCFS2 sur le noeud 1 :
Ouvrez une fenêtre de terminal et connectez-vous en tant que root.
Exécutez la commande crm_mon pour vérifier si la grappe est en ligne.
Créez sur /dev/sdb2 un système de fichiers OCFS2 qui prend en charge jusqu'à deux noeuds de grappe, puis exécutez la commande suivante : mkfs.ocfs2 -N 2 /dev/sdb2
Pour monter un volume OCFS2 sur le noeud 1 :
Démarrez un shell et connectez-vous en tant qu'utilisateur root ou équivalent.
Exécutez la commande crm configure.
Configurez Pacemaker pour monter le système de fichiers OCFS2 sur chaque noeud de la grappe :
primitive ocfs2-1 ocf:heartbeat:Filesystem params device="/dev/sdb2" directory="/share" fstype="ocfs2" options="acl" op monitor interval="20" timeout="40"
Au cours des étapes suivantes, ajoutez la primitive du système de fichiers au groupe de base que vous avez configuré à la section Configuration des ressources DLM et O2CB :
Spécifiez la valeur edit base-group.
Dans l'éditeur vi, modifiez le groupe comme suit, puis enregistrez les modifications :
group base-group dlm o2cb ocfs2-1 meta target-role = "Started"
REMARQUE :en raison de la colocalisation et du classement internes du groupe de base, Pacemaker ne démarre la ressource OCFS2-1 que sur les noeuds sur lesquels une ressource O2CB est déjà en cours d'exécution.
Exécutez la commande show pour vérifier que vous avez bien configuré toutes les ressources nécessaires.
Exécutez la commande commit, puis entrez Exit.
Exécutez les commandes suivantes pour configurer la ressource IP sur le noeud 1 :
node1# crm configure crm(live)configure# primitive clusterip ocf:heartbeat:IPaddr operations $id="clusterip-operations" op monitor interval="5s" timeout="60s" params ip="10.52.190.15" meta resource-stickiness="100" target-role="Started" crm(live)configure# group eDir_group clusterip meta is-managed="true" target-role="Started" crm(live)configure# show crm(live)configure# commit
Pour installer eDirectory sur les noeuds de grappe :
Installez une version prise en charge d'eDirectory. Pour des instructions étape par étape pour configurer eDirectory sur des grappes haute disponibilité, reportez-vous à la section Deploying eDirectory on High Availability Clusters (Déploiement d'eDirectory sur des grappes haute disponibilité) dans l'eDirectory 8.8 Installation Guide (Guide d'installation d'eDirectory 8.8).
IMPORTANT :assurez-vous que l'adresse IP virtuelle est configurée sur le noeud 1 avant d'installer eDirectory sur ce dernier.
Installez Identity Manager sur le noeud 1 via l'option Serveur méta-annuaire.
Installez le moteur Identity Manager sur le serveur du noeud 2 via l'option DCLUSTER_INSTALL.
Exécutez la commande ./install.bin -DCLUSTER_INSTALL="true" sur le terminal.
Le programme d'installation installe les fichiers Identity Manager sans aucune interaction avec eDirectory.
Exécutez les commandes suivantes pour configurer la ressource eDirectory sur le noeud 1 :
node1# crm configure
crm(live)configure# primitive eDirectory ocf:heartbeat:eDir88 operations $id="eDirectory-operations" op monitor interval="15s" enabled="true" timeout="60s" on-fail="restart" start-delay="30s" params eDir_config_file="/etc/opt/novell/eDirectory/conf/nds.conf" meta resource-stickiness="100" target-role="Started" crm(live)configure# edit eDir_group
Dans l'éditeur vi, modifiez le groupe, puis ajoutez le texte « eDirectory » après l'adresse IP de la grappe de la façon suivante pour enregistrer vos modifications :
group eDir_group clusterip eDirectory \
meta is-managed="true" target-role="Started"
crm(live)configure# show crm(live)configure# commit
Dans la fenêtre principale de l'interface graphique de PaceMaker, cliquez sur l'onglet Gestion, puis démarrez eDir_group si les ressources ne sont pas en cours d'exécution. La figure suivante illustre les ressources qui sont opérationnelles dans la configuration de la grappe.