Scalable mail architecture with ISP Config 3 ?

Discussion in 'Installation/Configuration' started by ircf, Dec 17, 2013.

  1. ircf

    ircf Member


    Our company actually uses ISP Config 3 to admin a single mail physical server for about 600 domains and 1000 mailboxes :
    Server : Linux Debian Squeeze with ISP Config 3
    Ram : 16GB
    CPU : 2
    HD : 1TB

    We plan to reach a maximum of about 2000-3000 mailboxes in the years to come, so we would like to migrate to a more important mail architecture to prevent failures and to improve QoS (in particular ensure to keep short delays in receiving and sending mails).

    After having read several articles such as this one we look forward to install the following architecture (on virtual machines) :
    - 1 MX/smtp-in (local relay only) server, RAM 8GB, 2CPU, HD 0.1TB
    - 1 pop/imap/webmail server, RAM 8GB, 2CPU, HD 1TB
    - 1 smtp-out (authenticated relay only) server, RAM 4GB, 2CPU, HD 0.1TB

    Each server would run Linux Debian. RAM/CPU/HD are about the same as our current mail server for price reasons, we will be able to increase those thanks to the cloud :)

    Here are my questions :

    1. Our setup is (on will) much more simple than the one presented on the article, because our company does not need to have a huge mail architecture, we just want a more robust and a "lightly" scalable architecture. Is this architecture correct ? Any suggestion is welcome :)

    2. We plan to install ISP Config 3 only on the pop/imap/webmail server and to setup a MySql master/slave replication between this server and the two others, so that the smtp-in postfix server could use local lookup tables and the smtp-out postfix server could use local mysql table-based authentication. Is this right ? Or should we install ISP Config on each server ?

    3. If (after a few years) we want to install one more pop/imap/webmail server, then how would the MX/smtp-in server know to which pop/imap server send mails ? Can this be done "directly" using ISP Config tables (for example using the field server_id ? Or should we use tools like Perdition ?

    Thank you :)

    EDIT :

    4. In the years to come, we will surely add one more MX server and do DNS balancing. We noticed there are two solutions : Use a single IP address (ALIAS balancing) or use distinct IP adresses for each MX server (MX balancing). We thought the simpler solution would be doing ALIAS balancing because this would only imply adding an alias once for all domains, instead of having to define a new MX record for each domain. Is that correct ? Are there inconvenients to ALIAS balancing against MX balancing ?
    Last edited: Dec 17, 2013
  2. till

    till Super Moderator Staff Member ISPConfig Developer

    I recommend to install ispconfig on all nodes and use the internal ispconfig mirroring features. Thats much more stable and fault tolerant then using a mysql master/master replication.

    I dont think that such a complicated setup is nescessary, in ispconfig you can have clusters of mailservers were each server is able to provide smtp, pop3 and imap service for all a accounts. if you dont want that a server provides imap or pop3, you can close that port in the firewall off course. all you need is a redundant storage for the maildirs (SAN) and ispconfig on all nodes of the cluster. the first node is the master, all other nodes are configured as mirror servers. if one server fails, even the amster, then it will not affect the other nodes.
  3. ircf

    ircf Member

    Thank you

    Thank you for your answer :)

    I understand that you recommend to separate our customers on many servers, every server having a complete mail setup.

    The redundant storage is important as well, any idea/article where I could find informations about how to setup redundant storage for maildirs please ?

    Thank you again for your help.
  4. till

    till Super Moderator Staff Member ISPConfig Developer

    You dont have o separate the customers on the servers. on a mirrored cluster, each mailbox is available on each server. So you can decide then if you give each customer a specific hostname to connect to for pop3 / imap / smtp to split them over the servers or you use round robin or you use some kind of loadbalancer.

    Regarding mail storage, some options are discussed here:
  5. ircf

    ircf Member

    About mirroring

    That's OK, we are gonna follow your advice and setup 2 complete mail servers mirrored by ISP Config and maildirs mirrored by GlusterFs like in your excellent tutorial.

    Thank you again Till, you really are fantastic ! ^^

Share This Page