[postfix-es] Alta disponibilidad y alto rendimiento

Miguel Angel Tormo Alfaro mlists en edicom.eu
Vie Jul 16 10:38:31 CEST 2010


Es un tema interesante, hay muchas maneras de resolverlo y todo depende de tus necesidades y presupuesto.
Varias opciones que se me ocurren (algunas ya las han comentado antes en este hilo):

* Alta disponibilidad en almacenamiento de buzones: es un tema complejo. Al final todo se reduce a eliminar el SPOF (single point of failure), es decir, el elemento común que puede fallar. 
  - Usando SAN: por ejemplo como decías de nada sirve tener un cluster con una súper SAN si dicha SAN cae. No obstante, casi todos los fabricantes de SAN ofrecen la posibilidad de replicación síncrona (o casi), con lo que teniendo otra cabina de iguales características puedes tener los datos replicados. Existen muchas posibilidades pero es común que los nodos se conecten a las SAN utilizando algún sistema de multipath que permitiera un fallback automático (aunque esto siempre es delicado) si la principal no estuviera disponible.
  - Usando DRBD: mucho más barato (aunque tendrás menos rendimiento) es usar particiones replicadas mediante DRBD. Creo que hace relativamente poco DRBD permite configuraciones activo-activo, eso sí en este caso la partición habría que formatearla con un sistema de ficheros de cluster tipo GFS que gestionase la concurrencia de sistemas. Son delicadas las posibles situaciones de "split brain" con las configuraciones DRBD muy automatizadas.
  - Existen otras posibilidades. Si funciona tan bien como dicen, glusterfs puede ser una buena manera de tener redundancia y alto rendimiento de forma barata, ya que es un sistema de archivos distribuido que permite replicación. Hace tiempo lo estuve mirando pero no soportaba bloqueos fnctl (importantes para que un sistema de correo funcione) pero creo que ya lo han solventado. 
Otra opción podría ser utilizar almacenamiento en base de datos (por ejemplo con dbmail) y utilizar replicación mysql.
Has comentado también rsync, como solución barata y sencilla de backup de correos puede servir, pero desde luego yo no lo pondría en categoría "alta disponibilidad", además los datos pueden estar inconsistentes en el backup, y es totalmente impracticable en sistemas grandes.

* Alto rendimiento: Como siempre, depende de lo que necesites. Normalmente lo suyo sería separar los grupos de servidores por roles, por ejemplo teniendo servidores dedicados al proceso antispam, servidores dedicados a recibir correo y servidores dedicados a enviar correo. A nivel SMTP, tanto los servidores de envío como los de recepción de correo son fáciles de balancear mediante DNS, aunque también existen balanceadores de carga hardware que funcionan muy bien.
Otro tema es a nivel de buzones POP3/IMAP. Aquí podemos volver al tema de sistemas de ficheros distribuidos como glusterfs, o usar dbmail para almacenar los buzones en base de datos y utilizar mysql distribuido, configurar cyrus para tener buzones en diferentes servidores...

En cualquier caso, cuanto más exiges a un sistema a nivel de rendimiento, más complicada es la alta disponibilidad. Por ejemplo en caso de tener servidores dedicados para el envío de correos balanceados, si uno de ellos cae, ¿qué pasa con los correos que tuviera en la cola? Se perderían... Si queremos además alta disponibilidad deberíamos replicar esa cola, así que tendríamos que tener estos servidores por pares 'activo-pasivo', ya que la cola de postfix no permite que varios sistemas accedan a ella (independientemente de que empleásemos un sistema de ficheros de cluster como GFS).


Bueno, menudo tocho me ha quedado. Me dejo muchas posibilidades, algunas porque son muy teóricas, otras porque las habré olvidado y otras porque no las conozco o no se me han ocurrido, pero como ves hay muchas formas de llegar a lo mismo, como he dicho al principio todo depende de los requisitos del sistema, el presupuesto y cómo no, dedicarle tiempo.

