loc@xxxxxxxxxxxxxxxx wrote:
> I need this to convince my boss that LVS is THE SOLUTION for very
> Scalable and High Available Mail/POP server. I have the intent to setup
This is about the hardest clustering thing you'll ever do. Because of
the constant read/write access's you -will- have problems with locking,
and file corruption.. The 'best' way to do this is (IMHO):
1: NetCache Filer as the NFS disk server.
2: Several SMTP clients using NFS v3 to the NFS server.
3: Several POP/IMAP clients using NFS v3 to the NFS server.
4: At least one dedicated machine for sending mail out (smarthost)
5: LinuxDirector box in front of 2 and 3 firing requests off
Now, items 1 2 -and- 3 can be replaced by Linux boxes, but, NFS v3 is
still in Alpha on linux. I -believe- that NetBSD (FreeBSD? One of them)
has a fully functional NFS v3 implementation, so you can use that.
The reason why I emphasize NFSv3 is that it -finally- has 'real' locking
support. You -must- have atomic locks to the file server, otherwise you
-will- get corruption. And it's not something that'll happen
occasionally. Picture this:
[client] -- [ l.d ] -- [external host]
|
[smtp server]-+-[pop3 server]
|
[filesrv]
Whilst [client] is reading mail (via [pop3 server]), [external host]
sends an email to his mailbox. the pop3 client has a file handle on the
mail spool, and suddenly data is appended to this. Now the problem is,
the pop3 client has a copy of (what it thinks) is the mail spool in
memory, and when the user deletes a file, the mail that's just been
received will be deleted, because the pop3 client doesn't know about it.
This is actually rather a simplification, as just about every pop3
client understands this, and will let go of the file handle.. But, the
same thing will happen if a message comes in -whilst the pop3d is
deleting mail-.
POP Client SMTP Client
I want to lock this file <--
I want to lock this file <--
You can lock the file -->
You can lock the file -->
Consider it locked <--
File is locked -->
Consider it locked <--
Ooh, I can't lock it -->
The issue with NFS v1 and v2 is that whilst it has locking support, it's
not atomic. NFS v3 can do this:
POP Client SMTP Client
I want to lock this file <--
I want to lock this file <--
File is locked -->
Ooh, I can't lock it -->
That's why you want NFSv3. Plus, it's faster, and it works over TCP,
rather than UDP 8-)
--Rob
|