Comment configurer un cluster à haute disponibilité sur CentOS 7 / RHEL 7 – Bien choisir son serveur d impression
Author: Titanfall —
Short summary: Le cluster haute disponibilité aka Failover-cluster (cluster actif-passif) est l'un des types de cluster les plus utilisés dans l'environnement de production. Ce type de cluster vous offre la disponibilité continue des services même si l'un des nœuds de cluster tombe en panne. Si le serveur exécutant l'application a échoué pour une raison quelconque (défaillance matérielle), […]
Quick overview
- Site
- Tutos GameServer
- Canonical URL
- https://tutos-gameserver.fr/2020/06/10/comment-configurer-un-cluster-a-haute-disponibilite-sur-centos-7-rhel-7-bien-choisir-son-serveur-d-impression/
- LLM HTML version
- https://tutos-gameserver.fr/2020/06/10/comment-configurer-un-cluster-a-haute-disponibilite-sur-centos-7-rhel-7-bien-choisir-son-serveur-d-impression/llm
- LLM JSON version
- https://tutos-gameserver.fr/2020/06/10/comment-configurer-un-cluster-a-haute-disponibilite-sur-centos-7-rhel-7-bien-choisir-son-serveur-d-impression/llm.json
- Manifest
- https://tutos-gameserver.fr/llm-endpoints-manifest.json
- Estimated reading time
- 15 minutes (879 seconds)
- Word count
- 2928
Key points
- Le cluster haute disponibilité aka Failover-cluster (cluster actif-passif) est l'un des types de cluster les plus utilisés dans l'environnement de production.
- Ce type de cluster vous offre la disponibilité continue des services même si l'un des nœuds de cluster tombe en panne.
- Si le serveur exécutant l'application a échoué pour une raison quelconque (défaillance matérielle), le logiciel de cluster (stimulateur cardiaque) redémarrera l'application sur un autre nœud.
- La haute disponibilité est principalement utilisée pour les bases de données, les applications personnalisées et également pour le partage de fichiers.
Primary visual
Structured content
Le cluster haute disponibilité aka Failover-cluster (cluster actif-passif) est l'un des types de cluster les plus utilisés dans l'environnement de production. Ce type de cluster vous offre la disponibilité continue des services même si l'un des nœuds de cluster tombe en panne. Si le serveur exécutant l'application a échoué pour une raison quelconque (défaillance matérielle), le logiciel de cluster (stimulateur cardiaque) redémarrera l'application sur un autre nœud. La haute disponibilité est principalement utilisée pour les bases de données, les applications personnalisées et également pour le partage de fichiers. Le basculement ne consiste pas seulement à démarrer une application. Il a une série d'opérations qui lui sont associées, comme le montage de systèmes de fichiers, la configuration de réseaux et le démarrage d'applications dépendantes. Environnement CentOS 7 / RHEL 7 prend en charge le cluster de basculement à l'aide du stimulateur cardiaque. Ici, nous chercherons à configurer le serveur Apache (Web) en tant qu'application hautement disponible. Comme je l'ai dit, le basculement est une série d'opérations, nous devons donc configurer le système de fichiers et les réseaux en tant que ressource. Pour un système de fichiers, nous utiliserions un stockage partagé à partir du stockage iSCSI. Configurer un cluster haute disponibilité sur CentOS 7 – Infrastructure
Nom d'hôte Adresse IP OS Objectif
node1.itzgeek.local 192.168.1.11 CentOS 7 Noeud de cluster 1
node2.itzgeek.local 192.168.1.12 Noeud de cluster 1
server.itzgeek.local 192.168.1.20 Stockage partagé iSCSI
192.168.1.100 IP de cluster virtuel (Apache)
Tous s'exécutent sur VMware Workstation. Stockage partagé Le stockage partagé est l'une des ressources importantes du cluster à haute disponibilité car il contient les données d'une application en cours d'exécution. Tous les nœuds d'un cluster auront accès au stockage partagé pour les données récentes. Le stockage SAN est le stockage partagé le plus utilisé dans l'environnement de production. Pour cette démonstration, nous allons configurer un cluster avec stockage iSCSI à des fins de démonstration. Installer des packages Serveur iSCSI [[email protected] ~]# yum install targetcli -y Noeuds de cluster Il est temps de configurer les nœuds de cluster pour utiliser le stockage iSCSI, effectuez les étapes ci-dessous sur tous vos nœuds de cluster. # yum install iscsi-initiator-utils -y Disque d'installation Ici, nous allons créer 10 Go de disque LVM sur le serveur iSCSI à utiliser comme stockage partagé pour nos nœuds de cluster. Répertorions les disques disponibles attachés au serveur cible à l'aide de la commande. [[email protected] ~]# fdisk -l | grep -i sd Production: Disque / dev / sda: 107,4 Go, 107374182400 octets, 209715200 secteurs / dev / sda1 * 2048 1026047 512000 83 Linux / dev / sda2 1026048 209715199 104344576 8e Linux LVM Disque / dev / sdb: 10,7 Go, 10737418240 octets, 20971520 secteurs De la sortie ci-dessus, vous pouvez voir que mon système dispose de 10 Go de disque dur (/ dev / sdb). Créez un LVM avec / dev / sdb (remplacer / dev / sdb avec le nom de votre disque) [[email protected] ~]# pvcreate / dev / sdb
[[email protected] ~]# vgcreate vg_iscsi / dev / sdb
[[email protected] ~]# lvcreate -l 100% GRATUIT -n lv_iscsi vg_iscsi Créer un stockage partagé Obtenez les détails de l'initiateur des nœuds. chat /etc/iscsi/initiatorname.iscsi Noeud 1: InitiatorName = iqn.1994-05.com.redhat: b11df35b6f75 Noeud 2: InitiatorName = iqn.1994-05.com.redhat: 119eaf9252a Entrez la commande ci-dessous pour obtenir une CLI iSCSI pour une invite interactive. [[email protected] ~]# targetcli Production: shell shell targetcli version 2.1.fb46 Copyright 2011-2013 par Datera, Inc et autres. Pour obtenir de l'aide sur les commandes, tapez «help».
/> cd / backstores / bloc
/ backstores / block> créer iscsi_shared_storage / dev / vg_iscsi / lv_iscsi
L'objet de stockage de bloc créé est iscsi_shared_storage à l'aide de / dev / vg_iscsi / lv_iscsi. / backstores / block> cd / iscsi
/ iscsi> créer
Cible créée iqn.2003-01.org.linux-iscsi.server.x8664: sn.518a1f561ad5. TPG créé 1. Global pref auto_add_default_portal = true Création du portail par défaut à l'écoute sur toutes les IP (0.0.0.0), port 3260. / iscsi> cd iqn.2003-01.org.linux-iscsi.server.x8664: sn.518a1f561ad5 / tpg1 / acls
/iscsi/iqn.20 ... ad5 / tpg1 / acls> créer iqn.1994-05.com.redhat: b11df35b6f75 << Initiateur du nœud 1
ACL du noeud créé pour iqn.1994-05.com.redhat: b11df35b6f75 /iscsi/iqn.20 ... ad5 / tpg1 / acls> créer iqn.1994-05.com.redhat: 119eaf9252a << Initiateur du nœud 1
ACL du noeud créé pour iqn.1994-05.com.redhat: 119eaf9252a /iscsi/iqn.20 ... ad5 / tpg1 / acls> cd /iscsi/iqn.2003-01.org.linux-iscsi.server.x8664:sn.518a1f561ad5/tpg1/luns
/iscsi/iqn.20 ... ad5 / tpg1 / luns> créer / backstores / block / iscsi_shared_storage
Création du LUN 0. Création du mappage de LUN 0-> 0 dans le noeud ACL iqn.1994-05.com.redhat: 119eaf9252a Création du mappage LUN 0-> 0 dans le noeud ACL iqn.1994-05.com.redhat: b11df35b6f75 /iscsi/iqn.20 ... ad5 / tpg1 / luns> cd /
/> ls
o- / ............................................... .................................................. ..... [...] o- backstores ............................................... ............................................ [...] | o- block ............................................... ................................ [Storage Objects: 1] | | o- iscsi_shared_storage ........................... [/dev/vg_iscsi/lv_iscsi (10.0GiB) write-thru activated] | | o- alua ............................................... ................................. [ALUA Groups: 1] | | o- default_tg_pt_gp ............................................... ..... [ALUA state: Active/optimized] | o- fileio ............................................... ............................... [Storage Objects: 0] | o- pscsi ............................................... ................................ [Storage Objects: 0] | o- ramdisk ............................................... .............................. [Storage Objects: 0] o- iscsi ............................................... .......................................... [Targets: 1] | o- iqn.2003-01.org.linux-iscsi.server.x8664: sn.518a1f561ad5 ............................. .......... [TPGs: 1] | o- tpg1 ............................................... ............................. [no-gen-acls, no-auth] | o- acls ............................................... ........................................ [ACLs: 2] | | o- iqn.1994-05.com.redhat: 119eaf9252a ..................................... ........... [Mapped LUNs: 1] | | | o- mapped_lun0 ............................................... [lun0 block/iscsi_shared_storage (rw)] | | o- iqn.1994-05.com.redhat: b11df35b6f75 ..................................... .......... [Mapped LUNs: 1] | | o- mapped_lun0 ............................................... [lun0 block/iscsi_shared_storage (rw)] | o- luns ............................................... ........................................ [LUNs: 1] | | o- lun0 ...................... [block/iscsi_shared_storage (/dev/vg_iscsi/lv_iscsi) (default_tg_pt_gp)] | o- portails ............................................... .................................. [Portals: 1] | o- 0.0.0.0:3260 ........................................... ....................................... [OK] o- bouclage ............................................... ....................................... [Targets: 0] /> saveconfig
Configuration enregistrée dans /etc/target/saveconfig.json /> sortie
Préférence globale auto_save_on_exit = true Les 10 dernières configurations enregistrées dans / etc / target / backup /. Configuration enregistrée dans /etc/target/saveconfig.json [[email protected] ~]#
Activez et redémarrez le service cible. [[email protected] ~]# systemctl enable target
[[email protected] ~]# cible de redémarrage systemctl Configurez le pare-feu pour autoriser le trafic iSCSI. [[email protected] ~]# firewall-cmd --permanent --add-port = 3260 / tcp
[[email protected] ~]# firewall-cmd --reload Découvrez le stockage partagé Sur les deux nœuds de cluster, découvrez la cible à l'aide de la commande ci-dessous. # iscsiadm -m discovery -t st -p 192.168.1.20 Production: 192.168.1.20:3260,1 iqn.2003-01.org.linux-iscsi.server.x8664: sn.518a1f561ad5 Maintenant, connectez-vous à la cible avec la commande ci-dessous. # iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.server.x8664: sn.518a1f561ad5 -p 192.168.1.20 -l Production: Se connecter à [iface: default, target: iqn.2003-01.org.linux-iscsi.server.x8664:sn.518a1f561ad5, portal: 192.168.1.20,3260] (plusieurs) Se connecter à [iface: default, target: iqn.2003-01.org.linux-iscsi.server.x8664:sn.518a1f561ad5, portal: 192.168.1.20,3260] réussi. Redémarrez et activez le service initiateur. # systemctl restart iscsid
# systemctl enable iscsid Configuration des nœuds de cluster Entrée d'hôte Effectuez une entrée d'hôte sur chaque nœud pour tous les nœuds. Le cluster utilisera le nom d'hôte pour communiquer entre eux. # vi / etc / hosts Les entrées d'hôte seront quelque chose comme ci-dessous. 192.168.1.11 node1.itzgeek.local node1 192.168.1.12 node2.itzgeek.local node2 Stockage partagé Accédez à tous vos nœuds et vérifiez si le nouveau disque est visible ou non. Dans mes nœuds, / dev / sdb est le disque provenant de notre stockage iSCSI. # fdisk -l | grep -i sd Production: Disque / dev / sda: 107,4 Go, 107374182400 octets, 209715200 secteurs / dev / sda1 * 2048 1026047 512000 83 Linux / dev / sda2 1026048 209715199 104344576 8e Linux LVM Disque / dev / sdb: 10,7 Go, 10733223936 octets, 20963328 secteurs Sur n'importe lequel de vos nœuds (Ex, nœud1), créez un système de fichiers pour le serveur Web Apache pour contenir les fichiers du site Web. Nous allons créer un système de fichiers avec LVM. [[email protected] ~]# pvcreate / dev / sdb
[[email protected] ~]# vgcreate vg_apache / dev / sdb
[[email protected] ~]# lvcreate -n lv_apache -l 100% GRATUIT vg_apache
[[email protected] ~]# mkfs.ext4 / dev / vg_apache / lv_apache Maintenant, allez sur un autre nœud et exécutez les commandes ci-dessous pour détecter le nouveau système de fichiers. [[email protected] ~]# pvscan
[[email protected] ~]# vgscan
[[email protected] ~]# lvscan Enfin, vérifiez le LVM que nous avons créé sur node1 est disponible pour vous sur un autre nœud (Ex. nœud2) en utilisant la commande ci-dessous. [[email protected] ~]# lvdisplay / dev / vg_apache / lv_apache Production: Tu devrais voir / dev / vg_apache / lv_apache sur node2.itzgeek.local --- Volume logique --- Chemin LV / dev / vg_apache / lv_apache Nom LV lv_apache VG Name vg_apache LV UUID mFUyuk-xTtK-r7PV-PLPq-yoVC-Ktto-TcaYpS Accès en écriture LV lecture / écriture Hôte de création LV, heure node1.itzgeek.local, 2019-07-05 08:57:33 +0530 Statut LV disponible # ouvert 0 Taille BT 9,96 Gio Entreprise actuelle Segments 1 Héritage d'allocation Lire à l'avance secteurs auto - actuellement fixé à 8192 Bloquer le périphérique 253: 3 Si le système n'affiche pas le volume logique, envisagez de redémarrer le deuxième nœud. Installer des packages Installez les packages de cluster (pacemaker) sur tous les nœuds à l'aide de la commande ci-dessous. # yum install pcs fence-agents-all -y Autorisez toutes les applications à haute disponibilité sur le pare-feu à avoir une communication appropriée entre les nœuds. Vous pouvez ignorer cette étape si le système n'a pas de pare-feu installé. # firewall-cmd --permanent --add-service = haute disponibilité
# firewall-cmd --add-service = haute disponibilité Utilisez la commande ci-dessous pour répertorier les applications autorisées dans le pare-feu. # firewall-cmd --list-service Production: ssh dhcpv6-client haute disponibilité Définissez le mot de passe pour hacluster utilisateur. Ce compte d'utilisateur est un compte d'administration de cluster. Nous vous suggérons de définir le même mot de passe pour tous les nœuds. # passwd hacluster Démarrez le service de cluster. De plus, activez-le pour qu'il démarre automatiquement au démarrage du système. # systemctl start pcsd
# systemctl enable pcsd N'oubliez pas d'exécuter les commandes ci-dessus sur tous vos nœuds de cluster. Créer un cluster à haute disponibilité Autorisez les nœuds à l'aide de la commande ci-dessous. Exécutez la commande ci-dessous dans l'un des nœuds pour autoriser les nœuds. [[email protected] ~]# pcs cluster auth node1.itzgeek.local node2.itzgeek.local Production: Nom d'utilisateur: hacluster
Mot de passe: << Entrez le mot de passe
node1.itzgeek.local: autorisé node2.itzgeek.local: autorisé Créez un cluster. [[email protected] ~]# configuration du cluster pcs --start --name itzgeek_cluster node1.itzgeek.local node2.itzgeek.local Production: Détruire le cluster sur les nœuds: node1.itzgeek.local, node2.itzgeek.local ... node1.itzgeek.local: Arrêt du cluster (stimulateur cardiaque) ... node2.itzgeek.local: Arrêt du cluster (stimulateur cardiaque) ... node2.itzgeek.local: cluster détruit avec succès node1.itzgeek.local: cluster détruit avec succès
Envoi de 'pacemaker_remote authkey' à 'node1.itzgeek.local', 'node2.itzgeek.local' node1.itzgeek.local: distribution réussie du fichier 'pacemaker_remote authkey' node2.itzgeek.local: distribution réussie du fichier 'pacemaker_remote authkey' Envoi de fichiers de configuration de cluster aux nœuds ... node1.itzgeek.local: Réussi node2.itzgeek.local: Réussi
Démarrage du cluster sur les nœuds: node1.itzgeek.local, node2.itzgeek.local ... node1.itzgeek.local: Démarrage du cluster (corosync) ... node2.itzgeek.local: Démarrage du cluster (corosync) ... node1.itzgeek.local: Démarrage du cluster (stimulateur cardiaque) ... node2.itzgeek.local: Démarrage du cluster (stimulateur cardiaque) ...
Synchronisation des certificats pcsd sur les nœuds node1.itzgeek.local, node2.itzgeek.local ... node1.itzgeek.local: Succès node2.itzgeek.local: Succès Redémarrer pcsd sur les nœuds afin de recharger les certificats ... node1.itzgeek.local: Succès node2.itzgeek.local: Succès
Activez le cluster pour démarrer au démarrage du système. [[email protected] ~]# pcs cluster enable --all Production: node1.itzgeek.local: Cluster Enabled node2.itzgeek.local: Cluster Enabled Utilisez la commande ci-dessous pour obtenir l'état du cluster. [[email protected] ~]# pcs statut du cluster Production: Statut du cluster: Pile: corosync DC actuel: node2.itzgeek.local (version 1.1.19-8.el7_6.4-c3c624ea3d) - partition avec quorum Dernière mise à jour: ven.5 juil.09: 14: 57 2019 Dernière modification: ven.5 juil.09: 13: 12 2019 par hacluster via crmd sur node2.itzgeek.local 2 nœuds configurés 0 ressources configurées
Statut PCSD: node1.itzgeek.local: en ligne node2.itzgeek.local: en ligne
Exécutez la commande ci-dessous pour obtenir des informations détaillées sur le cluster, y compris ses ressources, l'état du stimulateur cardiaque et les détails des nœuds. [[email protected] ~]# statut des pcs Production: Nom du cluster: itzgeek_cluster
AVERTISSEMENTS: Aucun périphérique Stonith et compatible Stonith n'est pas faux
Pile: corosync DC actuel: node2.itzgeek.local (version 1.1.19-8.el7_6.4-c3c624ea3d) - partition avec quorum Dernière mise à jour: ven.5 juil.09: 15: 37 2019 Dernière modification: ven.5 juil.09: 13: 12 2019 par hacluster via crmd sur node2.itzgeek.local
2 nœuds configurés 0 ressources configurées
En ligne: [ node1.itzgeek.local node2.itzgeek.local ]
Pas de ressources
Statut du démon: corosync: actif / activé stimulateur cardiaque: actif / activé pcsd: actif / activé
Dispositifs d'escrime Le périphérique d'escrime est un périphérique matériel / logiciel qui aide à déconnecter le nœud problématique en réinitialisant le nœud / en déconnectant le stockage partagé d'y accéder. Mon cluster de démonstration s'exécute au-dessus de la machine virtuelle VMware, donc je ne vous montre pas la configuration d'un périphérique d'escrime, mais vous pouvez suivre ce guide pour configurer un périphérique d'escrime. Ressources du cluster Préparer les ressources Serveur Web Apache Installez le serveur Web Apache sur les deux nœuds. # yum install -y httpd wget Modifiez le fichier de configuration. # vi /etc/httpd/conf/httpd.conf Ajoutez le contenu ci-dessous à la fin du fichier sur les deux nœuds de cluster.
Statut du serveur SetHandler Ordonner refuser, autoriser Refuser de tout Autoriser à partir de 127.0.0.1
Nous devons maintenant utiliser le stockage partagé pour stocker le fichier de contenu Web (HTML). Effectuez l'opération ci-dessous dans l'un des nœuds. [[email protected] ~]# mount / dev / vg_apache / lv_apache / var / www /
[[email protected] ~]# mkdir / var / www / html
[[email protected] ~]# mkdir / var / www / cgi-bin
[[email protected] ~]# mkdir / var / www / error
[[email protected] ~]# restorecon -R / var / www
[[email protected] ~]# chat </var/www/html/index.html
Bonjour bienvenue!. Cette page est desservie par le cluster de disponibilité Red Hat Hight
FIN
[[email protected] ~]# umount / var / www Autorisez le service Apache dans le pare-feu sur les deux nœuds. # firewall-cmd --permanent --add-service = http
# firewall-cmd --reload Créer des ressources Créez une ressource de système de fichiers pour le serveur Apache. Utilisez le stockage provenant du serveur iSCSI. # pcs resource create httpd_fs Filesystem device = "/ dev / mapper / vg_apache-lv_apache" directory = "/ var / www" fstype = "ext4" --group apache Production: Nom d'agent supposé «ocf: heartbeat: Filesystem» (déduit de «Filesystem») Créez une ressource d'adresse IP. Cette adresse IP agira comme une adresse IP virtuelle pour Apache et les clients utiliseront cette adresse IP pour accéder au contenu Web au lieu de l'adresse IP du nœud individuel. # pcs resource create httpd_vip IPaddr2 ip = 192.168.1.100 cidr_netmask = 24 --group apache Production: Nom d'agent supposé «ocf: heartbeat: IPaddr2» (déduit de «IPaddr2») Créez une ressource Apache qui surveillera l'état du serveur Apache et déplacera la ressource vers un autre nœud en cas de panne. # pcs resource create httpd_ser apache configfile = "/ etc / httpd / conf / httpd.conf" statusurl = "http://127.0.0.1/server-status" --group apache Production: Nom d'agent supposé 'ocf: battement de coeur: apache' (déduit de 'apache') Puisque nous n'utilisons pas de clôture, désactivez-la (STONITH). Vous devez désactiver pour démarrer les ressources du cluster, mais la désactivation de STONITH dans l'environnement de production n'est pas recommandée. # jeu de propriétés pcs activé par stonith = false Vérifiez l'état du cluster. [[email protected] ~]# statut des pcs Production: Nom du cluster: itzgeek_cluster Pile: corosync DC actuel: node2.itzgeek.local (version 1.1.19-8.el7_6.4-c3c624ea3d) - partition avec quorum Dernière mise à jour: ven.5 juil.09: 26: 04 2019 Dernière modification: Fri Jul 5 09:25:58 2019 par root via cibadmin sur node1.itzgeek.local
2 nœuds configurés 3 ressources configurées
En ligne: [ node1.itzgeek.local node2.itzgeek.local ]
Liste complète des ressources:
Groupe de ressources: apache httpd_fs (ocf :: heartbeat: Filesystem): Démarré node1.itzgeek.local httpd_vip (ocf :: heartbeat: IPaddr2): démarré node1.itzgeek.local httpd_ser (ocf :: heartbeat: apache): Démarré node1.itzgeek.local
Statut du démon: corosync: actif / activé stimulateur cardiaque: actif / activé pcsd: actif / activé
Vérifier le cluster haute disponibilité Une fois le cluster opérationnel, pointez un navigateur Web vers l'adresse IP virtuelle Apache. Vous devriez obtenir une page Web comme ci-dessous. Configurer un cluster haute disponibilité sur CentOS 7 – Apache Web Server Tester le cluster haute disponibilité Vérifions le basculement des ressources du nœud en arrêtant le cluster sur le nœud actif. [[email protected] ~]# pcs cluster stop node1.itzgeek.local Conclusion C'est tout. Dans cet article, vous avez appris à configurer un cluster haute disponibilité sur CentOS 7. Veuillez nous faire part de vos réflexions dans la section des commentaires.
Click to rate this post! [Total: 0 Average: 0]
Topics and keywords
Themes: Serveur d'impression
License & attribution
License: CC BY-ND 4.0.
Attribution required: yes.
Manifest: https://tutos-gameserver.fr/llm-endpoints-manifest.json
LLM Endpoints plugin version 1.1.2.