Re: [exim] Shared Spool using NFS

Top Page
Delete this message
Reply to this message
Author: Nigel Metheringham
Date:  
To: exim-users
Subject: Re: [exim] Shared Spool using NFS
On Mon, 2005-09-05 at 15:01 +0400, Danil V. Gerun wrote:
> If you need scalability (and redundancy) I suggest you to check out the
> DBMail project. www.dbmail.org
> It stores the whole information about users and the mail itself in the
> database (MySQL and PGSQL), and scalability and redundancy of these
> RDBMSs should be limited only by your imagination ;-)


This simply moves the problem around (and does not address the problem
of protecting the mail system queues). Not to say that its not a good
solution, but you are not addressing the question asked.

On Sun, 2005-09-04 at 00:41 +0200, Xirtam wrote:
> But: If one machine failed, all users sending mails to that box would
> get a connection failed error.
> Therefore I want to build a mail cluster (LVS) where all boxes have
> shared maildirs and a shared queue.


Personally I would tend to do this with a shared mailstore (maildirs or
spool of some form) but per-instance queue/hints/logs/odds directories.
Assuming the boxes have RAID1 or similar for their local storage you
would have to be pretty unlucky to lose the per-instance storage for a
substantial amount of time (or permanently). Having this stuff
per-instance gets you some performance gains (locking, directory sizes,
network traffic, filer load etc) at the expense of some (to my mind
acceptable) reliability downgrading. All of these things are trade-offs
- you need to work out where your comfort zones are. [Remember that the
performance of a standards compliant MTA tends to be very strongly
constrained by the speed you can commit a file to stable storage].

> My question: Are there technical problems when more than one Exim
> instance is using the same spool
> directory?


Spool directory. No problem.
Queue directory (and other stuff mentioned above) is a little more
complex. Look at the localhost_number settings - I see Tony has written
something on this whilst I was putting this message together.

If you do want to put this stuff all on the central filestore (or single
point of failure as it could be called :-) - ie make sure that box
really is good), then consider having a directory per cluster member on
the shared filestore and putting queue etc below this. If you lose a
box then start up another exim process using that directory hierarchy.

One thing to watch is answers to questions like this will show up the
design prejudices of folks. You will work out that my prejudice is
towards semi-autonomous/loosely-coupled systems with as little
dependence as possible on a central something.

    Nigel.
-- 
[ Nigel Metheringham           Nigel.Metheringham@??? ]
[ - Comments in this message are my own and not ITO opinion/policy - ]