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
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
# Create the phsyical volume - this is based on sdb assuming it is the second drive on the system lvm pvcreate /dev/sdb   # Create the volume group lvm vgcreate "vg_drbd_jtelshared" /dev/sdb   # Create the logical volume lvm lvcreate -l +100%FREE vg_drbd_jtelshared -n lv_drbd_jtelshared

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

Code Block
# Prepare the firewall firewall-cmd --zone=public --add-port=7788-7799/tcp --permanent firewall-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 commandes suivants s'y préparent :

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

Installer ELrepo et DRBD (Les deux nœuds)

Nous installons maintenant le DRBD 9. Cela nécessite l'utilisation de l'ELrepo. De plus, SELinux doit être réglé 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

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
colourRed
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
# Make ONE node primary drbdadm primary jtelshared --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

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

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 /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

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

Installer le PCS Cluster (LES DEUX NODES)

Info

If you have not installed Pacemaker / Corosync on both LB machines, do this now - see here: Redundancy - Installing PCS Cluster

Installer et configurer Samba 

Installation (les deux nœuds)

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

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 :


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.

Status
colourRed
titleMot de passe de précaution

Translations Ignore


Code Block
printf '<password>\n<password>\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 


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 the config file pcs -f jtel_cluster_config config

Poussez la configuration vers le cluster :

Code Block
# Push the config to the cluster pcs 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 name: jtel_cluster Cluster Summary: * Stack: corosync * Current DC: acd-lb1 (version 2.0.3-5.el8_2.1-4b1f869f0f) - partition with quorum * Last updated: Sat Oct 3 12:59:34 2020 * Last change: Sat 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

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. 

If you want to test from linux, you will need to mount STORE as described here: 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.