1.4. Configuration de la réplication entre deux serveurs Dovecot


Avec la réplication bidirectionnelle, vous pouvez rendre votre serveur Dovecot hautement disponible, et les clients IMAP et POP3 peuvent accéder à une boîte aux lettres sur les deux serveurs. Dovecot suit les changements dans les journaux d'indexation de chaque boîte aux lettres et résout les conflits de manière sûre.

Effectuez cette procédure sur les deux partenaires de réplication.

Note

La réplication ne fonctionne qu'entre paires de serveurs. Par conséquent, dans un grand cluster, vous avez besoin de plusieurs paires de serveurs indépendants.

Conditions préalables

  • Les deux serveurs utilisent le même backend d'authentification. Il est préférable d'utiliser LDAP ou SQL pour gérer les comptes de manière centralisée.
  • La configuration de la base de données des utilisateurs de Dovecot supporte le listing des utilisateurs. Utilisez la commande doveadm user '*' pour le vérifier.
  • Dovecot accède aux boîtes aux lettres sur le système de fichiers en tant qu'utilisateur vmail au lieu de l'ID de l'utilisateur (UID).

Procédure

  1. Créez le fichier /etc/dovecot/conf.d/10-replication.conf et effectuez-y les étapes suivantes :

    1. Activez les plug-ins notify et replication:

      mail_plugins = $mail_plugins notify replication
    2. Ajouter une section service replicator:

      service replicator {
        process_min_avail = 1
      
        unix_listener replicator-doveadm {
          mode = 0600
          user = vmail
        }
      }

      Avec ces paramètres, Dovecot démarre au moins un processus réplicateur lorsque le service dovecot démarre. De plus, cette section définit les paramètres du socket replicator-doveadm.

    3. Ajoutez une section service aggregator pour configurer le tuyau replication-notify-fifo et la prise replication-notify:

      service aggregator {
        fifo_listener replication-notify-fifo {
          user = vmail
        }
        unix_listener replication-notify {
          user = vmail
        }
      }
    4. Ajouter une section service doveadm pour définir le port du service de réplication :

      service doveadm {
        inet_listener {
          port = 12345
        }
      }
    5. Définir le mot de passe du service de réplication doveadm:

      doveadm_password = replication_password

      Le mot de passe doit être le même sur les deux serveurs.

    6. Configurer le partenaire de réplication :

      plugin {
        mail_replica = tcp:server2.example.com:12345
      }
    7. Facultatif : Définir le nombre maximum de processus parallèles dsync:

      replication_max_conns = 20

      La valeur par défaut de replication_max_conns est 10.

  2. Définir des autorisations sécurisées sur le fichier /etc/dovecot/conf.d/10-replication.conf:

    # chown root:root /etc/dovecot/conf.d/10-replication.conf
    # chmod 600 /etc/dovecot/conf.d/10-replication.conf
  3. Activez le booléen SELinux nis_enabled pour permettre à Dovecot d'ouvrir le port de réplication doveadm:

    setsebool -P nis_enabled on
  4. Configurez les règles firewalld pour autoriser uniquement le partenaire de réplication à accéder au port de réplication, par exemple :

    # firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.0.2.1/32" port protocol="tcp" port="12345" accept"
    # firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv6" source address="2001:db8:2::1/128" port protocol="tcp" port="12345" accept"
    # firewall-cmd --reload

    Les masques de sous-réseau /32 pour l'adresse IPv4 et /128 pour l'adresse IPv6 limitent l'accès aux adresses spécifiées.

  5. Effectuez également cette procédure sur l'autre partenaire de réplication.
  6. Recharger Dovecot :

    # systemctl reload dovecot

Vérification

  1. Effectuer une action dans une boîte aux lettres sur un serveur et vérifier ensuite si Dovecot a répliqué la modification sur l'autre serveur.
  2. Affiche l'état du réplicateur :

    # doveadm replicator status
    Queued 'sync' requests        0
    Queued 'high' requests        0
    Queued 'low' requests         0
    Queued 'failed' requests      0
    Queued 'full resync' requests 30
    Waiting 'failed' requests     0
    Total number of known users   75
  3. Affiche l'état des réplicateurs d'un utilisateur spécifique :

    # doveadm replicator status example_user
    username        priority  fast sync  full sync  success sync  failed
    example_user    none      02:05:28   04:19:07   02:05:28      -

Ressources supplémentaires

  • dsync(1) page de manuel
  • /usr/share/doc/dovecot/wiki/Replication.txt
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.