MODOP – Partie 2 – Cluster ZFS/GlusterFS et SAMBA HA

1. Installation et ctdb/SAMBA (3 nodes)

Installation des paquets nécessaire à SMB (3 nodes)

[root@clustergfs0x ~]# yum -y install ctdb samba samba-winbind samba-winbind-clients samba-client

2. Configuration SAMBA (3 nodes)

[root@clustergfs01 ~]# vi /etc/samba/smb.conf

[global]
 workgroup = SAMBA
 guest ok = yes
 clustering = yes
 netbios name = ClusterGFS

[homes]
 comment = Home Directories
 valid users = %S, %D%w%S
 browseable = No
 read only = No
 inherit acls = Yes

[gluster]
 comment = Gluster Share H.A Volume Tank
 path = /mnt/tank
 read only = No
 guest ok = yes
 #kernel share modes = No
 browseable = yes
 writable = yes
[root@clustergfs01 ~]# scp /etc/samba/smb.conf root@clustergfs02:/etc/samba/smb.conf
[root@clustergfs01 ~]# scp /etc/samba/smb.conf root@clustergfs03:/etc/samba/smb.conf
[root@clustergfs0x ~]# net cache flush
[root@clustergfs0x ~]# mkdir -p /var/log/samba/
[root@clustergfs0x ~]# mkdir /var/lib/samba/drivers
[root@clustergfs0x ~]# mkdir /profiles

Création User chris Samba ⬄ chris Linux (3 nodes)

[root@clustergfs0x samba]# cat /etc/passwd|grep chris

Ajout User « chris » Samba (3 nodes)

[root@clustergfs0x ~]# smbpasswd -a chris
New SMB password: « Votre password »
Retype new SMB password: « Votre password »

Ajout Répertoire User « chris » sur GlusterFS (node01)

[root@clustergfs01 mnt]# mkdir -p /mnt/tank/chris
[root@clustergfs01 mnt]# chown chris.chris /mnt/tank/chris
[root@clustergfs01 mnt]# chmod 775 /mnt/tank/chris

3. 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_SAMBA=yes" >> /mnt/ctdb/ctdb.conf
[root@clustergfs01 ~]# echo "CTDB_MANAGES_WINBIND=yes" >> /mnt/ctdb/ctdb.conf
[root@clustergfs01 ~]# cat /mnt/ctdb/ctdb.conf

