NFS (Network File System) est le serveur le plus répandu pour fournir des fichiers sur le réseau. Avec le serveur NFS, nous pouvons partager des dossiers sur le réseau et les clients ou systèmes autorisés peuvent accéder à ces dossiers partagés et les utiliser dans leurs applications. En ce qui concerne l'environnement de production, nous devons configurer le serveur nfs en haute disponibilité pour exclure le point de défaillance unique.
Dans cet article, nous verrons comment configurer le clustering haute disponibilité du serveur nfs (actif-passif) avec stimulateur cardiaque sur CentOS 7 ou RHEL 7
Voici les détails de mon laboratoire que j'ai utilisés pour cet article,
- Serveur NFS 1 (nfs1.example.com) - 192.168.1.40 - CentOS 7 minimal / RHEL 7
- Serveur NFS 2 (nfs2.example.com) – 192.168.1.50 – CentOS 7/RHEL 7 minimal
- VIP du serveur NFS – 192.168.1.51
- Pare-feu activé
- SELinux activé
Reportez-vous aux étapes ci-dessous pour configurer le clustering actif-passif du serveur NFS sur CentOS 7 / RHEL 7
Étape 1) Définir le nom d'hôte sur les deux serveurs nfs et mettre à jour le fichier /etc/hosts
Connectez-vous aux deux serveurs nfs et définissez le nom d'hôte sur "nfs1.example.com" et "nfs2.example.com" respectivement à l'aide de la commande hostnamectl, l'exemple est illustré ci-dessous
~]# hostnamectl set-hostname "nfs1.example.com"~]# exec bash
Mettez à jour le fichier /etc/hosts sur les deux serveurs nfs,
192.168.1.40 nfs1.example.com192.168.1.50 nfs2.example.com
Étape 2) Mettez à jour les deux serveurs nfs et installez les packages pcs
Utilisez la commande "yum update" ci-dessous pour appliquer toutes les mises à jour sur les deux serveurs nfs, puis redémarrez une fois.
~]# yum mise à jour &&redémarrage
Installez les packages pcs et fence-agent sur les deux serveurs nfs,
[[email protected] ~]# yum install -y pcs fence-agents-all[[email protected] ~]# yum install -y pcs fence-agents-all
Une fois les paquets des agents pcs et fencing installés, autorisez les ports liés aux pcs dans le pare-feu du système d'exploitation à partir des deux serveurs nfs,
~]# firewall-cmd --permanent --add-service=high-availability~]# firewall-cmd --reload
Maintenant, démarrez et activez le service pcsd sur les deux nœuds nfs à l'aide des commandes ci-dessous,
~]# systemctl enable pcsd~]# systemctl start pcsd
Étape 3) Authentifier les nœuds nfs et former un cluster
Définissez le mot de passe sur l'utilisateur hacluster, le service pcsd utilisera cet utilisateur pour authentifier les nœuds du cluster, donc définissons d'abord le mot de passe sur l'utilisateur hacluster sur les deux nœuds,
[[email protected] ~]# echo "enter_password" | passwd --stdin hacluster[[email protected] ~]# echo "enter_password" | passwd --stdinhacluster
Authentifiez maintenant les nœuds du cluster. Dans notre cas, nfs2.example.com sera authentifié sur nfs1.example.com, exécutez la commande de cluster pcs ci-dessous sur "nfs1"
[[email protected] ~]# pcs cluster auth nfs1.example.com nfs2.example.comUsername :haclusterPassword:nfs1.example.com :Authorizednfs2.example.com :Authorized[[email protected] ~]#Il est maintenant temps de former un cluster avec le nom "nfs_cluster ” et ajoutez-y les deux nœuds nfs. Exécutez ci-dessous "configuration du cluster pcs ” commande depuis n'importe quel nœud nfs,
[[email protected] ~]# configuration du cluster pcs --start --name nfs_cluster nfs1.example.com \ nfs2.example.comActivez le service de cluster pcs sur les deux nœuds afin que les nœuds rejoignent automatiquement le cluster après le redémarrage. Exécutez la commande ci-dessous à partir de l'un des nœuds nfs,
[[email protected] ~]# pcs cluster enable --allnfs1.example.com :cluster activénfs2.example.com :cluster activé[[email protected] ~]#Étape 4) Définir le périphérique Fencing pour chaque nœud de cluster
La clôture est la partie la plus importante d'un cluster, si l'un des nœuds tombe en panne, le dispositif de clôture supprimera ce nœud du cluster. Dans Pacemaker, l'escrime est définie à l'aide de la ressource Stonith (Shoot The Other Node In The Head).
Dans ce didacticiel, nous utilisons un disque partagé de taille 1 Go (/dev/sdc) comme périphérique de clôture. Découvrons d'abord l'id du disque /dev/sdc
[[email protected] ~]# ls -l /dev/disk/by-id/
Notez l'identifiant du disque /dev/sdc comme nous le ferons dans "pcs stonith ” commande.
Exécutez maintenant la commande "pcs stonith" ci-dessous à partir de l'un des nœuds pour créer un périphérique de clôture (disk_fencing)
[[email protected] ~]# pcs stonith create disk_fencing fence_scsi \ pcmk_host_list="nfs1.example.com nfs2.example.com" \ pcmk_monitor_action="metadata" pcmk_reboot_action="off" \ devices="/dev/disk /by-id/wwn-0x6001405e49919dad5824dc2af5fb3ca0" \ meta provide="unfencing"[[email protected] ~]#Vérifiez l'état de stonith en utilisant la commande ci-dessous,
[[email protected] ~]# pcs stonith show disk_fencing (stonith:fence_scsi) : nfs1.example.com démarré[[email protected] ~]#Exécutez "statut pcs ” commande pour afficher l'état du cluster
[[email protected] ~]# pcs statusCluster name :nfs_clusterStack :corosyncCurrent DC :nfs2.example.com (version 1.1.16-12.el7_4.7-94ff4df) \ - partition avec quorumDernière mise à jour :dim mar 4 03 :18:47 2018Dernière modification :dim mar 4 03:16:09 2018 par root via cibadmin sur nfs1.example.com2 nœuds configurés1 ressource configuréeEn ligne :[ nfs1.example.com nfs2.example.com ]Liste complète des ressources : disk_fencing ( stonith:fence_scsi): Statut nfs1.example.comDaemon démarré : corosync :actif/activé pacemaker :actif/activé pcsd :actif/activé[[email protected] ~]#Remarque : Si vos nœuds de cluster sont les machines virtuelles et hébergées sur VMware, vous pouvez utiliser « fence_vmware_soap ” agent d'escrime. Pour configurer « fence_vmware_soap » en tant qu'agent de clôture, reportez-vous aux étapes logiques ci-dessous :
1) Vérifiez si vos nœuds de cluster peuvent accéder à l'hyperviseur VMware ou au Vcenter
# fence_vmware_soap -a-l -p \ --ssl -z -v -o list |egrep "(nfs1.example.com|nfs2.example.com)"ou# fence_vmware_soap -a -l -p \ --ssl -z -o list |egrep "(nfs1.example.com|nfs2.example.com)" si vous pouvez voir les noms de VM dans la sortie, tout va bien, sinon vous devez vérifier pourquoi les nœuds de cluster ne peuvent pas établir de connexion esxi ou vcenter.
2) Définissez le dispositif de clôture à l'aide de la commande ci-dessous,
# pcs stonith create vmware_fence fence_vmware_soap \ pcmk_host_map="node1:nfs1.example.com;node2:nfs2.example.com" \ ipaddr=ssl=1 login= passwd= 3) vérifiez l'état de stonith en utilisant la commande ci-dessous,
# pcs stonith showÉtape 5) Installer nfs et formater le disque partagé nfs
Installez le package "nfs-utils" sur les deux serveurs nfs
[[email protected] ~]# yum install nfs-utils -y[[email protected] ~]# yum install nfs-utils -yArrêtez et désactivez le "nfs-lock" local ” service sur les deux nœuds car ce service sera contrôlé par stimulateur cardiaque
[[email protected] ~]# systemctl stop nfs-lock && systemctl disable nfs-lock[[email protected] ~]# systemctl stop nfs-lock && systemctl disable nfs-lockSupposons que nous ayons un disque partagé "/dev/sdb" de taille 10 Go entre deux nœuds de cluster, créez une partition dessus et formatez-le en tant que système de fichiers xfs
[[email protected] ~]# fdisk /dev/sdb
Exécutez la commande partprobe sur les deux nœuds et redémarrez une fois.
~]# partprobeFormatez maintenant "/dev/sdb1" en tant que système de fichiers xfs
[[e-mail protégé] ~] # mkfs.xfs / dev / sdb1meta-data =/ dev / sdb1 isize =256 AgCount =4, Agsize =655296 blks =sectsz =512 att =2, projid32bit =1 =CRC =0 finobt =0data =bsize =4096 blocs =2621184, iMaxPct =25 =sunit =0 swidth =0 blksnaming =version 2 bsize =4096 ASCII-CI =0 FTYPE =0LOG =LOG interne BSize =4096 blocs =2560, version =2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0[[email protected] ~]#Créez un point de montage pour ce système de fichiers sur les deux nœuds,
[[email protected] ~]# mkdir /nfsshare[[email protected] ~]# mkdir /nfsshareÉtape 6) Configurer toutes les ressources NFS requises sur les nœuds de cluster
Les ressources NFS requises sont les suivantes :
- Ressource du système de fichiers
- ressource nfsserver
- ressource exportfs
- Ressource d'adresse IP flottante IPaddr2
Pour la ressource Filesystem, nous avons besoin d'un stockage partagé entre les nœuds du cluster, nous avons déjà créé une partition sur le disque partagé (/dev/sdb1) dans les étapes ci-dessus, nous allons donc utiliser cette partition. Utilisez ci-dessous "création de ressources pcs ” commande pour définir la ressource du système de fichiers à partir de n'importe quel nœud,
[[email protected] ~]# ressource pcs créer nfsshare Filesystem device=/dev/sdb1 \ directory=/nfsshare fstype=xfs --group nfsgrp[[email protected] ~]#Dans la commande ci-dessus, nous avons défini le système de fichiers NFS comme "nfsshare ” sous le groupe “nfsgrp “. Désormais, toutes les ressources nfs seront créées sous le groupe nfsgrp.
Créer une ressource nfsserver avec le nom 'nfsd ‘ en utilisant la commande ci-dessous,
[[email protected] ~]# ressource pcs créer nfsd nfsserver \ nfs_shared_infodir=/nfsshare/nfsinfo --group nfsgrp[[email protected] ~]#Créer des exportfs ressource avec le nom "nfsroot ”
[[email protected] ~]# ressource pcs créer nfsroot exportfs clientspec="192.168.1.0/24" options=rw,sync,no_root_squash directory=/nfsshare fsid=0 --group nfsgrp[[email protected] ~] #Dans la commande ci-dessus, clientspec indique les clients autorisés qui peuvent accéder au nfsshare
Créer NFS IPaddr2 ressource en utilisant la commande ci-dessous,
[[email protected] ~]# ressource pcs créer nfsip IPaddr2 ip=192.168.1.51 \ cidr_netmask=24 --group nfsgrp[[email protected] ~]#Maintenant, affichez et vérifiez le cluster à l'aide de pcs status
[[email protected] ~]état de # PC
Une fois que vous avez terminé avec les ressources NFS, autorisez les ports du serveur nfs dans le pare-feu du système d'exploitation à partir des deux serveurs nfs,
~]# firewall-cmd --permanent --add-service=nfs~]# firewall-cmd --permanent --add-service=mountd~]# firewall-cmd --permanent --add-service=rpc-bind~]# firewall-cmd --reloadÉtape 7) Essayez de monter le partage NFS sur les clients
Essayez maintenant de monter le partage nfs à l'aide de la commande mount, l'exemple est illustré ci-dessous
[[email protected] ~]# mkdir /mnt/nfsshare[[email protected] ~]# mount 192.168.1.51:/ /mnt/nfsshare/[[email protected] ~]# df -Th /mnt/nfsshareFilesystem Type Taille Utilisé Disponible Utilisation % Monté sur192.168.1.51 :/ nfs4 10G 32M 10G 1 % /mnt/nfsshare[[email protected] ~]#[[email protected] ~]# cd /mnt/nfsshare/[[email protected ] nfsshare]# lsnfsinfo[[email protected] nfsshare]#Pour les tests de cluster, arrêtez le service de cluster sur l'un des nœuds et voyez si nfsshare est accessible ou non. Supposons que je vais arrêter le service de cluster sur "nfs1.example.com"
[[email protected] ~]# pcs cluster stopStopping Cluster (pacemaker)...Stopping Cluster (corosync)...[[email protected] ~]#Maintenant, allez sur la machine cliente et voyez si nfsshare est toujours accessible. Dans mon cas, je suis toujours en mesure d'y accéder et de créer des fichiers dessus.
[[email protected] nfsshare]# test tactile[[email protected] nfsshare]#Activez maintenant le service de cluster sur "nfs1.example.com" en utilisant la commande ci-dessous,
[[email protected] ~]# pcs cluster startStarting Cluster...[[email protected] ~]#C'est tout de cet article, il confirme que nous avons configuré avec succès le clustering actif-passif NFS à l'aide d'un stimulateur cardiaque. Veuillez partager vos commentaires et commentaires dans la section des commentaires ci-dessous.