On Tue, Apr 11, 2000 at 01:01:33PM -0400, Jeff Commando Sherwin wrote:
>
>
> > I think you need to give us a better idea of the big picture. The first post
> > made it sound like a single machine, now you talk about NFS servers, multiple
> > IP addresses, separate access server, etc.
>
> Fair enough, I thought i was going to be able to sneak this one in as a
> small question. I guess not.
>
> My boss says that I need to design a system to send and receive mail (not
> through imap or pop) that can scale feasibly to millions of users down the
> road; It will start small and get larger. Bearing that in mind, and the
> hopeful growth of out revenue, id like to start out cheap.
>
> I envisioned two or more qmail servers sending and receiveing mail behind
> a load balancer. I was of the understanding that trying to route all mail
> through one smtp server was a bad idea as smtp negotations can be slow. So
For inbound SMTP you don't need a load balancer or layer 4 switch, simply
use multiple MX entries. Let the DNS do the "load balancing" and let the
sending MTAs figure out when a server isn't available.
If you have internal people sending to SMTP servers, that's a case that
can benefit from a layer 4 switch*.
> So now I have multiple qmail servers per box, each box now having multiple
> queues.
Unless you are doing this for functional seperations reasons, I don't see
a lot of benefit. If it's to have multiple queues on multiple spindles, why
not stripe the file system? If it's that you are able to handle higher
concurrencies than 250 I can understand. I would not do something like this
unless you had a very real reason for doing it.
Btw. routing by email address is hard. You can't tell it's to hotmail until
you've accepted the connection and you cannot tell hotmail which MX to use
(leastwise not easily, a smart DNS could answer to hotmail differently from
other sites, but that's another story).
> For now the user directories will be over nfs, but that can be upgraded
> later as well. There will be seperate machines for dealing with access to
> the nfs server (for user interaction) but ultimately, outbound mail will
> be move through qmail aswell. Authentication of users is handles on this
> side aswell (with in house work).
>
> Is my thinking wrong? I am curious as to how to construct the multiple
> queue boxes, and to see who else has has success/problems with it.
This is a very common scenario you describe. Mostly ISPs hit it first,
but large corps also have the same issues.
In general, you'll want to separate out the inbound SMTP from the outbound SMTP,
so that resources can be reserved for your sending customers.
You'll want some sort of common file store for the mailboxes (I use that word
in the general sense, not for V7 vs Maildir distinction), making that truly
redundant is hard so people tend to opt for high-av solutions like Netapps.
* One decision you have is to decide whether to make this transparent to your
customer base or not. Some people propose using the DNS to distribute
customers, such as using their name as part of the smtp server, eg,
john.smtp.example.dom others suggest using DNS and L4 switches to present
an image of a single server. I prefer the latter approach, but it's not
necessarily better and does tend to involve an L4 switch (+ backup).
Regards.