GNU/Linux >> Linux Esercitazione >  >> Cent OS

Configura il clustering del server NFS con Pacemaker su CentOS 7/RHEL 7

NFS (Network File System) è il server più diffuso per fornire file in rete. Con il server NFS possiamo condividere le cartelle sulla rete e i client o il sistema autorizzati possono accedere a tali cartelle condivise e utilizzarle nelle loro applicazioni. Quando si tratta dell'ambiente di produzione, dovremmo configurare il server nfs in alta disponibilità per escludere il singolo punto di errore.

In questo articolo discuteremo di come configurare il clustering ad alta disponibilità del server nfs (attivo-passivo) con pacemaker su CentOS 7 o RHEL 7

Di seguito sono riportati i dettagli del mio laboratorio che ho utilizzato per questo articolo,

  • Server NFS 1 (nfs1.example.com) – 192.168.1.40 – CentOS 7 minimo / RHEL 7
  • Server NFS 2 (nfs2.example.com) – 192.168.1.50 – CentOS 7 minimo / RHEL 7
  • Vip server NFS – 192.168.1.51
  • Firewall abilitato
  • SELinux abilitato

Fare riferimento ai passaggi seguenti per configurare il clustering attivo-passivo del server NFS su CentOS 7 / RHEL 7

Fase 1) Imposta il nome host su entrambi i server nfs e aggiorna il file /etc/hosts

Accedi a entrambi i server nfs e imposta il nome host rispettivamente come "nfs1.example.com" e "nfs2.example.com" utilizzando il comando hostnamectl, l'esempio è mostrato di seguito

~]# hostnamectl set-hostname "nfs1.example.com"
~]# exec bash

Aggiorna il file /etc/hosts su entrambi i server nfs,

192.168.1.40  nfs1.example.com
192.168.1.50  nfs2.example.com

Fase 2) Aggiorna entrambi i server nfs e installa i pacchetti pcs

Utilizzare il comando 'yum update' di seguito per applicare tutti gli aggiornamenti su entrambi i server nfs e quindi riavviare una volta.

~]# yum update && reboot

Installa pcs e pacchetti fence-agent su entrambi i server nfs,

[[email protected] ~]# yum install -y pcs fence-agents-all
[[email protected] ~]# yum install -y pcs fence-agents-all

Una volta installati i pacchetti dei PC e degli agenti di schermatura, consentire le porte relative ai PC nel firewall del sistema operativo da entrambi i server nfs,

~]# firewall-cmd --permanent --add-service=high-availability
~]# firewall-cmd --reload

Ora avvia e abilita il servizio pcsd su entrambi i nodi nfs usando i comandi sotto,

~]# systemctl enable pcsd
~]# systemctl start  pcsd

Fase 3) Autenticare i nodi nfs e formare un cluster

Imposta la password su utente hacluster, il servizio pcsd utilizzerà questo utente per autenticare i nodi del cluster, quindi impostiamo prima la password su utente hacluster su entrambi i nodi,

[[email protected] ~]# echo "enter_password" | passwd --stdin hacluster
[[email protected] ~]# echo "enter_password" | passwd --stdin hacluster

Ora autentica i nodi del cluster, nel nostro caso nfs2.example.com verrà autenticato su nfs1.example.com, esegui il comando pcs cluster di seguito su "nfs1"

[[email protected] ~]# pcs cluster auth nfs1.example.com nfs2.example.com
Username: hacluster
Password:
nfs1.example.com: Authorized
nfs2.example.com: Authorized
[[email protected] ~]#

Ora è il momento di formare un cluster con il nome "nfs_cluster ” e aggiungi entrambi i nodi nfs. Esegui sotto "configurazione del cluster di pc ” comando da qualsiasi nodo nfs,

[[email protected] ~]# pcs cluster setup --start --name nfs_cluster nfs1.example.com \
 nfs2.example.com

Abilita il servizio cluster pcs su entrambi i nodi in modo che i nodi si uniscano automaticamente al cluster dopo il riavvio. Esegui il comando seguente da uno dei nodi nfs,

[[email protected] ~]# pcs cluster enable --all
nfs1.example.com: Cluster Enabled
nfs2.example.com: Cluster Enabled
[[email protected] ~]#

Fase 4) Definisci il dispositivo di Fencing per ogni nodo del cluster

La scherma è la parte più importante di un cluster, se uno qualsiasi dei nodi si guasta, il dispositivo di scherma rimuoverà quel nodo dal cluster. In Pacemaker la scherma viene definita utilizzando la risorsa Stonith (Spara all'altro nodo nella testa).

In questo tutorial utilizziamo un disco condiviso di dimensioni 1 GB (/dev/sdc) come dispositivo di scherma. Per prima cosa scopriamo l'id del disco /dev/sdc

[[email protected] ~]# ls -l /dev/disk/by-id/

Annota l'id del disco /dev/sdc come lo faremo in "pcs stonith comando ".

Ora esegui sotto il comando "pcs stonith" da uno dei nodi per creare un dispositivo di scherma (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 provides="unfencing"
[[email protected] ~]#

Verifica lo stato di stonith usando il comando seguente,

[[email protected] ~]# pcs stonith show
 disk_fencing   (stonith:fence_scsi):   Started nfs1.example.com
[[email protected] ~]#

Esegui "stato pc ” comando per visualizzare lo stato del cluster

[[email protected] ~]# pcs status
Cluster name: nfs_cluster
Stack: corosync
Current DC: nfs2.example.com (version 1.1.16-12.el7_4.7-94ff4df) \
 - partition with quorum
Last updated: Sun Mar  4 03:18:47 2018
Last change: Sun Mar  4 03:16:09 2018 by root via cibadmin on nfs1.example.com

2 nodes configured
1 resource configured
Online: [ nfs1.example.com nfs2.example.com ]
Full list of resources:
 disk_fencing   (stonith:fence_scsi):   Started nfs1.example.com
Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled
[[email protected] ~]#

Nota: Se i tuoi nodi del cluster sono le macchine virtuali e sono ospitati su VMware, puoi utilizzare "fence_vmware_soap "agente di scherma. Per configurare "fence_vmware_soap" come agente di scherma, fare riferimento ai passaggi logici seguenti:

1) Verifica se i nodi del tuo cluster possono raggiungere l'hypervisor VMware o il Vcenter

# fence_vmware_soap -a <vCenter_IP_address> -l <user_name> -p <password> \
 --ssl -z -v -o list |egrep "(nfs1.example.com|nfs2.example.com)"
or
# fence_vmware_soap -a <vCenter_IP_address> -l <user_name> -p <password> \ 
--ssl -z -o list |egrep "(nfs1.example.com|nfs2.example.com)"

se riesci a vedere i nomi delle VM nell'output allora va bene, altrimenti devi controllare perché i nodi del cluster non sono in grado di effettuare la connessione esxi o vcenter.

2) Definisci il dispositivo di recinzione usando il comando sotto,

# pcs stonith create vmware_fence fence_vmware_soap \ 
pcmk_host_map="node1:nfs1.example.com;node2:nfs2.example.com" \ 
ipaddr=<vCenter_IP_address> ssl=1 login=<user_name> passwd=<password>

3) controlla lo stato stonith usando il comando sotto,

# pcs stonith show

Fase 5) Installa nfs e formatta il disco condiviso nfs

Installa il pacchetto 'nfs-utils' su entrambi i server nfs

[[email protected] ~]# yum install nfs-utils -y
[[email protected] ~]# yum install nfs-utils -y

Interrompi e disabilita il "nfs-lock locale ” su entrambi i nodi poiché questo servizio sarà controllato dal pacemaker

[[email protected] ~]# systemctl stop nfs-lock &&  systemctl disable nfs-lock
[[email protected] ~]# systemctl stop nfs-lock &&  systemctl disable nfs-lock

Supponiamo di avere un disco condiviso "/dev/sdb" di dimensioni 10 GB tra due nodi del cluster, creare una partizione su di esso e formattarlo come file system xfs

[[email protected] ~]# fdisk /dev/sdb

Eseguire il comando partprobe su entrambi i nodi e riavviare una volta.

~]# partprobe

Ora formatta "/dev/sdb1" come file system xfs

[[email protected] ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=256    agcount=4, agsize=655296 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=2621184, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[[email protected] ~]#

Crea un punto di montaggio per questo file system su entrambi i nodi,

[[email protected] ~]# mkdir /nfsshare
[[email protected] ~]# mkdir /nfsshare

Passaggio 6) Configura tutte le risorse NFS richieste sui nodi del cluster

Di seguito sono riportate le risorse NFS richieste:

  • Risorsa file system
  • risorsa nfsserver
  • risorsa export
  • Risorsa indirizzo IP mobile IPaddr2

Per la risorsa Filesystem, abbiamo bisogno di una memoria condivisa tra i nodi del cluster, abbiamo già creato la partizione sul disco condiviso (/dev/sdb1) nei passaggi precedenti, quindi useremo quella partizione. Utilizza di seguito "crea risorse pc ” comando per definire la risorsa del filesystem da qualsiasi nodo,

