GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer un cluster Linux avec 2 nœuds sur RedHat et CentOS

Dans une configuration de cluster Linux actif-de secours, tous les services critiques, y compris IP, le système de fichiers basculeront d'un nœud à un autre nœud du cluster.

Ce didacticiel explique en détail comment créer et configurer un cluster redhat à deux nœuds à l'aide d'utilitaires de ligne de commande.

Voici les étapes de haut niveau impliquées dans la configuration du cluster Linux sur Redhat ou CentOS :

  • Installer et démarrer le service de cluster RICCI
  • Créer un cluster sur le nœud actif
  • Ajouter un nœud au cluster
  • Ajouter une clôture au cluster
  • Configurer le domaine de basculement
  • Ajouter des ressources au cluster
  • Synchroniser la configuration du cluster entre les nœuds
  • Démarrer le cluster
  • Vérifier le basculement en arrêtant un nœud actif

1. Packages de cluster requis

Assurez-vous d'abord que les packages de cluster suivants sont installés. Si vous ne disposez pas de ces packages, installez-les à l'aide de la commande yum.

[root@rh1 ~]# rpm -qa | egrep -i "ricci|luci|cluster|ccs|cman"
modcluster-0.16.2-28.el6.x86_64
luci-0.26.0-48.el6.x86_64
ccs-0.16.2-69.el6.x86_64
ricci-0.16.2-69.el6.x86_64
cman-3.0.12.1-59.el6.x86_64
clusterlib-3.0.12.1-59.el6.x86_64

2. Démarrer le service RICCI et attribuer un mot de passe

Ensuite, démarrez le service ricci sur les deux nœuds.

[root@rh1 ~]# service ricci start
Starting oddjobd:                                          [  OK  ]
generating SSL certificates...  done
Generating NSS database...  done
Starting ricci:                                            [  OK  ]

Vous devez également attribuer un mot de passe pour le RICCI sur les deux nœuds.

[root@rh1 ~]# passwd ricci
Changing password for user ricci.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

De plus, si vous utilisez le pare-feu iptables, gardez à l'esprit que vous devez avoir des règles de pare-feu appropriées sur les deux nœuds pour pouvoir communiquer entre eux.

3. Créer un cluster sur le nœud actif

À partir du nœud actif, veuillez exécuter la commande ci-dessous pour créer un nouveau cluster.

La commande suivante créera le fichier de configuration du cluster /etc/cluster/cluster.conf. Si le fichier existe déjà, il remplacera le cluster.conf existant par le cluster.conf nouvellement créé.

[root@rh1 ~]# ccs -h rh1.mydomain.net --createcluster mycluster
rh1.mydomain.net password:

[root@rh1 ~]# ls -l /etc/cluster/cluster.conf
-rw-r-----. 1 root root 188 Sep 26 17:40 /etc/cluster/cluster.conf

Gardez également à l'esprit que nous n'exécutons ces commandes qu'à partir d'un seul nœud du cluster et que nous ne sommes pas encore prêts à propager les modifications à l'autre nœud du cluster.

4. Fichier cluster.conf brut initial

Après avoir créé le cluster, le fichier cluster.conf ressemblera à ceci :

[root@rh1 ~]# cat /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="1" name="mycluster">
  <fence_daemon/>
  <clusternodes/>
  <cman/>
  <fencedevices/>
  <rm>
    <failoverdomains/>
    <resources/>
  </rm>
</cluster>

5. Ajouter un nœud au cluster

Une fois le cluster créé, nous devons ajouter les nœuds participants au cluster à l'aide de la commande ccs comme indiqué ci-dessous.

Tout d'abord, ajoutez le premier nœud rh1 au cluster comme indiqué ci-dessous.

[root@rh1 ~]# ccs -h rh1.mydomain.net --addnode rh1.mydomain.net
Node rh1.mydomain.net added.

Ensuite, ajoutez le deuxième nœud rh2 au cluster comme indiqué ci-dessous.

[root@rh1 ~]# ccs -h rh1.mydomain.net --addnode rh2.mydomain.net
Node rh2.mydomain.net added.

Une fois les nœuds créés, vous pouvez utiliser la commande suivante pour afficher tous les nœuds disponibles dans le cluster. Cela affichera également l'ID de nœud pour le nœud correspondant.

[root@rh1 ~]# ccs -h rh1 --lsnodes
rh1.mydomain.net: nodeid=1
rh2.mydomain.net: nodeid=2

