In a cluster (multi-machine) environment, such as Tru64 or Polyserve (on Linux), that problem is solved by the use of CDSL (a context-dependent symbolic link). You basically turn the file or directory into a CDSL and suddenly each machine in the cluster gets its own personal copy of it that is not shared. We use TCP for LMTP, which I personally feel is a better way of delivering messages to LMTP. If you have to use the "deliver" program though, then yeah, you still need the socket file. That file needs to be a CDSL. The same goes with SASL and its socket file. Scott --On Thursday, August 17, 2006 4:50 PM -0400 David Korpiewski <davidk@xxxxxxxxxxxx> wrote:
This is building on my original discussion about simultaneous access: We are having a problem where two servers accessing the same SAN now give us a LMTPD error because they are stomping on each other's sockets (they share the same database on the SAN with the same socket directory). Is there any way to prevent this from happening or easily configuring them not to not to use the same sockets? I've gone into cyrus.conf and changed the socket directory listed for lmtpd but for some reason the deliver still fails on accessing the original socket directory. So somewhere else in the system it is trying to access configdirectory/socket/lmtpd. Thanks for any help David Michael Menge wrote:This subject has also been on this list a few weeks ago. Look for the subject "High availability email server" Quoting Wesley Craig <wes@xxxxxxxxx>:On 16 Aug 2006, at 14:52, David Korpiewski wrote:My director had us go back to using our Macs to try to build a failover cluster. We were able to set up two mail servers sharing the same backend XSAN. We put our database for cyrus on the XSAN and had both mail servers use _the same_ database and the same mail store locations. So far in limited testing it works flawlessly. This is very strange to us. Is cyrus set up to allow multiple simultaneous accesses to its database without corruption or are we just lucky to not have corrupted the database yet? This is cyrus 2.2.12 running on two OSX 10.4.7 servers.The main process which updates mailboxes.db etc on a backend server is imapd. Since multiple imapd's are allowed, as long as your XSAN provides appropriate locking, you are not "just lucky". See the compile documentation for a discussion of how to select the locking method: --with-lock=METHOD Specifies the locking method to use. Currently implemented locking methods are: flock flock() locking fcntl fcntl() locking By default, configure uses "fcntl" if the "fcntl()" function exists, "flock" otherwise. AFAIK, fcntl( ..., F_SETLK*, ...) always locks the whole file, a la flock(). Also, I think I see a bug in master/service.c, where instead of using the locking method specified during compile-time, fcntl() is always used. :wes ---- Cyrus Home Page: http://asg.web.cmu.edu/cyrus Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html-------------------------------------------------------------------------------- M.Menge Tel.: (49) 7071/29-70316 Universitaet Tuebingen Fax.: (49) 7071/29-5912 Zentrum fuer Datenverarbeitung mail: menge@xxxxxxxxxxxxxxxxxxxx Waechterstrasse 76 72074 Tuebingen ---- Cyrus Home Page: http://asg.web.cmu.edu/cyrus Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html
-- +-----------------------------------------------------------------------+ Scott W. Adkins http://www.cns.ohiou.edu/~sadkins/ UNIX Systems Engineer mailto:adkinss@xxxxxxxx ICQ 7626282 Work (740)593-9478 Fax (740)593-1944 +-----------------------------------------------------------------------+ PGP Public Key available at http://www.cns.ohiou.edu/~sadkins/pgp/
Attachment:
pgp748m2UqVx2.pgp
Description: PGP signature
---- Cyrus Home Page: http://asg.web.cmu.edu/cyrus Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html