[[email protected] ~]# pcs resource create nfsshare Filesystem device=/dev/sdb1 \
  directory=/nfsshare fstype=xfs --group nfsgrp
[[email protected] ~]#

Nel comando precedente abbiamo definito il filesystem NFS come "nfsshare ” nel gruppo “nfsgrp “. Ora in poi tutte le risorse nfs verranno create nel gruppo nfsgrp.

Crea una risorsa nfsserver con il nome 'nfsd ' usando il comando seguente,

[[email protected] ~]# pcs resource create nfsd nfsserver \ 
nfs_shared_infodir=/nfsshare/nfsinfo --group nfsgrp
[[email protected] ~]#

Crea esporta risorsa con il nome “nfsroot

[[email protected] ~]#  pcs resource create nfsroot exportfs clientspec="192.168.1.0/24" options=rw,sync,no_root_squash directory=/nfsshare fsid=0 --group nfsgrp
[[email protected] ~]#

Nel comando precedente, clientspec indica i client consentiti che possono accedere a nfsshare

Crea NFS IPaddr2 risorsa utilizzando il comando sottostante,

[[email protected] ~]# pcs resource create nfsip IPaddr2 ip=192.168.1.51 \ 
cidr_netmask=24 --group nfsgrp
[[email protected] ~]#

Ora visualizza e verifica il cluster utilizzando lo stato dei pc

[[email protected] ~]# pcs status

Una volta che hai finito con le risorse NFS, consenti le porte del server nfs nel firewall del sistema operativo da entrambi i server nfs,

~]# firewall-cmd --permanent --add-service=nfs
~]#  firewall-cmd --permanent --add-service=mountd
~]#  firewall-cmd --permanent --add-service=rpc-bind
~]#  firewall-cmd --reload

Passaggio 7)  Prova a montare la condivisione NFS sui client

Ora prova a montare la condivisione nfs usando il comando mount, l'esempio è mostrato sotto

[[email protected] ~]# mkdir /mnt/nfsshare
[[email protected] ~]# mount 192.168.1.51:/ /mnt/nfsshare/
[[email protected] ~]# df -Th /mnt/nfsshare
Filesystem     Type  Size  Used Avail Use% Mounted on
192.168.1.51:/ nfs4   10G   32M   10G   1% /mnt/nfsshare
[[email protected] ~]#
[[email protected] ~]# cd /mnt/nfsshare/
[[email protected] nfsshare]# ls
nfsinfo
[[email protected] nfsshare]#

Per il test del cluster, arresta il servizio cluster su uno qualsiasi dei nodi e verifica se nfsshare è accessibile o meno. Supponiamo che interromperò il servizio cluster su "nfs1.example.com"

[[email protected] ~]# pcs cluster stop
Stopping Cluster (pacemaker)...
Stopping Cluster (corosync)...
[[email protected] ~]#

Ora vai sul computer client e controlla se nfsshare è ancora accessibile, nel mio caso sono ancora in grado di accedervi e di creare file su di esso.

[[email protected] nfsshare]# touch test
[[email protected] nfsshare]#

Ora abilita il servizio cluster su "nfs1.example.com" usando il comando seguente,

[[email protected] ~]# pcs cluster start
Starting Cluster...
[[email protected] ~]#

Questo è tutto da questo articolo, conferma che abbiamo configurato correttamente il clustering attivo-passivo NFS utilizzando il pacemaker. Per favore condividi il tuo feedback e commenti nella sezione commenti qui sotto.


Cent OS
  1. Configura DNS su CentOS 5 / RHEL 5 con chroot

  2. Come configurare il server DNS su CentOS 5 / RHEL 5

  3. Installa e configura il server FTP su CentOS 7 / RHEL 7 – (vsftpfd)

  4. Come configurare il server NFS su CentOS 7 / RHEL 7

  5. CentOS / RHEL 7:configurazione di un server NFS e un client NFS

Come configurare il server DNS (BIND) su CentOS 7 / RHEL 7

Configura OpenLDAP con SSL su CentOS 7 / RHEL 7

Configura il server FreeIPA su CentOS 7 / RHEL 7 – Un sistema di gestione delle identità

Come configurare il server DNS (BIND) su CentOS 8 / RHEL 8

Come configurare il server VNC su CentOS/RHEL 6

Come installare e configurare il server VNC su CentOS/RHEL 8