LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: LVS & Mail server ?

To: loc@xxxxxxxxxxxxxxxx
Subject: Re: LVS & Mail server ?
Cc: linux-virtualserver@xxxxxxxxxxxx
From: Rob Thomas <rob@xxxxxxxxxx>
Date: Mon, 28 Jun 1999 11:49:06 +0000
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

<Prev in Thread] Current Thread [Next in Thread>