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