8.2. Configurer Samba dans un cluster à haute disponibilité
Pour configurer un service Samba dans un cluster Pacemaker, configurez le service sur tous les nœuds du cluster.
Conditions préalables
- Un cluster Red Hat High Availability à deux nœuds configuré avec un système de fichiers GFS2, comme décrit dans Configuration d'un système de fichiers GFS2 pour un service Samba dans un cluster de haute disponibilité.
-
Un répertoire public créé sur votre système de fichiers GFS2 à utiliser pour le partage Samba. Dans cet exemple, le répertoire est
/srv/samba/share1
. - Adresses IP virtuelles publiques pouvant être utilisées pour accéder au partage Samba exporté par ce cluster.
Procédure
Sur les deux nœuds du cluster, configurez le service Samba et mettez en place une définition de partage :
Installez les paquets Samba et CTDB.
# dnf -y install samba ctdb cifs-utils samba-winbind
Assurez-vous que les services
ctdb
,smb
,nmb
etwinbind
ne sont pas en cours d'exécution et ne démarrent pas au démarrage.# systemctl disable --now ctdb smb nmb winbind
Dans le fichier
/etc/samba/smb.conf
, configurez le service Samba et mettez en place la définition de partage, comme dans l'exemple suivant pour un serveur autonome avec un seul partage.[global] netbios name = linuxserver workgroup = WORKGROUP security = user clustering = yes [share1] path = /srv/samba/share1 read only = no
Vérifiez le fichier
/etc/samba/smb.conf
.# testparm
Sur les deux nœuds du cluster, configurez CTDB :
Créez le fichier
/etc/ctdb/nodes
et ajoutez les adresses IP des nœuds du cluster, comme dans cet exemple de fichier nodes.192.0.2.11 192.0.2.12
Créez le fichier
/etc/ctdb/public_addresses
et ajoutez-y les adresses IP et les noms des périphériques réseau des interfaces publiques du cluster. Lorsque vous attribuez des adresses IP dans le fichierpublic_addresses
, assurez-vous que ces adresses ne sont pas utilisées et qu'elles sont routables à partir du client visé. Le deuxième champ de chaque entrée du fichier/etc/ctdb/public_addresses
est l'interface à utiliser sur les machines de la grappe pour l'adresse publique correspondante. Dans cet exemple de fichierpublic_addresses
, l'interfaceenp1s0
est utilisée pour toutes les adresses publiques.192.0.2.201/24 enp1s0 192.0.2.202/24 enp1s0
Les interfaces publiques du cluster sont celles que les clients utilisent pour accéder à Samba depuis leur réseau. À des fins d'équilibrage de charge, ajoutez un enregistrement A pour chaque adresse IP publique de la grappe à votre zone DNS. Chacun de ces enregistrements doit résoudre le même nom d'hôte. Les clients utilisent le nom d'hôte pour accéder à Samba et le DNS distribue les clients aux différents nœuds du cluster.
Si vous exécutez le service
firewalld
, activez les ports requis par les servicesctdb
etsamba
.# firewall-cmd --add-service=ctdb --add-service=samba --permanent # firewall-cmd --reload
Sur un nœud de la grappe, mettez à jour les contextes SELinux :
Mettre à jour les contextes SELinux sur le partage GFS2.
[root@z1 ~]# semanage fcontext -at ctdbd_var_run_t -s system_u "/mnt/ctdb(/.)?"* [root@z1 ~]# restorecon -Rv /mnt/ctdb
Mettre à jour le contexte SELinux sur le répertoire partagé dans Samba.
[root@z1 ~]# semanage fcontext -at samba_share_t -s system_u "/srv/samba/share1(/.)?"* [root@z1 ~]# restorecon -Rv /srv/samba/share1
Ressources supplémentaires
- Pour plus d'informations sur la configuration de Samba en tant que serveur autonome, comme dans cet exemple, voir le chapitre Utilisation de Samba en tant que serveur de la section Configuration et utilisation des services de fichiers en réseau.
- Mise en place d'une zone de transfert sur un serveur primaire BIND.