6. Fichier cluster.conf après l'ajout de nœuds

Ce qui précède ajoutera également les nœuds au fichier cluster.conf comme indiqué ci-dessous.

[root@rh1 ~]# cat /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="3" name="mycluster">
  <fence_daemon/>
  <clusternodes>
    <clusternode name="rh1.mydomain.net" nodeid="1"/>
    <clusternode name="rh2.mydomain.net" nodeid="2"/>
  </clusternodes>
  <cman/>
  <fencedevices/>
  <rm>
    <failoverdomains/>
    <resources/>
  </rm>
</cluster>

7. Ajouter une clôture au cluster

Le fencing est la déconnexion d'un nœud du stockage partagé. La clôture coupe les E/S du stockage partagé, garantissant ainsi l'intégrité des données.

Un périphérique fence est un périphérique matériel qui peut être utilisé pour couper un nœud du stockage partagé.

Cela peut être accompli de différentes manières :éteindre le nœud via un interrupteur d'alimentation à distance, désactiver un port de commutateur Fibre Channel ou révoquer les réservations SCSI 3 d'un hôte.

Un agent fence est un logiciel qui se connecte à un périphérique fence afin de demander au périphérique fence de couper l'accès au stockage partagé d'un nœud (en éteignant le nœud ou en supprimant l'accès au stockage partagé par d'autres moyens).

Exécutez la commande suivante pour activer la clôture.

[root@rh1 ~]# ccs -h rh1 --setfencedaemon post_fail_delay=0
[root@rh1 ~]# ccs -h rh1 --setfencedaemon post_join_delay=25

Ensuite, ajoutez un périphérique fence. Il existe différents types de dispositifs d'escrime disponibles. Si vous utilisez une machine virtuelle pour créer un cluster, utilisez le périphérique fence_virt comme indiqué ci-dessous.

[root@rh1 ~]# ccs -h rh1 --addfencedev myfence agent=fence_virt

Ensuite, ajoutez la méthode d'escrime. Après avoir créé le dispositif de clôture, vous devez créer la méthode de clôture et ajouter les hôtes à la méthode de clôture.

[root@rh1 ~]# ccs -h rh1 --addmethod mthd1 rh1.mydomain.net
Method mthd1 added to rh1.mydomain.net.

[root@rh1 ~]# ccs -h rh1 --addmethod mthd1 rh2.mydomain.net
Method mthd1 added to rh2.mydomain.net.

Enfin, associez l'appareil fence à la méthode créée ci-dessus comme indiqué ci-dessous :

[root@rh1 ~]# ccs -h rh1 --addfenceinst myfence rh1.mydomain.net mthd1
[root@rh1 ~]# ccs -h rh1 --addfenceinst myfence rh2.mydomain.net mthd1

8. Fichier cluster.conf après clôture

Votre cluster.conf ressemblera à ci-dessous après l'ajout des dispositifs de clôture et des méthodes.

[root@rh1 ~]# cat /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="10" name="mycluster">
  <fence_daemon post_join_delay="25"/>
  <clusternodes>
    <clusternode name="rh1.mydomain.net" nodeid="1">
      <fence>
        <method name="mthd1">
          <device name="myfence"/>
        </method>
      </fence>
    </clusternode>
    <clusternode name="rh2.mydomain.net" nodeid="2">
      <fence>
        <method name="mthd1">
          <device name="myfence"/>
        </method>
      </fence>
    </clusternode>
  </clusternodes>
  <cman/>
  <fencedevices>
    <fencedevice agent="fence_virt" name="myfence"/>
  </fencedevices>
  <rm>
    <failoverdomains/>
    <resources/>
  </rm>
</cluster>

9. Types de domaine de basculement

Un domaine de basculement est un sous-ensemble ordonné de membres de cluster auquel un groupe de ressources ou un service peut être lié.

