Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Content imported from a Scroll Translations translation file.

...

Sv translation
languagede

Status
colourRed
titleTHIS PAGE IS ONLY AVAILABLE IN ENGLISH

Sv translation
languagefr

Notes

Nous ne soutenons plus le DRBD sur le système de fichiers de base. Nous installons toujours avec LVM pour des raisons de maintenance.

Nous utilisons le disque entier, donc l'augmentation de la taille se fait en utilisant LVM par l'ajout de nouveaux disques.

Il est recommandé de créer la machine MAGASIN sans que le disque de stockage soit monté par les routines d'installation. 

Configuration du disque et du DRBD

Créer le volume physique LVM, le groupe de volumes et le volume logique de LVM (Les deux nœuds)

Les commandes ci-dessous supposent que /dev/sdb sera utilisé pour le DRBD en plus de la configuration LVM, et que les disques sont EXACTEMENT de la même taille.

Code Block
# Créer 
Create
le 
the
volume phsyical 
volume
- 
this
ceci 
is
est 
based
basé 
on
sur sdb 
assuming
en 
it
supposant 
is the second drive on the system
qu'il s'agit du deuxième lecteur du système lvm pvcreate / dev / sdb 
 
# 
#
Créer 
Create
le 
the
groupe 
volume
de 
group
volumes lvm vgcreate "vg_drbd_jtelshared" / dev / sdb 
 
# 
Create
Créer 
the
le 
logical
volume 
volume
logique lvm lvcreate -l +
100%FREE
 100% GRATUIT vg_drbd_jtelshared -n lv_drbd_jtelshared

Configurer le pare-feu pour DRBD (Les deux nœuds)

Code Block
# 
Prepare
Préparez 
the
le 
firewall
pare-feu firewall-cmd --zone=public --add-port=7788-7799/tcp --
permanent firewall
permanentfirewall-cmd --reload

Préparer le point de montage (Les deux nœuds)

Les données doivent être montées dans le répertoire /srv/jtel/shared.

Les commandements suivants s'y préparent :

Code Block
languagebash
mkdir /srv/jtel mkdir /srv
/jtel/shared chown -R jtel:jtel /srv/jtel
/jtel/shared chown -R jtel:jtel /srv/jtel

Installer ELrepo et DRBD (Les deux nœuds)

Nous installons maintenant DRBD 9. Cela nécessite l'utilisation de l'ELrepo. De plus, SELinux doit être défini sur permissif pour DRBD.

Code Block
languagebash
dnf -y install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org dnf -y install drbd90-utils kmod-drbd90 systemctl
enable drbd semanage permissive -a drbd_t systemctl start drbd
 enable drbd semanage permissive -a drbd_t systemctl start drbd

Configurer DRBD (les deux nœuds)

DRBD doit être configuré avec des adresses ip statiques et des noms d'hôtes corrects.

Les adresses IP ci-dessous doivent être modifiées :

Status
colourRouge
titleADDRESSES IP DE PRÉCAUTION
 
Status
colourRed
titleNOMS D'HÔTES DE PRÉCAUTION

Code Block
# Configure DRBD cat <<EOFF > /etc/drbd.d/jtelshared.res resource jtelshared { protocol C; meta-disk internal; device /dev/drbd0; syncer { verify-alg sha1; } net { allow-two-primaries; } on acd-store1.jtel.local { disk /dev/vg_drbd_jtelshared/lv_drbd_jtelshared; address 10.1.1.1:7789; } on acd-store2.jtel.local { disk /dev/vg_drbd_jtelshared/lv_drbd_jtelshared; address 10.1.1.2:7789; } } EOFF

Créer des métadonnées et démarrer (les deux nœuds)

Code Block
# Create metadata and start DRBD drbdadm create-md jtelshared drbdadm up jtelshared

Rendre UN Nœud primaire

Code Block
# MakeRendre ONEUN nodenœud primaryprincipal drbdadm primaire primary jtelshared --forcejtelshared --force

Attendre la synchro

DRBD va maintenant se synchroniser. Cela peut prendre un certain temps, mais vous n'avez pas besoin d'attendre, à condition de vous assurer que la primaire est active dans le groupe PCS ci-dessous.

Note : avec DRBD9, nous n'avons actuellement aucune option pour régler le transfert.

Vous pouvez regarder la synchronisation initiale avec la commande suivante :

Code Block
drbdadm status jtelshared

Vous verrez les choses ainsi :

Code Block
jtelshared role:Primary disk:UpToDate acd-store2 role:Secondary replication:SyncSource peer-disk:Inconsistent done
:7.19
:7.19

Cela signifie ce qui suit :

  • La machine locale est primaire.
  • Le disque de la machine locale est à jour.
  • acd-store2 est secondaire
  • Il est incohérent et synchrone, 7,19% Terminé

Vous pouvez continuer, mais il est généralement préférable d'attendre qu'il soit terminé.