Configuration fichier « nodes » – IP Privé (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 » – VIP (node01)

[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@clustergfs0x ~]# 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@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

Désactiver les services smb et nmb (3 nodes)

[root@clustergfs0x ~]# chkconfig smb off
[root@clustergfs0x ~]# chkconfig nmb off

Activation Script dans ctdb (3 nodes)

[root@clustergfs0x ~]# ctdb event script enable legacy 50.samba
[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 49.winbind

Check Cluster smb

[root@clustergfs01 ~]# smbd -b | grep -i 'ctdb\|cluster'

Ajout des rules firewall samba(3 nodes)

[root@clustergfs0x ~]# firewall-cmd --add-service={ctdb,samba} --permanent --zone=public
[root@clustergfs0x ~]# firewall-cmd --reload

[root@clustergfs0x ~]# firewall-cmd --list-service
ctdb samba ssh

Démarrer le cluster CTDB (node01)

[root@clustergfs01 ~]# onnode -p all service ctdb start

Enable service CTDB (node03)

[root@clustergfs0x ~]# systemctl enable ctdb
[root@clustergfs01 ~]# ctdb scriptstatus

[root@clustergfs01 ~]# netstat -antp |grep ctdb

Check cluster CTDB

[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

Check Connexion SMB – côté Serveur (node01)

[root@clustergfs01 ~]# smbstatus

[root@clustergfs01 ~]# smbclient -L //clustersmb01

[root@clustergfs01 ~]# smbclient -L //clustersmb02

[root@clustergfs01 ~]# smbclient -L //clustersmb03

4. Check Connexion – Explorateur  (Client Windows)

Connexion des 3 nœuds

C:\Users\chris>net use P: \2.168.1.14\gluster

C:\Users\chris>net use Q: \2.168.1.15\gluster
C:\Users\chris>net use R: \2.168.1.16\gluster

Check Connexion SMB

C:\Users\chris>net view \2.168.1.14

C:\Users\chris>net view \2.168.1.15

C:\Users\chris>net view \2.168.1.16


« Explorateur de fichier »

Tout fichier copier/modifier/supprimer sur un nœud sera répliqué sur les autres nœuds du Cluster

Déconnexion des 3 nœuds

C:\Users\chris>net use P: /delete
C:\Users\chris>net use Q: /delete
C:\Users\chris>net use R: /delete

5, Ajout VIP/Host Centralisant le service de partage SMB

Ajout VIP/Host dans le DNS

Dans la zone SOA

[root@dns-pri chris]# vi /var/named/forward.house.cpb

; Serveur Samba – zfs-glusterFS
clustergfs IN A 192.168.1.100
clustergfs IN A 192.168.1.101
clustergfs IN A 192.168.1.102

Dans le reverse

[root@dns-pri chris]# vi /var/named/reverse.house.cpb

; Serveur Samba – zfs-glusterFS
100 IN PTR clustergfs.house.cpb.
101 IN PTR clustergfs.house.cpb.
102 IN PTR clustergfs.house.cpb.

Reste à modifier le numéro de série des fichiers et restart le service BIND

[root@dns-pri named]# systemctl reload named

Ajout VIP/Host sur client Windows (no DNS)

  • Editer le fichier C:\Windows\System32\drivers\etc\hosts

Ajouter les lignes suivantes

### Cluster SMB - ZFS et GlusterFS

192.168.1.100 clustergfs
192.168.1.101 clustergfs
192.168.1.102 clustergfs

Connexion via VIP/Host sur client Windows

C:\Users\chris>net use P: \\ClusterGFS\gluster

C:\Users\chris>net view \\ClusterGFS

Côté explorateur de fichier

Connexion Client côté Serveur

[root@clustergfs01 ~]# smbstatus

[root@clustergfs02 ~]# smbstatus

[root@clustergfs03 ~]# smbstatus

6. Test de résilience HA CIFS – copie de fichier

Copie d’un fichier ISO sur l’explorateur du client Windows


Clustergfs01 est UP

Check du statut de la copie sur les 3 nœuds GFS


Les « files Locked » pour le fichier ISO en cours de copie.

Test de la panne du noeud1

[root@clustergfs01 ~]# shutdown now


Clustergfs01 est down

[root@clustergfs02 ctdb]# ctdb status

La copie du fichier sous Windows continue malgré la perte du node1 sur la ressource \\ClusterGFS\gluster\chris

Check Statut après redémarrage du node1

[root@clustergfs01 ~]# ctdb status

Check intégrité préservée du fichier ISO

[root@clustergfs01 ~]# ls -al /mnt/tank/chris/

[root@clustergfs01 ~]# sha1sum /mnt/tank/chris/20348.169.210806-2348.fe_release_svc_refresh_SERVER_EVAL_x64FRE_fr-fr.iso

Checksum du fichier node1 SHA1: a8a3b9e7d3d8f5c539a23005fee84cec5b7aed74

[root@clustergfs02 ~]# ls -al /mnt/tank/chris/

[root@clustergfs02 ~]# sha1sum /mnt/tank/chris/20348.169.210806-2348.fe_release_svc_refresh_SERVER_EVAL_x64FRE_fr-fr.iso

Checksum du fichier node2 SHA1 : a8a3b9e7d3d8f5c539a23005fee84cec5b7aed74

[root@clustergfs03 ~]# ls -al /mnt/tank/chris/

[root@clustergfs03 ~]# sha1sum /mnt/tank/chris/20348.169.210806-2348.fe_release_svc_refresh_SERVER_EVAL_x64FRE_fr-fr.iso

Checksum fichier node3 SHA1 : a8a3b9e7d3d8f5c539a23005fee84cec5b7aed74

Views: 4

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *