1. Installation et ctdb/NFS (3 nodes)
Installation des paquets nécessaire à NFS(3 nodes)
[root@clustergfs0x ~]# dnf install nfs-utils ctdb rpcbind quota-rpc [root@clustergfs0x ~]# yum -y install fuse neon wget
2. Configuration NFS export (3 nodes)
[root@clustergfs01 /]# echo /mnt/tank *(rw,fsid=1200,sync,no_root_squash,no_all_squash) " >> /etc/exports [root@clustergfs01 ~]# scp /etc/exports root@clustergfs02:/etc/exports [root@clustergfs01 ~]# scp /etc/exports root@clustergfs03:/etc/exports [root@clustergfs0x ~]# exportfs -arv exporting *:/mnt/tank [root@clustergfs0x ~]# exportfs -s /mnt/tank *(sync,wdelay,hide,no_subtree_check,fsid=1234,sec=sys,rw,no_root_squash,no_all_squash)
Création User chris Samba ⬄ chris Linux (3 nodes)
[root@clustergfs0x ~]# cat /etc/passwd|grep chris
Ajout Répertoire User « chris » sur GlusterFS
[root@clustergfs01 ~]# mkdir -p /mnt/tank/chris [root@clustergfs01 ~]# chown chris.chris /mnt/tank/chris [root@clustergfs01 ~]# chmod 775 /mnt/tank/chris
3. Configuration NFS Server (3 nodes)
[root@clustergfs01 ~]# vi /etc/sysconfig/nfs CTDB_MANAGES_NFS=yes NFS_TICKLE_SHARED_DIRECTORY=/mnt/ctdb/nfs-tickles STATD_PORT=595 STATD_OUTGOING_PORT=596 MOUNTD_PORT=597 RQUOTAD_PORT=598 LOCKD_UDPPORT=599 LOCKD_TCPPORT=599 STATD_SHARED_DIRECTORY=/mnt/ctdb/nfs-state NFS_HOSTNAME="clustergfs" STATD_HOSTNAME="$NFS_HOSTNAME -P "$STATD_SHARED_DIRECTORY/$PUBLIC_IP" -H /etc/ctdb/statd-callout -p 97"
[root@clustergfs01 ~]# scp /etc/sysconfig/nfs root@clustergfs02:/etc/sysconfig/nfs [root@clustergfs01 ~]# scp /etc/sysconfig/nfs root@clustergfs03:/etc/sysconfig/nfs
4. Configuration Cluster ctdb
Configuration fichier « ctdb.conf » (node01)
[root@clustergfs01 ~]# echo "CTDB_RECOVERY_LOCK=/mnt/ctdb/ctdb.lock" > /mnt/ctdb/ctdb.conf [root@clustergfs01 ~]# echo "CTDB_NODES=/mnt/ctdb/nodes" >> /mnt/ctdb/ctdb.conf [root@clustergfs01 ~]# echo "CTDB_PUBLIC_ADDRESSES=/mnt/ctdb/public_addresses" >> /mnt/ctdb/ctdb.conf [root@clustergfs01 ~]# echo "CTDB_MANAGES_NFS=yes" >> /mnt/ctdb/ctdb.conf [root@clustergfs01 ~]# echo "CTDB_DEBUGLEVEL=ERR" >> /mnt/ctdb/ctdb.conf
[root@clustergfs01 ~]# cat /mnt/ctdb/ctdb.conf
Configuration fichier « nodes » – IP privés (node01)
[root@clustergfs01 ~]# echo "172.17.186.20" >> /mnt/ctdb/nodes [root@clustergfs01 ~]# echo "172.17.186.21" >> /mnt/ctdb/nodes [root@clustergfs01 ~]# echo "172.17.186.22" >> /mnt/ctdb/nodes
[root@clustergfs01 ~]# cat /mnt/ctdb/nodes
Configuration fichier « public_addresses » – IP VIP
[root@clustergfs01 ~]# echo "192.168.1.100/24 bond1" >> /mnt/ctdb/public_addresses [root@clustergfs01 ~]# echo "192.168.1.101/24 bond1" >> /mnt/ctdb/public_addresses [root@clustergfs01 ~]# echo "192.168.1.102/24 bond1" >> /mnt/ctdb/public_addresses
[root@clustergfs01 ~]# cat /mnt/ctdb/public_addresses
Centraliser les fichiers conf CTDB (3 nodes)
[root@clustergfs0x ~]# ln -s /mnt/ctdb/nodes /etc/ctdb/nodes [root@clustergfs0x ~]# ln -s /mnt/ctdb/public_addresses /etc/ctdb/public_addresses [root@clustergfs01 ~]# cp /etc/ctdb/ctdb.conf-old /mnt/ctdb/ctdb.conf [root@clustergfs0x ~]# mv /etc/ctdb/ctdb.conf{,-old} [root@clustergfs0x ~]# ln -s /mnt/ctdb/ctdb.conf /etc/ctdb/ctdb.conf [root@clustergfs0x ~]# chmod +x /etc/ctdb/functions [root@clustergfs0x ~]# mkdir -p /etc/ctdb/events/functions
Copy des Clefs locales (3 nodes)
[root@clustergfs01 ~]# ssh-copy-id root@172.17.186.20 [root@clustergfs02 ~]# ssh-copy-id root@172.17.186.21 [root@clustergfs03 ~]# ssh-copy-id root@172.17.186.22
Activation Script dans ctdb (3 nodes)
[root@clustergfs0x ~]# ctdb event script enable legacy 10.interface [root@clustergfs0x ~]# ctdb event script enable legacy 00.ctdb [root@clustergfs0x ~]# ctdb event script enable legacy 01.reclock [root@clustergfs0x ~]# ctdb event script enable legacy 05.system [root@clustergfs0x ~]# ctdb event script enable legacy 60.nfs [root@clustergfs0x ~]# ctdb event script enable legacy 06.nfs
Ajout des rules firewall NFS (3 nodes)
[root@clustergfs0x ~]# firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd} --zone=public [root@clustergfs0x ~]# firewall-cmd --reload [root@clustergfs0x ~]# firewall-cmd --list-service mountd nfs rpc-bind ssh
Démarrer le cluster CTDB (node01)
[root@clustergfs01 ~]# onnode -p all service ctdb start
Enable service CTDB (3 nodes)
[root@clustergfs0x ~]# systemctl enable ctdb
[root@clustergfs0x ~]# ctdb scriptstatus
[root@clustergfs0x ~]# netstat -antp |grep ctdb
Check cluster CTDB (node01)
[root@clustergfs01 ~]# onnode -q all ctdb ping
[root@clustergfs01 ~]# ctdb status
[root@clustergfs01 ~]# ctdb ip
[root@clustergfs01 ~]# ctdb ip -v
[root@clustergfs01 ~]# ip a |grep bond1
[root@clustergfs02 ~]# ip a |grep bond1
[root@clustergfs03 ~]# ip a |grep bond1
Check communication des VIP (node01)
[root@clustergfs01 ~]# ping -c 2 192.168.1.100 [root@clustergfs01 ~]# ping -c 2 192.168.1.101 [root@clustergfs01 ~]# ping -c 2 192.168.1.102
Check des logs ctdb
[root@clustergfs01 ~]# tail -f /var/log/log.ctdb
[root@clustergfs02 ~]# tail -f /var/log/log.ctdb
[root@clustergfs03 ~]# tail -f /var/log/log.ctdb
Ajout des Hosts Lan Public (3 nodes)
[root@clustergfs0x ~]# vi /etc/hosts 192.168.1.14 clustersmb01 192.168.1.15 clustersmb02 192.168.1.16 clustersmb03
5. Connexion d’un Client Linux
Mise à jour
[root@clustergfs-client ~]# dnf -y update
Désactivation SELinux
[root@clustergfs-client ~]# setenforce 0 [root@clustergfs-client ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
Installation des paquets NFS client
[root@clustergfs-client ~]# yum -y install epel-release [root@clustergfs-client ~]# yum install nfs-utils
Ajout VIP clustergfs
[root@clustergfs-client ~]# vi /etc/hosts 192.168.1.100 clustergfs 192.168.1.101 clustergfs 192.168.1.102 clustergfs
Check Découvert du Share
[root@clustergfs-client ~]# showmount -e 192.168.1.100 Export list for 192.168.1.100: /mnt/tank *
[root@clustergfs-client ~]# showmount -e 192.168.1.101
Export list for 192.168.1.101:
/mnt/tank *
[root@clustergfs-client ~]# showmount -e 192.168.1.102 Export list for 192.168.1.102: /mnt/tank *
Montage du share sur le Client
[root@clustergfs-client ~]# mkdir /mnt/data [root@clustergfs-client ~]# mount -t nfs clustergfs:/mnt/tank /mnt/data
[root@clustergfs-client ~]# df -Th /mnt/data
6. Test de résilience HA NFS – copie de fichier
Check écriture simultanée
Sur le client
[root@clustergfs-client /]# echo "Deuxieme Test - NFS Ecriture" >> /mnt/data/NFS.txt [root@clustergfs-client /]# cat /mnt/data/NFS.txt Deuxieme Test - NFS Ecriture
Sur les serveurs clusterGFS
[root@clustergfs01 ~]# cat /mnt/tank/NFS.txt Deuxieme Test - NFS Ecriture
[root@clustergfs02 ~]# cat /mnt/tank/NFS.txt Deuxieme Test - NFS Ecriture
[root@clustergfs03 ~]# cat /mnt/tank/NFS.txt Deuxieme Test - NFS Ecriture
Check résilience avec perte d’un nœud
Sur le client
[root@clustergfs-client ~]# cd /mnt/data/ [root@clustergfs-client data]# yum install wget [root@clustergfs-client data]# wget https://download.fedoraproject.org/pub/fedora/linux/releases/37/Server/x86_64/iso/Fedora-Server-dvd-x86_64-37-1.7.iso
Sur les serveurs
Faisons tomber le nœuds 1
[root@clustergfs01 ~]# shutdown –h 0
On peut constater que le client linux télécharge toujours son fichier avec la perte du node01.
Faisons tomber le nœuds 2
On peut constater que le client continu de télécharge le fichier ISO malgré la perte du node01 et du node02.
Check intégrité préservée du fichier ISO
On redémarre le node1 et node2
Sur le client
[root@clustergfs-client data]# sha1sum Fedora-Server-dvd-x86_64-37-1.7.iso 5e40acfff1de12182535b5bf5cf3804f32ffeed4 Fedora-Server-dvd-x86_64-37-1.7.iso
Checksum du fichier – client SHA1: 5e40acfff1de12182535b5bf5cf3804f32ffeed4
Sur les serveurs
[root@clustergfs01 ~]# sha1sum /mnt/tank/Fedora-Server-dvd-x86_64-37-1.7.iso 5e40acfff1de12182535b5bf5cf3804f32ffeed4 /mnt/tank/Fedora-Server-dvd-x86_64-37-1.7.iso
Checksum du fichier – node01 SHA1: 5e40acfff1de12182535b5bf5cf3804f32ffeed4
[root@clustergfs02 ~]# sha1sum /mnt/tank/Fedora-Server-dvd-x86_64-37-1.7.iso 5e40acfff1de12182535b5bf5cf3804f32ffeed4 /mnt/tank/Fedora-Server-dvd-x86_64-37-1.7.iso
Checksum du fichier – node02 SHA1: 5e40acfff1de12182535b5bf5cf3804f32ffeed4
[root@clustergfs03 ~]# sha1sum /mnt/tank/Fedora-Server-dvd-x86_64-37-1.7.iso 5e40acfff1de12182535b5bf5cf3804f32ffeed4 /mnt/tank/Fedora-Server-dvd-x86_64-37-1.7.iso
Checksum du fichier – node03 SHA1: 5e40acfff1de12182535b5bf5cf3804f32ffeed4
Views: 2