Faire du deuxième nœud un nœud primaire (DEUXIÈME NŒUD SEULEMENT)

Code Block
drbdadm primary jtelshared

Créer un système de fichiers (premier nœud seulement)

Code Block
mkfs.xfs -L data /dev/drbd/by-res/jtelshared/0

Créer une entrée fstab pour le système de fichiers (Les deux nœuds)

Cette commande ajoute une ligne à /etc/fstab

Code Block
cat << EOFF >> /etc/fstab /dev/drbd/by-res/jtelshared/0 /srv/jtel/shared xfs
noauto,noatime,nodiratime 0 0 EOFF
 noauto,noatime,nodiratime 0 0 EOFF

Tester DRBD

Maintenant, nous pouvons tester la configuration du DRBD.

Monter le système de fichiers (PREMIER nœud)

Code Block
mount /srv/jtel/shared

Créer un fichier test et le démonter (PREMIER nœud) 

Code Block
cat <<EOFF > /srv/jtel/shared/test.txt test 123 EOFF umount /srv/jtel/shared

Monter le système de fichiers et vérifier le fichier test (SECOND Node)

Code Block
mount /srv/jtel/shared cat /srv/jtel/shared/test.txt # Check contents of file before proceeding      rm /srv/jtel/shared/test.txt umount /
test.txt umount /srv/jtel/shared
srv/jtel/shared


Warning

Ne procédez pas si vous ne pouvez pas voir le contenu du fichier test.

Commentaire Monter dans fstab (les DEUX nœuds) et désactiver DRBD

warning

Code Block
sed -i '/jtelshared/s/^/#/' fstab systemctl disable drbd umount /srv
/jtel/shared
/jtel/shared

Installer le PCS Cluster (LES DEUX NODES)

Info

Si vous n'avez pas installé Pacemaker / Corosync sur les deux machines LB, faites-le maintenant - voir ici : Redundancy - Installing PCS Cluster

Installer et configurer Samba 

Installation (les deux nœuds)

Ces commandes installent le serveur et le client samba et lsof.

info

Translations Ignore


Code Block
dnf -y install samba samba-client lsof


Configurer Samba (les deux nœuds)

Ce qui suit crée un fichier de configuration samba avec une configuration minimale.

Translations Ignore


Code Block
# SMB Conf cat <<EOFF > /etc/samba/smb.conf [global] workgroup = JTEL security = user passdb backend = tdbsam min protocol = SMB3 reset on zero vc = yes [shared] comment = jtel ACD Shared Directory public = no read only = no writable = yes locking = yes path = /srv/jtel/shared create mask = 0644 directory mask = 0755 force user = jtel force group = jtel acl allow execute always = True EOFF


Configuration de SeLinux et du pare-feu (LES DEUX NODES)

La commande suivante configure selinux pour le service smb et ouvre les ports nécessaires dans le pare-feu : allow execute always = True EOFF


Translations Ignore


Code Block
setsebool -P samba_enable_home_dirs=on samba_export_all_rw=on use_samba_home_dirs=on use_nfs_home_dirs=on firewall-cmd --zone=public --add-port=445/tcp --add-port=139/tcp --add-port=138/udp --add-port=137/udp --permanent firewall-cmd --reload


Liez /home/jtel/shared (LES DEUX NODES)

Liez le dossier /home/jtel/shared. 

Translations Ignore


Code Block
ln -s /srv/jtel/shared /home/jtel/shared


Configuration de l'accès au serveur Samba

accès utilisateur jtel (LES DEUX NODES)

La commande suivante crée les identifiants smb pour l'utilisateur jtel.jtel/shared /home/jtel/shared

Status
colourRed
titleMot de passe de précaution

Translations Ignore


Code Block
printf '<password>\n<password>\n' | smbpasswd -a -s jtel \n' | smbpasswd -a -s jtel 


Accès supplémentaire pour les utilisateurs (LES DEUX NODES)

Si nécessaire, ajoutez d'autres utilisateurs à samba - en remplaçant le mot de passe par le mot de passe réel de l'utilisateur. Ici, par exemple, l'utilisateur administrateur de Windows :

Status
colourRed
titleMot de passe de précaution

Translations Ignore


Code Block
useradd -m Administrator printf '<password>\n<password>\n' | smbpasswd -a -s Administrator  smbpasswd -a -s Administrator 


Configurer les ressources du cluster

Désormais, toutes les ressources seront configurées dans le cluster pacemaker.

Configurer l'IP virtuel (UN seul nœud !)

Modifiez les éléments suivants pour définir l'IP virtuel qui doit être partagé entre les nœuds.

Status
colourRed
titleAdresse IP de Caution

Code Block
JT_VIP=10.1.1.100

Configurer les ressources PCS pour le montage de la DRBD, la DRBD primaire / secondaire, la Samba et l'adresse IP virtuelle (Un seul nœud !)

