erlug
[Top] [All Lists]

Re: [Erlug] Mail server distribuiti

To: ERlug - Lista Pubblica <erlug@xxxxxxxxxxxxxx>
Subject: Re: [Erlug] Mail server distribuiti
From: Fabio Muzzi <kurgan@xxxxxxxxxx>
Date: Mon, 12 Oct 2009 17:39:43 +0200
Riccardo Riva wrote:


In pratica avrei (o potrei avere) una o più macchine di relay per fare
da frontend e per svolgere compiti di sanitizzazione della mail
(Antivirus, AntiSpam, GreyList e chi più ne ha più ne metta), e almeno
due backend su cui effettuare lo store delle mailbox.

Bella pesca.

Allora, cosi` a ruota libera, pensiamo.

I frontend che fanno antispam, antivirus, e simili, sono banali: sono macchine tutte uguali, che risultano come MX del dominio, e dopo aver macinato la loro posta, la mandando al (o ai) backend.

I backend sono tutto un altro paio di cazzi.

Vuoi usare IMAP sui backend? Se vuoi usare IMAP e vuoi la ridondanza completa, questo vuole dire che in teoria le mailbox (per le quali suggerisco senza dubbio di usare maildir, e come imap server di usare Dovecot) devono stare su un file system che sia accessibile a tutti i backend. Una cosa del genere forse potrebbe essere fattibile con DRBD e con un filesystem che possa essere montato contemporaneamente su piu` macchine.

A questo punto ognuno dei backend contiene un disco che e` parte del RAID1 del DRBD, e lo monta anche. quando un utente si collega in imap a uno dei due backend, vede la posta. Quando una mail entra da uno dei frontend a uno dei backend, questa viene "vista" anche dall'altro backend, e se si dice ai frontend di smistare la mail su tutti i backend (non tutti nel senso di "copiala su tutti" ma nel senso di "se non va qui, prova li`") hai ottenuto ridondanza completa.

Tutto questo se:

1- DRBD funziona bene
2- il link a 50 megabit regge il carico
3- il file system che puoi montare da tutte e due le parti (GFS?) funziona
4- riesci a inventare un sistema decente per gestire i casi di split-brain



--

Fabio "Kurgan" Muzzi

La diagnosi del tecnico: Non me ne parli, sto tracciano il satellite manualmente!

<Prev in Thread] Current Thread [Next in Thread>