Pierre Ancelot wrote:
Hi everyone,
I tried to implement a mail system load balanced but i had some issues:
- The system implement imap amd imaps
So in this case, someone creating an imap folder will creating it on
only one node....
- How to update a mail received on one host to every hosts ? using rsync
would delete every mail received in the same time on other servers...
All this makes me think i should store mails in a mysql cluster database
or in a filesystem like AFS for example.
Anyone could enlight me on this please ?
Perdition or Courier-Imap. Both of them are/have imap proxies(or
directors). So what you end up with is one(or more) front end proxies
that send the person to the right machine. It looks something like
this. Btw, we are moving to such a setup so I don't know how well it
will be
The connection hits your load balancers(just straight ip_vs).
Then it hands of the connection to a pool of imap proxies. Then each
imap proxy figures out which real mail warehouse to send the message
to(ldap is a good place to store this info cause it too can be load
balanced, slaves anyway and then no need to load balance the master).
At that point the user does their thing and its all stored on one
server. But you have many mail boxes distributed across many mail
warehouses. There is an issue of backups and such for the mail
warehouse, but this distributes the load so you can serve many more mail
boxes than one server could. I think we are gonna go with RAID arrays
and then hot spare mail warehouse mirrors. If the lead warehouse fails
the backup comes online(through something like heartbeat). This should
be more than enough redundancy for us, but you may want to look into
other solutions if you want more, aka fiberchannel or some such.
Obviously this setup can get very complexe but become very stable.
Depending on your application you can throw money at it or not even have
hot spares and trust in your RAID/backups.
|