Configurez les ressources PCS à l'aide des commandes suivantes :

Code Block
# Configure using a file jtel_cluster_config cd pcs cluster cib jtel_cluster_config # DRBD Primary Secondary pcs -f jtel_cluster_config resource create DRBDClusterMount ocf:linbit:drbd drbd_resource=jtelshared op monitor interval=60s pcs -f jtel_cluster_config resource promotable DRBDClusterMount promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true # DRBD File System Mount pcs -f jtel_cluster_config resource create DRBDClusterFilesystem ocf:heartbeat:Filesystem device="/dev/drbd/by-res/jtelshared/0" directory="/srv/jtel/shared" fstype="xfs" # Colocation of File System Mount with Primary DRBD instance pcs -f jtel_cluster_config constraint colocation add DRBDClusterFilesystem with DRBDClusterMount-clone INFINITY with-rsc-role=Master # Promote first, then start filesystem pcs -f jtel_cluster_config constraint order promote DRBDClusterMount-clone then start DRBDClusterFilesystem # Resource for Samba pcs -f jtel_cluster_config resource create Samba systemd:smb op monitor interval=30s # Resource for virtual IP pcs -f jtel_cluster_config resource create ClusterIP ocf:heartbeat:IPaddr2 ip=${JT_VIP} cidr_netmask=32 op monitor interval=30s # Samba must be with active DRBD filesystem pcs -f jtel_cluster_config constraint colocation add Samba with DRBDClusterFilesystem INFINITY # Cluster IP must be with Samba pcs -f jtel_cluster_config constraint colocation add ClusterIP with Samba INFINITY # Start DRBD File system then start Samba pcs -f jtel_cluster_config constraint order DRBDClusterFilesystem then Samba # Start Samba then start Cluster IP pcs -f jtel_cluster_config constraint order Samba then ClusterIP

Vérifiez la configuration :

Code Block
# 
Check
Vérifiez le 
the
fichier 
config
de 
file
configuration pcs -f jtel_cluster_config config

Poussez la configuration vers le cluster :

Code Block
# 
Push
Poussez 
the
la 
config
configuration 
to
sur 
the
le cluster de PCs 
pcs
du cluster cib-push jtel_cluster_config --config

Tests

Tester le statut du PC

Tout d'abord, nous testons le statut du cluster :

Code Block
pcs status

Vous devriez voir un résultat similaire à celui-ci :


Code Block
Cluster
Nom du 
name
cluster: jtel_cluster 
Cluster
Récapitulatif du 
Summary
cluster: * 
Stack
Pile: corosync * 
Current
DC 
DC
actuel: acd-lb1 (version 2.0.3-5.el8_2.1-4b1f869f0f) - partition 
with
avec quorum * Dernière mise 
Last
à 
updated
jour: 
Sat
Sam 3 Oct
3
 12:59:34 2020 * 
Last
Dernier 
change
changement: 
Sat
Sam 3 Oct
3
 12:31:22 2020 by root via cibadmin on acd-lb2 * 2 nodes configured * 5 resource instances configured Node List: * Online: [ acd-lb1 acd-lb2 ] Full List of Resources: * Clone Set: DRBDClusterMount-clone [DRBDClusterMount] (promotable): * Masters: [ acd-lb1 ] * Stopped: [ acd-lb2 ] * DRBDClusterFilesystem (ocf::heartbeat:Filesystem
): Started acd-lb1 * Samba (systemd:smb): Started acd-lb1 * ClusterIP (ocf::heartbeat:IPaddr2): Started acd-lb1 Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled
): Started acd-lb1 * Samba (systemd:smb): Started acd-lb1 * ClusterIP (ocf::heartbeat:IPaddr2): Started acd-lb1 Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled

Assurez-vous que toutes les ressources sont lancées et que les deux nœuds sont en ligne.

Tester la monture du fichier

You should now be able to access \\acd-store\shared des machines à fenêtres par exemple. 

Si vous voulez tester à partir de linux, vous devrez monter le MAGASIN comme décrit ici : Mounting STORE - All Linux except for STORE (CentOS8/Win2019)

Test Failover et Failback

Vous pouvez tester le failover et le failback avec l'une des commandes suivantes :

En veille (Standby) et hors veille (Unstandby)

Code Block
pcs node standby acd-lb1 # TEST pcs node unstandby acd-lb1 # TEST pcs node standby acd-lb1 # TEST pcs node unstandby acd-lb1 # TEST 

Arrêter le nœud du cluster

Code Block
pcs cluster stop acd-lb1 # TEST pcs cluster start acd-lb1 # TEST pcs cluster stop acd-lb2 # TEST pcs cluster start acd-lb2 # TEST 

Redémarrer

Le redémarrage est également un bon moyen de tester.

Déconnecté

C'est la meilleure façon de faire le test, mais sachez que vous pouvez provoquer une scission du cerveau sur la DRBD et qu'il faut la réparer.