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
# Créer le volume phsyical - ceci est basé sur sdb en supposant qu'il s'agit du deuxième lecteur du système lvm pvcreate / dev / sdb # Créer le groupe de volumes lvm vgcreate "vg_drbd_jtelshared" / dev / sdb # Créer le volume logique lvm lvcreate -l + 100% GRATUIT vg_drbd_jtelshared -n lv_drbd_jtelshared

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

Code Block
# Préparez le pare-feu firewall-cmd --zone=public --add-port=7788-7799/tcp --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

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

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
colourRougeRed
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
# Rendre UN nœud principal drbdadm primaire 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

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.

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
# Vérifiez le fichier de configuration pcs -f jtel_cluster_config config

Poussez la configuration vers le cluster :

Code Block
# Poussez la configuration sur le cluster de 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
Nom du cluster: jtel_cluster Récapitulatif du cluster: * Pile: corosync * DC actuel: acd-lb1 (version 2.0.3-5.el8_2.1-4b1f869f0f) - partition avec quorum * Dernière mise à jour: Sam 3 Oct 12:59:34 2020 * Dernier changement: Sam 3 Oct 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. 

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.