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 show ressource |
affiche des détails sur la ressource passé en paramètre |