Voici les différents types de domaines de basculement :

  • Restricted failover-domain :les groupes de ressources ou les services liés au domaine ne peuvent s'exécuter que sur les membres du cluster qui sont également membres du domaine de basculement. Si aucun membre du domaine de basculement n'est disponible, le groupe de ressources ou le service est placé à l'état arrêté.
  • Domaine de basculement sans restriction :les groupes de ressources liés à ce domaine peuvent s'exécuter sur tous les membres du cluster, mais s'exécuteront sur un membre du domaine chaque fois qu'il est disponible. Cela signifie que si un groupe de ressources s'exécute en dehors du domaine et que le membre du domaine passe en ligne, le groupe de ressources ou
  • le service migrera vers ce membre du cluster.
  • Domaine ordonné :les nœuds du domaine ordonné se voient attribuer un niveau de priorité compris entre 1 et 100. La priorité 1 étant la plus élevée et 100 étant la plus faible. Un nœud avec la priorité la plus élevée exécutera le groupe de ressources. La ressource, si elle s'exécutait sur le nœud 2, migrera vers le nœud 1 lorsqu'elle sera en ligne.
  • Domaine non ordonné :les membres du domaine n'ont pas d'ordre de préférence. N'importe quel membre peut s'exécuter dans le groupe de ressources. Le groupe de ressources migrera toujours vers les membres de son domaine de basculement dans la mesure du possible.

10. Ajouter un domaine Filover

Pour ajouter un domaine de basculement, exécutez la commande suivante. Dans cet exemple, j'ai créé un domaine nommé "webserverdomain",

[root@rh1 ~]# ccs -h rh1 --addfailoverdomain webserverdomain ordered

Une fois le domaine de basculement créé, ajoutez les deux nœuds au domaine de basculement comme indiqué ci-dessous :

[root@rh1 ~]# ccs -h rh1 --addfailoverdomainnode webserverdomain rh1.mydomain.net priority=1

[root@rh1 ~]# ccs -h rh1 --addfailoverdomainnode webserverdomain rh2.mydomain.net priority=2

Vous pouvez afficher tous les nœuds du domaine de basculement à l'aide de la commande suivante.

[root@rh1 ~]# ccs -h rh1 --lsfailoverdomain
webserverdomain: restricted=0, ordered=1, nofailback=0
  rh1.mydomain.net: 1
  rh2.mydomain.net: 2

11. Ajouter des ressources au cluster

Il est maintenant temps d'ajouter une ressource. Cela indique les services qui doivent également basculer avec l'adresse IP et le système de fichiers lorsqu'un nœud échoue. Par exemple, le serveur Web Apache peut faire partie du basculement dans le cluster Redhat Linux.

Lorsque vous êtes prêt à ajouter des ressources, vous pouvez le faire de 2 manières.

Vous pouvez ajouter en tant que ressources globales ou ajouter une ressource directement au groupe de ressources ou au service.

L'avantage de l'ajouter en tant que ressource globale est que si vous souhaitez ajouter la ressource à plusieurs groupes de services, vous pouvez simplement référencer la ressource globale sur votre service ou groupe de ressources.

Dans cet exemple, nous avons ajouté le système de fichiers sur un stockage partagé en tant que ressource globale et l'avons référencé sur le service.

[root@rh1 ~]# ccs –h rh1 --addresource fs name=web_fs device=/dev/cluster_vg/vol01 mountpoint=/var/www fstype=ext4

Pour ajouter un service au cluster, créez un service et ajoutez la ressource au service.

[root@rh1 ~]# ccs -h rh1 --addservice webservice1 domain=webserverdomain recovery=relocate autostart=1

Ajoutez maintenant les lignes suivantes dans le cluster.conf pour ajouter les références de ressources au service. Dans cet exemple, nous avons également ajouté une adresse IP de basculement à notre service.

  <fs ref="web_fs"/>
  <ip address="192.168.1.12" monitor_link="yes" sleeptime="10"/>

Dans la 2e partie de ce didacticiel (demain), nous expliquerons comment synchroniser les configurations sur plusieurs nœuds d'un cluster et comment vérifier le scénario de basculement dans une configuration de cluster.


Linux
  1. Comment configurer la virtualisation sur Redhat Linux

  2. Comment configurer LVM sur Linux / CentOS / Redhat

  3. Comment installer et configurer Mono sur Rocky Linux 8 et CentOS 8

  4. Comment installer et configurer OpenLDAP sur CentOS / RHEL Linux

  5. Comment configurer les bannières de connexion sous Linux (RedHat, Ubuntu, CentOS, Fedora)

Comment installer et configurer OpenLiteSpeed ​​avec PHP 7 sur CentOS 7

Comment installer et configurer un cluster Docker Swarm sur CentOS 8

Comment installer et configurer Denyhost dans Centos 7 Linux

Comment installer et configurer GlusterFS sur CentOS 7/CentOS 8

Comment installer et configurer Caddy Web Server avec PHP sur Rocky Linux 8

Comment changer le nom d'hôte et l'adresse IP dans CentOS / RedHat Linux