NotesNous 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 DRBDCré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 |
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 |
---|
| 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 |
---|
| 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 |
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 |
---|
colour | Rouge |
---|
title | ADDRESSES IP DE PRÉCAUTION |
---|
| Status |
---|
colour | Red |
---|
title | NOMS 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 synchroDRBD 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 DRBDMaintenant, 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. |
Code Block |
---|
sed -i '/jtelshared/s/^/#/' fstab systemctl disable drbd umount /srv/jtel/shared |
Installer le PCS Cluster (LES DEUX NODES)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 |
|
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 Sambaaccès utilisateur jtel (LES DEUX NODES)La commande suivante crée les identifiants smb pour l'utilisateur jtel. Status |
---|
colour | Red |
---|
title | Mot 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 |
---|
colour | Red |
---|
title | Mot de passe de précaution |
---|
|
Translations Ignore |
---|
Code Block |
---|
useradd -m Administrator printf '<password>\n<password>\n' | smbpasswd -a -s Administrator |
|
Désormais, toutes les ressources seront configurées dans le cluster pacemaker. Modifiez les éléments suivants pour définir l'IP virtuel qui doit être partagé entre les nœuds. Status |
---|
colour | Red |
---|
title | Adresse IP de Caution |
---|
|
Code Block |
---|
JT_VIP=10.1.1.100 |
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 |
TestsTester le statut du PCTout d'abord, nous testons le statut du cluster : 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 fichierYou 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 FailbackVous 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émarrerLe 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.
|