Skip navigation

CentOS 7 : Haute disponibilité

Mise en place d’un cluster CentOS 7

Environnement

IP Nom de l’hôte Rôle OS
172.16.0.10/24 node1.stan.local Nœud CentOS 7
172.16.0.11/24 node2.stan.local Nœud CentOS 7
172.16.0.100/24 server.stan.local Serveur de stockage CentOS 7

Prérequis

: à faire sur tous les nœuds.

Édition du fichier /etc/hosts.

: un cluster est très sensible au temps de réponse de ses nœuds, c’est pour cette raison que le fichier hosts est éditer au lieu de passer par DNS.

[root@cent-os ~]#: vim /etc/hosts

aperçu du contenu du fichier

172.16.0.10 node1.stan.local  node1
172.16.0.11 node2.stan.local  node2

Installation de pcs aussi appelé pacemaker.

[root@cent-os ~]#: yum install -y pcs fence-agents-all

Mise en place des règles firewall.

[root@cent-os ~]#: firewall-cmd --permanent --add-service=high-availability
[root@cent-os ~]#: firewall-cmd --add-service=high-availability
[root@cent-os ~]#: firewall-cmd --reload

Vérification des règles firewall.

[root@cent-os ~]#: firewall-cmd --list-service

sortie

dhcpv6-client high-availability ssh

Ajout du mot de passe de l’utilisateur hacluster.

: il est conseillé d’utiliser le même mot de passe pour l’ensemble des nœuds.

[root@cent-os ~]#: passwd hacluster

Démarrage du service pcsd.

[root@cent-os ~]#: systemctl start pcsd.service

Démarrage du service pcsd au boot.

[root@cent-os ~]#: systemctl enable pcsd.service

Création du cluster

: à faire sur un seul nœud.

Authentication.

[root@cent-os ~]#: pcs cluster auth node1.stan.local node2.stan.local

sortie

Username: hacluster
Password:
node1.stan.local: Authorized
node2.stan.local: Authorized

Création du cluster.

[root@cent-os ~]#: pcs cluster setup --name stan_cluster node1.stan.local node2.stan.local

sortie

Destroying cluster on nodes: node1.stan.local, node2.stan.local...
node1.stan.local: Stopping Cluster (pacemaker)...
node2.stan.local: Stopping Cluster (pacemaker)...
node1.stan.local: Successfully destroyed cluster
node2.stan.local: Successfully destroyed cluster

Sending 'pacemaker_remote authkey' to 'node1.stan.local', 'node2.stan.local'
node1.stan.local: successful distribution of the file 'pacemaker_remote authkey'
node2.stan.local: successful distribution of the file 'pacemaker_remote authkey'
Sending cluster config files to the nodes...
node1.stan.local: Succeeded
node2.stan.local: Succeeded

Synchronizing pcsd certificates on nodes node1.stan.local, node2.stan.local...
node1.stan.local: Success
node2.stan.local: Success
Restarting pcsd on the nodes in order to reload the certificates...
node1.stan.local: Success
node2.stan.local: Success

Démarrage du cluster.

[root@cent-os ~]#: pcs cluster start --all

sortie

node1.stan.local: Starting Cluster...
node2.stan.local: Starting Cluster...

Démarrage du cluster au boot.

[root@cent-os ~]#: pcs cluster enable --all

sortie

node1.stan.local: Cluster Enabled
node2.stan.local: Cluster Enabled

Status du cluster.

[root@cent-os ~]#: pcs cluster status

sortie

Cluster Status:
 Stack: corosync
 Current DC: node2.stan.local (version 1.1.16-12.el7_4.8-94ff4df) - partition with quorum
 Last updated: Thu Apr  5 05:47:25 2018
 Last change: Thu Apr  5 05:46:13 2018 by hacluster via crmd on node2.stan.local
 2 nodes configured
 0 resources configured

PCSD Status:
  node1.stan.local: Online
  node2.stan.local: Online

Mise en place des applications

: à faire sur tous les nœuds.

Serveur web

Installation du serveur web.

[root@cent-os ~]#: yum install -y httpd

Configuration du serveur web.

[root@cent-os ~]#: vim /etc/httpd/conf/httpd.conf

aperçu du contenu du fichier

[…]
<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>

Mise en place des règles firewall.

[root@cent-os ~]#: firewall-cmd --permanent --add-service=http
[root@cent-os ~]#: firewall-cmd --reload

Vérification des régles firewall.

[root@cent-os ~]#: firewall-cmd --list-service

sortie

ssh dhcpv6-client high-availability http

Créer les ressources

: à faire sur un seul nœud.

Créer une IP virtuel, permettant au cluster du communiquer avec une seule IP.

[root@cent-os ~]#: pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.16.0.100 cidr_netmask=32 op monitor interval=30s

Créer la ressource web.

[root@cent-os ~]#: pcs resource create web_server apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status" --group apache

Il faut désactiver STONITH pour démarrer les ressources du cluster.

: à ne pas faire en production.

[root@cent-os ~]#: pcs property set stonith-enabled=false

Lier le service “web_server” à l’IP virtuel du cluster.

[root@cent-os ~]#: pcs constraint colocation add web_server vip INFINITY

Status des ressources.

[root@cent-os ~]#: pcs status

sortie

Cluster name: stan_cluster
Last updated: Fri Mar 25 13:47:55 2016          Last change: Fri Mar 25 13:31:58 2016 by root via cibadmin on node1.stan.local
Stack: corosync
Current DC: node2.stan.local (version 1.1.13-10.el7_2.2-44eb2dd) - partition with quorum
2 nodes and 3 resources configured

Online: [ node1.stan.local node2.stan.local ]

Full list of resources:

 Resource Group: apache
     httpd_vip  (ocf::heartbeat:IPaddr2):       Started node1.stan.local
     httpd_ser  (ocf::heartbeat:apache):        Started node1.stan.local
     httpd_fs   (ocf::heartbeat:Filesystem):    Started node1.stan.local

PCSD Status:
  node1.stan.local: Online
  node2.stan.local: Online

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

Résumé des commandes

Commande Description
pcs cluster stop node1.stan.local arrêter un nœud
pcs resource delete ressource supprime la ressource passé en paramètre
pcs cluster showressource affiche des détails sur la ressource passé en paramètre

by | April 5, 2018 | No Comments | Système | Tags : centos centos 7 cluster HA