web-dev-qa-db-fra.com

Comment construire un système de postfix de haute disponibilité?

J'ai besoin de configurer un miroir distant pour un serveur Postfix (où le contenu des deux serveurs de messagerie doit être identique à tout moment).

L'idée est que si le serveur principal est en panne à un moment donné, le serveur de miroir prendra sa place, gérez les nouveaux courriers entrants et lorsque le serveur de messagerie reviendra à nouveau, il le mettra à jour avec les nouveaux e-mails et le retour C'est le contrôle de gérer les nouveaux courriers entrants.

Les serveurs de messagerie seront hébergés à différents endroits (I.e. Maindomain.com, Themirrorsite.com).

Obtenir un simple serveur de sauvegarde ne semble pas trop difficile:

Mais le problème est que cette configuration ne rendrait pas le site de sauvegarde un miroir complet du serveur de messagerie principal (il ne conservera que les courriels reçus pendant que le serveur principal est en panne).

Existe-t-il un moyen d'atteindre la configuration requise?

12
VanHackman

Le résultat que vous souhaitez réaliser et la manière dont vous avez décidé de le faire, sont des choses très différentes. Pour être émoussé, ce que vous voulez mettre en œuvre est une mauvaise idée, et si vous pouvez y faire de la sorte pour le faire fonctionner, cela ne fonctionnera pas très longtemps (ou très bien).

Ce qui rend cette question difficile à répondre, c'est que vous avez sauté directement à la mise en œuvre et que vous n'avez pas décrit n'importe quoi utile sur votre environnement ou ce que vous essayez de réellement atteindre. S'il vous plaît, ne faites pas cela, vous obtiendrez de meilleurs résultats meilleurs ici si vous "montrez votre travail".

Laissez-moi poser quelques scénarios, cependant, pour vous donner un avant-goût de ce qui est possible, pratique et utile:

  • S'assurer qu'aucun courrier ne se perd : (Je ne pense pas que c'est ce dont vous avez besoin, car la documentation que vous appelez à la couvre de manière adéquate) tout ce que vous voulez avoir ici est l'assurance que peu importe Depuis combien de temps, votre infrastructure de livraison et de gestion de votre courrier est réduite, vous ne ferez aucun courrier et vous pouvez contrôler lorsque la livraison est effectuée. Pour cela, une sauvegarde de "Simple" hors site MX fonctionnera de manière adéquate. Je dis "simple" car vous devez reproduire beaucoup de données à la sauvegarde (toutes les informations de logique anti-spam, les informations d'utilisateur/alias valides afin de pouvoir faire rebondir correctement le courrier invalide à l'heure SMTP, ce genre de chose), mais c'est tout script , automatisé et assez solatiblement implémenté de manière triviale avec un peu de soins. Tant que vous avez suffisamment de disque pour faire la queue tout le courrier, vous pouvez faire une file d'attente pendant des semaines ou des mois jusqu'à ce que votre site principal soit revenir, puis vous percerez la sauvegarde MX et il empêche une touche métrique de courrier dans votre infrastructure de messagerie et vos utilisateurs. Allez "aaaaaaahhhh!"
  • Assurer la disponibilité du système de courrier complet : On dirait que c'est ce que vous voulez, mais ce n'est pas simple ni joli. Fondamentalement, vous voulez être capable de fournir un service de messagerie "complet" à votre UserBase en cas d'échec complet du site. En principe, cela est en fait impossible, car la réplication n'est pas instantanée, mais vous pouvez au moins atteindre un niveau raisonnable de fiabilité. Le peu difficile n'est pas le MTA, cependant; C'est la boutique de courrier elle-même. Vous devrez trouver un moyen de reproduire toutes les opérations de stockage de messagerie (nouvelle livraison de courrier, modifications de l'état de message, suppression) au deuxième site en temps proche en temps réel - et faites-la dans les deux sens, en fonction duquel le site est en direct . Vous pouvez prendre l'option bon marché, d'un RSYNC périodique (avec le risque que tout ce qui soit fait depuis le dernier rsync est parti pour toujours Si vous avez besoin de basculement) ou d'aller pour divers fichiers ou block- Techniques de réplication de niveau pour essayer de conserver les choses en jeu de temps près réel (réduire la quantité de perte de données en échange de la configuration et du fonctionnement de manière significativement plus compliquée). Certains systèmes de messagerie ont un support pour une sorte de réplication intégrée, ce qui peut rendre la vie plus facile. Ensuite, il y a toute la question de défaillance et comment faites-vous cela, puis en échec Retour, qui est plus difficile à nouveau, et vous devez enfin la tester périodiquement, pour vous assurer que le système d'exploitation Mise à niveau Vous avez fait un moment de retour n'a rien brisé ...

Fondamentalement, cette dernière option est douloureuse et ennuyeuse. Ma préférence personnelle, si vous pouvez vous en tirer (et vous seriez surpris de la fréquence à laquelle vous pouvez) mettre tous vos œufs dans un panier, après avoir assuré que vous avez eu un très bon panier robuste (génie des systèmes appropriés ), Garder un stock de patchs de paniers et d'outils à portée de main (axés sur recouvrabilité élevée ) et veiller à ce que les gens sachent que de temps en temps, quelques œufs pourraient être cassés et vous êtes vraiment Désolé, la vie n'est pas parfaite (ne faites pas SLA Garanties qui ne sont pas raisonnables).

Il y a des moments où vous avez besoin d'une disponibilité ultra élevée et que j'ai construit des systèmes qui y assurent, mais ils ne sont pas simples et, dans de nombreux cas, ils ne sont pas rentables, ce qui est ce que nous sommes là. Oui, Ha est cool et sexy, et vous obtenez de la geek créditer pour construire une certaine monstruosité de la complexité, mais nous ne sommes pas là pour caresser nos egos. Nous sommes ici pour offrir une valeur commerciale, et je suis désolé, mais un cluster de courrier multi-site hautement disponible de Rube Goldberg n'est pas susceptible d'offrir autant de valeur qu'un service de messagerie simple et robuste et à l'occasion "nous" Nous sommes désolés pour la panne de courrier, nous aurons les systèmes dans une heure, n'hésitez pas à avoir un café et un muffin sur nous "Annonce.

22
womble

J'ai utilisé dbmail pour accomplir une solution similaire. DBMail stocke tous les emails dans une base de données. Vous pouvez configurer la réplication de la base de données pour vous assurer que vos emails sont également stockés dans l'emplacement distant. Il rend la gestion du système de messagerie plus compliqué que vous devez gérer la base de données ainsi que l'e-mail.

1
Yavor Shahpasov

Ce que vous voulez, c'est la réplication Postfix, que je ne pense pas que Postfix soutient de manière nativement. La solution que j'ai vue d'autres personnes à utiliser est de reproduire les fichiers de données postfix entre serveurs à l'aide d'un système de fichiers distribué.

0
Klox