El Miércoles, 14 de Julio de 2010 01:02:20 Federico Nan escribió:
> Creo que lo mejor es usar lvdirector....para la parte de storage de los
> mailboxs yo siempre use cyrus, con el que te permite guardar grupos de
> mailboxs en diferentes servidores.
> 
> saludos
> 
> El 13 de julio de 2010 19:58, Antonio <potxoka en gmail.com> escribió:
> 
> > hola
> >
> > muchas gracias por responder. la verdad que no lo tengo de ninguna forma,
> > era mas que nada curiosidad porque siempre he tenido dudas de estas cosas y
> > no sabia hasta que punto se obtiene buen rendimiento y como seria posible de
> > la forma mas facil. el balanceo de carga se haria con roundrobin del dns? es
> > lo que mayor dudas tengo, o si se puede poner una especie de proxy.
> >
> > Para que el servidor envie el mayor numero de email? se podria hacer qeu
> > tenga varias cuentas, una en cada servidor (user en domain1.com
> > user en domain2.com) pero obligas al usuario alternar, de manera transparente
> > se puede hacer y asi no tiene que elegir el dominio para cada servidor?
> > gracias
> >
> > saludos
> >
> > El 13/07/10 17:55, Victor Oñate escribió:
> >
> >  Buenas tardes..
> >>
> >> en la capa de alta disponibilidad puedes tener Heartbeat
> >> y ldirectord y luego en la capa del filsistem puedes tener
> >> GFS, esto es para soluciones de correo de muy alto trafico
> >> el diagrama es algo como
> >>
> >>
> >>            --------------
> >>            Usuarios
> >>            ---------------------------------
> >>            |                              |
> >>            |                              |
> >>      ------------------            -------------
> >>      Servidor 1               Servidor 2 en caso de falla
> >>      ldirectord,               ldirectord,                     CAPA
> >> ALTA DISPONIBILIDAD
> >>      Heartbeat,              Heartbeat,
> >>      ip virtual                 ip virtual
> >>     -------------                    -------------
> >> |               |
> >> |               |
> >> |               |_____
> >> |                         |
> >> ----------          ---------------
> >> mta1                  mta2
> >> postfix               postfix             CAPA BALAnCEO DE CARGA "N"
> >> NODOS!
> >> ,dovecot            dovecot
> >> cman                cman
> >> fence                fence
> >> -------------------------------------
> >>             |
> >>             |
> >> ------------------------------
> >> Arreglo de discos
> >> con GFS
> >> ------------------------
> >> --------------
> >>
> >>
> >> Algo como esto es bastante robusto, sin embargo en mi opinión
> >> es una solución bastante compleja  asi que depende de lo
> >> que realmente necesites.
> >>
> >> Saludos.
> >> Victor Oñate
> >>
> >>
> >>
> >>
> >>
> >> El día 13 de julio de 2010 10:42, Jose<j.sejo1 en gmail.com>  escribió:
> >>
> >>
> >>> Heartbeat para el servicio   http://www.linux-ha.org ,  para la data
> >>> tienes que ingenieartela a ver como, por ejemplo si los buzones estan
> >>> en filesystem, en mysql, etc etc.
> >>>
> >>> Saludos.
> >>>
> >>>
> >>> El día 13 de julio de 2010 09:51, Antonio<potxoka en gmail.com>  escribió:
> >>>
> >>>
> >>>> hola
> >>>>
> >>>> tengo una curiosidad sobre el tema de alta disponibilidad y alto
> >>>> rendimiento. Hasta ahora solo he instalados sistemas "basicos" o
> >>>> normales,
> >>>> pero tengo curiosidad por saber como montar un sistema de alto
> >>>> rendimiento y
> >>>> alta disponibilidad. Como se que habra gente que habran montado sistemas
> >>>> asi, pues haber si alguien me puede aclarar mi curiosidad. Por ejemplo
> >>>> para
> >>>> el sistema de alta disponibilidad aparte de montar un servidor backup
> >>>> que
> >>>> retenga los correos hasta que el principal vuelva ¿que se puede hacer?
> >>>> porque si por ejemplo en el principal casca el disco duro, en el
> >>>> servidor
> >>>> backup solo tendriamos almacenados los nuevos correos. ¿Se puede copiar
> >>>> el
> >>>> patch de almacenamiento a pelo en el secundario (tipo rsync o
> >>>> similar)????.
> >>>> Otra opcion es montar una san y almacenar ahi los correos y con
> >>>> soluciones
> >>>> HA levantar el servicio, pero si se daña la SAN???? Queda la opcion de
> >>>> replicar en otro datacenter, pero... ¿Que soluciones montariais para
> >>>> esto?¿Se comportaria DRBD, GF2, etc. bien en este sistema?¿No habria
> >>>> poblemas de rendimiento?
> >>>>
> >>>> Sobre alto rendimiento es donde tengo mas dudas. Por ejemplo si tenemos
> >>>> un
> >>>> servicio que mueve millones de correos al dia, un buen servidor con
> >>>> buena
> >>>> linea a la hora de recibir correos (millones de entrada) como lo
> >>>> montariais??? A mi se me ocurre alguna solucion, pero quizas sea un poco
> >>>> chapucera y haya cosas mejores, es balancear con DNS entre varios
> >>>> servidores
> >>>> y estos a su vez hagan un relay al servidor principal. Pero... para
> >>>> salida???? Como se puede hacer que el servidor "escupa" el mayor numero
> >>>> de
> >>>> correos posibles? muchas gracias
> >>>>
> >>>> saludos
> >>>> _______________________________________________
> >>>> List de correo postfix-es para tratar temas del MTA postfix en español
> >>>> postfix-es en lists.wl0.org
> >>>> http://lists.wl0.org/mailman/listinfo/postfix-es
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>> --
> >>> #############################
> >>> #   Sistema Operativo: Debian      #
> >>> #        Caracas, Venezuela          #
> >>> #############################
> >>> _______________________________________________
> >>> List de correo postfix-es para tratar temas del MTA postfix en español
> >>> postfix-es en lists.wl0.org
> >>> http://lists.wl0.org/mailman/listinfo/postfix-es
> >>>
> >>>
> >>>
> >>
> > _______________________________________________
> > List de correo postfix-es para tratar temas del MTA postfix en español
> > postfix-es en lists.wl0.org
> > http://lists.wl0.org/mailman/listinfo/postfix-es
> >
> 
> 
> 




More information about the postfix-es mailing list