Chapitre 8. Configuration d'un serveur Samba actif/actif dans un cluster Red Hat High Availability
Le module complémentaire de haute disponibilité de Red Hat prend en charge la configuration de Samba dans une configuration de grappe active/active. Dans l'exemple suivant, vous configurez un serveur Samba actif/actif sur un cluster RHEL à deux nœuds.
Pour plus d'informations sur les politiques d'assistance pour Samba, voir Politiques d'assistance pour RHEL High Availability - Politiques générales de ctdb et Politiques d'assistance pour RHEL Resilient Storage - Exportation de contenus gfs2 via d'autres protocoles sur le Portail client de Red Hat.
Pour configurer Samba dans un cluster actif/actif :
- Configurer un système de fichiers GFS2 et ses ressources cluster associées.
- Configurez Samba sur les nœuds du cluster.
- Configurez les ressources du cluster Samba.
- Testez le serveur Samba que vous avez configuré.
8.1. Configuration d'un système de fichiers GFS2 pour un service Samba dans un cluster à haute disponibilité
Avant de configurer un service Samba actif/actif dans un cluster Pacemaker, configurez un système de fichiers GFS2 pour le cluster.
Conditions préalables
- Un cluster Red Hat High Availability à deux nœuds avec des clôtures configurées pour chaque nœud
- Stockage partagé disponible pour chaque nœud du cluster
- Un abonnement au canal AppStream et au canal Resilient Storage pour chaque nœud du cluster
Pour plus d'informations sur la création d'un cluster Pacemaker et la configuration de la clôture pour le cluster, voir Création d'un cluster Red Hat High-Availability avec Pacemaker.
Procédure
Sur les deux nœuds de la grappe, effectuez les étapes de configuration initiale suivantes.
Activez le référentiel Resilient Storage correspondant à l'architecture de votre système. Par exemple, pour activer le référentiel Resilient Storage pour un système x86_64, entrez la commande
subscription-manager
suivante :# subscription-manager repos --enable=rhel-9-for-x86_64-resilientstorage-rpms
Le référentiel de stockage résilient est un surensemble du référentiel de haute disponibilité. Si vous activez le référentiel de stockage résilient, il n'est pas nécessaire d'activer également le référentiel de haute disponibilité.
Installez les paquets
lvm2-lockd
,gfs2-utils
, etdlm
.# yum install lvm2-lockd gfs2-utils dlm
Définissez l'option de configuration
use_lvmlockd
dans le fichier/etc/lvm/lvm.conf
àuse_lvmlockd=1
.... use_lvmlockd = 1 ...
Sur un nœud de la grappe, définissez le paramètre global de Pacemaker
no-quorum-policy
surfreeze
.NotePar défaut, la valeur de
no-quorum-policy
est fixée àstop
, indiquant qu'une fois le quorum perdu, toutes les ressources sur la partition restante seront immédiatement arrêtées. En général, cette valeur par défaut est l'option la plus sûre et la plus optimale, mais contrairement à la plupart des ressources, GFS2 a besoin du quorum pour fonctionner. Lorsque le quorum est perdu, les applications utilisant les montages GFS2 et le montage GFS2 lui-même ne peuvent pas être arrêtés correctement. Toute tentative d'arrêt de ces ressources sans quorum échouera, ce qui aura pour conséquence de clôturer l'ensemble du cluster à chaque fois que le quorum est perdu.Pour remédier à cette situation, définissez
no-quorum-policy
surfreeze
lorsque GFS2 est utilisé. Cela signifie que lorsque le quorum est perdu, la partition restante ne fera rien jusqu'à ce que le quorum soit rétabli.[root@z1 ~]# pcs property set no-quorum-policy=freeze
Configurer une ressource
dlm
. Il s'agit d'une dépendance nécessaire pour configurer un système de fichiers GFS2 dans un cluster. Cet exemple crée la ressourcedlm
dans le cadre d'un groupe de ressources nommélocking
. Si vous n'avez pas préalablement configuré la clôture pour le cluster, cette étape échoue et la commandepcs status
affiche un message d'échec de la ressource.[root@z1 ~]# pcs resource create dlm --group locking ocf:pacemaker:controld op monitor interval=30s on-fail=fence
Clonez le groupe de ressources
locking
afin que le groupe de ressources puisse être actif sur les deux nœuds du cluster.[root@z1 ~]# pcs resource clone locking interleave=true
Créez une ressource
lvmlockd
dans le cadre du groupe de ressourceslocking
.[root@z1 ~]# pcs resource create lvmlockd --group locking ocf:heartbeat:lvmlockd op monitor interval=30s on-fail=fence
Créez un volume physique et un groupe de volumes partagés sur le périphérique partagé
/dev/vdb
. Cet exemple crée le groupe de volumes partagéscsmb_vg
.[root@z1 ~]# pvcreate /dev/vdb [root@z1 ~]# vgcreate -Ay --shared csmb_vg /dev/vdb Volume group "csmb_vg" successfully created VG csmb_vg starting dlm lockspace Starting locking. Waiting until locks are ready
Sur le deuxième nœud du cluster :
Ajoutez le périphérique partagé au fichier des périphériques LVM.
[root@z2 ~]# lvmdevices --adddev /dev/vdb
Démarrer le gestionnaire de verrouillage pour le groupe de volumes partagés.
[root@z2 ~]# vgchange --lockstart csmb_vg VG csmb_vg starting dlm lockspace Starting locking. Waiting until locks are ready...
Sur un nœud du cluster, créez un volume logique et formatez le volume avec un système de fichiers GFS2 qui sera utilisé exclusivement par CTDB pour le verrouillage interne. Un seul système de fichiers de ce type est nécessaire dans un cluster, même si votre déploiement exporte plusieurs partages.
Lorsque vous spécifiez le nom de la table de verrouillage avec l'option
-t
de la commandemkfs.gfs2
, assurez-vous que le premier composant de clustername:filesystemname que vous spécifiez correspond au nom de votre cluster. Dans cet exemple, le nom du cluster estmy_cluster
.[root@z1 ~]# lvcreate -L1G -n ctdb_lv csmb_vg [root@z1 ~]# mkfs.gfs2 -j3 -p lock_dlm -t my_cluster:ctdb /dev/csmb_vg/ctdb_lv
Créez un volume logique pour chaque système de fichiers GFS2 qui sera partagé par Samba et formatez le volume avec le système de fichiers GFS2. Cet exemple crée un seul système de fichiers GFS2 et un seul partage Samba, mais vous pouvez créer plusieurs systèmes de fichiers et partages.
[root@z1 ~]# lvcreate -L50G -n csmb_lv1 csmb_vg [root@z1 ~]# mkfs.gfs2 -j3 -p lock_dlm -t my_cluster:csmb1 /dev/csmb_vg/csmb_lv1
Configurez les ressources
LVM_Activate
pour vous assurer que les volumes partagés requis sont activés. Cet exemple crée les ressourcesLVM_Activate
dans le cadre d'un groupe de ressourcesshared_vg
, puis clone ce groupe de ressources afin qu'il s'exécute sur tous les nœuds du cluster.Créez les ressources comme étant désactivées afin qu'elles ne démarrent pas automatiquement avant que vous n'ayez configuré les contraintes d'ordre nécessaires.
[root@z1 ~]# pcs resource create --disabled --group shared_vg ctdb_lv ocf:heartbeat:LVM-activate lvname=ctdb_lv vgname=csmb_vg activation_mode=shared vg_access_mode=lvmlockd [root@z1 ~]# pcs resource create --disabled --group shared_vg csmb_lv1 ocf:heartbeat:LVM-activate lvname=csmb_lv1 vgname=csmb_vg activation_mode=shared vg_access_mode=lvmlockd [root@z1 ~]# pcs resource clone shared_vg interleave=true
Configurez une contrainte d'ordre pour démarrer tous les membres du groupe de ressources
locking
avant les membres du groupe de ressourcesshared_vg
.[root@z1 ~]# pcs constraint order start locking-clone then shared_vg-clone Adding locking-clone shared_vg-clone (kind: Mandatory) (Options: first-action=start then-action=start)
Activer les ressources
LVM-activate
.[root@z1 ~]# pcs resource enable ctdb_lv csmb_lv1
Sur un nœud du cluster, effectuez les étapes suivantes pour créer les ressources
Filesystem
dont vous avez besoin.Créez les ressources
Filesystem
en tant que ressources clonées, en utilisant les systèmes de fichiers GFS2 que vous avez précédemment configurés sur vos volumes LVM. Ceci configure Pacemaker pour monter et gérer les systèmes de fichiers.NoteVous ne devez pas ajouter le système de fichiers au fichier
/etc/fstab
car il sera géré comme une ressource de cluster Pacemaker. Vous pouvez spécifier des options de montage dans le cadre de la configuration de la ressource à l'aide de la commandeoptions=options
. Exécutez la commandepcs resource describe Filesystem
pour afficher les options de configuration complètes.[root@z1 ~]# pcs resource create ctdb_fs Filesystem device="/dev/csmb_vg/ctdb_lv" directory="/mnt/ctdb" fstype="gfs2" op monitor interval=10s on-fail=fence clone interleave=true [root@z1 ~]# pcs resource create csmb_fs1 Filesystem device="/dev/csmb_vg/csmb_lv1" directory="/srv/samba/share1" fstype="gfs2" op monitor interval=10s on-fail=fence clone interleave=true
Configurez les contraintes d'ordre pour vous assurer que Pacemaker monte les systèmes de fichiers après le démarrage du groupe de volumes partagés
shared_vg
.[root@z1 ~]# pcs constraint order start shared_vg-clone then ctdb_fs-clone Adding shared_vg-clone ctdb_fs-clone (kind: Mandatory) (Options: first-action=start then-action=start) [root@z1 ~]# pcs constraint order start shared_vg-clone then csmb_fs1-clone Adding shared_vg-clone csmb_fs1-clone (kind: Mandatory) (Options: first-action=start then-action=start)